アクティブノイズキャンセリング付きのイヤホンと同じように、リアルタイムでノイズキャンセリング用のソフトウェアをプログラムしたいと思います。オープンなアルゴリズム、または少なくともそれに関する科学論文はありますか?Google検索では、非リアルタイムのノイズリダクションに関する情報のみが見つかりました。
1 に答える
このサイトから
すべての通常のヘッドホン回路に加えて、アクティブノイズキャンセリングヘッドホンには、マイクと追加の特別な回路があります。基本的なレベルでは、ヘッドフォンのマイクが周囲のノイズを拾い、それを特別な回路に中継します。特別な回路が音を解釈し、逆(反対)の方法でそれを模倣します。それが生成する逆音はヘッドホンスピーカーを介して送信され、あなたの周りの周囲のノイズをキャンセルします。
これはすべて音波干渉に基づいています。逆位相の2つの波が干渉すると、結果は音になりません。(光でも機能します。)
波の干渉に関するウィキペディアのページを見て、外部ノイズをキャンセルするために生成する必要のある適切な位相を見つける必要があります。
正弦波システムの場合:
2つの波を取りましょう:
と
結果の波を次のように表現します。
A1が与えられた場合、 A0=0となるようなA2を見つけたいと思います。
これは、Phi1が与えられた場合、A0=0となるようなPhi2を見つける必要があることを意味します。
あなたはそれを証明することができます:
そして、A0 = 0を解くと、ノイズをキャンセルするために作成する必要のある波の周波数が得られます。これは破壊的干渉と呼ばれます。
音波は1次元ではないので、一方向に破壊的な干渉が発生します。
今、あなたはただいくつかの音信号を見つける必要があります...
私はあなたのコメントに答えようとします。
初め:
2Dの問題は、1Dの問題ほど難しくありません。
外部ノイズは、無限大にあるソースとして概算できます。ヘッドホンのソースで破壊的なノイズを作成し、ソースの等距離で振幅が同じであると想定できます。
それをax、y軸に書き留める必要があります(極座標を使用するとよい場合があります)
そして、次のような単純な三角法の式を使用して、計画の各ポイントの振幅を取得できます。
:\ sin(A + B)= \ sin A \ cdot \ cos B + \ cos A \ cdot \ sin B
:\ cos(A + B)= \ cos A \ cdot \ cos B-\ sin A \ cdot \ sin B
:\ sin(A-B)= \ sin A \ cdot \ cos B-\ cos A \ cdot \ sin B
:\ cos(A --B)= \ cos A \ cdot \ cos B + \ sin A \ cdot \ sin B
2番:
すべての遅延は、破壊的なソースの「ファイ」でモデル化されます。計算されたファイを適応させることができるので、遅延が考慮されます。
私の情報はあらゆる種類の波について非常に理論的であるため、音に関するより具体的な情報が必要になる場合があります。