资源描述:
《快速傅立叶变换及其应用课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、快速傅立叶变换及其应用一、实验目的(1)在理论学习的基础上,通过本实验,加深对FFT的理解;(2)熟悉应用FFT对典型信号进行频谱分析的方法;(3)了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT;(4)熟悉应FFT实现两个序列的线性卷积的方法。二、实验原理什么是快速傅立叶变换:它是为了减少DFT的运算次数的一种快速算法。常用的FFT是以2为基的FFT,可以用未尾补零的方法,使其长度延长至2的整数次方,把频谱画得更密一些,改善图形的视在分辨率。什么是频谱的泄漏:它也称截断误差,把无限长的信号限定为有限长,即令有
2、限区间以外的函数值均为零值。可能会造成频谱的泄漏。什么是混叠误差:由于用离散信号的频谱来近似连续信号频谱,而抽样频率再高也是有限的,如果不满足抽样定理,将会产生频谱混叠现象。三、实验内容1、观察高斯序列的时域和幅频特性,固定信号中的参数P=8,改变q的值,使q分别等于2,4,8,观察它们的时域和幅频特性,了解当q取不同值时,对信号序列的时域和幅频特性的影响。固定q=8,改变p,使p分别等于8,13,14,观察参数P变化对信号序列的时域及幅频特性的影响,注意P等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相
3、应的时域序列和幅频特性曲线。具体的分析方法是:如果频谱全是非零值且最小非零值与最大非零值的比大于1%,就认为发生了频谱的泄漏。q=8;p=[81314];fori=1:3;n=0:15;x=exp(-((n-p(i)).^2)/q);subplot(3,2,i+i-1),stem(n,x);gridony=fftshift(fft(x,16));%把傅立叶变换的结果y中的直流分量移到中间位置M=abs(y);subplot(3,2,i+i),plot(M),gridonend固定q的值改变p的值参考程序固定q的值改变p的值随着p的增大,时域
4、波形右移将发生明显的频谱泄漏现象随着p的增大,时域波形右移将发生明显的频谱泄漏现象q=8,q=8q=8,q=13q=8,q=14实验内容之二2、观察衰减正弦序列的时域和幅频特性。,检查谱峰出现位置是否正确,注意频谱的形状,绘出幅频特性曲线,改变,使分别等于0.4375和0.5625。观察这两种情况下,频谱的形状和谱峰出现位置,有无混叠和泄漏现象?说明产生现象的原因。a=0.1;f=[0.06250.43750.5625];n=0:15;fori=1:3;x=exp(-a*n).*sin(2*pi*f(i)*n);subplot(3,2,i+
5、i-1),plot(x),gridony=fftshift(fft(x,16));M=abs(y);subplot(3,2,i+i),plot(M),gridonend%参考程序随着信号频率的加大,在抽样频率不变的情况下时域波形将发生严重的失真随着信号频率的加大,在抽样频率不变的情况下时域波形将发生严重的失真同时出现了混叠现象,从图形上看,没有关于零频率对称同时出现了混叠现象,从图形上看,没有关于零频率对称实验内容之三3、观察三角波和反三角波序列的时域和幅频特性,用N=8点FFT分析信号序列和的幅频特性,观察两者的序列形状和频谱曲线有什么异
6、同?给出两序列及其幅频特性曲线。在和尾补零,用N=16点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?两情况的FFT频谱还有相同之处吗?这些变化说明了什么?三角波序列反三角波序列N=8;n=0:N-1;fori=1:8;ifi<5%表示i=1:4,即的情况xc(i)=n(i);xd(i)=4-n(i);elsexc(i)=8-n(i);xd(i)=n(i)-4;endend%参考程序这段程序将求出xc与xd两个序列%参考程序续subplot(2,2,1),stem(n,xc),title('未补零的三角波序列'),gridon
7、subplot(2,2,2),stem(n,xd),title('未补零的反三角波序列'),gridyc=fftshift(fft(xc,N));yd=fftshift(fft(xd,N));mc=abs(yc);md=abs(yd);subplot(2,2,3),plot(n,mc),title('未补零的三角波序列频谱图'),gridonsubplot(2,2,4),plot(n,md,n,mc,‘:r’),title(‘未补零的反三角波…'),grid%把傅立叶变换的结果yc中的直流分量移到中间位置未补零时两个函数的频谱图完全一致%参
8、考程序续figureM=16;m=0:M-1;x=zeros(1,8);Xc=[xc,x];Xd=[xd,x];subplot(2,2,1),stem(m,Xc),title('