版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、FFT DSP实现介绍:快速傅立叶变换是一种高效实现离散傅立叶变换的快速算法,是数字信号处理中最重要的工具之一,在声音、语音、通信和信号处理领域得到了广泛应用。一.设计目的:1.加深对DFT算法原理和基本特性的理解。2.熟悉FFT的算法原理和FFT子程序的算法过程和应用;学习了利用FFT进行连续和时域信号频谱分析的方法。学习DSP FFT设计和编程思想。5.学习使用CCS的波形观察窗口观察信号波形和频谱情况。二.设计内容:用DSP汇编语言和c语言编程,实现FFT运算,对输入信号进行频谱分析。三.设计原则:1.离散傅立叶变换DFT:对于长度为n的有限长度序列x(n),离散傅立叶变换(DFT)为X
2、 (k)=n-NK,k=0,1,2.n-1 (1)表达式中,WN=e-j*2/N称为旋转系数或蝴蝶系数。正如DFT的定义所示,如果x(n)为复数,而对k值直接计算X(k)为(1),则只需要N个复数和(N-1)个复数加法。因此,对于所有N个k值,需要总计N2个复数相乘和N(N-1)的复数加法。在某些n值较大的情况下(例如1024点),直接计算DFT所需的计算量很大,因此DFT操作的应用受到很大限制。快速傅立叶变换FFT旋转系数WN具有以下特性:镜像:WNk N/2=-WNk周期性:WNn(N-k)=WNk(N-n)=WN-nk通过这些功能,可以合并DFT中的某些项目,以减少乘法积,并将长序列的D
3、FT分解为几个短序列DFT。FFT是利用旋转系数的对称性和周期性来减少运算量。FFT的算法是将长序列的DFT分解为短序列的DFT。例如:如果N为偶数,则将N点的DFT分解为2个N/2点的DFT,将复数乘法除以1/2点的DFT,将N/4点的DFT分解为1/2点的DFT,继续分解,可以大大减少计算量。最小变换的点数称为基数,基数为2的FFT算法的最小变换为两点DFT。通常,FFT算法分为两类:按时间提取的FFT (dit FFT)和按频率提取的FFT (dif FFT)。DIF FFT算法的计算方法是,在时间周期内,将每个输入序列除以2个奇数/偶数的短序列。DIF FFT算法的计算方法是将频域中的
4、每个输入序列除以两个短序列。这两者的区别在于,由于旋转系数出现的位置不同,所以保留了算法。在DIF FFT算法中,旋转系数WNk出现在输入部,而在DIF FFT算法中,旋转系数WNk出现在输入部。假设序列x(n)的点n是2的幂,根据DIF FFT算法,可以分为偶数序列和奇数序列。偶数序列:x(2r)=x1(r)奇数序列:x(2r 1)=x2(r)其中r=0,1,2,对于n/2-1,x(n)的DFT为xk=r=0 N2-1 x2 rw N2 rk r=0 N2-1x2r 1wn 2r 1k=r=0n 2-1x1r(wn2)rk wnkr=0n 2-1x2r(wn2)rk=r=0n2-1x1r w
5、n2 rkwnkr=0n2-1x2r wn2rk=x1kwk2kr,k=0,1,2,N2-1X1(k)和x2(k)分别为x1(r)和x2(r)的N/2 DFT表达式中的x1(k)和x2(k)分别是x1(r)和x2(r)的N/2,即DFT。由于对称性,WNk N/2=-WNk。因此,n点DFT可以分为两部分。前半部分:x (k)=x1 (k) wknx2 (k) k=0,1,n/2-1 (4)后半部分:x (n/2 k)=x1 (k)-wknx2 (k) k=0,1,n/2-1 (5)如样式(4)和样式(5)所示,只需要0到N/2-1部分x1(k)和x2(k)的值,就可以得到0到N-1部分x(k
6、)的N点值。使用相同的方法提取时,如果获取N/4点DFT并重复提取过程,则N点DFT将计算为父组2点DFT,从而显着减少计算量。基础2 DIF FFT的蝴蝶运算如图(a)所示。将蝶形输入设定为X1(K)和X2(K),然后汇出为x(k)和x(N/2 K),如下所示X(k)=x1(k) WkNx2(k) (6)X(N/2 k)=x1(k)-WkNx2(k) (7)基数为2的FFT具有N=2M、m级操作总数和N/2点FFT蝴蝶操作,因此N点FFT具有总计MN/2个蝴蝶操作。图(a)基本2 DIF FFT蝴蝶操作示例:基数为2的FFT在N=8时需要总计3个级别,12个基础2 DIT FFT的蝴蝶操作。
7、信号流如图(b)所示。X(0) x(0)1.WN0X(4) x(1)-1WN0X(2) x(2)-1Wnnwn2X(6) x(3)-1 -1WN0X(1) x(4)-1Wnnw91X(5) x(5)-1 -1Wnnwn2X(3) x(6)-1 -1Wnnwn2w53X(7) x(7)-1 -1 -1图(b)基于8点的2 DIF FFT蝴蝶操作如图(b)所示,输入是经过比特反转的逆位序列,包括x (0)、x (4)、x (2)、x (6)、x (1)、x (5)、x (3)输出为以下顺序:x (0)、x (1)、x (2)、x (3)、x (4)、x (5)、x (6)、x (7)。四。FFT算
8、法DSP实现过程:DSP芯片的出现使得实现FFT的方法更加方便。大多数DSP芯片在单个命令周期中执行乘法计算。这意味着可以进行累积计算,FFT算法提供专用FFT命令,从而在DSP芯片上更快地实现FFT算法。FFT算法可分为基于时间的提取FFT和基于频率的提取FFT两类,输入有实数和复数。通常假设输入序列是复数的。(a) FFT操作序列存储分配FFT计算时间是衡量DSP芯片性能的重要指标,因此提高FFT的计算速度至关重要。在使用DSP芯片实施FFT算法时,DSP芯片提供的各种软件和硬件资源必须可用。如何利用DSP芯片的有限资源,合理预留使用的存储空间至关重要。(b)实施FFT计算使用TMS320
9、C54x的汇编器实现FFT算法主要包括四个阶段:1.实现输入数据的位反转输入数据的位反转实际上是将输入数据反转为代码位,使整个运算后的输出序列成为自然序列。使用“装配”命令执行代码位反转时,使用代码位反转可以显着提高程序的执行速度和内存使用的效率。在此寻址方式中,AR0存储整数n,即指向数据存储设备的辅助寄存器FFT点的一半。使用位码反向寻址将AR0添加到辅助寄存器中,地址将比位码反向生成。2.n点复数的FFT实现n点复数FFT算法的实现可以分为三个功能块:一阶蝴蝶运算、二阶蝴蝶运算和三阶至log2N蝴蝶运算。对于N=2M(任意2的整数幂),通过m分解可以计算最后成为2点的DFT。通过这种m分
10、解,您可以配置m(即log2N)级迭代计算,每个都由N/2蝴蝶操作组成。功率谱计算使用FFT计算认为x(n)的光谱,即计算X(k)=n=0N-1x(n)WnkX(k)通常是由实际XR(k)和虚拟Xl(k)组成的复数形式,即X(k)=XR(k) jXl(k)因此,在计算功率谱时,FFT只需要转换的数据,根据实际XR(k)和虚拟Xl(k)求平方和,然后平方和。但是,考虑到编程的困难,如果在FFT转换后获得数据的最大值,即使没有平方,也能找到最大值,并且对功率谱的结果没有影响,因此在实际DSP编程中节省了越位运算。4.FFT结果输出(c)汇编语言方案程序主体由四个子程序组成:rfft-task、bi
11、t-rev、fft和power。Rfft-task:调用其他子例程以实现集成接口的主调用子例程。Bit-rev:反转输入数据位的位码子程序。FFT:用于完成n点FFT运算的FFT算法子程序。将每个蝴蝶形状的运算结果向右移动一个位置,以避免运算过程中运算结果溢出。Fft子程序分为三个功能块:第一阶蝴蝶运算、第二阶蝴蝶运算和第三阶至log2N蝴蝶运算。(d)正弦系数表和馀弦系数表:正弦和馀弦系数表显示为。copy装配命令可由数据文件coeff.inc给出,该文件将正弦和馀弦因子表与程序代码一起装配。在此示例中,数据文件coeff.inc提供了1024复数点FFT的正弦和馀弦系数,每个系数为512。
12、使用此系数表可以完成8-1024点的FFT运算。(e) FFT算法模拟信号输入:FFT算法的模拟信号输入使用c语言编程生成文本文件sindata,然后在rFFT-task汇编程序中。通过将通过copy“装配”命令生成的数据文件复制到数据存储,可以作为FFT算法的输入数据参与FFT操作。该方法的优点是程序可读性强,其缺点是输入数据修改后必须重新编译、组装和链接。V.设计阶段:1.启动CCS,在CCS中创建c源文件和命令文件,然后将这两个文件添加到项目中,编译并装载程序。FFT Dsp实现相关程序在DSP原理读取和应用中的应用。2.双击启动CCS的仿真平台的配合选项。选择C5502模拟器。3.启动
13、ccs2后,创建工程文档FFT.pjt4.设置源文件FFT.c和链接文件FFT.cmd5.将这两个文件添加到FFT.pjt项目中。6.创建out文件7.加载out文件8.加载数据9.输入输出波形观察输入波形(时间区域)输出图表(频域)10.改变信号的频率可以重新做实验。512点以上的FFT也可以。六。实验程序:.title rfft _ task . ASM.mmregs.copy“coeff . Inc”.def rfft_taskSine:usect sine ,512Cosine:usect cosine ,512Fft _ data:usect FFT _ data ,2048D _ input:usect FFT _ data ,2048Fft _ out:usect FFT _ out ,1024D _ input :copy sindataSTACK:usect
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 象山湾生态体系中微塑料的分布、结构与生态影响探究
- 谷氨酰胺对炎症应激下大鼠肝细胞iNOS过度表达的调节机制研究
- 调节性T细胞:解锁肝癌预后评估与治疗新视角
- 调控性RNAi系统构建及其靶向诱导肿瘤干细胞凋亡对肿瘤免疫机制的深度解析与展望
- 课堂话语策略:非英语专业学生学习动机提升的路径探索
- 诺思制度分类视角下非正式制度对经济转型的影响与启示
- 2026年6月江西省机电设备招标有限公司社会招聘2人考试模拟试题及答案详解
- 语用移情:开启初中英语口语教学新视野
- 2026年天津市河北区小关医院医护人员招聘笔试备考题库及答案详解
- 语境理论赋能:大学英语词汇教学的创新与突破
- 量化投资方法测试题带答案
- 企业报关管理制度
- 人教版(2024)七年级下册英语Unit 7 A Day to Remember单元集体备课教案(共5课时)
- 城轨车辆高速断路器列车电机电器课件
- 独立董事聘任协议书范本
- 北师大版八年级数学上册勾股定理《探索勾股定理》示范教学课件
- 二零二五版大宗商品居间合同交付与物权转移详细约定3篇
- 道路交通安全法实施条例
- 摩托车门面转让协议书范文范本
- JJG 521-2024环境监测用X、γ辐射空气比释动能率仪检定规程
- 金地导向仪GL300用户手册
评论
0/150
提交评论