CCSV5
C6657EVM
之前我在试用DSPLIB中的FFT时处处碰壁,在网上找了很多贴子也没有说得完整的,下面我分享一下我掌握的使用方法,以DSPF_sp_fftSPxSP函数为例!
1、包含头文件
右键工程名称==>Properties==>Build==>C6000 Compiler==>Include Options添加DSPLIB的头文件位置
2、链接文件&库文件
右键工程名称==>Properties==>Build==>C6000 Linker==>File Search Path添加链接文件和库文件
3、在工程文件#include
4、要做DSPF_sp_fftSPxSP前需要做两个准备工作,(1)brev[64]倒置数组(2)tw_gen ()旋转因子
5、调用DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 4, 0, N);
例:做 float x_sp [8] = {1,2,3,4,5,6,7,8};的FFT,需要把此数组变成复数数组(重重重重点)
改成:float x_sp [16] = {1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0};此处的“0”代表复数的虚部,
调做DSPF_sp_fftSPxSP(8, x_sp, w_sp, y_sp, brev, 4, 0, 8);
8:待转换的数据长度(实部+虚部构成一个数据)
x_sp:输入数组的首地址
w_sp:旋转因子的首地址
y_sp:输出数组的首地址
brev:倒置数组
4:为“基4”处理,若改成“2”,则为“基2”处理
8:待转换的数据长度(其实这个参数我也还没有理解,我姑且这样认为,请大神指导)
以上是本人对DSPLIB中的FFT的理解和使用,若有哪里说的不正确的还望指出,谢谢!
学习需要多交流,不能只提问题,解决了问题还望分享,谢谢!
jimmy cui:
补充:
针对以上例子,旋转因子应该如下调用
tw_gen (w_sp, 8);
comeback:
赞一个LZ的分享精神!我也很赞同那句话,不能只提问题,解决问题后最好能分享一下心得,方便后来人。
Zhengliang Xue:
mark一下
为楼主点赞
Victorsunhao:
您好,有个问题像请教您。
dsplib.ae66是如何添加到include library file of command file as input中的? 这个路径怎么添加的,
fengchen shen:
您好,跟楼上一样,有个问题像请教您。
dsplib.ae66是如何添加到include library file of command file as input中的? 这个路径怎么添加的?
还有,刚开始我一直美找到库文件,看你这样库文件这样添加合适吗?
fengchen shen:
还有你这tw_gen( )的函数是不是有问题?怎么跟DSPF_sp_fftSPxSP_d.c里的不一样啊!
jimmy cui:
回复 fengchen shen:
没有问题,你可以试试,我一直在用
Nick Zhang~:
给lz点个赞!!!!!!!!1
zi hu:
你好,我现在也不太明白最后一个参数的意义,总感觉最后一个参数n_max和第一个参数N作用上重复了,不知道你现在对这个参数有什么更深的理解??
Xiaoping Hong:
楼主,你好:
我在使用DSF_sp_fftSPxSP这个函数时,采用例程中的旋转因子,程序运行结果与matlab运行结果不一致,不知道你是否碰到
过这种情况?后来我使用下面的链接的网址的旋转因子,运行程序后发现结果与matlab一致;
http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/25757.aspx
现在碰到的问题是无法找到正确用于DSPF_sp_ifftSPxSP的旋转因子,这个傅里叶变换对与C67xDSP好像不一样,采用相同的旋转
因子。不知楼主是否知道正确的旋转因子。。。