快速傅里叶变换FFT的matlab实现和FFT的简单应用

快速傅里叶变换FFT的matlab实现和FFT的简单应用

ID:46584383

大小:329.32 KB

页数:10页

时间:2019-11-25

快速傅里叶变换FFT的matlab实现和FFT的简单应用_第1页
快速傅里叶变换FFT的matlab实现和FFT的简单应用_第2页
快速傅里叶变换FFT的matlab实现和FFT的简单应用_第3页
快速傅里叶变换FFT的matlab实现和FFT的简单应用_第4页
快速傅里叶变换FFT的matlab实现和FFT的简单应用_第5页
资源描述:

《快速傅里叶变换FFT的matlab实现和FFT的简单应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、信号与系统课程设计快速傅里叶变换FFT的matlab实现和FFT的简单应用1(卿立艳200810201808级电子二班)【摘要】在信号处理中,DFT(离散傅里叶变换)的计算具有举足轻重的地位。但是基于其复杂的计算,直接应用起来十分麻烦,基于此,本文利用Matlab软件对有限长度信号的DFT进行改进,提出FFT(快速傅里叶变换),并利用FFT对所给连续时间和离散时间信号做了频谱分析。关键词:DFT,FFT,有限长度信号,频谱分析。一、前言:傅里叶变换在信号处理中具有十分重要的作用,但是基于离散时间的傅里叶变换具有很大的时间复杂度,根据傅里叶变换理论,对一个有限长度且长度为N的离散信

2、号,做傅里24叶变换的时间复杂度为ON(),当N很大时,其实现的时间是相当惊人的(比如当N为108时,其完成时间为10(为计算机的时钟周期)),故其实现难度是相当大的,同时也严重制约了DFT在信号分析中的应用,故需要提出一种快速的且有效的算法来实现。正是鉴于DFT极其复杂的时间复杂度,1965年JWCooley..和JWTukey..巧妙地利用W因子的周期性和对称性,提出了一个DFT的快速算法,即快速傅里叶变换(FFT),从N而使得DFT在信号处理中才得到真正的广泛应用。本文基于时间抽选奇偶分解,利用Matlab软件实现快速傅里叶变换。基于所编的FFT源程序应用的一个实例,本

3、文对有限长度离散时间和连续时间信号进行频谱分析。二、FFT的具体实现、2.1DFT的算法和时间复杂度对于一个长度为N的离散信号序列xn[],其DFT变换为N1nkXk()xnW[]N(1)n02jnknkN其中We。N对任意01mN,N1nm0m1m(N1)mXm()xnW[]Nx[0]WNxW[1]N...xN[1]WN(2)n01N信号与系统课程设计nu=log2(n);p1=p;b=zeros(1,n);fort=1:nu;p2=floor(p1/2);b=b*2+(p1-2*p2);p1=p2;end;yr(p+1)=xr(b+1)

4、;xr=yr;%倒位序结束t=0:n/2-1;%计算因子w开始(只计算w0到wn/2-1)forv=0:n/2-1;w=exp(-2*i*pi*t/n);end;%计算因子w结束form=1:nu;%计算x(k)开始h=2^(m-1);k=1;while(k

5、信号与系统课程设计end;xr=xch;end;%计算x(k)结束y=xr%输出变换后的结果程序结束附件清单1和2验证了其正确性。三、利用快速傅里叶变换myfft函数实现频域分析实例:3.1设xn[]是由两个正弦信号即白噪声的叠加,请用傅里叶变换对其作频域分析。xn[]的产生:N=2^8;f1=.1;f2=.2;fs=1;a1=5;a2=3;w=2*pi/fs;x=a1*sin(w*f1*(0:N-1))+a2*sin(w*f2*(0:N-1))+randn(1,N);其傅里叶变换和频域分析,以及仿真图详见附件3。3.2利用快速傅里叶变换FFT对连续信号作谱分析。设xt()cos

6、(200)sin(100)cos(50)ttt,利用傅里叶变换分析其频谱结构,选择不同的截取长度T,观察存在的截取效应,并试用加窗的方法减少谱间干扰。选取的参数为:(1)频率f400HzT,1/f;(2)采样信号序列xn[]xnTwn()(),wn()是窗函数,选取两种窗函数:矩形窗函数wn()Rn()和Hamming窗,后者在程序中调用函数w(n)=hamming(N)产生成都为NN的Hamming窗函数列向量wn;(3)对xn()作2048点FFT作为x(t)的近似连续频谱Xjf().其中N为采样点数,NfT,T为截取时间长度,取三种长度:0.04s,0

7、,16s,0.32s。4信号与系统课程设计程序源代码及仿真图见附件4。四、总结4.1对myfft实现快速傅里叶变换的评价本文基于时间抽选奇偶分解算法对DFT进行了改进,提出了快速傅里叶变换FFT,并用Matlab实现了FFT,并用其对所给信号进行了频谱分析。在第一个实例里,利用myfft函数对离散信号xn[]进行了傅里叶变换得到它的频域函数和时域函数,从仿真图可以看出myfft实现的傅里叶变换时成功的。在第二个实例里面,也是利用myfft对信号序列进行傅里叶变换,并对信号利用窗函

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。