アダプティブビームフォーミングで広範囲に働いたので、経験を積むまで、このために自分で何かをハッキングすることを本当に恥ずかしがりました。(注:約60チャネルのプロフェッショナルソリューションのコストは約100k€です。多くのチャネルを使用すると、空間解像度ははるかに向上しますが、USBポートから取得できる情報は限られています...)
信頼性の高いビームフォーミングには、すべてのマイクが同じタイムベースを使用することが不可欠です。これを実現する最も簡単な方法は、複数の入力チャンネルを持つ外部USBサウンドカードを使用することです。しかし、それらは本当に安くはありません。ebayで何が見つかるか見てきましたか?
別の方法は、たとえばそれぞれ2つのチャネルを持つ多数のUSBサウンドカードを使用して、共通のタイムベースを犠牲にすることです。ただし、取得システムを較正する必要があります。これは実際にはそれほど難しくありません:
調整するには、アレイをセットアップし、アレイの範囲のオーダーのアレイからの距離で短い音(たとえば、クラック/クラップなど)を生成します。次に、この音を録音し、Matlabなどを使用して、クラップ/クラック/などの間の相互相関を計算します。さまざまなチャネルで。これにより、チャネルに適用してビームフォーミングアルゴリズムにデータを供給する前にチャネルを調整する必要がある時間オフセットのリストが表示されます。
適応ビームフォーミングを探求するために、これはおそらくマルチチャンネルサウンドカードで掘り出し物を作れない限り、行くべき方法です。
編集1
この編集は、コメントで提起された質問に答えることです。
遅延と和のビームフォーミングの基本的な考え方は、異なる取得チャンネルに遅延を適用し、異なるチャンネルからの信号が追加されたときに空間のある点から発生する音が整列して「増幅」することです。空間の他の領域から発生する音は整列しないため、「増幅」されません。
特定の一連の遅延を使用して音が整列する空間内のポイントは、マイクアレイ(または焦点)の焦点と呼ばれます。ただし、実際には、焦点は理想的なポイントではなく、音がうまく整列する空間の小さな(ish)(配列に依存)領域です。この領域のサイズは、焦点のサイズと呼ばれます。
ジオメトリ(サイズ、形状など)は、アレイの正確な詳細(マイクの数、マイクの間隔、目的の信号の周波数成分)に依存します。たとえば、この記事を参照してください。
詳細については、超音波で「フェーズドアレイ」または「リニアアレイ」に焦点を当てることに関するテキストを参照してください。ビームフォーミングは、受信(空間の特定のポイントからの信号を増幅する)または放射(部屋に「大きな」スポットを作成する)に使用できます。原則は同じです。思考の中で「マイク」を「スピーカー」に置き換えてください。
キャリブレーション手順に関して:あなたは正しいです。私が概説した手順は単純すぎます。関心のある空間の領域よりもはるかに長い距離からキャリブレーションクラップを作成できる場合にのみ、うまく機能します。つまり、単純な波を確保するためです。
これが不可能な場合は、拍手の位置を考慮する必要があります。この場合、最も簡単な手順は、説明したように相互相関によって遅延を修正することです。ただし、「逆ビームフォーミング」遅延セットを適用して、波面の曲率を信号に戻します。拍手。(つまり、「通常の」ビームフォーミングアルゴリズムで深度変数+ t0(または+ z0)を使用する場合、逆ビームフォーミングアルゴリズムには-t0(または-z0)を使用する必要があります。)
このキャリブレーションのポイントは何ですか:異なるサウンドカードがわずかに異なる時間に録音を開始することによるエラーを排除します。これにより、通常、正しい遅延があっても信号が適切に調整されないため、目的の増幅効果が防止されます。