N=32;
f=2/N*(0:N-1);
subplot(2,2,2);stem(f,abs(X8k32),'.'); %绘制8点DFT的幅频特性图 title('(8a) 32点DFT[x_8(n)]');xlabel('ω/π');ylabel('幅度'); N=64;n=0:N-1; %对于N=16的情况 nT = n*T;
x8n=cos(8*pi*nT)+cos(16*pi*nT)+cos(20*pi*nT) X8k64=fft(x8n,64); N=64;
f=2/N*(0:N-1);
subplot(2,2,3);stem(f,abs(X8k64),'.'); %绘制8点DFT的幅频特性图 title('(8a) 64点DFT[x_8(n)]');xlabel('ω/π');ylabel('幅度');
五、思考题及实验体会
通过实验,我知道了用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2л/N≤D。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号进行频谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的普分析进行。
- 6 -