在 Scipy 或许多其他工具中制作过滤器非常容易,但在 C 或 VHDL/Verilog 中以定点实现此过滤器始终是一件苦差事。我的意思是,从理论上讲,这只是对系数进行充分舍入和缩放,然后将结果按比例缩小的问题。在实践中,“充分”是一个大词。
获取 Scipy 输出并编写一个小循环来缩放系数,直到它们满足某个错误阈值,然后计算所需的位数并将它们输入到一些模板实现中,这似乎是相当可行的。
我只是在想,我肯定不是第一个设计定点滤波器的人,而且人们已经提出了比完全手工完成更优化和自动化的方法?
也许一些不虔诚的 Matlab 工具箱组合可以做到这一点?到目前为止,过滤器工具箱和 C/HDL 工具箱并不喜欢我正在做的事情。fdesign.lowpass is not supported for code generation
也不是 Matlab 的忠实粉丝,所以如果有 FOSS 解决方案,那将是可取的。