【问题标题】:IIR filter coefficients for the high center frequencies高中心频率的 IIR 滤波器系数
【发布时间】:2015-11-27 03:29:20
【问题描述】:

我正在尝试创建自己的均衡器。我想实现 10 个 IIR 带通滤波器。我知道计算这些的方程式,但我读到对于更高的中心频率(6000Hz 以上),它们的计算方式应该不同。当然,我不知道如何(以及为什么)。或者也许这都是谎言,我不需要其他系数?

来源:http://cache.freescale.com/files/dsp/doc/app_note/AN2110.pdf

【问题讨论】:

    标签: audio signals filtering signal-processing equalizer


    【解决方案1】:

    你没有仔细阅读;应用笔记说“f_s/8(或 6000Hz)”,因为就写的目的而言,采样率为 48000Hz。

    但是,这是对过滤器的非常狭隘的看法;将应用笔记中方程 4、5、6 中涉及的角度绘制成 s 平面图,这看起来很有意义,但这些并不是唯一的过滤器选项。 AN 提出的观点是,这些是简单的公式,近似于“好”滤波器(因为设计 IIR 通常有点复杂),它们只能在 f_2/8 以下使用。我没有试图弄清楚在更高频率下数学上会发生什么,但我只是猜测过滤器之后的均匀性并不好。

    因此,我的方法只是使用任何滤波器设计工具为您计算系数。例如,您可以使用 Matlab 的滤波器设计工具,或者您可以使用 GNU Radio 的gr_filter_design,为您提供 IIR。但是,自动找到的 IIR 通常会超过 3 个抽头,除非您非常非常了解如何在数学上定义您的设计要求,以便算法按照您的意愿行事。

    尽管我很喜欢使用 IIR 进行音频均衡的方法,但相位无关紧要,但我想说应用程序节点中的方法并不容易理解,除非您在滤波器/系统理论方面具有非常扎实的背景.我想您要么使用电气工程教科书学习一些信号理论,要么只接受 p 上给出的系数。 28 分钟。

    【讨论】:

    • fwiw,在 16kHz 时,“近似”beta 为 0.01870868,而表中的 beta 为 0.1800994。我认为最终结果将是中心频率落在错误的位置 - 除其他外。
    • 感谢您的回复!事实是我正在构建自己的音箱并想添加均衡器。我真的不需要一些很棒的过滤器,只需要一些可以正常工作的东西。问题是输入音频的采样率可能与 48kHz 不同,所以我想在每次音频输入改变时生成系数。这只是一个暑期项目,我想避免大量阅读。也许我应该为大多数可能的采样率生成系数?你怎么看?
    • @clapik:肯定会预先计算水龙头的可能速率,是的。好吧,对于这种音频应用程序:从参考中获取抽头,并以不同的采样率尝试它们 (python/w,h=scipy.signal.freqz(tapsden,tapsnom)/matplotlib.pyplot.plot(w,h ) 是你的朋友),然后稍微调整它们直到它们适合^^
    • @clapik:顺便说一下,为了你的目的,做例如128-FFT 并将标量因子分配给 bin 组可能就足够了。低频使用小组,高频使用大型组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 2012-04-06
    • 2013-12-05
    • 2014-05-11
    • 2011-03-11
    • 2016-07-30
    相关资源
    最近更新 更多