我正在为我的 Spartan-6 设计一个简单的一阶 IIR 滤波器,但我正在努力解决总线宽度和系数量化问题。
输入数据为 16 位宽,来自集成 ADC,量化噪声是前端噪声的主要噪声来源。
输入信号以大约 300kHz 的频率进行滤波,我想在 1Hz、10Hz、100Hz、1kHz、10kHz 的可调频率下实现一阶 IIR 滤波器:让我们关注 1Hz 滤波。理论上我应该能够获得 N = log2(300k) = 18 位的分辨率。
我计算了滤波器系数:
增益:3.1416e-6
分子:[1 1]
分母:[1 -0.999993717]
如何处理分数系数?我正在考虑将系数乘以 2^N,然后削减 N 个 LSB,选择 N 以获得系数的合理近似值。
假设我使用这种结构:
z-1 寄存器的总线宽度和使用这种乘法方法的 y 输出应该是多少?
感谢 Jonathan 的帮助,我仍然需要了解一些东西,所以让我们实际操作一下:首先,您认为哪种结构最适合 FPGA 实现?
无论如何,假设我乘以:
b = 3.1416e-6 * 2^36 --> 110100101101001111
a = 0.999993716 * 2^17 --> 011111111111111111
怎么办?:D