仪器社区

FIR滤波器输出有效位截取问题,怎么解决?

哪敢说你半句 2018-03-05
在使用altera提供的FIR IPcore时,输入设定为有符号数24位,滤波器系数设为12位有符号数,输出全精度的时候为37位有符号数,这是为什么? 现在我想截取16位输出,请问在截取时应该遵循什么原则,才能使输出精度相对来说比较高?
评论
全部评论
飥諼谟714
Altera的我不知道,我看到过Xilinx的。
一位大侠是这么说的
首先,我要告诉你的是Xilinx是如何给出的输出位宽。
OutputWidth=coefwidth+inputwidth+ceil(log2(Tap)) (*)
比如,这里coefwidth=12, inputwidth=12, Tap是滤波器的阶数,ceil是向上取整。如果阶数为48,Z接近48的2^n为64,
那么,(*)式Z后一项即为6,那么输出位宽即为30。

如何截位?首先,应该求出输出的Z大值,
Max(output)=Max(input)*sum(abs(coef)) (a)
这样保证不溢出,求得输出的Z大值,化为二进制当然是补码了,即可确定输出Z大位宽,系数和输入都是有符号二进制补码表示,
那么高两位都是符号位,从次高位向下截取(a)式所确定的位宽,但这时所得位宽仍较大,实际上由于ad量化噪声引起的部分还可
以去除,使得Z终位宽仍可进一步减小。但目标是大信号不溢出,小信号不损失。
3 0 2018-03-06 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论