FPGA实现FIR滤波器时,系数位宽怎么确定

如题所述

1、理论上大于10m就ok了,但是实际中肯定要留有余量的,40m可以,主要看你的主频能做到多少了。
2、不管是正数还是负数,在FPGA中最好都用补码表示。
3、截位当然是截断最低的位,高位截断了数据就错了。
还有问题就是你这样做肯定只能用并行的方法来做了,因为你用大于10m的采样频率,如果你用10阶的FIR滤波器,同时需要9个乘法器,不知道你的数据是多少位的,也不知道你的FIR是多少阶的,如果位数宽,且阶数多的话,你的FPGA可能没有这么多的乘法器,
还有不知道FPGA里面的乘法器是不是补码乘法器,如果不是的话,你的数据表示方法如果用补码的话,乘法之前要求原码,乘法器之后还要再求补码,可能得不偿失,这样的话可以考虑用原
码表示整数和负数。
关于补充:你的第一个问题没有提到时钟频率啊。
如果你的时钟频率比采样频率高很多的话,就可以用串行的方法来做,这样的话需要很高的时钟频率,但是省资源(乘法器和加法器),如果你没有很高的时钟,只能串行做,这种方法适用于时钟频率等于或者略大于时钟频率。
硬件类一般都上硬之城看那里比较专业,专业的问题专业解决,这是最快的也是最好的方法,好过自己瞎搞,因为电子元器件的电子型号那些太多了一不小心就会弄错,所以还是找专业的帮你解决。
温馨提示:答案为网友推荐,仅供参考
相似回答