发 帖  
原厂入驻New
[问答]

fpga实现FFT算法,蝶形运算系数扩大后,结果不正确?

674 FPGA
分享
以下是matlab实现FFT所计算出的实部和虚部。
c=[1,2,2,2,0,1,1,1];n = 0:7;
y = fft(c);
for i = 1 : 8
    yreal(i) = fix(real(y(i)));
    yimag(i) = fix(imag(y(i)));
end
yint = [yreal; yimag]
同样用matlab计算出W系数,在不扩大系数时,蝶形运算和matlab的结果相符,在我扩大2的整数倍时,所计算的结果就不正确,也不是说除以2的整数倍就是正确的结果。


0
2020-11-16 14:18:08   评论 分享淘帖 邀请回答
1个回答
1.对所有旋转因子都放大2^Q倍,Q必须要大于等于L,以保证不同旋转因子的差异化。旋转因子放大,为了保证其模为1,在每一次蝶形运算的乘积运算中我们需要将结果右移Q位来抵消这个放大,从而得到正确的结果。
我用的例子为八序列,经过上述1的计算,matlab计算fft得到252   140   -90    43  -256    43   -90   140。自己算得到252   116   -90    67  -256    67   -90   116。有四个点的误差为30多,不知道这是否是正常现象???????
2020-11-16 17:39:21 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
我要提问
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表