有关音符开始检测的滤镜的问题?

时间:2011-06-18 03:54:48

标签: audio filter signal-processing onset-detection

请原谅我,如果我可能会无知,但我想问一些关于使用滤波算法进行音符开始检测的问题。

  1. “检测功能”与在音频信号上使用滤波器相同吗?或者一般来说,检测功能,过滤(预处理信号)和峰值拾取之间有什么区别?

  2. 我一直听说过低通(或高通)滤波器,但我很困惑。我读到它可以消除某些低于(或高于)某个阈值的频率。但是,我使用时域来计算音符开始(即使用信号幅度/能量的变化)。所以我不确定如何将低通滤波应用于时域。用于音符开始检测的任何其他好的过滤器?

  3. 光谱和相位能量有什么区别? (我知道光谱指的是光谱或频率,但我不知道相是什么)

  4. 我在使用动态阈值处理方面遇到了困难。对优秀算法的任何建议?例如,我有以下信号:

  5. enter image description here

    如上图所示,我错过了一些音符。我的算法的简要描述,我计算并注意音频信号中发生的能量/幅度变化。然后我得到最大的“能量变化”,并根据灵敏度,我取一个百分比并将其设置为阈值。所以这就是处理不同程度的幅度/能量的问题。如果我将灵敏度设置得太低,我会想出“鬼”开始,如果我将灵敏度设置得太高,我会错过一些开始。有没有改进我正在使用的算法(或建议新算法)的建议?

    我确信难以获得100%的准确度,但我需要有一个更好的音符开始检测算法,与现在相比。我很感激能得到的所有帮助。非常感谢你!

1 个答案:

答案 0 :(得分:0)

一种方法是检测振幅包络的突然增加。计算幅度包络的一种方法是对输入信号进行整流(即取绝对值),然后对其进行低通滤波。查看http://www.musicdsp.org中的代码示例,了解时域过滤器示例和信封关注者。