预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共26页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

PAGE\*MERGEFORMAT26用matlab实现DFTFFT目录TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc294282722"实验目的PAGEREF_Toc294282722\h2HYPERLINK\l"_Toc294282723"实验内容PAGEREF_Toc294282723\h2HYPERLINK\l"_Toc294282724"1.用MATLAB实现DFTPAGEREF_Toc294282724\h2HYPERLINK\l"_Toc294282725"2.用MATLAB实现FFT,分析有限离散序列的FFTPAGEREF_Toc294282725\h3HYPERLINK\l"_Toc294282726"3.通过分别计算时间,得出DFT与FFT的算法差异PAGEREF_Toc294282726\h7HYPERLINK\l"_Toc294282727"实验原理PAGEREF_Toc294282727\h7HYPERLINK\l"_Toc294282728"1.离散傅里叶变换的快速算法FFTPAGEREF_Toc294282728\h7HYPERLINK\l"_Toc294282729"2.FFT提高运算速度的原理PAGEREF_Toc294282729\h8HYPERLINK\l"_Toc294282730"3.理论分析DFT与FFT算法差异PAGEREF_Toc294282730\h10HYPERLINK\l"_Toc294282731"实验步骤PAGEREF_Toc294282731\h11HYPERLINK\l"_Toc294282732"实验结果PAGEREF_Toc294282732\h11HYPERLINK\l"_Toc294282733"实验分析PAGEREF_Toc294282733\h19HYPERLINK\l"_Toc294282734"实验结论PAGEREF_Toc294282734\h24HYPERLINK\l"_Toc294282735"实验体会PAGEREF_Toc294282735\h24实验目的通过研究DFT,FFT性质,用语言实现DFT,FFT。不使用MATLAB现有的FFT函数,自己编写具体算法。掌握FFT基2时间抽选法,理解其提高减少乘法运算次数提高运算速度的原理。设计实验,得出DFT和FFT算法差异的证明,如复杂度等(精度、不同长度的序列等)。实验内容1.用MATLAB实现DFTN点序列x(n)的DFT为:Xk=n=0N-1xnWNnk0≤k≤N-1DFT的矩阵为:根据DFT公式与矩阵展开,通过MATLAB实现DFT:2.用Matlab实现FFT编程思想及程序框图:原位计算因为DIT-FFT与DIF-FFT的算法类似,这里我们以DIT-FFT为例。N=2M点的FFT共进行M级运算,且每一级都由N/2个蝶形运算组成,后一级的节点数据由前一级同处一条水平线位置的节点数据产生,所以我们同样可以将后一级的节点数据储存到前一级的节点中,这样的方法叫做原位计算,它大大节省了内存资源,降低了成本,简化了运算。序列的倒序无论是进行DIT-FFT还是DIF-FFT都需要进行倒序,包括输入倒序与输出倒序,以一定的方式将数组进行重新排列。倒序的方法:首先由于N=2M,我们就可以用M位二进制数来表示节点的顺序,并且按照奇偶时域抽取。然后,如图1所示,第一次按最低位n0的0、1值分解为奇偶组,第二次按次低位n1的0、1值分解为奇偶组,以此类推。最后,所得二进制数所对应的十进制数即为序列倒序后产生的序列。图1序列倒序过程倒序的MATLAB方法:用雷德算法可以对输入信号序列进行倒序重排,流程图如下所示:蝴蝶因子的变化规律在DIT-FFT中,每一级都由N/2个蝶形运算构成,每个蝶形运算包含一个蝴蝶因子,每一级的蝶形因子又有一定的变化规律:设L表示自左而右的运算级次(L=1,2,3,…,M),序数R,次数K。每个蝶形运算的两个输入量相距B=2^(L-1)个点。假设N=8,则M=3,这时有:L=1时,B=1,S=N/2,R=0,K=1:N/2则有P=(K-1)*1,所以WNP=WNJ,J=0,1,2,3L=2时,B=2,S=N/4,R=0:N/2:N-1,K=1:N/4则有P=(K-1)*2,所以WNP=WN/2J,J=0,2L=3时,B=4,S=N/8,R=0:N/4:N-1,K=1:N/8则有P=(K-1)*4,所以WNP=WN/4J,J=0所以对于一般情况N=2M,第L级的旋转因子为P=(K-1)*B。从而得