微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog逆序转顺序问题,FFT转换后数据处理问题。

verilog逆序转顺序问题,FFT转换后数据处理问题。

时间:10-02 整理:3721RD 点击:
最近做FFT变换,顺序输入1024个点,逆序输出1024个点。那么既然是逆序输出当然要把这个逆序的数翻译成顺序的数才能按照
                            公式     f=(n-1)*Fs/N
来求出接收到的这个数据代表第几个频率点的值对吧?
我自己写了个逆序的代码如下(以8个点的逆序为例):

  1. assign code_out[2]=code_in[0];
  2. assign code_out[1]=code_in[1];
  3. assign code_out[0]=code_in[2];

复制代码


8个点的可以这样写,但是1024甚至更多个点的应该怎么写?肯定有简便的写法吧,求举个例子。谢谢啦!
第二个问题是FFT转换后数据处理的问题。
我们都知道,FFT的数据具有对称性,就是只用取频率小于Fs/2的点,也即取前N/2个点的数据进行计算即可(不知道这样说对不对)
那么FFT输出的又是逆序的,不可能只判断前N/2个点,那岂不是很浪费资源和运算时间?有没有什么好的解决办法呢?
最后想问一下做过FFT的前辈们,你们是如何处理FFT输出的数据的?

问题1,用for或者generate
问题2,实输入FFT的才有对称性。不知道你说的逆序是什么意思,是选择bitreverse输出吗?我用的xilinx的ip可以选择natual order输出结果。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top