实验报告课程名称:数字信号处理学院:信息专业:电子信息工程班级:学号:姓名:成绩:2013年11月12日实验二:用FFT做谱分析1.实验目的:(1)进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。(2)熟悉FFT算法原理和FFT子程序的应用。(3)学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。2.实验原理:(1)复习DFT的定义、性质和用DFT作谱分析的有关内容。(2)复习按时间抽选法FFT算法原理及相应的运算流图(3)编制信号产生子程序,产生以下典型信号供谱分析用:x1(n)=R4(n)x2(n)=nnnnn其他,074,830,1x3(n)=nnnnn其他,074,330,4x4(n)=cos(πn/4)x5(n)=sin(πn/8)x6(t)=cos8πt+cos16πt+cos20πt应当注意,如果给出的是连续信号xa(t),则首先要根据其最高频率确定抽样频率fs以及由频率分辨率选择抽样点数N,然后对其进行软件抽样(即计算x(n)=xa(nT),0≤n≤N-1),产生对应序列x(n)。对信x6(t),频率分辨率的选择要以能分辨开其中的三个频率对应的谱线为准则。对周期序列,最好截取周期的整数倍进行谱分析,否则有可能产生较大的分析误差。请实验者根据DFT的隐含周期性思考这个问题。(4)编写主程序。图2.1给出了主程序框图,供参考。图2.1主程序框图(5)按实验内容要求,上机实验,并写出实验报告。3.实验内容及结果:对所给出的信号逐个进行谱分析。下面给出针对各信号的FFT变换区间N以及对连续信号x6(t)的抽样频率fs,供实验时参考。开始结束读入长度N调用信号产生子程序产生实验信号调用绘图子程序(函数)绘制时间序列波形图调用FFT子程序(函数)计算信号的DFT调用绘图子程序(函数)绘制|X(k)|曲线N1=8;N2=16;x11=[1,1,1,1,0,0,0,0]x12=[x11,zeros(1,N2-length(x11))]n1=[0:7]n2=[0:15]figure(1)subplot(2,1,1)stem(n1,x11)subplot(2,1,2)stem(n2,x12)X11=fft(x11,N1);X12=fft(x12,N2)k1=0:7;k2=0:15;X11=abs(X11)X12=abs(X12)%绘制频率特性figure(2)subplot(2,1,1)stem(k1,X11);gridxlabel('k(0~7)')ylabel('X11(k)的幅频特性')title('x1的8点FFT')subplot(2,1,2)stem(k2,X12);gridxlabel('k(0~15)')ylabel('X12(k)的幅频特性')title('x1的16点FFT')N1=8N2=16x21=[1:4,4:-1:1]x22=[x21,zeros(1,N2-length(x21))]n1=[0:7]n2=[0:15]figure(1)subplot(2,1,1)stem(n1,x21)subplot(2,1,2)stem(n2,x22)X21=fft(x21,N1)X22=fft(x22,N2)k1=0:7k2=0:15X21=abs(X21)X22=abs(X22)figure(2)subplot(2,1,1)stem(k1,X21);gridxlabel('k(0~7)')ylabel('X21(k)的幅频特性')title('x2的8点FFT')subplot(2,1,2)stem(k2,X22);gridxlabel('k(0~15)')ylabel('X22(k)的幅频特性')title('x2的16点FFT')N1=8;N2=16;x31=[4,3,2,1,1,2,3,4]x32=[x31,zeros(1,N2-length(x31))]n1=[0:7]n2=[0:15]figure(1);subplot(2,1,1)stem(n1,x31);subplot(2,1,2)stem(n2,x32);X31=fft(x31,N1)X32=fft(x32,N2)k1=0:7;k2=0:15;X31=abs(X31)X32=abs(X32)figure(2)subplot(2,1,1)stem(k1,X31);gridxlabel('k(0~7)')ylabel('X31(k)的幅频特性')title('x3的8点FFT')subplot(2,1,2)stem(k2,X32);gridxlabel('k(0~15)')ylabel('X32(k)的幅频特性')title('x3的16点FFT')N1=8N2=16a1=[1:1:8]a2=[1:1:16]x41=[cos(pi*a1/4)]x42=[cos(pi*a2/4)]n1=[0:7]n2=[0:15]figure(1);subplot(2,1,1)stem(n1,x41);subplot(2,1,2)stem(n2,x42);X41=fft(x41,N1)X42=fft(x42,N2)k1=0:7;k2=0:15;X41=abs(X41)X42=abs(X42)figure(2)subplot(2,1,1)stem(k1,X41);gridxlabel('k(0~7)')ylabel('X41(k)的幅频特性')title('x4的8点FFT')subplot(2,1,2)stem(k2,X42);gridxlabel('k(0~15)')ylabel('X42(k)的幅频特性')title('x4的16点FFT')N1=8N2=16a1=[0:1:7]a2=[0:1:15]x51=[sin(pi*a1/8)]x52=[sin(pi*a2/8)]n1=[0:7]n2=[0:15]figure(1);subplot(2,1,1)stem(n1,x51);subplot(2,1,2)stem(n2,x52);X51=fft(x51,N1)X52=fft(x52,N2)k1=0:7;k2=0:15;X51=abs(X51)X52=abs(X52)figure(2)subplot(2,1,1)stem(k1,X51);gridxlabel('k(0~7)')ylabel('X51(k)的幅频特性')title('x5的8点FFT')subplot(2,1,2)stem(k2,X52);gridxlabel('k(0~15)')ylabel('X52(k)的幅频特性')title('x5的16点FFT')N1=16;N2=32;N3=64;fs=64T=1/fst1=[0:T:1/4]t2=[0:T:1/2]t3=[0:T:1]x61=cos(8*pi*t1)+cos(16*pi*t1)+cos(20*pi*t1)x62=cos(8*pi*t2)+cos(16*pi*t2)+cos(20*pi*t2)x63=cos(8*pi*t3)+cos(16*pi*t3)+cos(20*pi*t3)figure(1)subplot(3,1,1)stem(t1,x61);xlabel('t')ylabel('x61')subplot(3,1,2)stem(t2,x62);xlabel('t')ylabel('x62')subplot(3,1,3)stem(t3,x63);xlabel('t')ylabel('x63')k1=[0:15]k2=[0:31]k3=[0:63]X61=fft(x61,N1)X62=fft(x62,N2)X63=fft(x63,N3)X61=abs(X61)X62=abs(X62)X63=abs(X63)figure(2)subplot(3,1,1)stem(k1,X61)xlabel('k')ylabel('X61')subplot(3,1,2)stem(k2,X62)xlabel('k')ylabel('X62')subplot(3,1,3)stem(k3,X63)xlabel('k')ylabel('X63')6.结论:(1)在N=8时,x2(n)和x3(n)的幅频特性相同;在N=16时,x2(n)和x3(n)的幅频特性不相同。(2)用FFT做频谱分析时N=序列长度,并且N为2的整数次幂;(3)N越大,频谱越密集幅频特性相同;(4)N=8时,x2(n)和x3(n)的幅频特性相同,因为x3(n)是x2(n)向左移动四位等到的,根据圆周卷积,时域移位,频域相移,不影响幅度谱,但N=16,幅频特性不同。(5)FFT变换既快速傅里叶变换的性质同DFT即离散傅里叶变换相同,离散傅里叶变换有两个物理意义:一是,对该序列的傅里叶变换w的抽样或者说对Z变换单位圆内的抽样。二是,将该序列进行周期延拓后的傅里叶级数变换的主值序列。