C 値とD 値の定義
C 値 (early–to–late index) や
D 値 (definition or deutlichkeit) など時間を区切ってエネルギの比率をとる指標は,気をつけなければならないポイントがいくつかある。まずはよく使われる指標
C80 (Clarity),
D50 の定義を確認しよう。
C80 は直接音の到来時間を0 msとして,80 ms以降のエネルギとそれ以前のエネルギをそれぞれ積分,それらの比を取りレベル表示したものである(式1)。したがって
C80 は値が大きいほど80 ms以前のエネルギが大きいことを示す。
D50 は同じく直接音の到来時間を0 msとして,全時間のエネルギに対する50 ms以前のエネルギの割合を表す(式2)。
D50 が大きいほど50 ms以前のエネルギが多いことを示す。どちらも初期反射音の量を評価する指標である。
\begin{align}
C_{80} =10\log_{10} \left( \frac{\int_{0_\textrm{ms}}^{80_\textrm{ms}}p^2(t)\textrm{d}t}{\int_{80_\textrm{ms}}^{\infty}p^2(t)\textrm{d}t} \right) \\
D_{50} =\frac{\int_{0_\textrm{ms}}^{50_\textrm{ms}}p^2(t)\textrm{d}t}{\int_{0_\textrm{ms}}^{\infty}p^2(t)\textrm{d}t}
\end{align}
ただし,\(p(t)\)はインパルス応答の音圧である。
何が問題となるのか?
両指標とも定義は極めて明快である。それでは何が問題となるのか。問題の原因はオクターブバンドごとにこれらの指標を求めることにある。ISO3382-1には,
インパルス応答は(125 Hzから4 kHzまで)オクターブバンドごとにフィルタリングされるべき (Impulse responses should be filtered into octave bands.)
との記述がある。純音は1つの周波数に値が集中するが,時間軸上で連続しているように,バンドパスフィルタリングは周波数を限定するため,時間波形は時間的な広がりを持つ。またさらに,フィルタの種類によっては時間の遅延が起こる。したがって,インパルス応答をある時間で区切ってエネルギ比を求めようとするとき,時間窓で区切る前にフィルタリング処理をすると,エネルギが時間的に広がる,もしくはずれてしまうといった問題が生じる。この問題に対し,ISO3382-1では,
いかなるフィルタリングよりも前にインパルス応答を時間窓で区切ってしまうことが,この問題を回避する最善策 (The best approach for avoiding the filter delay problems is to time-window the broadband impulse response before any filtering.)
と解決策を提示している。また,直接音の到来時間 (0 ms) を定める際は,
直接音の開始位置(暗騒音から明らかに上昇する最初の箇所で,最大値から20 dB以上さがった点)は,フィルタ処理前の広帯域のインパルス応答から求められるべき (The start of the impulse response for the equations should be determined from the broadband impulse response, where the signal first rises significantly above the background but is more than 20 dB below the maximum.)
と述べている。これらは「波形が広がる前にまたは移動してしまう前に,言い換えれば,フィルタの種類もしくは直接音位置の同定が計算結果を左右することがないように,時間的位置を確定してエネルギを区間分割してしまおう」という考えに基づいている。図1に考えられる計算手順のフローを示す。この図のように「直接音位置の検出」と「時間窓で分割」は,「フィルタリング」より前に処理しなくてはならない。
図1: C80 の計算手順。フィルタリングする前に,直接音位置の同定と時間窓で分割する。
計算手順の違いによる影響
それでは計算手順やフィルタの種類が計算結果に及ぼす影響を実際にみてみよう。図2に示すインパルス応答は,80 msより少し手前に大きな反射音をもつ残響時間が約0.5 秒の応答である。この応答に対し表1に示すような,計算手順とフィルタの種類を組み合わせた計6パターンで
C80 を算出する。時間が後ろにシフトする「因果」とシフトしない「非因果」の2種類のFIR型フィルタと,IIR型フィルタの1種類の計3種類のフィルタを用意した。フィルタ波形を図3に示す。
図2: 比較に用いたインパルス応答。80 msの直前に大きな反射音を持つ
表1: 比較に用いた計算の手順。異なる3段階の手順と,三種のフィルタ: FIR(非因果),FIR(因果),IIRフィルタを組み合わせている。
図3: 比較に用いた3種のフィルタ波形
計算結果を図4に示す。ISOが推奨する方法に準拠した,正FIRと正IIRは値に大きな差はない。これらと計算手順に誤りがある4種類の計算結果を比較すると,250 Hz帯域において,すべてのパターンに2 dB以上の差がある。
C80 のJND(丁度可知差異)は1 dBであるから,この差は無視できない。この結果が示すように,80 msより少し前のエネルギが計算結果に大きな影響を及ぼすので,計算手順は間違えないようによく確認する必要がある。
図4: 比較計算の結果。125 Hz帯域から8 kHz帯域まで計算
おわりに
計算手順の間違いは,実空間で得られるインパルス応答から検出しにくい。
ベンチマーク問題B-22は,図2に示すインパルス応答を採用しており,手順に間違いがないか簡単に確認できる。この問題に取り組み,各自のプログラムを一度確認してほしい。