资源描述:
《数字信号处理实验fft变换》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数字信号处理实验报告姓名:胡剑烽学号:1121302231学院:计算机工程学院专业:通信工程题目:FFT变换及其应用2014年11月一实验目的1.在理论课学习的基础上,通过本次实验,加深对DFT原理的理解,懂得频域DFT与时域卷积的关系,进一步加深对DFT基本性质的理解;2.研究FFT算法的主要途径和编程思路,掌握FFT算法及其程序的编写过程,掌握最基本的时域基-2FFT算法原理及程序框图;3.熟悉应用FFT实现两个序列的线性卷积的方法,利用FFT进行卷积,通过实验比较出快速卷积优越性,掌握循环卷积和线性卷积两者
2、之间的关系;4.熟悉应用FFT对典型信号进行频谱分析的方法,初步了解用周期图法作随机信号谱分析的方法,了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT;5.掌握使用MATLAB等基本开发工具实现对FFT编程。二实验设备1.Windows2000以上操作系统;2.VisualC++6.0/VisualBasic6.0/Delphi6.0/MatLab6.5等以上版本的开发环境;3.每人一台PC机。三实验原理(一)离散傅里叶变换(DFT)有限长序列的离散傅里叶变换的定义为:x(n)和X(
3、k)是一个有限长序列的离散傅里叶变换对,分别称为DFT、IDFT。已知其中的一个,就能惟一地确定另一个。X(k)也可以看作序列x(n)的傅里叶变换X(ejω)在区间[0,2π]上的N点等间隔采样,其采样间隔为2/Nω=πN,这就是DFT的物理意义。DFT具有以下一些性质:线性、圆周移位、圆周卷积、有限长序列的线性卷积与圆周卷积及共轭对称性等。(二)快速傅里叶变换(FFT)由于DFT运算过程复杂及耗时较大,诞生了FFT。这里仅讨论按时间抽取的基-2FFT设序列x(n)长度为N,且满足N=2M,M为正整数。按n的奇偶
4、把x(n)分解为两个N/2点的子序列:则x(n)的DFT转化为:其中,可见,一个N点DFT分解成两个N/2点的DFT。但由于1X(k)、2X(k)只有N/2个点,而X(k)却有N个点,故计算得到的只是X(k)的前一半的结果,要用1X(k)、2X(k)来表达全部的X(k)值,还必须应用系数的周期性即有:因此得:(三)用FFT进行谱分析由上面的分析可知,若信号本身是有限长的序列,计算序列的频谱就是直接对序列进行FFT运算求得X(k),X(k)就代表了序列在[0,2π]之间的频谱值。·幅度谱:·相位谱:若信号是模拟信号
5、,用FFT进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后就可按照前面的方法用FFT来对连续信号进行谱分析。按采样定理,采样频率sf应大于2倍信号的最高频率,为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器。用FFT对模拟信号进行谱分析的方框图如下所示。在运用FFT进行频谱分析的时候可能有混淆现象、泄漏现象和栅栏效应。(五)FFT求解函数MATLAB提供了求解FFT的函数。参见下表。四实验内容(一)用FFT进行谱分析1.高斯序列:n=0:15;p=8;q=2;x=exp(-1*(n-p).^
6、2/q);closeall;subplot(3,1,1);stem(fft(x));%利用fft函数实现傅里叶变换subplot(3,1,2);stem(abs(fft(x)));%绘制幅度谱subplot(3,1,3);stem(angle(fft(x)))%绘制相位谱结果如下图所示:P=8,q=2P=8,q=4P=8,q=8q=8,p=13q=8,p=14从上面的图中,根据p和q值相应的变化,可以看出:固定p=8,改变q的值:随着q的增大,经过傅里叶变化后的图像显示值的变化比较缓慢,幅度谱变化随着q的变大而变
7、大,但相位的变化较不同。当固定q=8,随着p的增大,时域信号幅值变换的比较缓慢。2.正弦序列n=0:15;%定义序列长度a=0.1;f=0.0625;x=exp(-a*n).*sin(2*pi*f*n);closeall;subplot(2,1,1);stem(x);title('衰减正弦序列');subplot(2,1,2);stem(abs(fft(x)));%绘制幅度谱title('x信号的频谱')结果如下图所示:a=0.1、f=0.0625a=0.1、f=0.4375A=0.1,f=0.5625问题:A.
8、令a=0.1,f=0.625,检查谱峰出现的位置是否正确,注意频谱的形式,绘制频谱特性曲线。B.取f=0.4375f=0.5625,观察在这两种情况下频谱的形状和普峰出现的位置,有无混淆和泄漏现象发生?说明产生现象的发生答案:A谱峰出现的位置是正确的。B有混淆和泄漏。因为所选采样频率不满足采样定理。3.三角序列fori=1:4x(i)=i;endfori=5:8x(i)=