我正在寻找一种算法或实现的想法。我需要实时过滤信号,并想改变它的长度(抽头数)以改变延迟。
- 在低信号环境中,我想要一个高阶滤波器并且不太关心延迟
- 在高信号环境中,我想要一个低阶滤波器以最小化延迟。
我尝试在谷歌上搜索“可变长度过滤器...”,但所有结果都是 LMS 算法的版本,但我没有可以使用的“干净噪声”参考信号。
有没有人听说过这样的事情?谢谢 :)
我正在寻找一种算法或实现的想法。我需要实时过滤信号,并想改变它的长度(抽头数)以改变延迟。
我尝试在谷歌上搜索“可变长度过滤器...”,但所有结果都是 LMS 算法的版本,但我没有可以使用的“干净噪声”参考信号。
有没有人听说过这样的事情?谢谢 :)
一种可能的实现是并行运行两个(或更多)不同阶的滤波器,并使用混频器通过根据您的选择标准上下倾斜增益来混合它们。
我会为两个滤波器使用一条延迟线。当然延迟线必须根据最高阶的滤波器来选择。根据 SNR(或任何您的标准),您可以在两组滤波器系数之间切换。对于低阶滤波器,您将获得一些零系数,因此对于有效的实现,您可能希望避免不必要的零乘法和加法。如有必要,您还可以实现从一组滤波器系数到另一组的逐渐变化。您可以通过计算两组系数之间的差异,并通过在每个时间步中将这个差异的一部分添加或减去当前系数来实现这一点。