64x系列DSP_FFT库函数使用问题

[复制链接]
 楼主| lt19870405 发表于 2014-7-24 16:06 | 显示全部楼层 |阅读模式
最近在整快速傅里叶变化,自己编写的函数使用起来速度太慢了,想把TI库里面自带的函数给用起来,查看了下使用说明,主要使用2个函数:
<1>int gen_twiddle_fft32x32(int *w, int n, float scale);
<2> void DSP_fft32x32 (int * w, int nx, int * x, int * y)
w[2*nx]:    Pointer to vector of Q.31 FFT coefficients of size 2*nx elements.
nx:         Number of complex elements in vector x.
x[2*nx]:    Pointer to input vector of size 2*nx elements.
y[2*nx]:    Pointer to output vector of size 2*nx elements.
流程是先使用1生成旋转因子,再使用2,在输入时x[2*nx]偶数字地址存放的是实部,奇数字地址存放的是虚部,但运算出来的数据与其他函数运行结果差距较大,仅第一个数是对的,不清楚里面是否有哪些地方需要特别注意,或者是数据存放还有什么让人节操碎落的地方,求解答
shenmu2012 发表于 2014-7-24 20:27 | 显示全部楼层
先顶起一下的吧,不是很明白这个的
zhangmangui 发表于 2014-7-24 23:44 | 显示全部楼层
用过的朋友帮忙分析一下
firstblood 发表于 2014-7-26 16:31 | 显示全部楼层
fft变换函数的?TI函数库里面有?,,哦这是DSP里面自带的啊。
firstblood 发表于 2014-7-26 16:33 | 显示全部楼层
楼主调用的两函数的再其他TI的单片机或者MCU中可以移植的么?
 楼主| lt19870405 发表于 2014-7-26 22:25 | 显示全部楼层
firstblood 发表于 2014-7-26 16:33
楼主调用的两函数的再其他TI的单片机或者MCU中可以移植的么?

型号不同,库文件不一样吧
 楼主| lt19870405 发表于 2014-7-26 22:28 | 显示全部楼层
试用后发现需要在生成w旋转因子的时候配置常数为2147483647.5,精度稍微有点影响,128个点的fft时间小于1ms,但IFFT与FFT对同样的输入源输出相同的数据,手动改写输出数据为负共轭之后再调用fft,输出值还是比较接近ifft的理论结果
angerbird 发表于 2014-7-27 17:07 | 显示全部楼层
也参考下楼上的意见的啊。
tianli1980 发表于 2014-7-29 14:08 | 显示全部楼层
同样的输入序列,我用自己写的FFT函数运算的结果是正确的,但是运算速度比ST的慢许多。不太明白,顶起!
jxmzzr 发表于 2014-7-30 16:53 | 显示全部楼层
定点DSP的溢出问题是很多程序调试问题的根源,要特别关注。
糖糖780 发表于 2014-8-4 22:00 | 显示全部楼层
您好,我想请教您一个问题。我用库里自带的函数gen_twiddle来计算128点FFT旋转因子的时候,得到的为什么是2*126呢?不是应该是2*128么?
masege 发表于 2015-7-29 17:08 | 显示全部楼层
你好,那个是必须先用gen_twiddle_fft32x32(int*w,int n,float scale); 产生旋转因子才能使用DSP_fft32x32 (int * w, int nx, int * x, int * y) 吗? 还是DSP_fft32x32自带产生旋转因子的函数啊?
tongbu2015 发表于 2015-7-29 21:55 | 显示全部楼层
就看到需要用用FFT算法的,很是需要多注意的啦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

35

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部