マイクロホンアレイ・ビームフォーミング シミュレーター 戻る
音響・信号処理

マイクロホンアレイ・ビームフォーミング シミュレーター

複数マイクを直線状に並べ、遅延加算(Delay-and-Sum)法で特定方向の音だけを強調するビームフォーマを設計するツールです。マイク数・間隔・周波数・目標方向を変えると、ビーム幅・アレイ利得・干渉源抑圧・空間エイリアシング上限がリアルタイムで分かり、スマートスピーカーや会議システムの初段マイク設計の感覚をつかめます。

パラメータ設定
マイク数 N
アレイを構成するマイクの本数(素子数)
マイク間隔 d
cm
隣接マイクの中心間距離。λ/2 を超えるとエイリアシング
信号周波数 f
Hz
解析対象の音響周波数。音声帯域は 100〜8kHz が中心
音速 c
m/s
温度で変化(20°C ≈ 343 m/s)
目標方向 θ_s
°
強調したい音源(話者)の方向。0° はアレイ正面
干渉源方向 θ_i
°
抑圧したいノイズ源(妨害話者など)の方向
計算結果
波長 λ (m)
アレイ長 L (m)
半値全幅 HPBW (°)
アレイ利得 (dB)
エイリアス上限周波数 (Hz)
干渉源抑制比 (dB)
アレイ配置と波面 — リアルタイムアニメーション

N 個のマイクが横一列に並び、目標方向(緑矢印)からの平面波が同時刻に各マイクへ揃うよう遅延補正されます。赤矢印は干渉源方向。下の極座標がビームパターン(ローブ形状)です。

ビームパターン |B(θ)| (dB)
周波数依存 HPBW
理論・主要公式

$$y(t) = \sum_{n=0}^{N-1} w_n\, x_n\!\left(t - \tau_n\right),\qquad \tau_n = \frac{n\,d\,\sin\theta_s}{c}$$

遅延加算ビームフォーマの基本式。τ_n は n 番目マイクの遅延、θ_s は目標方向、c は音速。重み w_n = 1/N の均一加算で目標方向の信号が同相結合する。

$$\text{HPBW} \approx \frac{0.89\,\lambda}{L\,\cos\theta_s},\qquad L = (N-1)\,d$$

等間隔直線アレイ(ULA)の主ローブ半値全幅。λ は波長、L はアレイ開口長。低周波・短いアレイ・斜め方向ほどビームは太くなる。

$$|B(\theta)| = \left|\frac{\sin(N u)}{N\sin u}\right|,\quad u = \frac{\pi d}{\lambda}\bigl(\sin\theta - \sin\theta_s\bigr),\quad f_{\mathrm{alias}} = \frac{c}{2d}$$

アレイ係数(ビームパターン)と空間エイリアシング上限周波数。d ≥ λ/2 でグレーティングローブが現れ、目標方向と区別できなくなる。

マイクロホンアレイ・ビームフォーミング — 遅延加算法

🙋
スマートスピーカーって、部屋の中で「OK Google」って言うと、ちゃんと喋ってる方向の音だけ拾ってくれますよね?あれって、どうやって方向を見分けてるんですか?
🎓
いいところに気づいたね。あれが「マイクアレイ・ビームフォーミング」というやつだよ。Amazon Echo の輪っかの上、よく見ると小さな穴が 6〜7 個ぐらい開いてるよね。あれが全部マイクなんだ。音は方向によって、各マイクに届く時間が少しずつズレる。そのズレを逆に補正してから足し算すると、特定の方向の音だけ位相が揃って強くなって、他の方向の音は打ち消しあって弱くなる。これが一番シンプルな「遅延加算(Delay-and-Sum)」ビームフォーマだよ。
🙋
なるほど!じゃあマイクをたくさん並べれば並べるほど、ピンポイントに方向が絞れそうですね。左のスライダーで N を増やすと、確かにビームがどんどん細くなります。
🎓
そのとおり。HPBW(半値全幅)≒ 0.89·λ/L だから、アレイ長 L=(N−1)d を伸ばすほどビームは細くなる。ただし利得のほうは 10·log10(N) でしか増えない。マイク 8 個で +9dB、16 個で +12dB、32 個でも +15dB。素子数を 4 倍にしても 6dB しか得しないんだ。だからピンマイクの代わりに使うようなアレイでも、せいぜい 8〜16 素子に収まることが多い。
🙋
マイク間隔 d も増やしたら、もっとアレイが長くなって細いビームになるんですか?
🎓
それが落とし穴でね。d を広げすぎると「空間エイリアシング」が起こる。波長 λ の半分(λ/2)を超えた瞬間、目標方向と全く別の角度にも同じ強さの「グレーティングローブ」が現れて、別方向の音と区別がつかなくなるんだ。試しに d=5cm のままで周波数 f を 4000Hz に上げてみて。λ = 343/4000 = 8.6cm だから λ/2 = 4.3cm。d=5cm はもう超えてしまうから、verdict が NG に変わるはずだよ。アレイ上限は f_alias = c/(2d) で計算できる。
🙋
じゃあ、音声みたいに 100Hz〜8kHz と広い帯域を扱いたいときはどうするんですか?
🎓
広帯域用のアレイは、間隔の違うサブアレイを入れ子にする「ネステッド設計」をよく使う。低周波(長波長)用は間隔を広く(例 d=15cm)、高周波用は狭く(例 d=2cm)、周波数帯で使うマイクを切り替えるんだ。あとは遅延加算より高性能な MVDR(Capon)や GSC(一般化サイドローブキャンセラ)、近年なら深層学習ベースの neural beamforming で、適応的に干渉源を抑える方式もある。ただし基本の感覚は全部この遅延加算ビームフォーマで養えるから、まずはここのパラメータをいじって「ビームが太くなる/グレーティングローブが出る」を体感してみるといいよ。

よくある質問

複数マイクの信号それぞれに、目標方向 θ_s からの音が同時に揃うような時間遅延 τ_n = n·d·sinθ_s/c を付加し、加算して 1/N で割る空間フィルタです。目標方向の音は同相で強め合い、それ以外の方向は位相がずれるため打ち消し合います。最も基本的で計算量の少ないビームフォーマで、Smart Speakers や会議用マイクの初段に広く使われます。
マイク間隔 d が波長 λ の 1/2 を超えると、目標方向以外にも同じくらい強い「グレーティングローブ」が現れ、別方向の音を目標方向と区別できなくなります。これを空間エイリアシングと呼びます。アレイの使用上限周波数は f_max = c/(2d) で、例えば d=5cm のアレイでは 3.43kHz までしか正しくビームを形成できません。広帯域用途では狭い間隔のサブアレイを重ねるネステッド設計が用いられます。
等間隔直線アレイ(ULA)の主ローブ半値全幅は近似的に HPBW ≈ 0.89·λ/(L·cosθ_s) [rad] で表せます。L=(N−1)d はアレイ開口長、θ_s は目標方向です。波長 λ が長い(低周波)ほど、開口 L が短いほど、ビームは太くなります。また θ_s が 0° から離れるほど 1/cosθ_s で広がるため、横方向(エンドファイア側)では分解能が大きく落ちます。
白色雑音に対して、N 素子の遅延加算ビームフォーマの理論最大利得は 10·log10(N) [dB] です。マイク 8 個で +9.0dB、16 個で +12.0dB、32 個で +15.0dB と、素子数を 4 倍にするごとに 6dB しか増えません。実機では位相整合誤差・マイク感度ばらつき・残響により理論値より 1〜3dB 低下するのが普通で、12dB を超える実効利得を狙うなら校正と環境制御が必須になります。

実世界での応用

スマートスピーカー・スマート家電:Amazon Echo・Google Home・Apple HomePod などには、6〜7 素子の円形アレイや 2 素子のステレオ配置が組み込まれています。部屋の任意の方向から飛んでくる「OK Google」「Alexa」を検出すると、その方向にビームを向けて雑音と他話者を抑圧したうえで音声認識エンジンに渡します。遅延加算でラフに方向を絞り、後段で MVDR / 深層学習ベースの強化を重ねる二段構成が一般的です。

遠隔会議・Web 会議システム:Microsoft Teams 会議室・Zoom Rooms・Polycom・Logitech Rally などの会議用デバイスは、4〜16 素子のリニアまたは円形アレイを使い、発話者の方向を自動追尾します。ノート PC 内蔵の 2 素子マイクでも、シンプルな差動アレイで自分の声を強調し背景雑音を抑える処理が走っています。残響の多い会議室では HPBW を細くしすぎると話者を見失うため、ビーム幅は 20〜40° 程度に意図的に保ちます。

車載音声認識・補聴器:自動車では運転席方向にビームを向けて、エンジン音やロードノイズ・同乗者の声を抑圧します。ハンドル付近に 2〜4 素子の小型アレイを組み込むのが主流です。補聴器でも左右の耳に各 2 素子ずつのマイクを置き、目の前の話者方向を強調する「指向性モード」が標準機能になっています。低周波では波長が長くなり指向性が落ちるため、対象は主に 1〜4kHz の子音帯域です。

ソナー・音源定位・無人機検出:水中のソナー(潜水艦・魚群探知)や、ドローン検知用の音響カメラでは、数十〜数百素子の大型アレイで音源方向を推定します。ビームフォーミングの出力を全方向にスキャンしてピークを取れば、それが音源位置の推定値です。MUSIC や ESPRIT といった高分解能 DoA(方向推定)法は遅延加算の延長線上にあり、まずは本ツールで遅延加算の感覚を掴むことが、応用アルゴリズムの理解の前提になります。

よくある誤解と注意点

第一の落とし穴は、「マイクを増やせばいくらでもビームが細くなる」と思い込むことです。確かに HPBW ≒ 0.89·λ/L はアレイ長 L に反比例しますが、利得は 10·log10(N) で +6dB/4倍 しか伸びません。さらに素子間隔を狭くしてマイクをぎゅう詰めにすると、隣接マイクの相関が高くなり、独立な情報量が減ってしまいます。実機では位相整合誤差・マイク感度のばらつきも累積するため、32 素子を超える設計は校正コストに見合わず、8〜16 素子に収めるのが現実的な落としどころです。

第二に、「d は λ/2 ぎりぎりまで広げれば一番分解能が高い」と考えるのも危険です。設計周波数では確かに良いのですが、想定外の高い周波数成分(高調波や非定常雑音)が来た瞬間にグレーティングローブが立ち上がり、誤った方向から音が来ているように見えてしまいます。広帯域音声では d を上限の 0.6〜0.7 倍程度に抑え、必要なら異なる d のサブアレイをネストする設計が安全です。本ツールで f を上げていくと verdict が NG に変わる瞬間を体験できます。

第三に、「遅延加算だけで実用十分」と考えると残響と非定常ノイズに負けます。遅延加算は到来方向(DoA)が既知の点音源を想定した最適解であり、反射音だらけの部屋や、干渉源が動いている状況ではビームから漏れた残響が回り込み、SN 改善が頭打ちになります。実機では適応型の MVDR(Capon)、GSC、近年では deep neural beamforming(Conv-TasNet 系)と組み合わせるのが普通で、本ツールが示す理論上限は「これを超えるならアダプティブ処理が必要」というベンチマークとして使ってください。

使い方ガイド

  1. マイク数(4~32本)と間隔(0.01~0.5m)を設定し、直線アレイの物理構成を決定する
  2. 音声周波数(100~10000Hz)と音速(340m/s標準)を入力し、波長λと空間エイリアス上限周波数を確認する
  3. 目標方向(-90°~+90°)を指定すると、各マイクの遅延時間が自動計算され、ビーム幅(HPBW)・アレイ利得・干渉源抑制比がリアルタイム表示される

具体的な計算例

マイク8本、間隔0.05m、周波数2000Hz、音速340m/s、目標方向0°(正面)の場合:アレイ長L=0.35m、波長λ=0.17m、半値全幅HPBW≈14.3°、アレイ利得≈9.0dB、エイリアス上限周波数≈3400Hzが得られる。マイク16本に増やすとHPBW≈7.1°に狭くなり、利得も≈12dBに向上する一方、側葉が発生するため干渉源抑制比は-15dB程度に低下する可能性がある。

実務での注意点