2012-05-07 6 views
1

私は自己生成音を識別する方法を探しています。トーンの生成と検出

私の考えは、ステレオに比べて2つの異なる音を使うことです。 2つのトーンの周波数は異なります。次に、マイクのために作られたケーブルを元の音色に戻します。ケーブルには左右のチャンネルを切り替える2つのスイッチがあります。

マイク入力に到着した2つの周波数のうち、どの周波数に到達したのかをメモしてから、それらを数えます。

私は多くのことを試しましたが、何も成功しませんでした。まあ、私はDTMFに出くわしましたが、Androidでの実装は不十分です。

私は次に何を試すことができますか?

答えて

2

入力オーディオの高速フーリエ変換(FFT)を行う必要があります。あなたがする必要があるのは、オーディオの短いウィンドウをキャプチャし、FFTを実行し、その結果を分析することです。 FFTは使い慣れていないと少し複雑ですが、周波数が十分に離れていれば、トーンを数えて測定することは可能です。

+0

私は同意します。 FFTは信号処理で最も重要なアルゴリズムです。あなたの質問が "信号の周波数を分析するにはどうすればいいですか"という質問は、おそらく "FFTを計算する"から始まるでしょう。特定の周波数を正確に把握していれば、FFTは最も一般的で強力なツールですが、いくつかの特殊な最適化があるかもしれません。 – japreiss

+0

FFTで正しい周波数を録音するのにどれくらい時間がかかりますか?スイッチはわずか10msだけ閉じられます。 – MrDyro

+0

ウィンドウサイズ(例えば、10ms)は、トーンが検出される頻度がどのくらい離れていなければならないかを決定する。 44.1KHzのサンプリングレートで10msのオーディオを録音すると、データはあまり必要ありません。トーンが最低でも500 Hzの周波数で区切られていることを確認し、FFT出力に明確なピークが現れる可能性があることを確認してください。 – 10flow

1

FSK変調と復調を使用できます。 FFTは必要ありません。これは、狭帯域のDSPフィルタ(Goertzelフィルタの2つ)または直交復調器によってより簡単に実行できるためです。

関連する問題