打印
[matlab]

请教关于fft ip核输出问题

[复制链接]
7206|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ldx521|  楼主 | 2012-12-6 20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
fft 核输出的结果第一个数不对。我做的是16点fft,输入数据为0+0*j,1+1*j.....15+15*j.matlab仿真的第一个数是120+120*j,但是ip核仿真出的却是296+296*j,其他15个点与matlab仿真相差1。请高手帮帮小弟。还有一个问题是:设置了scale_sch,fft  ip核输出的结果如何与matlab相对应?请大家多多指教。小弟在线等。万分感谢,谢谢

相关帖子

沙发
ldx521|  楼主 | 2012-12-6 20:27 | 只看该作者
呼叫猴哥,请猴哥帮忙分钟一下

使用特权

评论回复
板凳
hawksabre| | 2012-12-6 21:22 | 只看该作者
不太了解    呵呵   帮你顶一个   希望有高手能够帮忙

使用特权

评论回复
地板
hawksabre| | 2012-12-6 21:23 | 只看该作者
这个牵扯到你对FFT的理解问题。原则上如果不是解析信号,即信号只有实部或者虚部的话,如果只有实部,虚部为0,频谱应当关于y轴对称,如果只有虚部,实部为0,那么频域是关于零点对称。如果是解析信号的话,那么频谱是不对称的。上面说的对称是在数学上分析上是正确的,但在实际的运用中存在一个fft移位的问题。也就是说如果用matlab或者quartus运算fft的话,那么如果不做fft移位的话,那么频率数值上将不会出现负频率,也就是N点fft出现的结果数据是从0~n-1个频点的,没有负数,自然也就部会出现关于y轴或者零点对称。这种结果本身并没有问题,如果你认为错了,那么说明你没有理解fft。做N点fft的话,0~N/2-1是正频率,N/2~N是负频率。所以如果不进行fft移位的话,非解析信号他们的频谱应当是关于N/2点对称或者反对称的。在matlab中可以用fftshift进行移位,在FPGA中就没有这个必要了,知道了数据的含义直接用就可以,移位浪费时间,没有必要。在Quartus 的FFT IP核中,是一个时钟输出一个数据点,所以从source_sop开始,对应的是数据流的顺序就是你的频率点,但它是按时间顺序输出的,不需要将横坐标专门设置。这也是最基本的时频分析的基础。

使用特权

评论回复
5
hawksabre| | 2012-12-6 21:23 | 只看该作者
你看一下这篇**   不知道对你有没有帮助  呵呵   http://zhidao.baidu.com/question/110620210.html

使用特权

评论回复
6
hawksabre| | 2012-12-6 21:26 | 只看该作者
找了几篇技术**  希望对你有帮助  呵呵   多多的努力   

使用特权

评论回复
7
hawksabre| | 2012-12-6 21:29 | 只看该作者
你  自己看一看   

基于IP核的FPGA_FFT_算法模块的设计与实现.pdf

348.93 KB

基于Xilinx_FPGA_IP核的FFT算法的设计与实现.pdf

544.27 KB

基于FPGAIP核的FFT实现.pdf

399.28 KB

使用特权

评论回复
8
neufeifatonju| | 2012-12-6 21:31 | 只看该作者
这么快就结贴了,明白了?你QQ多少,我罗

使用特权

评论回复
9
ldx521|  楼主 | 2012-12-6 22:51 | 只看该作者
太感谢各位了   谢谢大家了    谢谢

使用特权

评论回复
10
ldx521|  楼主 | 2012-12-6 22:51 | 只看该作者
我的QQ是  540251841

使用特权

评论回复
11
ldx521|  楼主 | 2012-12-6 22:54 | 只看该作者
感谢hawksabre  在百忙之中 帮我查找相关资料并给我耐心讲解,谢谢,祝好人一生平安。:handshake:hug:

使用特权

评论回复
12
GoldSunMonkey| | 2012-12-6 23:35 | 只看该作者
解决了?

使用特权

评论回复
13
13631439419| | 2012-12-7 13:47 | 只看该作者

使用特权

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

本版积分规则

个人签名:自强不息  传铁人精神

6

主题

97

帖子

1

粉丝