Direct vs. Indirect IR measurement
Smaartでインパルス応答を測定するには,基本的に直接的に測定する方法と間接的に測定する方法の2つがあります。
Smaartで使用している間接的なIR測定法は,
決定論的な測定法(一意にインパルス応答を決定する測定法)
非決定論的な測定法(確率的にインパルス応答を収束させる測定法)
の2つの測定法があるため,3つの方法があると言うこともできます。
まずは最もシンプルで理解しやすい昔ながらの直接的なインパルス応答測定法から始めていきましょう。
ただし,これは優先順位のようなものを意味するわけではありません。
実際,一般的に最も好まれない方法から始めてはいますが,一応どの方法にもメリットがあります。
インパルス性の信号を用いた直接的なIR測定
システムのインパルス応答を測定する最も直感的な方法は,実際にインパルス性の測定信号を使って何が起こったかを記録することでしょう。
実際,何十年もの間,この方法は使われてきました。
この手法の最大の利点は,測定に音響システムや測定システムさえも必要としないことです。必要なものは,大きな音を出すツールとそれを記録するツールだけです。
この方法の主な問題点は,本当に素性の良いインパルス性の音源が少ないということです。
理想的なインパルス音源は,瞬間的で,全指向性のエネルギーのバーストであり,すべての(可聴)周波数で等しいエネルギーを含むものです。
時間領域では1サンプル幅以下の単一の垂直スパイクとして現れます。
周波数領域では完全に平坦な振幅特性と位相特性のトレースが得られます。
この理想的なインパルス音源でSUT(System Under Test)の応答を評価する場合,インパルス応答で見た際の瞬時のスパイクでないもの,または周波数領域で見た平坦なラインでないものはシステムの応答であると言えます。
前章で1samplePulse.wavをロードしてSmaartのバンドパス・フィルターの周波数応答を見ていたものは,理想的なインパルスを使用してフィルターの直接インパルス応答測定を行っていたことになります。
ただし,残念ながらそのような刺激信号は物理世界には存在しません。
音響システムのインパルス応答を直接測定する必要がある場合、私たちは結局,理想的ではないインパルス性の測定信号を使うことになります。
空砲や風船の破裂音は一般的な測定音源であり,信号砲,スパークギャップ,花火,さらにはスポット溶接機も使用されてきました。
これらすべての測定音源の問題点は,周波数スペクトル成分が均一でないこと,エンベロープが瞬間的でないこと,期待されるほど全指向性でないこと,そしてこれらすべての要因が測定ごとにある程度変化することです。
このため測定のどの部分が測定信号の影響でどの部分がシステムの応答なのか最初から不確実性が生じえます。また測定結果の再現性も制限されてしまいます。
このような理由から,理想的なインパルスに対するシステムの応答を間接的に推定するSmaartのようなシステムが最近ではより選択されるツールとなっています。
補足
この方法はいわばインパルス応答を愚直に定義通りに測定するやり方です。
単位インパルス関数はエネルギが小さいためSN比が悪く,無理やりシステムへ大振幅な信号を入力しても非線形誤差を発生させてしまいます。
電気音響機器の測定では問題にならない場合もありますが,特に室内音響の場合には暗騒音が(一定でない周波数スペクトルで)存在するため,この手法が使われることは非常に少なくなりました。
間接的なIR測定
間接的なインパルス応答測定は,連続的または周期的な測定信号を用いてシステム応答を数学的に推定するデュアルチャネル測定技術を使用して行われます。
これから挙げる4つの間接的なインパルス応答測定法のうち3つは,スイープ(時間遅延スペクトル測定と直接畳み込み)や特殊なノイズ(アダマール変換/MLS)のような特殊な測定信号を必要とします。
Smaartが間接的なインパルス応答測定に使用しているデュアルチャンネル伝達関数測定法においても周期が一致したテスト信号を使用するのが最も効果的です。
ただし他の3つとは異なり参照信号(reference)と測定信号(measurement)の両方がキャプチャされていればランダムなテスト信号を使用しても許容範囲の結果を得ることができます。
伝達関数ベースのインパルス応答測定システムは,2つの信号(システムに入力される信号と,この入力に応答するシステムの出力)のフーリエ変換から,システムの伝達関数を計算し,その結果を逆フーリエ変換(IFT)を使って時間領域に変換することで動作します。
インパルス応答の直接測定法では,完璧なインパルスが現実の世界には存在しないと嘆いていたのを覚えているでしょうか?
2つの全く同一の信号の伝達関数の逆フーリエ変換を取るとインパルスが得られます。
つまり測定信号とそれに対するシステムの応答の伝達関数とれば,理論的には理想的なインパルスに対する応答とよく似たものが得られるはずです。
そして実際,周期を一致させた測定信号を使用するとほとんどその通りになります。
この同じテクニックを効果的にランダムな信号で使用すると,多くのノイズも得られますが,測定を数回繰り返して結果を平均化することで,一般的にこの問題は解決されます。
補足
察しの良い方はもうお気づきかと思いますが,SmaartのTFモードとIRモードはどちらもここでいう間接的なインパルス応答測定法であり,この2つの違いは計算アルゴリズムの違いとそれに伴う測定信号の違いでしかないのです。
インパルス応答をフーリエ変換して伝達関数(これは複素数であることに注意)にし,振幅,位相を計算すれば,我々がよく見るTFモードのグラフが作れます。
逆に伝達関数を逆フーリエ変換すればインパルス応答になり,やはり我々がよく見るTFモードのLive IRはこれにあたります。
インパルス応答,伝達関数というフーリエ変換を通して行き来する関係のものを見ているだけなので,どちらも同じものを測っていると考えて問題ありません。
それぞれの手法にはもちろんメリットがありますが,IRモードを解説する章を訳しているため,IRモードで扱う測定法についてここでは記述しています。(基本的な考えはTFモードでも変わりません)
周期が一致した測定信号を用いたDual Channel IR測定
離散フーリエ変換(またはFFT(高速フーリエ変換) - FFTはDFTであるがすべてのDFTが高速であるとは限らない)は非常に巧妙なアルゴリズムです。
あらゆる種類のフーリエ変換は理論的には無限長の信号に対してのみ機能しますが,DFTは分析する有限の信号ブロックに対して暗黙に周期性(無限に繰り返されるブロックの一部であること)を仮定しています。
DFT/FFT分析に内在する周期性の仮定をうまく利用する最善の方法は,DFTが本当に必要とするもの,つまり測定時間窓内に完全に収まるかDFT長に等しい周期の周期性測定信号を用いることです。
周期性測定信号はランダム信号を用いて同等の結果を得るのにかかる時間の数分の一で,確定的で再現性の高い測定を行うことができます。
Dual Channel IR測定に同期した周期的な測定信号を使用する場合
データ窓が必要ない
遅延補正が重要ではない
多くの場合,より少ない平均回数で良い
測定時間を合理的な長さに抑えることができる
わずかな時変性は気にしなくて良い
測定の際のパラメータの主観性を削減できる
測定システムのreferenceは必ずしも測定器へリターンする必要はない。
(既知の測定信号を使用する場合,システムへ入力する信号と測定器へのリターン(refenrence)は,(2つの信号が何らかの後処理で時間整合されることを条件として)2つの異なるシグナルジェネレータからでも動作させることができます。
正確な伝播遅延時間は, システムへ測定信号を入力するために使用するシグナルジェネレータからの音声リターンがなければ得られませんが,遅延時間測定が必要ではない場合,これは非常に便利なオプションになります)。
Logarithmic Sweep
対数スイープはSmaartではピンクスイープと呼ばれています。
シグナルジェネレータでこの信号タイプを選択すると,Smaartは暗黙のうちにIRデータ窓と言う概念は無視します。
(スイープ信号の特性上,ある1時刻ではある1つの周波数のみしか現れていないため,スイープ信号と連動するデータ窓(ある時刻のデータを切り取る行為)はその周波数成分に対するバンドパスフィルタのように機能します)
スイープ音は周期測定または非周期測定の信号源として使用できます。
SmaartのシグナルジェネレータでTriggered by impulse responseオプションを有効にすると,IR測定の開始によってスイープ信号が自動的に開始されます。(こちらは後述する学術的な測定法と同等の手法です。確定的なインパルス応答が測定できます。)
測定を開始するとSmaartはスイープ音再生の前に短い無音時間を挿入し,記録装置の起動に遅れが生じた場合に備えます。その後スイープを実行しさらに無音時間を挿入します。
Triggered by impulse responseオプションがチェックされていない場合,スイープ音再生はシグナルジェネレータがオンになっているときに連続的に実行されます。この場合他の測定信号と同じように,測定を開始する前にシグナルジェネレータを起動します。(私はこちらのモードには特に優位性を感じません)
補足
通常リアルタイムにディジタル信号処理を行う場合,入力を一定サイズのブロック(AD,DAとは独立したサイズでも可)に区切ってそのブロックごとに処理を行い,再結合して出力することが多いかと思います。
先ほどの「データ窓」というのはこの処理を行うブロックのことを指すと考えられます。
例えばSmaartのTFモードでは,一定サイズのブロックを決めてそのブロックでの伝達関数推定,コヒーレンス算出を行い,複数のブロックの平均化を行います。(このやり方は測定信号に依存しないデータ窓設定といえます)
一方ここで言う「信号と連動するデータ窓」というのは,測定信号の長さを考慮して処理ブロックの長さを決定する手法だと考えられます。
この場合,もはやデータ窓のような概念ではなく,measurement信号を単に録音しているような状況になり,録音の長さを測定信号に合わせて決めるといった考え方になります。(リアルタイム測定ではないといえます)
これとは別に,そもそも測定信号の長さをどう決定するかと言う点も非常に重要な話題です。これは次回以降記述します。
既知で素性の良い信号を使うメリットは,測定システムが設計しやすく高い精度で推定できることであり,測定の精度を語るのであればこの手法を用いることが現状一番妥当と言えるでしょう。
対数スイープで行われるdual FFTベースのインパルス応答測定の特徴は,スピーカーやシステムの「(高次の)歪み」がIRから "洗い流され","プリ・アライバル "として現れることです。
先述のようにDFTは巡回型の計算なので,通常このような歪みは測定の時刻0を遡る場合,IRの後方へ回り込んでたまってしまいます。
実用的にはこれらのアーチファクトが残響減衰のスロープに入りこまないようにするために,周期を同期した測定の場合よりも測定時間窓を少し大きくする必要があるかもしれません。
(補足: そもそもシステムの歪みを大きくしないことが重要です。)
学術的な測定法
TSP信号による測定
これまでのスイープ音を用いた手法は学術的にはSS(Swept-Sine)法と呼ばれ,昨今確定的なインパルス応答測定法として幅広く利用されています。
思想としては,単位インパルス関数では時刻0にエネルギーが集中していたものを周波数に応じて位相シフトさせることで,パルスを引き延ばした信号(TSP: Time Stretched Pulse)を生成し測定信号とします。
TSPをシステムへ入力して出力されたものに対して,引き延ばしたパルスを元の単位インパルス関数へ戻すよう作用させる操作(逆フィルタリング)をすることで,インパルス応答が得られます。
TSPのメリットは,クレストファクタが小さいため大きなエネルギを持っておりSN比が確保しやすい,測定対象の周波数を欠けることなく含むことが確定しているといったことが挙げられます。
この測定法は日本人が提案,改善に大きく貢献した手法です。
FFTが気軽にできなかった時代では,日本国内では比較的使用されていたものの,海外ではM系列信号など比較的デコンボリューションの計算コストが低い測定信号を用いた方法がよく使われていたようです。
しかし昨今の計算機の発展によって気軽にFFTができるようになり,私が見る範囲では多くの論文でこの手法によるインパルス応答測定が行われています。
TSPとその逆特性(iTSP)のwavファイル
Log-SS信号
TSPの派生としてLog-SSという信号があります。
TSPでは時間に対して線形に周波数をスイープし,それぞれの周波数の振幅は一定(つまり白色雑音と同等)になっています。
これに対してLog-SSは,指数関数的に周波数をスイープし(低周波数ではスイープ時間が長く,高周波数になるにつれ短くなる),周波数振幅は-3 dB/oct.(ピンクノイズと同等)となるよう設計します。この特性から低周波数帯域でのSN比改善が見込めます。SmaartでいうPinkSweepはこのLog-SSのことであり,この測定信号は特に広く利用されています。
LogSSとその逆特性(iLogSS)のwavファイル
参考
このリンク先ではインパルス応答についてわかりやすく解説してあるだけでなく,DAWを利用した測定方法について記述してあります。
Reaperを利用すればマルチチャンネルトラックが容易に作成可能なので,Ambisonicsに対応したマイクロホンアレイやサラウンドマイクアレイなど多チャンネルのIR測定も容易に行えます。
https://www.jstage.jst.go.jp/article/jasj/76/3/76_156/_pdf
https://www.jstage.jst.go.jp/article/jasj/45/1/45_KJ00001455617/_pdf/-char/ja