RIAAフォノイコライザをIIRデジタルフィルタで実装する ⑥ z-2項をシフトする理由
この記事は
RIAAフォノイコライザをIIRデジタルフィルタで実装する ①準備編
RIAAフォノイコライザをIIRデジタルフィルタで実装する ②係数計算編
RIAAフォノイコライザをIIRデジタルフィルタで実装する ③シミュレーション編
RIAAフォノイコライザをIIRデジタルフィルタで実装する ④実装・評価編
RIAAフォノイコライザをIIRデジタルフィルタで実装する ⑤Octaveによる位相検証
の続編です。
過去記事
RIAAフォノイコライザをIIRデジタルフィルタで実装する ②係数計算編
の中で、フォノイコライザのアナログ伝達関数(sドメイン)を双一次変換によってデジタルの伝達関数(zドメイン)に変換するという計算を行った。この内容をもう一度書くとこうだ。まずフォノイコライザのアナログ伝達関数は
(式1)
であり、sとzの関係は
(式2)
で、ただしこれはsについて解こうとすると複素数の対数になるので、計算が困難となるため、次の式で近似する。
(式3)
式1に対して、式3の変換式を代入して整理すると、フォノイコライザのデジタル伝達関数(zドメイン)が得られる。このときの計算結果から、全体にかかる定数項を省くと次の式が得られる。
(式4)
ところが、よく使われる式は、分子のz-2項の係数をz-1項にシフトしてz-2項はネグる、すなわち
(式5)
という形になっていて、それがなぜだか謎だったのだ。今回はこの理由がわかったので、書いておこうと思う。
上の式のままだとどうも目がチカチカするので、もう少し実用的な形に書き直すと以下のようになる。
(式6)
(式7)
式6は96kHzサンプリングのRIAAイコライザのデジタル伝達関数、式7は式6のz-2項をz-1にシフトして、z-2項をネグった、よく使われる形。
元記事を書いた当初、なぜこういう操作をしているのか、理由がわからなかったのだ。
ところが先日、パラメトリックWAVプレーヤーの記事を書くために調べ物をしていて、とうとう理由を見つけたのだ。
式4の分子を取り出して因数分解すると次のようになる。
(式8)
ここで、デジタル周波数応答を見るときの前提として
(式9)
であり、ここでのωは1サンプル進むごとに位相がどれだけ進むかを表していて、たとえばω=0(直流)では位相は進まずz=1、ナイキスト周波数の場合は、サンプリング周波数の半分なので1サンプルごとにω=180deg、つまりラジアンでπなので、
(式10) (オイラーの公式より、-1)
なので、
(式11)
つまりナイキスト周波数のとき式11が成り立つ。そうすると、式8の![]()
の部分は、ナイキスト周波数で0点ということになり、つまりナイキスト周波数ではゲインが0(伝達関数が0)になることを示している。
フォノイコライザの実装上、ナイキスト周波数で0になるという性質は不要で、しかも再生周波数にナイキスト周波数が近いと影響が出て、高域でゲインが低下することになる。なので式8のこの部分をネグって1とすると、最終的に式5になる、というのが真相のようだ。
過去記事の
RIAAフォノイコライザをIIRデジタルフィルタで実装する ⑤Octaveによる位相検証
でこの部分をネグらなかった場合とネグった場合の比較をしているが、96kHzサンプリングで、ネグらないで実装した場合、20kHzのゲインが1.4dBほど下がってしまうという結果になっている。一方、ナイキスト周波数でゼロになる部分をネグったよく見られる実装では、ゲインの偏差は+0.5dBほどだった。なので辻褄は合っている。
これはよく考えてみるととても面白い現象で、もとのアナログ伝達関数(sドメイン)で周波数を無限大に飛ばしたときにゲインが0になる、という事象が、デジタル伝達関数(zドメイン)ではナイキスト周波数でゲイン0という事象に変換されたことになる。まるで無限に広がっていた宇宙に対して、ドメイン変換したらナイキスト周波数というブラックホールが現れて、高域の周波数軸が歪んで吸い込まれてしまうような感じに見える。
実際のところ、比較記事では、ネグらなかった場合は高域ゲインが若干下がる代わりに位相は正しく、ネグった場合はゲインはごく僅かに上る程度に留まった分、位相はかなり回ってしまうという結果になっており、計算の正当性から言えば、どちらかというとネグらないほうが正しいような感じもする。しかしながら20kHzで-1.4dBという結果は聴感に影響があるため、世間では高域が下がらない方を選んでいる、というのが本当のところのようだ。















最近のコメント