对于随机信号,不存在傅里叶变换,其对应的功率谱估计方法主要包括非参数方法(包括韦尔奇)和参数方法(ARMA, Burg)。
周期图方法
fs = 1000;
t = 0:1/fs:1;
xn = sin(2*pi*80*t) + 2*sin(2*pi*140*t) + randn(size(t));
N = length(xn);
y = abs(fft(xn,1024));
Pxx = y.^2/N;
f = [0:N-1]*fs/N;
plot(f(1:N/2+1),Pxx(1:N/2+1));

我们绘制该信号的功率谱图,有

如何降低功率谱估计的方差?
(1). 将长度为N的数据分成若干段,分别求出每一段的功率谱,然后加以评价,甚至允许每段数据有部分重叠; (2). 采用合适的窗函数来消除由矩形窗旁辫带来的谱失真。
我们首先尝试非重叠下的功率谱绘制。
Pxx = (abs(fft(xn(1:256))).^2 + abs(fft(xn(257:512))).^2+...
abs(fft(xn(513:768))).^2)/(256*3);
figure
plot((0:255)/256*fs,10*log10(Pxx));
title(‘平均周期(非重叠)')
xlabel('Freq');
ylabel('PSD(dB)');
grid

然后尝试有一般数据重叠的情况。
Pxx = (abs(fft(xn(1:256))).^2+…
abs(fft(xn(129:384))).^2+...
abs(fft(xn(257:512))).^2+…
abs(fft(xn(385:640))).^2+...
abs(fft(xn(513:768))).^2+…
abs(fft(xn(641:896))).^2)/(256*6)
figure
plot((0:255)/256*fs,10*log10(Pxx));
title(‘平均周期图(128个样本重叠)');
xlabel('Freq');
ylabel('PSD(dB)');
grid;
</