FFT算法的DSP实现

FFT算法移植到DSP的过程

一, 学习导向

    为什么要学习5000系列DSP想这就像为什么要学习《信号与系统》,《模拟电路》一样,他不仅是理论性强的东西,更是直接具有应用价值的东西。废话不多说,来看一个非常基础的5000系列DSP的应用案例–FFT算法移植到DSP芯片的过程。     这个过程牵涉到比较多的关于CCS3.3的基础性操作问题,鉴于很基础,很有用,所以会配合很多图形来讲述。也算是留下记录以备日后需要。
二, 例程的实际意义     这个例子的实践意义在于,通过利用移植过来的FFT算法对已知的输入信号进行频谱分析,产生FFT结果,将结果显示出来,并且验证这个结果的正确性。鉴于CCS集成开发环境自带有FFT工具并且具有很方便的显示能力,所以验证过程可以以它为参照。
, 实现步骤     1, 开发环境配置     本例采用5502DSP做软件仿真,环境配置如下:

FFT算法的DSP实现
    单击“OK”,将会弹出如下显示窗口: FFT算法的DSP实现
    点击“OK”,会弹出频谱图如下: FFT算法的DSP实现
    点击“OK”,将会弹出结果如下: FFT算法的DSP实现
    上式便是N点FFT数组形式与实际物理频率之间的转化关系。下面我们来利用这个转化关系来看看,上面实验的最后一步的结果,通过肉眼大致观察到数组元素两个峰值点对应的横坐标是:19和58。    带入上式,f1=800/256*19=59.375(Hz)                     f2=800/256*58=181.25(Hz)    很明显,这与实际的60Hz,180Hz是基本吻合的,这证明了,这套FFT程序是可行的。
五,小结     本例程是5000系列DSP的一个最基本最经典的应用案例,虽然整个过程并未涉及到硬件,但是要明白,5000系列DSP是为通信系统众多复杂算法服务的,所以并非纸上谈兵。如果实际运用需要,那就是输入信号采集这个过程需要单独考虑硬件设计,以及接口的考虑而已。     后面程序附件部分列出了256点FFT程序和配套的CMD文件源代码,如果需要使用1024点FFT程序的话,需要做如下更改。     首先要改CMD文件,因为1024点的话,数据量比较大,存储空间分配的不够,所以相关代码需要改成下面这样:

    其次,FFT.c源代码的void fft(float datar[Sample_Numb],float datai[Sample_Numb])函数体内,需要新增便面x8,x9,相关代码要替换成下面这样:


六,程序附件

来源:dreamandxiaochouyu

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年3月26日
下一篇 2015年3月26日

相关推荐