FIR 抽取是整数下采样的最快方法吗?

信息处理 声音的 下采样 抽取
2022-02-19 17:33:34

对于我正在开发的数字音乐合成器,我有一个输入样本流xi并想通过下采样M获取样本流yMi. 我目前正在使用 FIR 对信号进行带通,这是一个由 Blackman-Harris 加窗的砖墙滤波器,我的耳朵听起来很棒。但我必须计算yMi=j=0N1xMijhj对于每个传出的样本。N通常是 64 到 256,并且M通常是 8 或 16,因此 FFT 卷积对于性能来说似乎不值得。

如果有比天真的 FIR 更好的方法来对这些比例的音频进行整数抽取?我可以在质量上做出一些合理的权衡以获得更好的性能吗?例如,多相抽取是一个不错的技巧,但由于 RAM/缓存不是问题,我相信它们应该以相同的速度运行,因为它们涉及相同数量的乘法。

1个回答

设计 FIR 滤波器的另一种方法是将脉冲响应与模拟原型的脉冲响应相匹配。这个想法是 IIR 通常可以被截断为 FIR。FIR 将不是对称的并且没有线性相位,但群延迟可以小得多。我相信弗里德兰德有一篇关于如何进行近似的论文。有一个 Matlab Signal Processing Toolkit 功能可以做到这一点,但我没有太多理由使用它。Comet 还可以进行非对称 FIR 设计。

我还建议您尝试使用 Parks Mclelan,如果它可以为您提供比使用窗口方法更短的过滤器