打印

blackfin 561的fft为什么这么恶心啊

[复制链接]
3348|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhjian1987|  楼主 | 2009-8-27 20:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
blackfin 561的fft库函数为什么是cfft_fr16,它采用的是fract16数据类型,输入只能在-1-1之间,如果超出这个范围结果就会错误,更恶心的是结果也不能超出这个范围,所以感觉这个函数很废啊,而我现在要进行16k个点的fft变换,所以输入的数需要远小于1,否则的话结果还是会大于1,会发生错误,再加上若进行静态或动态的scale,结果就小的很,fract16数据就无**确表示,截掉尾部的数据后很多数据都一样了。我该怎么办啊,求助中??

相关帖子

沙发
szfanlong| | 2009-8-27 22:02 | 只看该作者
在调用这个FFT函数之前,你必须用以下数据类型转换函数,这样应该就不会丢失数据精度。
fract32 float_to_fr32(float); // Converts a float to fract32
fract16 float_to_fr16(float); // Converts a float to fract16
float fr16_to_float(fract16); // Converts a fract16 to float
float fr32_to_float(fract32); // Converts a fract32 to float

fract32 fr16_to_fr32(fract16); // Deposits a fract16 to make a fract32
fract16 fr32_to_fr16(fract32); // Truncates a fract32 to make a fract16
fract32 float_to_fr32(float); // Converts a float to fract32
fract16 float_to_fr16(float); // Converts a float to fract16
float fr16_to_float(fract16); // Converts a fract16 to float
float fr32_to_float(fract32); // Converts a fract32 to float

使用特权

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

本版积分规则

5

主题

6

帖子

0

粉丝