CCS3.3基于C54xx的2048点CFFT变换

文章介绍了如何在CCS3.3环境下,使用C54xxDSP进行2048点的复数快速傅里叶变换(CFFT)。方法包括两种:一是通过1024点的CFFT函数进行蝶形运算扩展;二是直接仿写源代码创建新的CFFT2048函数,涉及到SINTAB.Q15查表文件的更新和项目工程的配置。最后,作者提供了完整的项目资源链接。
摘要由CSDN通过智能技术生成

官方库函数定义了8~1024点的CFFT函数,要进行2048点CFFT变换,可以利用1024点的函数进行蝶形运算得到2048点的CFFT,这是很容易想到的方向,不过,还有另一种方法,库函数是开源的,所以可以仿照官方的8~1024点CFFT函数,写一个2048点的函数,这些都是汇编写的,不过函数大体上都一样,只用类比一下稍微做个改动,就能写一个自己可以调用的CFFT2048,不过这种方法要在硬件上存更多数据,比较浪费资源。

一、 CFFT2048文件的编写:

其相对CFFT1024改动有下面两个地方:

  1. 我们复制CFFT1024这个文件,将里面的1024都改为2048;

  1. 将execute部分由左图改为右图:

二、 SINTAB.Q15的改动:

CFFT2048调用了SINTAB.Q15文件,上面我们新增了sinb与cosb,所以要在这个文件中加入数据用于查表;根据注释说明:

可知:对2048个点进行变换,sinb需要 ((3*4/2048-1)+1)/3=512个值,cosb需要 3*4/2048-1-512=1023个值,sin为1/4个周期,cos对应sin之后的1/2个周期,最大值对应数据7FFFh,所以在matlab中可以求出我们所要的数据。程序如下:

数据保存在SINTAB.txt文件中,按照SINTAB.Q15文件的内容类比写出sinb与cosb的表值,完整文件过长,就不再贴图了哈。

三、在diplib.h文件中添加cfft2048的声明:

四、 搭建项目

搭建一个简单的工程调用函数我们会发现,即使改动了SINTAB.Q15文件,也在C:\CCStudio_v3.3\C5400\dsplib\54x_src路径下添加了CFFT2048函数文件,项目主函数还是找不到CFFT2048的定义,这是因为diplib.h文件并不是按照上面的路径找函数的定义文件的,而是用已经二进制编好的静态库文件54xdsp.lib,它在Project->Built options->Linker->Libraries路径下配置,如下图:

所以我们需要把编好的CFFT2048.asm文件加入到项目中,这样diplib.h在调用CFFT2048函数时就能找到位置了。

接下来,我们就能通过cbrev与cfft直接对2048点进行CFFT变换了。

完整项目链接已上传:

(112条消息) CCS3.3基于C54xx的2048点CFFT变换-添加库函数法资源-CSDN文库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值