ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:71.99KB ,
资源ID:7522995      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7522995.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(按时间抽取的基2FFT算法分析及MATLAB实现.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

按时间抽取的基2FFT算法分析及MATLAB实现.docx

1、按时间抽取的基2FFT算法分析及MATLAB实现按时间抽取的基2FFT算法分析及MATLAB现、DIT-FFT算法的基本原理基2FFT算法的基本思想是把原始的 N点序列依 次分解成一系列短序列,充分利用旋转因子的周 期性和对称性,分别求出这些短序列对应的DFT, 再进行适当的组合,得到原 N点序列的DFT最 终达到减少运算次数,提高运算速度的目的。按时间抽取的基2FFT算法,先是将N点输入序 列x(n)在时域按奇偶次序分解成 2个N/2点序 列x1(n)和x2(n),再分别进行DFT运算,求出 与之对应的X1(k)和X2(k),然后利用图1所示 的运算流程进行蝶形运算,得到原 N点序列的 DF

2、T只要N是2的整数次幂,这种分解就可一 直进行下去,直到其DFT就是本身的1点时域序 列。0丄-1还幺)X=纸(十啟尽閃X2 (小X (业十押丿2) = % 州址2(上)图1 DIT-FFT蝶形运算流图、DIT-FFT算法的运算规律及编程思想1.原位计算对N=2m点的FFT共进行M级运算,每级由N/2 个蝶形运算组成。在同一级中,每个蝶的输入数 据只对本蝶有用,且输出节点与输入节点在同一 水平线上,这就意味着每算完一个蝶后,所得数 据可立即存入原输入数据所占用的数组元素 (存储单元),经过M级运算后,原来存放输入序列 数据的N个存储单元中可依次存放 X(k)的N个 值,这种原位(址)计算的方法

3、可节省大量内存。2.旋转因子的变化规律N点DITFFT运算流图中,每个蝶形都要乘以 旋转因子wn,p称为旋转因子的指数。例如N= 8 =23时各级的旋转因子:第一级:L=1, 有 1 个旋转因子: wN =WiN/4 =w2jlJ=0第二级:L=2,有2个旋转因子:wn=wN/2 = w;J=0,1第三级:L=3,有4个旋转因子:wN = wN = w;J=0,1,2,3对于N= 2m的一般情况,第L级共有2L-1个不同的 旋转因子:2l =2m X2l-m = N 2L-M故:按照上面两式可以确定第 L级运算的旋转因子卩一屯=呛严=昭尸P 二”严,3、 同一级中,同一旋转因子对应蝶形数目第L

4、级FFT运算中,同一旋转因子用在2m-l 个蝶形中;4、 同一级中,蝶形运算使用相同旋转因子之间 相隔的“距离”第L级中,蝶距:D=2l ;5、 同一蝶形运算两输入数据的距离在输入倒序,输出原序的 FFT变换中,第L 级的每一个蝶形的2个输入数据相距:B=2l-1。6、码位颠倒输入序列x(n)经过M级时域奇、偶抽选后, 输出序列X(k)的顺序和输入序列的顺序关系为 倒位关系。将十进制顺序数用I表示,与之对应的二进制是 用IB表示,十进制倒序数用J表示,与之对应 的二进制是用JB表示。十进制顺序数I增加1, 相当于IB最低位加1且逢2向高位进1,即相 当于JB最高位加1且逢2向低位进1。JB的变

5、 化规律反映到J的变化分为两种情况,若 JB的 最高位是0( JN/2),则直接由加1 (J J J+N/2 ) 得到下一个倒序值,若 JB的最高位是1 (J全 N/2),则要先将最高位变 0 (J J J-N/2 ),再在 次高位加1 (J J J+N/4 ),但次高位加1时,同 样要判断0、1值,如果是0 (JN/4 ),则直接 加1 ( J J J+N/4 ),否则要先将次高位变0(J J J-N/4 )再判断下一位,依次类推,直到完 成最高位加1,逢2向右进位的运算。I=J时不 需要交换,只对IJ时的情况进行数据交换即可, 数据倒序程序框图如如2。7、蝶形运算的规律序列经过时域抽选后,

6、存入数组中,如果蝶形运算的两个输入数据相距 B个点,应用原位 计算,蝶形运算可表示成如下形式:XL (J)= XL-1(J)+ WNp X L-1 (J+B)Xl (J) = Xl-i(J)-WnP -XL-1(J+B)p=J X2M-L, J=0,1,2,,2l-1 18 DIT-FFT程序框图根据DIT-FFT原理和过程,DIT-FFT的完整程序框图如图2:(1)倒序:输入自然顺序序列x(n),根据倒序规 律,进行倒序处理;循环层1:确定运算的级数,L=1M (N=2m); 确定一蝶形两输入数据距离B=h 循环层2:确定L级的B=2l-1个旋转因子;旋转 因子指数 p=JXzM-L, J=

7、0B-1;个蝶形运算中:k的取值从J到N-1,步长为2L(4)循环层3:对于同一旋转因子,用于同一级2M-L(使用同一旋转因子的蝶形相距的距离)(5)完成一个蝶形运算图2数据倒序程序框图图3 DIT-FFT的完整程序框图三、程序源代码设计函数 myDitFFT(x n) 完成一个序列的 DIT-FFT 运算:fun cti on y=myDitFFT(x n)M=n extpow2(le ngth(x n);N=2AM;disp(调用fft 函数运算的结果:),if len gth(x n)=K;J=J-K;K=K/2;endJ=J+K;enddisp(倒序后各存储单元的数据 :),disp(

8、x n);%分级按序依次进行蝶形运算disp( 运算级次:),disp(L);B=2A(L-1);for R=0:B-1; %各级按序蝶算P=2A(M-L)*R;for K=R:2AL:N-2; %每序依次计算T=x n(K+1)+x n( K+B+1)*WN(P+1);xn( K+B+1)=x n( K+1)-x n( K+B+1)*WN(P+1);xn (K+1)=T;endenddisp( 本级运算后各存储单元的数据 :),disp(xn);end在主函数中调用 myDitFFT(xn)函数实现DIT-FFT并和直接DFT运算结果做对比:xn=0,1,2,3,4,5,6,7;myDitF

9、FT(x n);调用fft函数运算的结果:1至7列28.0000 + 0.0000i -4.0000 + 9.6569i-4.0000 + 4.0000i -4.0000 + 1.6569i-4.0000 + O.OOOOi -4.0000 -4.0000 - 4.0000i8列-4.0000 - 9.6569i调用myDitFFT(xn)函数运行的结果:输入到各存储单元的数据:0 1 2 3 4 56 7倒序后各存储单元的数据:0 4 2 6 1 53 7运算级次:1本级运算后各存储单元的数据:4 -4 8 -41.6569i6 -410 -4运算级次:2本级运算后各存储单兀的数据:1至7列

10、12.0000+ 0.0000i-4.0000+ 4.0000i-4.0000+ 0.0000i-4.0000-4.0000i16.0000+ 0.0000i-4.0000+ 4.0000i-4.0000 + O.OOOOi8列-4.0000 - 4.0000i运算级次:3本级运算后各存储单元的数据1 至7列28.0000+0.0000i-4.0000+ 9.6569i-4.0000+4.0000i-4.0000+ 1.6569i-4.0000+0.0000i-4.0000-1.6569i-4.0000 - 4.0000i-4.0000 - 9.6569i经对比可知DIT-FFT与直接DFT的

11、运行结果完全 相同。四、总结经过验证可发现DIT-FFT较直接DFT运算有着明 显的优势,我们可以将这个函数运用在多个领域 以简化运算,例如计算离散时间序列的卷积或计 算IDFT时都可以应用到DIT-FFT算法,我感受 到数字信号处理中科学思想的魅力。由于对设计 思路的缺乏,我在设计程序时,在网络上查找了 很多有关DIT-FFT的资料,经过学习他人的解决 思路最后才整理出DIT-FFT的程序,在有些地方 我自己理解的还不是很透彻,比如在实现数据倒 序的程序我认为比较困难;当然即使自己想不到 能学习一下别人的思路也是很好的, 这个程序的 代码量并不大,我自身的能力还很低,要在以后 的学习中不断进步才能完成更加复杂的任务。这 次课程设计让我对快速傅里叶变换有了更多的 了解,也认识到了科学计算方法的重要性,我感到很充实。参考文献 XX百科;按时间抽取的基2FFT算法分析及MATLAB实现J.电子技术,2011 (2)数字信号处理 (第四版)西安电子科技大学出版社高希全丁玉美编

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2