资源描述:
《快速傅里叶变换及其应用实验文档及程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、试验二快速傅里叶变换及其应用一、试验目的(1).在理论学习的基础上。加深对FFT的理解,熟悉matlab中的有关函数。(2).应用FFT对典型信号进行频谱分析。(3).了解应用FFT进行信号频谱分析过程中可能出现的问题。(4).应用FFT实现序列的线性卷积和相关。二、实验内容1.观察高斯序列的时域和幅频特性,固定信号xa(n)中参数p=8,改变q的值使q分别等于2、4、8,观察他们的时域和幅频特性,了解当q取不同值时,对信号序列的时域和幅频特性的影响;固定q=8,改变p,使p分别等于8、13、14,观察参数p变化对信号序列的时域和幅频特性的影响,注意p等于多少时会发生明显的泄漏现
2、象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。(1)固定p=8,使q=2和4的时域和频域图n=0:15x=exp((16*n-n.^2-64)./2)subplot(2,2,1);plot(n,x,'-o')title('时域特性');xlabel('n');ylabel('y(n)')y=abs(fft(x))subplot(2,2,2);stem(n,y,'-o')xlabel('k');ylabel('y(k)')title('幅频特性');x=exp((16*n-n.^2-64)./4)subplot(2,2,3);plot(n,x,'
3、-o')title('时域特性');xlabel('n');ylabel('y(n)')y=abs(fft(x))subplot(2,2,4);stem(n,y,'-o');xlabel('k');ylabel('y(k)')title('幅频特性');使q=8的时域和频域图n=0:15x=exp((16*n-n.^2-64)./8)plot(n,x,'-o')title('时域特性');xlabel('n');ylabel('y(n)')y=abs(fft(x))stem(n,y,'-o')xlabel('k');ylabel('y(k)')title('幅频特性');(2)固
4、定q=8,使q=8和13的时域和频域图n=0:15x=exp((16*n-n.^2-64)./8)subplot(2,2,1);plot(n,x,'-o')title('时域特性');xlabel('n');ylabel('y(n)')y=abs(fft(x))subplot(2,2,2);stem(n,y,'-o')xlabel('k');ylabel('y(k)')title('幅频特性');x=exp((26*n-n.^2-169)./8)subplot(2,2,3);plot(n,x,'-o')title('时域特性');xlabel('n');ylabel('y(n)'
5、)y=abs(fft(x))subplot(2,2,4);stem(n,y,'-o')xlabel('k');ylabel('y(k)')title('幅频特性');使p=14的时域和频域图x=exp((28*n-n.^2-196)./8)plot(n,x,'-o')title('时域特性');xlabel('n');ylabel('y(n)')y=abs(fft(x))stem(n,y,'-o')xlabel('k');ylabel('y(k)')title('幅频特性');实验结果分析:由图形可知,当固定p,q取不同值时,随着q的增大,其相对应的时域幅值会增大,而且容易看出,
6、它们的时域图关于n=8对称。随着q值的增大,q分别等于2、4、8时,同一个n点所对应的幅度逐渐减小,幅度等于或近似等于零的点逐渐增多,这是由于q值的增大,导致时域中的幅值略微增大,但通过DFT变换之后将这种变化放大,使得其在幅频特性中q的影响变大了。时域的乘积对应频域的卷积,所以,加窗后的频谱实际是原信号频谱与矩形窗函数频谱的卷积,卷积的结果使频谱延伸到了主瓣以外,且一直延伸到无穷。可知:其p值固定不变时,q值越小越容易发生泄漏现象,反之,q值越大,越接近其真实图形。当p=13时,x(n)被截断,出现了明显的泄漏,边缘幅度与x1(k)不同,因而带有混叠现象。2观察衰减正弦序列xb
7、(n)的时域和幅频特性,a=0.1,f=0.0625,检查谱峰出现位置是否正确,注意频谱的形状,绘出幅频特性曲线,改变f,使f分别等于0.4375和0.5625,观察这两种情况下,频谱的形状和谱峰出现位置,有无混叠和泄露现象?说明产生现象的原因。f=0.0625的程序n=0:15;a=0.1;f=0.0625;x=exp(-a*n).*sin(2*pi*f*n);plot(n,x,'-o')title('时域特性');xlabel('n');ylabel('y(n)')y=abs