快速傅里叶变换程序设计.doc
《快速傅里叶变换程序设计.doc》由会员分享,可在线阅读,更多相关《快速傅里叶变换程序设计.doc(40页珍藏版)》请在沃文网上搜索。
1、 中 文 摘 要数字信号处理 (Digital Signal Processing,DSP)是一门应用十分广泛的学科。数字信号处理是指利用计算机技术,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。数字信号处理器(Digital Signal Processing,DSP)也称为DSP芯片,是一种用于进行数字信号处理运算的微处理器,其主要功能是实时快速地实现各种数字信号处理算法及各种复杂控制算法。TMS320C2000系列DSP集微控制器和高性能DSP的特点于一身,具有强大的控制和信号处理能力,能够实现复杂的控制算法。TMS320C2000系列
2、DSP片上整合了Flash存储器、快速的A/D转换器、增强的CAN模块、事件管理器、正交编码电路接口、多通道缓冲串口等外设,此种整合使用户能够以很便宜的价格开发高性能数字控制系统。傅立叶变换是一种将信号从时域变换到频域的变换方式,是声学、语音、电信和信号处理等领域中一种重要的分析工具。离散傅里叶变换(DFT)是连续傅里叶变换在离散系统中的表现形式,但由于DFT的计算量很大,因此在很长一段时间内其应用受到很大的限制。快速傅里叶变换(FFT)是离散傅里叶变换的一种快速高效运算方法,是数字信号处理中最为重要的工具之一。FFT使DFT的运算大大化简,运算时间一般可以缩短1至2个数量级,FFT的出现大大
3、提高了DFT的运算速度,从而使DFT得到广泛的应用。本次DSP课程设计我所设计的课题为:“快速傅里叶变换程序设计” 。该课程设计题目的基本要求是:基于DSP实现快速傅里叶变换。本次课程设计是基于Code Computer Studio这一软件所设计的。采用的是SEEKDTK2812实验箱。 关键词:数字信号处理(DSP)、快速傅里叶变换(FFT)、离散傅里叶变换(DFT) 目录快速傅里叶变换程序设计 课程设计成绩评定表III中 文 摘 要V一 设计任务描述11.1 设计题目11.2 设计要求11.2.1设计目的11.2.2基本要求1二 设计思路22.1 FFT算法简介22.2 FFT算法原理2
4、2.3 快速傅立叶变换算法32.4 功能实现72.4.1位置倒码72.4.2蝶距72.4.3旋转因子72.5 FFT算法的DSP的实现方法82.6 FFT运算中应注意的问题8三 设计方框图9四 各部分程序设计及参数计算104.1 ADC采样104.2 FFT转换11五 工作过程分析135.1在CCS下调试程序步骤135.2 程序的初始化135.3 FFT计算135.4 输入信号及输出波形145.4.1 正弦波145.4.2 方波155.4.3 三角波16六 实验系统介绍176.1 DSP简介176.1.1 DSP微处理器176.1.2 DSP的开发工具176.1.3 DSP算法及芯片分类186
5、.1.4 DSP技术的应用186.2 CCS开发环境简介196.2.1 驱动程序的配置196.2.2 创建工程文件216.2.3 CCS窗口介绍及文件简介216.2.4 CCS软件仿真226.3 SEED-DTK2812实验系统236.3.1 SEED-DTK2812原理框图236.3.2实验箱整体配置246.3.3实验箱特点25小 结26致 谢27参考文献28附录1 源程序清单29附录2 程序运行图34III 快速傅里叶变换程序设计一 设计任务描述1.1 设计题目快速傅里叶变换程序设计。1.2 设计要求1.2.1设计目的1)理解FFT的算法以及利用DSP实现的方法。2)能熟练的调试程序并能观
6、察其结果。3)熟悉TMS320F2812系列DSP芯片的软件设计方法。1.2.2基本要求1)掌握DSP A/D转换器使用方法。2)研究FFT原理以及利用DSP实现的方法。3)编写A/D采样和FFT程序,调试,观察结果。二 设计思路2.1 FFT算法简介快速傅里叶变换(FFT)是一种高效实现离散傅里叶变换(DFT)的快速算法,是数字信号处理中最重要的工具之一,它在声学,语音,信号处理等领域有着广泛的应用。是将信号从时域变换到频域的一种变换形式,是信号处理领域中一种重要的分析工具。离散傅里叶变换(DFT)是连续傅里叶变换在离散系统中的表现形式。傅里叶变换分为连续傅里叶变换和离散傅里叶变换。离散傅里
7、叶变换简称DFT,是对离散信号进行傅里叶变换的方法,其运算量大、复杂度与变换点数的二次方成正比,因而不适用于进行实时信号处理。20世纪60年代由Cooley和Tukey提出了快速傅里叶变换(FFT)算法,它是快速计算DFT的一种高效方法,可以明显地降低运算量,大大地提高DFT的运算速度,从而使DFT在实际中得到了广泛的应用,已成为数字信号处理最为重要的工具之一。DSP芯片的出现使FFT的实现变得更加方便。由于多数的DSP芯片都能在单指令周期内完成乘法累加运算,而且还提供了专门的FFT指令(如实现FFT算法所必需的比特反转等),使得FFT算法在DSP芯片上实现的速度更快。本节首先简要介绍FFT算
8、法的基本原理,然后介绍FFT算法的DSP实现。2.2 FFT算法原理快速傅氏变换(FFT)是离散傅氏变换的快速算法,根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅里叶变换算法进行改进获得的。对傅氏变换的理论并没有新的发现,但是对在计算机系统或者数字系统中应用离散傅里叶变换,可以说进了一大步。设为N项的复数序列,由DFT变换,任一X(M)的计算需要N次复数乘法和N-1次复数加法,而一次复数乘法等于四次实数乘法和两次实数加法,一次复数加法等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),则求出N项复数序列的X(M),即N点DFT变换大约需要次运算
9、。当N=1024点甚至更多的时候,需要次运算,在FFT中,利用的周期性和对称性,把一个N项序列(设N=2k,k为正整数),分为两个项的子序列,每个点DFT变换需要次运算,再N次运算把两个点的DFT变换组合成一个N点DFT变换。这样变换以后,总运算次数变成。继续上面的例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。如果将这种“一分为二”思想不断进行下去,直到分成两两一组DFT运算单元,则N点DFT变换只需要次运算,N在1024时,运算量仅有10240次,是先前直接算法的1%,点数越多,运算量节约就越大,这就是FFT的优越性。2.3 快速傅立叶变换算法FFT的基
10、本思想:将大点数的DFT分解为若干个小点数DFT组合,从而减少运算量。根据对序列分解与选取方法的不同而产生了FFT的多种算法。算法分类如图2-1所示:FFT算法基-2FFT算法基-4FFT算法混合基算法分裂基算法线性调频Z变换算法按时间抽取按频率抽取图2-1 FFT的几种算法在这次设计中,采用最基础的按时间抽取的基-2FFT算法来实现快速傅里叶变换。为了将大点数的DFT分解为小点数的DFT运算,要求序列的长度N为复合数,最常用的是的情况(M为正整数)。该情况下的变换称为基-2FFT算法。下面讨论基-2FFT情况的算法。先将序列x(n)按奇偶项分解为两组: (2-1)将DFT运算也相应分为两组:
11、 (2-3)至此,一个点DFT被分解为两个点的DFT。由式(2-3)能否将全部的点的解求出来?分析: (2-4)和只有个点,则由式(2-4)只能求出X(k)的前个点的DFT。要求出全部点的,需要找出、和的关系,其中k=0,1,2.(N/2)-1。由式子(2-4)可得化简得 (2-5)这样N点DFT可全部由下式确定出来: (2-6)上式可用一个专用的蝶形符号表示,如图2-2所示,对应一次复乘和两次复加运算。-1图2-2 蝶形运算符号通过这样的分解以后,每一个点的DFT只需要次复数乘法,两个点的DFT需要次复乘,再加上将两个点DFT合并成N点的DFT时,有次与因子相乘,一共需要次复乘。可见,通过这
12、样的分解,运算量节省了近一半。因为,仍然是偶数,因此可以对两个点的DFT分别作进一步的分解,将两个的DFT分解成两个点的DFT。例如对,可以再按其偶数部分及奇数部分进行分解: (2-7)则运算可相应分为两组:将系数统一为以N为周期,即,可得 (2-8)同样,对也可以进行类似的分解。一直分解下去,最后是2点的DFT,2点的DTF的运算也可以用蝶形符号来表示。这样,对于一个的DFT运算,最终结如图2-3图2-3蝶形图这种方法,由于每一步分解都是按输入序列在时域上的次序是属于偶数还是奇数来抽取的,故称为“时间抽取法”。分析上面的流图,一共要进行M次分解,构成了从到的M级运算过程。每一级运算都是由个蝶
13、形运算构成,因此每一级运算都需要次复乘和M次复加,则按时间抽取的M级运算后总用需要:复数乘法次数: 复数加法次数: 根据上面过程,分析FFT算法的两个特点,它们对FFT的软硬件构成产生很大的影响。原位运算:也成为同址运算,当数据输入到存储器中以后,每一级运算的结果仍然存储在原来的存储器中,直到最后输出,中间无需其它的存储器。根据运算流图分析原位运算是如何进行的。原位运算的结构可以节省存储单元,降低设备成本。变址:分析运算流图中的输入输出序列的顺序,输出按顺序,输入是“码位倒置”的顺序,见表2-1所示。自然顺序 二进制表示 码位倒置 码位倒置顺序 0 000 000 0 1 001 100 4
14、2 010 010 2 3 011 110 6 4 100 001 1 5 101 101 5 6 110 011 3 7 111 111 7 表2-1 码位倒置顺序实际运算中,直接将输入数据按码位倒置的顺序排好输入很方便,一般总是先按自然顺序输入存储单元,然后通过变址运算将自然顺序的存储换成码位倒置顺序的存储,这样就可以进行FFT的原位运算。用软件实现是通用采用雷德(Rader)算法,算出的倒序以后立即将输入数据和对换。尽管变址运算所占运算量的比例很小,但对某些 高要求的应用(尤其在实时信号处理中),也可设法用适当的电路结构直接实现变址。例如单片数字信号处理器TMS320C25就有专用于FF
15、T的二进制码变址模式。2.4 功能实现2.4.1位置倒码 当进行原位运算时,发现当运算完成后,FFT的输出X(k)按正常顺序排列在存储单元中,即按X(0),X(1),X(7)的顺序排列,但是这时输入x(n)却不是按自然顺序存储的,而是按x(0),x(4), , x(7)的顺序存入存储单元,看起来好像是“混乱无序”的,实际上是有规律的,称之为倒位序。当用二进制表示顺序时,它正好是“位码倒置”的顺序。例如,原来的自然顺序应是x(1)的地方,现在放着x(4),用二进制码表示这一规律时,则是在x(0 0 1)处放着x(1 0 0),x(0 1 1) 处放着x(1 1 0),即将自然循序的二进制码位倒置
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 快速 傅里叶变换 程序设计