数字信号处理实验一FFT变换及其应用_第1页
数字信号处理实验一FFT变换及其应用_第2页
数字信号处理实验一FFT变换及其应用_第3页
数字信号处理实验一FFT变换及其应用_第4页
数字信号处理实验一FFT变换及其应用_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一 FFT变换及其应用一、 实验目的和要求1. 在理论课学习的基础上,通过本次实验,加深对DFT原理的理解,懂得频域DFT与时域卷积的关系,进一步加深对DFT基本性质的理解; 2. 研究FFT算法的主要途径和编程思路,掌握FFT算法及其程序的编写过程,掌握最基本的时域基-2FFT算法原理及程序框图; 3. 熟悉应用FFT实现两个序列的线性卷积的方法,利用FFT进行卷积,通过实验比较出快速卷积优越性,掌握循环卷积和线性卷积两者之间的关系; 4. 熟悉应用FFT对典型信号进行频谱分析的方法,初步了解用周期图法作随机信号谱分析的方法,了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际

2、中正确应用FFT; 5. 掌握使用MATLAB等基本开发工具实现对FFT编程。 二、 实验设备和分组1. 每人一台PC机;2. Windows 2000/XP以上版本的操作环境;3. MatLab 6.5及以上版本的开发软件。三、 实验内容(一) 实验准备1. 用FFT进行谱分析涉及的基础知识如下: 信号的谱分析就是计算信号的傅里叶变换。若信号是模拟信号,用FFT进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后用FFT来对连续信号进行谱分析。 若信号本身是有限长的序列,计算序列的频谱就是直接对序列进行FFT运算求得X(k),X(k)就代表了序列在0,2之间的频谱值。 幅度谱: 相位

3、谱: 为避免产生混叠现象,采样频率fs应大于2倍信号的最高频率fc,为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器。用FFT对模拟信号进行谱分析的方框图如下所示。 图1.1 FFT对模拟信号进行谱分析的方框图2. 应用FFT实现快速卷积涉及的基础知识如下:一个信号序列x(n)与系统的卷积可表示为下式: Y(n)=x(n)*h(n)=当是一个有限长序列,且0nN-1时,有: Y(n)=此时就可以应用FFT来快速计算有限长度序列的线性卷积。 也就是先将输入信号x(n)通过FFT变换为它的频谱采样值X(k),然后再和滤波器的频响采样值H(k)相乘,最后再将乘积通过快速傅里叶变换(简称IF

4、FT)还原为时域序列,即得到输出。如下图所示。 图1.2 FFT实现卷积的过程示意图 2.1当序列x(n)和h(n)的长度差不多时 设x(n)的长度为N1,h(n)的长度为N2,则用FFT完成卷积的具体步骤如下: 为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度NN1+N2-1 用补零方法使x(n)和h(n)变成列长为N的序列。 用FFT计算x(n)和h(n)的N点离散傅里叶变换 完成X(k)和H(k)的乘积Y(k)。用FFT计算的离散傅里叶反变换得 y(n)2.2 当x(n)长度很长时可采用分段卷积的方法即重叠相加法和重叠保留法。(二) 实验项目(1)用FFT进

5、行频谱分析1) 对高斯序列进行频谱分析代码如下:n=0:15; p=8; q=2; x =exp(-1*(n-p).2/q); close all; subplot(3,1,1); stem(fft(x) ; %利用 fft 函数实现傅里叶变换 subplot(3,1,2); stem(abs(fft(x); %绘制幅度谱 subplot(3,1,3); stem(angle(fft(x) %绘制相位谱 代码是为了得出此高斯序列的快速傅里叶变换,得到DFT的频谱特征图、幅频特征图和相频特征图。a) 固定信号参数P=8,改变q的值依次为2、4、8,结果如下图:P=8,q=2图2-1P=8,q=4

6、图2-2P=8,q=8图2-3结果分析:从图中可以看出,当固定p的值,改变q,可观察到:随着q的增加,幅频图中趋近与0和等于0的个数增多。可见q的增大使DFT幅频图中幅度平均值减小,且p是序列的对称轴,时域轴都关于n=8对称。当q=2、4、8时,频域变化越来越快,中间水平部分越来越大,混叠减弱。b) 固定信号参数q=8,改变p的值依次为8、13、14,结果如下图:q=8,P=8 图2-4q=8,p=13图2-5p=14,q=8图2-6结果分析:当固定q的值,改变p,可观察到:随着p的增大,图形越来越偏离真实值,当p=14时泄漏现象较明显,频域波形随p的增大频率分量会增多,易产生混叠。2) 对正

7、弦序列进行频谱分析代码如下:n=0:15; %定义序列长度 a=0.1; f=0.0625; x=exp(-a*n).*sin(2*pi*f*n); close all; subplot(2,1,1); stem(x); title(衰减正弦序列); subplot(2,1,2); stem(abs(fft(x); %绘制幅度谱 title(x 信号的频谱) a) 固定参数a=0.1,改变f,分别为0.5625、0.4375、0.0625,结果如下图:f=0.5625图2-7f=0.4375图2-8f=0.0625图2-9结果分析:观察可知,当f=0.4375,0.5625时,时域图像关于Y轴

8、对称,频域完全相同。随着f值增大,时域序列周期变小。频域序列的高频分量逐渐增多,低频分量逐渐减少,因为所取的频率不符合采样定理,以致发生严重的频谱混叠和泄漏。3) 对三角序列进行频谱分析代码如下:for i=1:4 x(i)=i; end for i=5:8 x(i)=9-i; end for i=9:16 x(i)=0; end close all subplot(2,1,1);stem(x); subplot(2,1,2); stem(abs(fft(x) %绘制幅度谱其频谱图如下所示:图2-10结果分析:此编程实现三角序列,中间两个值是相等的,然后我们根据fft函数快速求出x在各个n值上

9、所对应的傅里叶变换值,得到结果如下:Y=18.4640 3.1605 -16.3681i -5.3021 - 2.2394i -0.3336 + 0.3570i 0.1333 + 0.0145i 0.7981 - 0.5599i -0.0955 - 0.4109i 0.3750 0.0802i 0.0646 0.3750 + 0.0802i -0.0955 + 0.4109i 0.7981 + 0.5599i 0.1333 - 0.0145i -0.3336 - 0.3570i -5.3021 + 2.2394i 3.1605 +16.3681i 然后分别求出各点处的大小(实部的平方加虚部的平

10、方开根号),得出来的大小和图像近似相等。此三角序列的时域表达式为:当1n4时x(n)=n;当5n8时 x(n)=9-n。a) 反三角序列:代码如下:For i=1:4 x(i)=5-i;endFor i=5:8 x(i)=i-4;endclose allsubplot(2,1,1);stem(x);subplot(2,1,2);stem(abs(fft(x,16)图2-11b) 半三角序列(直角三角形序列):代码1如下:for i=1 :8 x(i)=i-1;end close allsubplot(2,1,1);stem(x); subplot(2,1,2); stem(abs(fft(x)

11、图2-2代码2如下:for i=1 :8 x(i)=8-i;end close allsubplot(2,1,1);stem(x); subplot(2,1,2); stem(abs(fft(x)图2-13c) 只有一个峰值:代码如下:for i=1:4 x(i)=i;endfor i=5:8 x(i)=8-i;endclose allsubplot(2,1,1);stem(x);subplot(2,1,2);stem(abs(fft(x,16)图2-14(2)使用FFT实现卷积运算已知:x1(n)=RN(n), 1N10; x2(n)=8sin(0.5*pi*n+4) 1N10;x3(n)=

12、0.8*exp(3*n)1N10;使用FFT实现以上3种卷积。代码如下:n=1:1:10;N1=length(n);xn1=ones(1,N1);xn2=8*sin(0.5*pi*n+4);xn3=0.8*exp(3*n);N=N1+N1-1;X1k=fft(xn1,N);X2k=fft(xn2,N);X3k=fft(xn3,N);Yk1=X1k.*X2k;Yk2=X1k.*X3k;Yk3=X2k.*X3k;yn1=ifft(Yk1,N);yn2=ifft(Yk2,N);yn3=ifft(Yk3,N);x=0:N-1;subplot(3,1,1);stem(x,yn1,.)subplot(3,

13、1,2);stem(x,yn2,.)subplot(3,1,3);stem(x,yn3,.)用FFT计算卷积,实验结果如下图:图2-15结果分析:X1n=1 1 1 1 1 1 1 1 1 ; x2n=8 0 -8 0 8 0 -8 0 8 0;X1n*x2n=0 8 8 0 0 8 8 0 0 8 0 0 8 8 0 0 8 8 0,其IFFT变换为8*(exp(j*2*w)+exp(j*3*w)+exp(j*6*w)+exp(j*7*w)+exp(j*10*w)+exp(j*13*w)+exp(j*14*w)+exp(j*17*w)+exp(j*18*w)=8*(1+exp(j*w)*(e

14、xp(j*2*w)+exp(j*6*w)+exp(j*13*w)+exp(j*17*w)+8*exp(j*10*w),Matlab运行的结果与手工计算的结果完全一致,由此可知此代码是正确的。(3)一个综合性实例1) 创建简易界面使用MATLAB中的图形用户接口功能,设计简单的操作界面,如图1.6所示。 界面中包含列表框,滑动块,按钮和静态文本。其中列表中,包含正弦波、方波和锯齿波;移动滑动块可以改变图形的周期,且周期数在静态文本中显示;点击“退出”按钮则退出程序。界面如下图:图2-16a) 当列表框中选择正弦波,周期数为4时,产生的时域波形和频谱图如下:图2-17b) 当列表框中选择方波,周期

15、数为4时,产生的时域波形和频谱图如下:图2-18c) 当列表框中选择三角波,周期数为4时,产生的时域波形和频谱图如下:图2-19d) 当列表框中选择锯齿波,周期数为4时,产生的时域波形和频谱图如下:图2-20四、 实验小结本次实验按照实验指导书,基本是按照原有的代码和步骤基础上来做的,实验中也遇到了一系列的问题:一,前后参数不一致,即在改变参数的时候,由于粗心使得前后参数形式不一致,而导致运行出错;二,在matlab中新建文件,若以中文命名,然后保存后运行,则系统会因为识别不了所命名的中文而导致运行会出错;三,只会用data cursor来将坐标点贴标签,仍然不会用编写代码的方式将各坐标点的数值贴标签。当然,

温馨提示

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

评论

0/150

提交评论