2011-06-18 10 views
1

私が無知な人になるかもしれないと私に許してください。しかし、ノートオンセット検出のためのフィルタアルゴリズムの使用に関するいくつかの質問をしたいと思います。ノートオンセット検出のフィルタに関する質問?

  1. 「検出機能」はオーディオ信号のフィルタと同じですか?または、一般に、検出機能、フィルタリング(信号の前処理)、およびピークピッキングの違いは何ですか?

  2. 私はローパス(またはハイパス)フィルタについて常に聞いてきましたが、私は混乱しています。私はそれが所定の閾値以下(またはそれ以上)の特定の周波数を取り消すことに働くことを読んだ。しかし、私はノートオンセットを計算するために時間領域を使用しています(つまり、信号振幅/エネルギーの変化を使用しています)。だから、ローパスフィルタリングをどのように時間領域に適用できるかはわかりません。ノートオンセット検出用の他の良いフィルタはありますか?

  3. スペクトルと位相のエネルギーの違いは何ですか? (私はスペクトルがスペクトラムや周波数を意味すると考えていますが、位相は何か分かりません)

  4. 私は動的しきい値処理をするのが難しいです。良いアルゴリズムのための任意の提案?上記画像に示すように

enter image description here

は、私が見逃しているノートオンセットがある:例えば、私は、次の信号を持っています。私のアルゴリズムの簡単な説明、私は計算し、オーディオ信号で発生するエネルギー/振幅の変化に注意してください。次に、私は最大の「エネルギー変化」を得て、感度に基づいて、そのパーセンテージをとり、それを閾値として設定します。これは、振幅/エネルギーの変化の度合いに対応する問題が発生する場所です。感度を低く設定すると、「ゴースト」オンセットが発生し、感度を高く設定すると、一部のオンセットが欠落します。私が使用しているアルゴリズムを改善するための提案(または新しいアルゴリズムの提案)はありますか?

私は、100%の精度を得ることは難しいと確信していますが、私が今持っているものと比較して、ノートオンセットの検出にはより良いアルゴリズムが必要です。私が得ることができるすべての助けに感謝します。どうもありがとうございました!

答えて

0

1つの方法は、振幅エンベロープの突然の増加を検出することです。振幅エンベロープを計算する1つの方法は、入力信号を整流する(すなわち、絶対値をとる)ことであり、次いでローパスフィルタリングすることである。タイムドメインフィルタの例とエンベロープフォロワーについては、http://www.musicdsp.orgのコード例を参照してください。