4.编程思想及程序框图第L级中,不同的旋转因子数为2L-1,相同的旋转因子数为2M–L。(2)每一级中,蝶形数也是旋转因子总数,它等于不同的旋转因子数乘以相同的旋转因子数,即2L-1×2M–L=2M/2=N/2(3)从第1级开始,逐级进行,共进行M级运算,在进行第L级运算时,依次求出2L-1个不同的旋转因子及它们对应的所有2M–L个蝶形。最外层循环控制运算的级数;计算蝶形结间距;第二层控制计算不同旋转因子的蝶形结;计算不同旋转因子的指数,步长为不同旋转因子间距离1。最内层进行同一旋转因子的蝶形结运算,步长为相同旋转因子间距离2L。计算N;以上讨论的FFT算法都是复数运算,包括序列x(n)也认为是复数,但大多数场合,信号是实数序列,任何实数都可看成虚部为零的复数,例如,求某实信号x(n)的复谱,可认为是将实信号加上数值为零的虚部变成复信号(x(n)+j0),再用FFT求其离散傅里叶变换。这种作法很不经济,因为把实序列变成复序列,存储器要增加一倍,且计算机运行时,即使虚部为零,也要进行涉及虚部的运算,浪费了运算量。合理的解决方法是利用复数据FFT对实数据进行有效计算,下面介绍两种方法。6.6.3实序列的FFT算法设x1(n)、x2(n)是彼此独立的两个N点实序列,将它们作为一复序列的实部及虚部,构成新序列x(n)如下:x(n)=x1(n)+jx2(n)对x(n)进行DFT,得到X(k)=DFT[x(n)]=Xep(k)+Xop(k)由?Xep(k)=DFT[x1(n)]=1/2[X(k)+X*(N-k)]Xop(k)=DFT[jx2(n)]=1/2[X(k)-X*(N-k)]?得?X1(k)=DFT[x1(n)]=1/2[X(k)+X*(N-k)]X2(k)=DFT[x2(n)]=-j1/2[X(k)-X*(N-k)]?(1)用一个N点FFT同时计算两个N点实序列的DFT(2)用一个N/2点的FFT计算N点实序列的DFT设x(n)为N点实序列,取x(n)的偶数点和奇数点分别作为新构造序列y(n)的实部和虚部,即x1(n)=x(2n)n=0,1,…,N/2-1x2(n)=x(2n+1)n=0,1,…,N/2-1然后将x1(n)及x2(n)组成一个复序列:y(n)=x1(n)+jx2(n)对y(n)进行N/2点FFT,输出Y(k),则X1(k)=Yep(k)=DFT[x1(n)]=1/2[Y(k)+Y*(N-k)]X2(k)=-jYop(k)=DFT[x2(n)]=-j1/2[Y(k)-Y*(N-k)]*信号分析与处理*■第6章离散傅里叶变换虽然频谱分析和DFT运算很重要,但在很长一段时间里,由于DFT运算复杂,并没有得到真正的运用,而频谱分析仍大多采用模拟信号滤波的方法解决,直到1965年库利(T.W.Cooley)和图基(J.W.Tukey)首次提出DFT运算的一种快速算法以后,情况才发生了根本变化,人们开始认识到DFT运算的一些内在规律,从而很快地发展和完善了一套高速有效的运算方法——快速傅立叶变换(FFT)算法。FFT的出现,使DFT的运算大大简化,运算速度提高1~2个数量级,使DFT的运算在实际中得到广泛应用。本节重点介绍FFT算法的基本思想和基2时域抽取法FFT算法。6.6快速傅里叶变换(FFT)6.6.1减少DFT运算量的基本途径1.有限长序列x(n)进行一次DFT运算所需的运算量。一般,x(n)和WNnk都是复数,因此,每计算一个X(k)值,要进行N次复数相乘,和N-1次复数相加,X(k)一共有N个点,故完成全部DFT运算,需要?复数乘法次数:N2?复数加法次数:N(N-1)≈N2长度为N的有限长序列x(n)的DFT为特点:在N点DFT的计算中,不论是乘法和加法,运算量均与N2成正比。因此,N较大时,运算量十分可观。例如,计算N=10点的DFT,需要100次复数乘法,而N=1024点时,需要1048576(一百多万)次复数乘法。反变换IDFT与DFT的运算结构相同,只是多乘一个常数1/N,所以二
您可能关注的文档
最近下载
- 2025年军考提干题目及答案.doc VIP
- 桥门式起重机检验规程.doc
- 文字汉字结构汉字结构现代汉语教案.docx VIP
- 全口义齿特殊颌型.pdf VIP
- 学堂在线 雨课堂 学堂云 研究生的压力应对与健康心理 期末考试答案.docx VIP
- 学堂在线 雨课堂 学堂云 研究生的压力应对与健康心理 章节测试答案.docx VIP
- 在线网课学习课堂《现代农业创新与乡村振兴战略(扬州)》单元测试考核答案.docx VIP
- 学堂在线 雨课堂 学堂云 艺术的启示 章节测试答案.docx VIP
- 2026年中考语文一轮专题复习:现代文阅读.docx VIP
- 计算机基础知识试题(答案_).docx VIP
原创力文档

文档评论(0)