我正在开发一个系统,将 18 位 ADC 输出输入到 Xilinx FPGA 上的 FIR 滤波器。我有点担心我可能代表错误的数字。我的 ADC 输出一个有符号的 18 位数字。
- 我将 ADC 输出视为具有一个整数(符号位,MSb)和 17 个小数位的定点十进制。
- 我将我的 FIR 滤波器系数表示为带符号的小数,范围在 -1 和 1 之间。我不确定要使用什么“正确”精度。
- 我不希望我的 FIR 滤波器有任何增益,只是在阻带中衰减。
我看到了两种方法来做到这一点 - 将所有内容视为整数或将所有内容视为十进制,每个都用 MSb 符号位签名。如果输出不是很大的位宽,我有很好的灵活性来适应输出上不同的小数/整数宽度。
哪个是正确的方法?我用 Python 生成我的滤波器系数,我应该把它们变成什么格式(整数 v 十进制)?
有没有一种很好的算法方法来选择我用来表示系数的位数?