首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 工业控制 > TIC24X快速富立叶转换(FFT)函式库

TIC24X快速富立叶转换(FFT)函式库

资料介绍

简介

快速傅立叶转换在作N-point傅立叶转换(DFT)的数字运算时,是一种非常有效的算法。一般来说,运算时的输入数据,常常是一连串的复数。 不过在许多实际的应用上,这些需要被处理的数据都属于实数(real)。即便如此,我们还是可以运用复数运算的DFT。因为一个简单的方法就可以将实数数据转换成复数数据;原本的实数数据成为复数的实部(real components),而属于复数虚部(imaginary components)的部分则全部填上零。如此一来我们就可以直接应用复数FFT了。

然而这并不是一个有效率的方法,因为这个运算在处理原本N point的数据时,需要花到2N个内存空间(给实部与虚部)。 其实当输入是纯实数时,其对称性能让DFT处理起来非常地有效率。有一种改良的实数FFT算法,称为包装(packing)算法,可以用来处理2N point的实数数据。原来2N point的实数数据会被包装(pcak)成N point的复数,用这个N point的复数来作复数运算。最后得出来一个N point的复数结果会再被展开(unpack)成N+1 point的复数,对应到原本2N point的输入数据中0到N的部分。因为作复数运算输出后,剩下的N+1到2N-1的部分,将会是N-1到1的部分的复补码,所以我们取0到N的范围就已经足够了。

这种实数FFT只需要2N+2个内存空间,就可以处理2N point的实数数据。与原本需要4N point的内存空间的算法比较起来,要好用的多。 不仅如此,运用这种算法,只要付出执行包装/展开程序O(N)的代价,复数FFT运算所需处理数据的长度就可减半。也就是说,实数FFT算法对实数输入数据作FFT的速度几乎是原本FFT的两倍。

这个FFT数据库包含了128,256以及512 point的实数/复数的版本 FFT。总结如下:

模块名称

说明

FFT128C

128-point 复数FFT模块

FFT256C

256-point 复数FFT模块

FFT512C

512-point 复数FFT模块

FFT128R

128-point 实数FFT模块

FFT256R

256-point 实数FFT模块

FFT512R

512-point 实数FFT模块

注意:

  • 有关滤波器模块的文件已经用zip档储存,您可以自行下载与解压缩。pdf档的文件则可以从以下的档案夹c:\tidcs\c24\dsp_tbox\filter\doc 中找到。

要使用软件测试台(Software Test Bench ,STB) 的范例,请务必下载STB支持数据库。

软件测试台:

相关的模块都作成软件测试台的型式,以方便您来评估与调用。软件测试台能够以程序代码编译器的项目形式,在现有的EVM跟eZdsp硬件平台上使用。
每一个STB都对应到一个特定的软件模块,指导使用者如何做呼叫,传送变量与数据给模块,以及如何和主系统连结。在条件允许的状况下,供测试的模块也可以与其它模块一起运作,例如与可提供输入触发的信号产生器作连结等。甚至是与数据记录(data-logging)模块或EVM-DAC驱动器作连结,以观察受测模块对实时环境的反应。这样可以帮助您更真切地体会软件模块的功能以及其可使用性。运用STB的概念可以简单明了地展示FFT模块的操作。一个由ADC (20kHz的取样频率)撷取/取样的N个数据样本,经由N point的实数或复数FFT运算,产生相对应的频谱数据。每一个频带强度的平方值会跟着输入信号的变动。再藉由实时监视器,在CCS的图形化窗口中不断作更新显示。您现在就可以试着简单地调整输入信号的频率,观察其输出的频率响应,来评估一下FFT模块的功能。

特性:

  • 可呼叫C语言程序的汇编语言接口以及直接ASM接口
  • 对象导向,重复加载(re-entrant),可以多次呼叫(multi-times instance-abe)的模块
  • 每个模块都有自己的STB,可提供快速且简单的"自我控制"评估。
  • STB架构被设计成程序代码编译器(CCS)项目(Project)的形式。
  • 提供您完整的参考文件(已作成成Zip档,你可以自行解压缩的PDFn)

标签:TI资源C2000
TIC24X快速富立叶转换(FFT)函式库
本地下载

评论