マイクでは、ある時点で、定義された周波数 (500hz) の音が流れ始めます。信号がマイクに届き始めた時期を知るにはどうすればよいですか? この問題を解決するには、FFT(高速フーリエ変換)を使用する必要があることを知っています。しかし、私は理解していません.FFT周波数の後にどのように取ればよいですか? C# で NAudio を使用しています。そして、マイクからの私のバッファはバイト配列です。
質問する
1282 次
3 に答える
2
これに FFT を使用するのはやり過ぎであり、特に適切ではありません。この種の問題 (トーン検出/オンセット検出) のはるかに簡単な解決策は、Goertzel フィルターです。
于 2012-10-22T11:24:21.903 に答える
1
信号がバッファにサンプリングされるタイミングを決定することは、プログラム上の問題です。
これは、サンプリングされた信号の周波数成分が何であるかを(FFTを使用して)決定することとは関係ありません。他の質問については私の返信を参照してください...
于 2012-10-22T11:14:10.503 に答える
1
狭い IIR バンドパス フィルターの後にエンベロープ検出器を使用することは、試してみる 1 つの可能な方法かもしれません。試してみるべきもう 1 つのことは、トーン バーストの立ち上がり時間がわかっている場合は、一致したフィルターに対する相互相関です。オーディオ入力信号パスのレイテンシも調整する必要があります。
于 2012-10-23T05:49:49.867 に答える