用FFT作谱分析实验报告_第1页
用FFT作谱分析实验报告_第2页
用FFT作谱分析实验报告_第3页
用FFT作谱分析实验报告_第4页
用FFT作谱分析实验报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字信号处理实验报告FFT的谱分解实验目的:在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。熟悉应用FFT对典型信号进行频谱分析的方法。熟悉FFT算法原理和FFT子程序的应用。学习用FFT对连续信号和时域离散信号进行谱分析的方法。了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。实验原理:1.快速傅立叶变换(FFT)算法长度为N的序列的离散傅立叶变换为:N点的DFT可以分解为两个N/2点的DFT,每个N/2点的DFT又可以分解为两个N/4点的DFT。依此类推,当N为2的整数次幂时(),由于每分解一次降低一阶幂次,所以通过M次的分解,最后全部成为一系列2点DFT运算。以上就是按时间抽取的快速傅立叶变换(FFT)算法。当需要进行变换的序列的长度不是2的整数次方的时候,为了使用以2为基的FFT,可以用末尾补零的方法,使其长度延长至2的整数次方。序列的离散傅立叶反变换为离散傅立叶反变换与正变换的区别在于变为,并多了一个的运算。因为和对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此可将FFT和快速傅立叶反变换(IFFT)算法合并在同一个程序中。2.利用FFT进行频谱分析若信号本身是有限长的序列,计算序列的频谱就是直接对序列进行FFT运算求得,就代表了序列在之间的频谱值。幅度谱相位谱若信号是模拟信号,用FFT进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后就可按照前面的方法用FFT来对连续信号进行谱分析。按采样定理,采样频率应大于2倍信号的最高频率,为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器。用FFT对模拟信号进行谱分析的方框图如下所示。抗混叠低通滤波器抗混叠低通滤波器采样T=1/fsN点FFT三、实验步骤1、复习DFT的定义、性质和用DFT作谱分析的有关内容;2、复习FFT算法原理与编程思想,并对照DIT-FFT运算流图和程序流图,读懂本实验提供的FFT子程序;3、编制信号产生子程序,产生以下典型信号供谱分析用:选择FFT的变换区间N为8和16两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。(4)对模拟周期信号进行谱分析选择采样频率,变换区间N=16,32,64三种情况进行谱分析。(5)令x(n)=x4(n)+x5(n),用FFT计算8点和16点离散傅里叶变换,X(k)=DFT[x(n)]并根据DFT的对称性,由X(k)求出X(k)=DFT[x4(n)]和X(k)=DFT[x5(n)],并与上面结果进行比较。实验程序figure(1);n=[0:15];k1=[0:7];k2=[0:15];x1=(n<=3);xk11=fft(x1,8);xk12=fft(x1,16);subplot(1,3,1);stem(n,x1,'.');axis([01602]);xlabel('n');ylabel('x1(n)');grid;subplot(1,3,2);stem(k1,abs(xk11),'.');axis([0804]);xlabel('k');ylabel('|X1(k)|');title('N=8');grid;subplot(1,3,3);stem(k2,abs(xk12),'.');axis([01604]);xlabel('k');ylabel('|X1(k)|');title('N=16');grid;figure(2);n=[0:7];k1=[0:7];k2=[0:15];x2=[12344321];x3=[43211234];xk21=fft(x2,8);xk22=fft(x2,16);xk31=fft(x3,8);xk32=fft(x3,16);subplot(2,3,1);stem(n,x2,'.');axis([01605]);xlabel('n');ylabel('x2(n)');grid;subplot(2,3,2);stem(k1,abs(xk21),'.');axis([08020]);xlabel('k');ylabel('|X2(k)|');title('N=8');grid;subplot(2,3,3);stem(k2,abs(xk22),'.');axis([016020]);xlabel('k');ylabel('|X2(k)|');title('N=16');grid;subplot(2,3,4);stem(n,x3,'.');axis([01605]);xlabel('n');ylabel('x3(n)');grid;subplot(2,3,5);stem(k1,abs(xk31),'.');axis([08020]);xlabel('k');ylabel('|X3(k)|');title('N=8');grid;subplot(2,3,6);stem(k2,abs(xk32),'.');axis([016020]);xlabel('k');ylabel('|X3(k)|');title('N=16');grid;figure(3);n1=[0:7];n2=[0:15];k1=[0:7];k2=[0:15];x41=cos(pi/4*n1);xk41=fft(x41,8);x42=cos(pi/4*n2);xk42=fft(x42,16);subplot(2,2,1);stem(n1,x41,'.');axis([08-11]);xlabel('n');ylabel('x4(n)');grid;subplot(2,2,2);stem(k1,abs(xk41),'.');axis([0804]);xlabel('k');ylabel('|X4(k)|');title('N=8,wk=2*pi/8');grid;subplot(2,2,3);stem(n2,x42,'.');axis([016-11]);xlabel('n');ylabel('x4(n)');grid;subplot(2,2,4);stem(k2,abs(xk42),'.');axis([01608]);xlabel('k');ylabel('|X4(k)|');title('N=16,wk=2*pi/16');grid;figure(4);n1=[0:7];n2=[0:15];k1=[0:7];k2=[0:15];x51=sin(pi/8*n1);xk51=fft(x51,8);x52=sin(pi/8*n2);xk52=fft(x52,16);subplot(2,2,1);stem(n1,x51,'.');axis([08-11]);xlabel('n');ylabel('x5(n)');grid;subplot(2,2,2);stem(k1,abs(xk51),'.');axis([08010]);xlabel('k');ylabel('|X5(k)|');title('N=8,wk=2*pi/8');grid;subplot(2,2,3);stem(n2,x52,'.');axis([016-11]);xlabel('n');ylabel('x5(n)');grid;subplot(2,2,4);stem(k2,abs(xk52),'.');axis([016010]);xlabel('k');ylabel('|X5(k)|');title('N=16,wk=2*pi/16');grid;figure(5);n1=[0:15];n2=[0:31];n3=[0:63];k1=[0:15];k2=[0:31];k3=[0:63];x61=cos(8*pi*n1/64)+cos(16*pi*n1/64)+cos(20*pi*n1/64);xk61=fft(x61,16);x62=cos(8*pi*n2/64)+cos(16*pi*n2/64)+cos(20*pi*n2/64);xk62=fft(x62,32);x63=cos(8*pi*n3/64)+cos(16*pi*n3/64)+cos(20*pi*n3/64);xk63=fft(x63,64);subplot(3,2,1);stem(n1,x61,'.');axis([016-25]);xlabel('n');ylabel('x6(n)');grid;subplot(3,2,2);stem(k1,abs(xk61),'.');axis([016015]);xlabel('k');ylabel('|X6(k)|');title('N=16,wk=2*pi/16');grid;subplot(3,2,3);stem(n2,x62,'.');axis([032-25]);xlabel('n');ylabel('x6(n)');grid;subplot(3,2,4);stem(k2,abs(xk62),'.');axis([032020]);xlabel('k');ylabel('|X6(k)|');title('N=32,wk=2*pi/32');grid;subplot(3,2,5);stem(n3,x63,'.');axis([064-25]);xlabel('n');ylabel('x6(n)');grid;subplot(3,2,6);stem(k3,abs(xk63),'.');axis([064040]);xlabel('k');ylabel('|X6(k)|');title('N=64,wk=2*pi/64');grid;figure(6);n1=[0:7];k1=[0:7];x71=x41+x51;xk71=fft(x71,8);subplot(3,2,1);stem(n1,x71,'.');axis([08-22]);xlabel('n');ylabel('x7(n)');grid;subplot(3,2,2);stem(k1,abs(xk71),'.');axis([0806]);xlabel('k');ylabel('|X7(k)|');title('N=8,wk=2*pi/8');grid;subplot(3,2,3);stem(k1,abs(real(xk71)),'.');axis([0808]);xlabel('k');ylabel('|Re[X7(k)]|');title('N=8,wk=2*pi/8');grid;subplot(3,2,4);stem(k1,abs(xk41),'.');axis([0808]);xlabel('k');ylabel('|X4(k)|');title('N=8,wk=2*pi/8');grid;subplot(3,2,5);stem(k1,abs(xk71-real(xk71)),'.');axis([0800.1]);xlabel('k');ylabel('|j*Im[X7(k)|]');title('N=8,wk=2*pi/8');grid;subplot(3,2,6);stem(k1,abs(xk51),'.');axis([0808]);xlabel('k');ylabel('|X5(k)|');title('N=8,wk=2*pi/8');grid;figure(7);n1=[0:15];k1=[0:15];x72=x42+x52;xk72=fft(x72,16);subplot(3,2,1);stem(n1,x72,'.');axis([016-22]);xlabel('n');ylabel('x7(n)');grid;subplot(3,2,2);stem(k1,abs(xk72),'.');axis([01608]);xlabel('k');ylabel('|X7(k)|');title('N=16,wk=2*pi/16');grid;subplot(3,2,3);stem(k1,abs(real(xk72)),'.');axis([01608]);xlabel('k');ylabel('|Re[X7(k)]|');title('N=16,wk=2*pi/16');grid;subplot(3,2,4);stem(k1,abs(xk42),'.');axis([01608]);xlabel('k');ylabel('|X4(k)|');title('N=16,wk=2*pi/16');grid;subplot(3,2,5);stem(k1,abs(xk72-real(xk72)),'.');axis([01608]);xlabel('k');ylabel('|j*Im[X7(k)|]');title('N=16,wk=2*pi/16');grid;subplot(3,2,6);stem(k1,abs(xk52),'.');axis([01608]);xlabel('k');ylabel('|X5(k)|');title('N=16,wk=2*pi/16');grid;figure(8);k1=[0:7];k2=[0:15];x81=x41+j*x51;x82=x42+j*x52;xk81=fft(x81,8);xk82=fft(x82,16);subplot(3,2,1);stem(k1,abs(xk81),'.');axis([0806]);xlabel('k');ylabel('|X8(k)|');title('N=8,wk=2*pi/8');grid;subplot(3,2,2);stem(k2,abs(xk82),'.');axis([01608]);xlabel('k');ylabel('|X8(k)|');title('N=16,wk=2*pi/16');grid;xka(1)=conj(xk81(1));form=2:8xka(m)=conj(xk81(8-m+2));endxkae=(xk81+xka)/2;xkao=(xk81-xka)/2;subplot(3,2,3);stem(k1,abs(xkae),'.');axis([0808]);xlabel('k');ylabel('|X8e(k)]|');title('N=8,wk=2*pi/8');grid;subplot(3,2,5);stem(k1,abs(xkao),'.');axis([0808]);xlabel('k');ylabel('|X8o(k)|');title('N=8,wk=2*pi/8');grid;xkb(1)=conj(xk82(1));form=2:16xkb(m)=conj(xk82(16-m+2));endxkbe=(xk82+xkb)/2;xkbo=(xk82-xkb)/2;subplot(3,2,4);stem(k2,abs(xkbe),'.');axis([01608]);xlabel('k');ylabel('|X8e(k)|]');title('N=16,wk=2*pi/16');grid;subplot(3,2,6);stem(k2,abs(xkbo),'.');axis([01608]);xlabel('k');ylabel('|X8o(k)|');title('N=16,wk=2*pi/16');grid;实验结果及分析x1(n)=R4(n)由figure1图分析如下:离散傅里叶变换的N点变换在频域范围内表现为对傅里叶变换即Z变换在单位圆上的抽样。所以N取8点时,k=0,1,2,3,4,5,6,7与N取16点时,k=0,2,4,6,8,10,12,14的离散傅里叶变换值对应相等,即它们都等于原信号在w=0、/8、/4、3/8、4/8、5/8、6/8、6/8的傅里叶变换,这在上面两图可以明显看出。所以,离散傅里叶变换实际上是对该序列在频域范围内以2/N的间隔进行抽样。显而易见,DFT的变换区间长度不同,表示对X(ejω)在区间上的采样间隔和采样点数不同。x2(n)=,x3(n)=3、对figure3的分析除了同x1(n)类似的内容外,还可以得出以下分析:如上图所示,N取值越大,越接近余弦曲线,即越接近原输入连续信号,且时域周期频域离散。该信号的周期为8,对其取8点进行离散傅里叶变换的结果实际上是对原输入的周期信号进行傅里叶级数变换所截取的主值序列,从上图可以看出周期函数的傅里叶变换在以2π/8为间隔的变换值即K=0,1,2,3,4,5,6,7的所对应的离散傅里叶变换值和其傅里叶级数是一样的,这与课本上的结论是相符的。同理N=16,也可作类似分析。只不过需要把原信号看作是以16为周期的即可。从figure4图可分析如下:原信号周期为16,所以当N=8时,未能取完一个周期的值,N=16则取完了一个周期的值,所以这是两个不同的序列,所以按照X1(n)的分析方式是不对的,因为本身它们的傅里叶变换就是不一样的。由于离散傅里叶变换是该序列周期延拓后所对应的傅里叶级数变换的主值序列,所以,当N=16时,所得的DFT值与X5(n)的傅里叶级数变换的主值序列是一致的,而N=8时是X5(n)的部分序列的周期延拓后的傅里叶级数变换的主值序列,因此两者的值是不同的。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论