打印

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

[复制链接]
4625|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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里面自带的啊。

使用特权

评论回复
5
firstblood| | 2014-7-26 16:33 | 只看该作者
楼主调用的两函数的再其他TI的单片机或者MCU中可以移植的么?

使用特权

评论回复
6
lt19870405|  楼主 | 2014-7-26 22:25 | 只看该作者
firstblood 发表于 2014-7-26 16:33
楼主调用的两函数的再其他TI的单片机或者MCU中可以移植的么?

型号不同,库文件不一样吧

使用特权

评论回复
7
lt19870405|  楼主 | 2014-7-26 22:28 | 只看该作者
试用后发现需要在生成w旋转因子的时候配置常数为2147483647.5,精度稍微有点影响,128个点的fft时间小于1ms,但IFFT与FFT对同样的输入源输出相同的数据,手动改写输出数据为负共轭之后再调用fft,输出值还是比较接近ifft的理论结果

使用特权

评论回复
8
angerbird| | 2014-7-27 17:07 | 只看该作者
也参考下楼上的意见的啊。

使用特权

评论回复
9
tianli1980| | 2014-7-29 14:08 | 只看该作者
同样的输入序列,我用自己写的FFT函数运算的结果是正确的,但是运算速度比ST的慢许多。不太明白,顶起!

使用特权

评论回复
10
jxmzzr| | 2014-7-30 16:53 | 只看该作者
定点DSP的溢出问题是很多程序调试问题的根源,要特别关注。

使用特权

评论回复
11
糖糖780| | 2014-8-4 22:00 | 只看该作者
您好,我想请教您一个问题。我用库里自带的函数gen_twiddle来计算128点FFT旋转因子的时候,得到的为什么是2*126呢?不是应该是2*128么?

使用特权

评论回复
12
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自带产生旋转因子的函数啊?

使用特权

评论回复
13
tongbu2015| | 2015-7-29 21:55 | 只看该作者
就看到需要用用FFT算法的,很是需要多注意的啦。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

35

帖子

0

粉丝