实验目的
学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解
可能出现的分析错误及其原因,以便正确应用FFT。
二.实验原理
用FFT对信号做频谱分析是学习数字信号处理的重要内容。经常需要进频谱分析的信号是模拟信号和时域离散信号。对信号进行频谱分析的重要问题是频谱分辨率D和分析误差。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
三.实验内容
已知连续信号x(t)=cos(200πt)+sin(100πt)+cos(50πt)。用FFT对该信号作频谱分析。 MATLAB程序如下: clear close all >> fs=400;T=1/fs; >> Tp=0.04;N=Tp*fs; >> N1=[N,4*N,8*N];
>> st=['|X1(jf)|';'|X4(jf)|';'|X8(jf)|'];
>> for m=1:3 n=1:N1(m);
xn=cos(200*pi*n*T)+sin(100*pi*n*T)+cos(50*pi*n*T); Xk=fft(xn,4096); fk=[0:4095]/4096/T; subplot(3,2,2*m-1)
plot(fk,abs(Xk)/max(abs(Xk)));ylabel(st(m,:)) if m==1 title('矩形窗截取');end end for m=1:3 n=1:N1(m);
wn=hamming(N1(m));
xn=(cos(200*pi*n*T)+sin(100*pi*n*T)+cos(50*pi*n*T)).*wn'; Xk=fft(xn,4096); fk=[0:4095]/4096/T; subplot(3,2,2*m)
plot(fk,abs(Xk)/max(abs(Xk)));ylabel(st(m,:)) if m==1 title('哈明窗截取');end
end
MATLAB截图如下:
四.结果分析
结果如下图:
上图中从上到下截取的长度依次分别是N,4N,8N。由于截取使原频谱中的单线谱线展宽(也称为泄露),截取长度越长,泄露越少,频谱分辨率越高。当截取长度为N时,25HZ和50HZ时两根谱线已经分辨不清了。另外,在本来应该为0的频段上出现一些参差不齐的小谱包,称为谱间干扰,其大小和窗的类型有关。
比较矩形窗和哈明窗的频谱分析结构可见,用矩形窗比用哈明窗频谱分辨率高,但是谱间干扰大,因此哈明窗是以牺牲分辨率来换取谱间干扰的降低的。
因篇幅问题不能全部显示,请点此查看更多更全内容