谁能指出一个好的(对于“好”的任何值)无滞后因果带通滤波器的公式?
我正在做声音处理,我需要识别某些声音的起点(目标精度 <10 毫秒)。我一直在使用 Lanczos 滤波器,然后使用正弦波卷积来进行频谱分析,但这给了我偏斜的结果,因为任何给定时间的幅度都受到稍后发生的事情的影响(过滤器是非因果的)。
简单地切断 Lanczos 滤波器的右半部分就可以解决这个特定问题,但是产生的频谱被严重搞砸了(我得到了严重的边带溢出)。我尝试过的所有其他简单过滤器都更糟。
半小时的谷歌搜索出现了几次提到巴特沃斯滤波器,许多传递函数(我不太关心),但没有实际内核的公式。
编辑:让我尝试更具体。我从一个具有脉冲响应的窄带滤波器开始:
其中
2 ms 和N= 10,在500 Hz 时为 0 dB,在 440 以下或 560 Hz 以上时 <-40 dB。支持为 =40 ms。如果我在 t_0 时间从零到纯 500 Hz 正弦波的输入上使用它,则响应在时从恰好零到略高于零,在t_0 +NT时达到最大水平的一半,并在整个区域稳定时滤波器下方是正弦波。“有效”滞后(达到 50% 水平的时间)为 20 毫秒。
我想做的是使这种“有效”滞后尽可能接近零,同时保持整体辨别能力(能够区分 440 Hz 正弦波和 500 Hz 正弦波。)