基于DSP的快速傅里叶变换算法.docx

上传人:b****2 文档编号:2162643 上传时间:2022-10-27 格式:DOCX 页数:31 大小:493.74KB
下载 相关 举报
基于DSP的快速傅里叶变换算法.docx_第1页
第1页 / 共31页
基于DSP的快速傅里叶变换算法.docx_第2页
第2页 / 共31页
基于DSP的快速傅里叶变换算法.docx_第3页
第3页 / 共31页
基于DSP的快速傅里叶变换算法.docx_第4页
第4页 / 共31页
基于DSP的快速傅里叶变换算法.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

基于DSP的快速傅里叶变换算法.docx

《基于DSP的快速傅里叶变换算法.docx》由会员分享,可在线阅读,更多相关《基于DSP的快速傅里叶变换算法.docx(31页珍藏版)》请在冰豆网上搜索。

基于DSP的快速傅里叶变换算法.docx

基于DSP的快速傅里叶变换算法

摘要

采用高级C语言实现FFT算法。

利用DSP芯片特有的哈佛结构和专门的FFT指令。

在DSP上能够更快速的实现FFT。

从而促进DSP芯片的发展,同时加快基于DSP数字信号处理的速度。

通过对FFT的算法进行研究,从基础深入研究和学习,掌握FFT算法的关键。

研究DSP芯片如何加快蝶形计算以及如何有效地码位倒置的输出颠倒过来。

熟悉旋转因子的生成。

通过学习DSP芯片的工作原理,分析DSP控制的算法,在DSP芯片上实现快速傅里叶变换算法的设计。

通过对DSP开发环境的学习,掌握CCS的简单调试和软件仿真。

在CCS开发环境中观察正弦波输入波形、输出波形、PC机FFT计算处理后的仿真波形图。

比较仿真图,验证设计和程序的正确性。

表明利用DSP控制器特有的反序间接寻址使FFT的实现更加方便。

关键词:

DSP;FFT;旋转因子

Abstract

UsingadvancedClanguagetorealizeFFTalgorithm.Usingdigitalsignalprocessor(DSP)endemicharvardstructureandspecialFFTinstructions.InmorequicklyonDSPcanrealizeFFT.Inordertopromotethedevelopmentofdigitalsignalprocessor(DSP)basedonDSP,acceleratethespeedofdigitalsignalprocessing.

BaseonthestudyofFFT,frombasicresearchandstudy,thekeytomasteringFFTalgorithm.ResearchonhowtoaccelerateDSPandwinghoweffectivelyyardsofaoutputupsidedown.Familiarwiththerotationfactorproduction.ThroughstudyingtheworkingprincipleofDSP,analyzesthealgorithm,realizedthedesignofFFTalgorithminDSP.BasedonstudyingDSPdevelopmentenvironment,CCSsimplecommissioningandsoftwaresimulation.CCSdevelopmentenvironmentinobservingsinewave,theoutputwaveforminput,PCFFTcalculationofwavegraphwithsimulation.Comparativesimulationdiagram,verifythecorrectnessofdesignandprogram.UseDSPcontrollerthatpeculiarsequenceindirectaddressingtherealizationofFFTmakemoreconvenient.

Keywords:

DSP;FFT;Rotation

 

第1章概述

课题研究的背景及意义

课题背景

近十多年来数字信号处理技术同数字计算机、大规模集成电路等,有了突飞猛进的发展,日新月异,已经成为一门具有强大生命力的技术科学。

由于它本身具有一系列的优点,所以能有效地促进个工程技术领域的技术改造和学科发展,应用领域也更加广泛、深入,越来越受到人们的重视。

在信号处理中,离散傅里叶变换(DiscreteFourierTransform,DFT)是常用的变换方法,它在各种数字信号处理系统中扮演着重要的角色。

由离散傅里叶变换(DFT)发现了频率离散化,可以直接用来分析信号的频谱、计算滤波器的频率响应,以及实现信号通过线系统的卷积运算等,因而在信号的谱分析等方面有很大的作用。

傅里叶变换已有一百多年的历史了,我们知道频域分析常常比时域分析更优越,不仅简单,而且易于分析复杂信号。

但需要用较精准的数字方法,即DFT进行谱分析,在FFT出现以前是不切实际的。

由于DFT的计算量太大,即使采用计算机也很难对问题进行实时处理,至此DFT并没有得到真正的应用。

直到1965年库利()和图基()首次发现DFT的一种快速算法,情况才发生根本性的变化。

继库利和图基算法之后,桑德()等快速算法相继出现,又经过其他学者进一步改进,很快出现了通用的快速傅里叶变换,简称FFT。

快速傅里叶变换(FastFourierTransform,FFT)并不是与离散傅里叶变换不同的另一种变换,而是为了减少DFT计算次数的一种快速有效的算法。

应当指出,当时电子数字计算机的条件也促成了这个算法的提出。

它使DFT的运算量大大的简化,它推动了近30年的信号处理技术的发展,成为数字信号处理应用领域强有力的工具,为DFT乃至数字信号处理技术的实际应用创造了良好的条件,从而使DFT在实际使用中得以广泛的应用。

数字信号处理器(DSP)是一种可编程的高性能处理器,近年来发展很快。

它不仅适用于数字信号处理,而且在图像处理、语音处理、通信等领域得到广泛的应用。

通用的微处理器在运算速度上很难适应信号实时处理的要求。

DSP处理器中集成有高速的乘法硬件,能快速地进行大量数据的乘法和加法运算。

数字信号处理不同于普通的科学计算与分析,它强调运算的实时性。

除了具备普通微处理器所强调的高速运算和控制能力外,针对实施数字信号处理的特点,在处理器结构、指令系统、指令流程上做了很大的改进。

课题研究的意义

综上所述,基于DSP的快速傅里叶变换算法的研究使FFT算法能够有效地在DSP芯片上实现。

DSP芯片的出现使FFT的实现更为方便。

由于多数的DSP芯片都能在一个指令周期内完成一次乘法和加法,而且提供了专门的FFT指令。

完成一次指令的周期只需10ns,使得FFT算法在DSP芯片上实现的速度更快。

快速傅里叶变换为频谱分析、卷积与相关数字滤波器设计与实现、功率谱计算、传递函数建模、图像处理等,提供了快速运算方法。

FFT技术应用DSP芯片,从而可以提供使调制、解调、压缩、解压缩和数据传输更为高效的信号处理解决方案,因而广泛应用于雷达、通信、图像处理、声纳和生物医学领域。

本文主要研究内容

本文主要介绍基于DSP的快速傅里叶变换的算法的实现。

研究快速傅里叶变换原理。

快速傅里叶变换和离散傅里叶变换的基本理论是一样的,它根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅里叶变换的算法进行了改进。

在计算机系统或者数字系统中广泛应用快速傅里叶变换,这是一个巨大的进步。

本文要解决的问题就是如何对数据进行分析研究,得到一个能快速进行离散傅里叶变换的方法,降低对计算机内存的要求,使FFT能更加广泛的应用于科学研究。

快速傅里叶变换是离散傅里叶变换的改进方法,因此对连续的周期信号和连续的非周期信号,均需进行加窗与取样,从而得到一系列离散值。

这些离散值通过快速傅立叶变换转变为频域信号,用以进行下一步的分析研究。

掌握在DSP上实现快速傅里叶变换算法。

掌握旋转因子的生成和序列的倒序。

学习DSP芯片TMS320C5416的性能和结构。

熟悉CCS(CodeComposerStudio)开发环境,CCS是TI公司的DSP集成开发环境。

利用CCS软件的仿真环境来模拟TMS320C5416芯片,并对信号处理。

通过学习和讨论算法,编写程序,讨论仿真结果。

 

第2章快速傅里叶变换及其算法

快速傅里叶变换的原理

离散傅里叶变换的介绍及FFT的发展

在数字信号处理中,对于有限长序列,也可以用序列的傅里叶变换和Z变换来分析和表示。

但还有一种方法更能反映序列的有限长这个特点,即离散傅里叶变换。

离散傅里叶变换(DiscreteFourierTransform,DFT)是常用的变换方法,它在各种数字信号处理系统中扮演着重要的角色。

它是分析有限长序列的有用工具。

离散傅里叶变换除了作为有限长序列的一种傅里叶表示法,在理论上相当重要之外,而且由于存在着计算离散傅里叶变换的有效快速算法,因而离散傅里叶变换在各种数字信号处理的算法中起着核心的作用[1]。

它把数字计算机的应用和信号分析理论结合在一起,使得谱分析、卷积、相关等运算都可以通过DFT在计算机上实现。

有限长序列可以通过(DFT)将其频域也离散化成有限长序列。

但其计算量太大,很难实时地处理问题。

直到1965年出现了DFT运算的一种快速方法以后,情况才发生了根本的变化。

当时Garwin在自己的研究中极需要一个计算傅里叶变换的快速方法,而正在写有关傅里叶变换的文章,Tukey概括地对Garwin介绍了一种方法,它实质上就是后来著名的Cooley-Tukey算法。

在Garwin的迫切要求下,1963年,IBM公司的Cooley根据Tukey的想法编写了第一个FFT算法程序。

在FFT算法中,Tukey主要利用了旋转因子的周期性和对称性。

这两个性质使DFT运算中的某些项可以合并,使DFT运算尽量分解为更少点数的DFT运算。

因为DFT的运算量与成比例,所以如果将一个大点数的DFT分解为若干个小点数的DFT的组合,将有效地减少运算量。

Cooley在计算机上实现该算法时,为节省存储空间和减少寻址时间,采用了三维标号映射方法和在算法内部的循环结构,这些结构和技巧对后来的FFT算法研究及实现同样产生了很大影响。

1965年,Cooley和Tukey在《计算数学》上发表了著名的论文,并立即引起了广泛注意。

FFT算法将运算时间减少1-2个数量级,从理论上解决了数字信号处理运算量大的问题,是数字信号处理发展史上的—块里程碑。

以计算l024点的序列为例,FFT将计算时间缩短为原来的1/100,从而使数字信号处理从一个计算数学的分支变为一门应用科学,逐步走向实用技术。

在Cooley-Tukey算法提出之后,Sande提出了按照频率抽取的FFT算法,它可以作为按照时间抽取的Cooley-Tukey算法的对偶形式。

Bergland提出了采用高基数结构的算法,如基-4或基-8算法能够达到更高的计算效率。

增大基数虽然可以减少计算量,但同时每个计算单元的结构也更复杂。

基-4算法比基-2算法所需的乘法次数减少了约1/4。

当采用高于4的基数r时,虽然总的乘法次数更少,但比基-4算法中所需的复乘次数减少得并不显著,并且r点的DFT中将包含乘法运算,因此实际应用中多采用基-4算法。

Bergland对任意因子的FFT算法也作了研究,提出了统一的FFT方法,即任意因子的FFT运算都可以由r(r是基数)点的DFT运算和与旋转因子相乘的运算来实现,Cooley-Tukey算法和Sande-Tukey算法都可以看作统一的FFT算法的特例,即基数r都相同。

对于输入数据是实数情况,可以将N点的DFT运算转换为N/2点的DFT运算,或者同时计算两个实序列的DFT,都可以采用FFT算法。

从七十年代中期开始,基于素因子分解的FFT算法重新得到了重视。

事实上,在Cooley-Tukey算法提出之前,Good就提出用点数互素的短点数DFT运算组合来实现长点数DFT运算,并且这种实现方式不会引入附加的乘旋转因子的运算。

在素因子算法中利用了数论中的中国余数定理,将一维DFT运算映射为标准的多维DFT运算,而素因子的DFT运算可以通过循环卷积算法完成。

在素因子算法中,由于避免了乘旋转因子的运算,因此比Cooley-Tukey算法的乘法运算次数要少得多,而加法次数与之相当。

基于素因子分解的另一种快速算法是由IBM公司的Win

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1