FFT ip核仿真错误
时间:10-02
整理:3721RD
点击:
连续做了6天的FFT仿真,从对核的时序控制再到各种缓存数据变化,加窗,翻转,乘指数等等等等....
用的是quartues 12.0 fft ip.采样点数1024,采样频率250K。
系统结构如下:
AD——ram缓存——与rom中的hamming窗相乘——FFT输入——FFT输出逆序转正序——输出缓存RAM。
仿真时输入的正弦波为5K,直流分量是AD参考电压4.096的一半,并且将电压值通过matlab转换成对应的mif文件作为仿真AD输入。
在用modelsim仿真时将进入FFT前的与窗函数乘积后的数据通过matlab中的fft仿真如下图1所示:

图1 输入端仿真结果
从图中结果看出,AD进来的数据乘窗后再FFT结果是正确的。
然而.....
当用FFT核的输出数据在MATLAB中仿真,得到这样的结果!如图2.

图2
这简直是千差万别!
附上几个FFT核的时序仿真图。



时序仿真图看出,对核的控制也是正确的。那么问题到底出在哪呢?
还有个疑问,source_exp=-9时是向左移9位还是向右移9位?输出的结果到底要不要逆序?
花了这么长时间调试真是有点累了...希望能指点一下。
愿意帮助我的好心人加我QQ:399287955
或者回帖都可以先谢谢了!
用的是quartues 12.0 fft ip.采样点数1024,采样频率250K。
系统结构如下:
AD——ram缓存——与rom中的hamming窗相乘——FFT输入——FFT输出逆序转正序——输出缓存RAM。
仿真时输入的正弦波为5K,直流分量是AD参考电压4.096的一半,并且将电压值通过matlab转换成对应的mif文件作为仿真AD输入。
在用modelsim仿真时将进入FFT前的与窗函数乘积后的数据通过matlab中的fft仿真如下图1所示:

图1 输入端仿真结果
从图中结果看出,AD进来的数据乘窗后再FFT结果是正确的。
然而.....
当用FFT核的输出数据在MATLAB中仿真,得到这样的结果!如图2.

图2
这简直是千差万别!
附上几个FFT核的时序仿真图。



时序仿真图看出,对核的控制也是正确的。那么问题到底出在哪呢?
还有个疑问,source_exp=-9时是向左移9位还是向右移9位?输出的结果到底要不要逆序?
花了这么长时间调试真是有点累了...希望能指点一下。
愿意帮助我的好心人加我QQ:399287955
或者回帖都可以先谢谢了!
