资源描述:
《实验三打印模板(加姓名,学号).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验五实验工程名称:用FFT作谱分析实验日期:实验学时:2实验地点:姓名:学号:实验成绩:指导教师签字:一、实验目的和要求<1)进一步加深DFT算法原理和基本性质的理解<因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的性质)<2)熟悉FFT算法原理及子程序的应用。<3)掌握用FFT对连续信号和时域离散信号进行频谱分析的基本方法。了解可能出现的分析误差和原因,以便在实际中正确应用FFT。b5E2RGbCAP二、实验内容与原理1.实验原理如果用FFT对模拟信号进行谱分析,首先要把模拟信号转换成数
2、字信号,转换时要求知道模拟信号的最高截止频率,以便选择满足采样定理的采样频率。一般选择采样频率是模拟信号中最高频率的3~4倍。另外要选择对模拟信号的观测时间,如果采样频率和观测时间确定,则采样点数也确定了。这里观测时间和对模拟信号进行谱分析的分辨率有关,最小的观测时间和分辨率成倒数关系。要求选择的采样点数和观测时间大于它的最小值。p1EanqFDPw用FFT作谱分析时,要求做FFT的点数服从2的整数幂,这一点在上面选择采样点数时可以考虑满足,即使满足不了,可以通过在序列尾部加0完成。DXDiTa9E3d如果要进行谱
3、分析的模拟信号是周期信号,最好选择观测时间是信号周期的整数倍。如果不知道信号的周期,要尽量选择观测时间长一些,以减少截断效应的影响。RTCrpUDGiT用FFT对模拟信号作谱分析是一种近似的谱分析。首先一般模拟信号<除周期信号外)的频谱是连续频谱,而用FFT作谱分析得到的是数字谱,因此应该取FFT的点数多一些,用它的包络作为模拟信号的近似谱。另外,如果模拟信号不是严格的带限信号,会因为频谱混叠现象引起谱分析的误差,这种情况下可以预先将模拟信号进行预滤,或者尽量将采样频率取高一些。5PCzVD7HxA一般频率混叠发生
4、在折叠频率附近,分析时要注意因频率混叠引起的误差。最后要注意一般模拟信号是无限长的,分析时要截断,截断的长度和分辨率有关,但也要尽量取长一些,取得太短因截断引起的误差会很大。举一个极端的例子,一个周期性正弦波,如果所取观察时间太短,例如取小于一个周期,它的波形和正弦波相差太大,肯定误差很大,但如果取得长一些,即使不是周期的整倍数,这种截断效应也会小一些。jLBHrnAILg2、实验步骤及内容<1)复习DFT的定义、性质和用DFT作谱分析的有关内容。<2)复习FFT算法原理与编程思想。10/10<3)编制信号产生程序
5、,产生以下典型信号供谱分析用: 式中频率自己选择;<4)分别以变换区间,,,对进行FFT,画出相应的幅频特性曲线。<5)分别以变换区间,,对,进行FFT,画出相应的幅频特性曲线。<6)分别以变换区间,,,对进行FFT,画出相应的幅频特性曲线。<7)分别对模拟信号选择采样频率和采样点数。对,周期,频率自己选择,采样频率,观测时间,,,采样点数用计算。对,选择采样频率,采样点数为,,。<8)分别将模拟信号转换成序列,用,表示,再分别对它们进行FFT,并画出相应的幅频特性曲线。一、实验软硬件环境Matlab软件二、实验编
6、程及调试(3>10/10n=0:4。x1=[0,1,1,1,1]。stem(n,x1>。xlabel('时间序列n'>。ylabel('信号幅度'>。title('矩形序列x1(n>)'>n=-1:8。x2=[0,1,2,3,4,4,3,2,1,0]。stem(n,x2>。xlabel('时间序列n'>。ylabel('信号幅度'>。title('x2(n>)'>。n=-1:8。x3=[0,4,3,2,1,1,2,3,4,0]。stem(n,x3>。xlabel('时间序列n'>。ylabel('信号幅度'>。ti
7、tle('x3(n>)'>n=-10:10。x4=cos(pi*n/4>。stem(n,x4>。xlabel('时间序列n'>。ylabel('振幅'>。title('x4(n>'>。(4>n=0:4。subplot(221>。x1=[0,1,1,1,1]。stem(n,x1>。ylabel('幅值'>。xlabel('n'>。title('x1(n>'>。subplot(222>。a=fft(x1,8>。a=abs(a>。10/10stem(a>。axis([0,7,-2,2]>。xlabel('n'>。ylab
8、el('幅度'>。title('8点幅频特性'>。subplot(223>。b=fft(x1,16>。b=abs(b>。stem(b>。axis([0,15,-2,2]>。xlabel('n'>。ylabel('幅度'>。title('16点幅频特性'>。subplot(224>。c=fft(x1,32>。c=abs(c>。stem(c>。axis([0,3