第 6 章 ノードリファレンス 45
6.2 Localization カテゴリ
6.2.4 CMMakerFromFFT
ノードの概要
MultiFFTノードから出力されるマルチチャネル複素スペクトルから,音源定位のための相関行列を一定周期
で生成する.
必要なファイル 無し.
使用方法
どんなときに使うのか
LocalizeMUSICノードの音源定位において,雑音等の特定の音源を抑圧したい場合は,あらかじめ雑音情報
を含む相関行列を用意する必要がある.本ノードは,MultiFFTノードから出力されるマルチチャネル複素スペ クトルから,相関行列を一定周期で生成する.本ノードの出力をLocalizeMUSICノードのNOISECM入力端 子に接続することで,一定周期前の情報を常に雑音とみなして抑圧した音源定位が実現できる.
典型的な接続例
図6.17にCMMakerFromFFTノードの使用例を示す.
INPUT入力端子へは,MultiFFTノードから計算される入力信号の複素スペクトルを接続する.
型はMatrix<complex<float> >型である.本ノードは入力信号の複素スペクトルから周波数ビン毎にチャネ ル間の相関行列を計算し出力する.出力の型はMatrix<complex<float> >型だが,相関行列を扱うため,三 次元複素配列を二次元複素行列に変換して出力している.
図6.17:CMMakerFromFFTの接続例
ノードの入出力とプロパティ
入力
INPUT :Matrix<complex<float> >,入力信号の複素スペクトル表現M×(NFFT/2+1).
出力
表6.18:CMMakerFromFFTのパラメータ表 パラメータ名 型 デフォルト値 単位 説明
WINDOW int 50 相関行列の平滑化フレーム数
PERIOD int 50 相関行列の更新フレーム周期
WINDOW TYPE string FUTURE 相関行列の平滑化区間
ENABLE DEBUG bool false デバッグ情報出力のON/OFF
OUTPUT : Matrix<complex<float> >型.各周波数ビン毎の相関行列.M次の複素正方行列である相関行 列がNFFT/2+1個出力される.Matrix<complex<float> >の行は周波数(NFFT/2+1行)を,列は複 素相関行列(M∗M列)を表す.
OPERATION FLAG : bool型.OUPUTから出力される相関行列が更新されている時はtrueを,それ以外
はfalseを出力する.本出力はデフォルトでは非表示である.表示方法はLocalizeMUSICの図6.28を
参照されたい.
パラメータ
WINDOW :int型.50がデフォルト値.相関行列計算時の平滑化フレーム数を指定する.ノード内では,入 力信号の複素スペクトルから相関行列を毎フレーム生成し,WINDOWで指定されたフレームで加算平均 を取ったものが新たな相関行列として出力される.PERIODフレーム間は最後に計算された相関行列が 出力される.この値を大きくすると,相関行列が安定するが計算負荷が高い.
PERIOD :int型.50がデフォルト値.相関行列の更新フレーム周期を指定する.ノード内では,入力信号の 複素スペクトルから相関行列を毎フレーム生成し,WINDOWで指定されたフレームで加算平均を取った ものが新たな相関行列として出力される.PERIODフレーム間は最後に計算された相関行列が出力され る.この値を大きくすると,相関行列の時間解像度が改善される計算負荷が高い.
WINDOW TYPE :string型.FUTUREがデフォルト値.相関行列計算時の平滑化フレームの使用区間を指 定する.FUTUREに指定した場合,現在のフレーム f から f +W INDOW−1までが平滑化に使用され る.MIDDLEに指定した場合,f−(W INDOW/2)から f+(W INDOW/2)+(W INDOW%2)−1までが平 滑化に使用される.PASTに指定した場合,f−W INDOW+1から f までが平滑化に使用される.
ENABLE DEBUG :bool型.falseがデフォルト値.trueの場合は相関行列が生成される時に,標準出力に生 成した時のフレーム番号が出力される.
ノードの詳細
MultiFFTノードから出力される入力信号の複素スペクトルを以下のように表す.
X(ω,f)=[X1(ω,f),X2(ω,f),X3(ω,f),· · ·,XM(ω,f)]T (6.1) ここで,ωは周波数ビン番号,f はHARK で扱うフレーム番号,Mは入力チャネル数を表す.
入力信号X(ω,f)の相関行列は,各周波数,各フレームごとに以下のように定義できる.
R(ω,f)=X(ω,f)X∗(ω,f) (6.2)
ここで,()∗は複素共役転置演算子を表す.理論上は,このR(ω,f)をそのまま以降の処理で利用すれば問題 はないが,実用上,安定した相関行列を得るため,HARK では,次のように時間方向に平均したものを使用し ている.
R′(ω,f)= 1 WINDOW
Wf
∑
i=Wi
R(ω,f+i) (6.3)
平滑化に使用する区間はWINDOW TYPEパラメータによって変更できる.WINDOW TYPE=FUTUREの 場合,Wi = 0, Wf = WINDOW−1 となる.WINDOW TYPE=MIDDLE の場合,Wi = WINDOW/2, Wf = WINDOW/2+WINDOW%2−1となる.WINDOW TYPE=PASTの場合,Wi=−WINDOW+1,Wf =0となる.
R′(ω,f)がCMMakerFromFFTノードのOUTPUT端子からPERIODで指定したフレーム周期ごとに出力さ れる.