上司は、iPhone を使用して、人間には聞こえない 20 ~ 24 Hz の音の周波数を認識するアプリを開発するよう私に求めています。(iPhoneの周波数特性:20Hz~20kHz)
これは可能ですか?はいの場合、誰かアドバイスをいただけますか?どこから始めれば?
上司は、iPhone を使用して、人間には聞こえない 20 ~ 24 Hz の音の周波数を認識するアプリを開発するよう私に求めています。(iPhoneの周波数特性:20Hz~20kHz)
これは可能ですか?はいの場合、誰かアドバイスをいただけますか?どこから始めれば?
これに取り掛かる前に、iPhone ハードウェアがそのような低周波を物理的に検出できることを確認する必要があります。ほとんどのマイクロフォンは低周波数での感度が非常に低く、消費者向けアナログ入力ステージには通常、〜 30 Hz 未満の周波数を減衰させるハイパス フィルターがあります。iPhone 上の既存のオーディオ キャプチャ アプリを使用して、目的の信号を含むいくつかのテスト サウンドをキャプチャしてみて、低周波成分が録音されるかどうかを確認する必要があります。そうでない場合、アプリは非スターターです。
あなたが探しているのは、高速フーリエ変換です。これは、時間ベースの信号を周波数ベースの信号に変換するために使用される主要なアルゴリズムです。
Accelerate フレームワークには FFT がサポートされているようです。それについては、すでにいくつかの投稿があります。
Apple には、Mac でこれを行うためのサンプル openCL コードがありますが、AFAIK openCL はまだ iOS にはありません。
マイクの周波数応答も確認する必要があります (ここで役立つマイクからオシロスコープ表示を行うアプリがいくつかあると思います)。
基本的な方法は、マイクから音の塊を取ることです。それをフィルタリングしてから、何をする必要があるかに応じて、周波数を下げてください。