1、(3) 学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。二、 实验原理与方法(1) 复习DFT的定义、性质和用DFT作谱分析的有关内容。(2) 复习FFT算法原理与编程思想,并对照DIT-FFT运算流图和程序框图, 读懂本实验提供的FFT子程序。(3) 编制信号产生子程序, 产生以下典型信号供谱分析用: (4) 编写主程序。部分程序如下:while(b)if b=6N=input(请选择FFT变换区间长度N:16or 32or 64:n,s);N=str2num(N);fs=64;n=0:N-1;x=cos(8*pi*n/fs)
2、+cos(16*pi*n/fs)+cos(20*pi*n/fs); else N=input(8or 16: N=str2num(N); if b=1 x=1 1 1 1 0 0 0 0; else if b=2 x=1 2 3 4 4 3 2 1; else if b=3 x=4 3 2 1 1 2 3 4; else if b=4 n=0: x=cos(0.25*pi*n); else if b=5 x=sin(pi*n)/8); else if b=7 n=0: x=cos(n*pi/4)+sin(n*pi/8);else if b=8 x=cos(n*pi/4)+j*sin(n*pi/
3、8);三、实验步骤(1) 对 2 中所给出的信号逐个进行谱分析。下面给出针对各信号的FFT变换区间N以及对连续信号x6(t)的采样频率Fs,供实验时参考。 x1(n),x2(n),x3(n),x4(n),x5(n):N=8,16x6(t):Fs=64Hz,N=16,32,64(2) 令x(n)=x4(n)+x5(n),用FFT计算8点和16点离散傅里叶变换。 X(k)=DFT x(n) (3) 令x(n)=x4(n)+jx5(n), 重复(2)。四、实验结果X1(n):N=8N=16x2(n):X3(n):X4(n):X5(n):X6(n)N=32N=64X7=X4+X5X8=x4+jx5四、思考题(1) 在N=8时,x2(n)和x3(n)的幅频特性会相同吗?为什么?N=16呢?相同。当N=16时不同。(2) 如果周期信号的周期预先不知道,如何用FFT进行谱分析?可以先截取M点进行DFT,再将截取长度扩大1倍截取,比较结果,如果二者的差别满足分析误差要求,则可以近似表示该信号的频谱,如果不满足误差要求就继续将截取长度加倍,重复比较,直到结果满足要求。