2

私は自分の問題を解決することに成功することなく、たくさんグーグルで検索しました。wav ファイルまたはマイクから直接ダイヤル トーンを認識する必要があります。それよりも良いのは、ライン (オーディオ カードのライン入力に直接接続されている) が空いているかどうかを検出することです。

私の国 (イタリア) では、発信音は 425 Hz の音波です。私のアイデアは、マイクから2秒の録音をwavファイルに登録し、データをロードして離散FFTを適用し、結果でその周波数を検索することでした。ただし、何をコーディングすればよいかわかりません。

いくつかの問題があります: 1) 使用する DFT ライブラリ 2) バイトと倍精度の間の変換 3) 変換が完了した後、必要な周波数が存在するかどうかを複合配列から検出する方法

コードサンプルは大歓迎です!

前もって感謝します!

4

1 に答える 1

2

特定のトーンの有無を検出する最も簡単な方法は、Goertzel Filterです。これは、対象の周波数で DFT を効果的に評価するだけです。これは、完全な FFT を評価してから 1 つの出力ビンを除くすべてを破棄するよりもはるかに簡単で、計算コストも低くなります。

SO には、トーン検出 (DTMF 検出など) に Goertzel アルゴリズムを使用することに関する多くの質問と回答があります。役立つ情報とサンプル コードが含まれているため、これらのいくつかを学習することをお勧めします。

于 2012-12-23T20:46:43.870 に答える