■フーリエ解析(14): フーリエ変換を利用した音源位置の推定(CSP法)

 2次元平面上における音源の位置は、周囲に設置された3個のマイクに音が到達する時間差から推定できます。

 マイクの位置をM1、M2、M3とすると、音源位置はM1、M2を焦点とする双曲線1-2と M1、M3を焦点とする双曲線1-3の交点となります。

 2つのマイクM1とM2(あるいはM1とM3)に音が到達する時間差の算出法には幾つかの方法が知られていますが、ここではCSP法による到達時間差(Delay Of Arrival:DOA)算出法を利用して、音源位置を推定するアプレットを紹介します。
 ●CSP法とは
 CSP(Cross-power Spectrum Phase analysis:白色化相互相関法)では、2つのマイクの入力波形:s1(n)、s2(n)に対して、周波数領域でのマッチングを行い、類似度 CSP1,2(h)が最大となる遅延量を求めてDOAとします。

具体的な計算手順は次のとおりです。

1.入力波形:s1(n)、s2(n) [n = 0, 1, .., N-1] を離散フーリエ変換(DFTまたはFFT)する。
   S1(k) = n=0N-1 s1 (n)W nk

   S2(k) = n=0N-1 s2 (n)W nk

   ここで、 W = e-j2π/N
        N : データ数(サンプル数)
        k : 0, 1, .., N-1

2.それらを振幅で正規化する。
   S1(k) /|S1(k)| = n=0N-1 s1 (n)W nk / |n=0N-1 s1 (n)W nk

   S2(k) /|S2(k)| = n=0N-1 s2 (n)W nk / |n=0N-1 s2 (n)W nk

3.両者の相互相関関数を求める。
   S1,2(k) = S1(k) S2(k)* /|S1(k)|/|S2(k)|

   ここで、 * : 共役を表す

4.それを離散フーリエ逆変換(IDFTまたはIFFT)して、CSP係数を求める。
   CSP1,2(h) = (1/N)k=0N-1 S1,2(k)W -hk

   ここで、 h : 0, 1, .., N-1

5.CSP係数が最大となるサンプル差(位相差)hを求めて、δ1,2とおく。
   δ1,2 = argmaxh[CSP1,2(h)]

6.到達時間差(DOA)を算出する。
   τ1,2 = δ1,2 / Fs

   ここで、 Fs : サンプリング周波数(Hz)
 ●CSP法により音源位置を推定するアプレット
・平面上(音場)にマイクが3個設置されています。
・ここで音源の位置をマウスでクリックします。
  この点を通り、マイク位置1,2を焦点とする双曲線が青色で表示されます。
・各マイクで受音された音声データ(波形)が画面右上に表示されます。
・「計算」ボタンを押すと、この音声データからCSP法を利用して到達時間差、音源位置が算出されて画面左上に表示されます(ピンク)。
  2本の双曲線の交点が算出(推定)された音源位置です。
・相互相関関数Si,j(k)が画面左下に、CSP係数CSPi,j(h)が画面右下に表示されます。



・マイク位置を変更することができます。
・「area表示」ボタンを押すと、音源位置の候補点が2つ(双曲線の交点が2個)ある領域が表示されます。
  この領域で音が発生すると、3個のマイクではどちらが音源か判定できません。
・サンプリング周波数 Fs = 8200Hz、データ数 N = 1024としています。
 ●CSP法についての補足

  [1]到達時間差、位相差(サンプル差)の正負について
 2つのマイクM1、M2に対して、音源がM1に近い場合はM2には遅れて音波が到達し、前述の到達時間差τs1,2は正の値となります。
 逆に音源がM2に近い場合はM2には早く音波が到達しますが、前述の到達時間差τs1,2はこの場合も正の値となります。

 音源が2つのマイクのいずれに近いかはδ1,2の値の範囲で判断できます。
  ・δ1,2 < N/2 の時 ---> マイク1に近い
  ・δ1,2 > N/2 の時 ---> マイク2に近い

 これはサンプリング周波数 Fs( = 8200Hz)、データ数 N( = 1024)、音速 V( = 340m/s)と現在の音場の広さ(マイク間の距離)の関係から導くことができます。

 位相差(サンプル差) N/2 = 512 は
   V x N/2/Fs = 340 x 512 / 8200 = 21.2m
の距離差に相当しますが、約20m四方の音場とマイク配置から最大距離差は約15mとなります。 従って、この条件下では距離差が20mを越えることはないわけです。

 また、CSP係数の次の性質:
    CSP2,1(N - h) = CSP1,2(h)*

   |CSP2,1(N - h)| = |CSP1,2(h)|

から、音源がマイク2に近い場合は(N - 本来の位相差)がδ1,2として得られるので、この場合 本アプレットでは本来の位相差(N - δ1,2)をマイナス表示にしています。
  [2]通常の相互相関関数による方法との比較
 到達時間差の算出法にはCSP法以外にも、入力波形 s1(n)、s2(n) [n = 0, 1, .., N-1]の相互相関関数による方法などもありますが、CSP法を用いた算出法が精度の点から好ましいと言われています。
[参考文献]
 1.小林智行 他: 2007年 電子情報通信学会総合大会発表論文
             "非較正マイク群を用いた音源位置区別のための尺度"

(続々々)音の出所はどこ? [相互相関法による音源位置の同定]
フーリエ解析(8): 離散フーリエ変換(DFT)
フーリエ解析(11): 高速フーリエ変換(FFT)
ホーム