ΔΣ型D/Aコンバータの方形波応答を変えるデジタル・フィルタ
- 通常、ΔΣ型D/Aコンバータには等価的にsinc関数を有限長で打ち切った係数を持つ直線位相のデジタル・フィルタが用いられていて、その方形波応答波形にはGibbsの現象があらわれます.
- オーディオ・マニアやオーディオ技術者にはGibbsの現象をご存じなくて、D/Aコンバータの方形波応答波形を目で見て音質の評価をされる方が多いようです. そのような視覚で音質評価をするオーディオ・マニアやオーディオ技術者向けに、D/AコンバータLSIの中にはデジタル・フィルタの特性を変えてアナログ・アンプの方形波応答風の出力を出すモードを備えているものがあります.(これとは異なる動作モードのものもあります)
このモードでの方形波出力は、あたかも高域にピークを有するアナログ・アンプのリンギングが生じた出力波形であるかのように見えます.(実際には周波数特性の暴れや共振により生じたリンギングでは無いことは、D/Aコンバータの出力をFFT分析してみれば分かります)
- 実はそのような特殊なモードを備えたD/Aコンバータを使わなくても、デジタル・フィルタを使って直線位相のΔΣ型D/Aコンバータの方形波応答をアナログ・アンプ風に変えることが出来ます. 1次のオールパス特性のデジタル・フィルタを用いて、信号に位相回転を与えるだけです.
- 使用するデジタル・フィルタ(1次オールパス・フィルタ)の特性を差分方程式を用いてあらわすと次式のようになります.(*は乗算です)
係数Cは、正確には黄金比 Φ=(1.0+sqrt(5.0))/2.0 を用いて C=1.0/Φ=Φ-1.0 とあらわされます.
y[i]=C*x[i]+x[i-1]-C*y[i-1]
C=0.6180339887....≒0.618034
- フィルタのインパルス応答は下図のようになります.(オールパス特性なので振幅周波数特性は完全にフラットです)
- フリーソフトのSoX(Sound eXchange)を使えばオーディオ・データ・ファイルに対して、簡単にこのフィルタリング処理をおこなうことが出来ます. 入力ファイルをin.wav、出力ファイルをout.wavとした場合、コマンドラインから次のように入力してください.(フィルタリング処理と同時にnormalizeもおこないます)
>sox --norm=-1 in.wav out.wav biquad 0.618034 1 0 1 0.618034 0
- 実際に方形波について処理した結果は下図のようになります.(CoolEdit2000での波形表示) 左が入力の方形波、右が1次オールパス・フィルタで処理後の波形です. 角点■がサンプル値で、それを繋いだ曲線が直線位相のΔΣ型D/Aコンバータから出力したときのアナログ信号の波形になります.(ソフト的に近似計算でアナログ出力波形を求めているために少し誤差があります)
入力 linear_phase.wav (2238KB)、 1次オールパス・フィルタ出力 phase_shift.wav (2238KB)
- 実際にD/Aコンバータの出力波形をオシロスコープで観測すると下図のようになります.(左が処理前、右が処理後)
Windowsパソコンを使って実験する場合は、Windowsのサウンド・システムによって、ユーザーが意図せぬサンプリング周波数変換がおこなわれる場合があることに注意してください.(おそらくサウンド出力の設定を共有モードから排他モードに変更すれば解決されるはずです)
- 1次オールパス・フィルタ処理後のオシロスコープ観測波形は、まさに高域に共振特性を有してリンギングを起こしているアナログ・アンプの方形波応答そのものであるかのように見えますが、FFTアナライザで分析してみれば共振などしていないことはすぐに分かります.
ΔΣ型D/Aコンバータの周波数特性に高域ピークがあって、その共振周波数や共振特性のQを測定できたなどという話はいまだかつて聞いたことがありません.(本当にQを測定できたら大発見です)
- オーディオ用のΔΣ型D/AコンバータLSIには、Gibbsの現象を知らないオーディオ・マニア向けに、デジタル・フィルタ(補間フィルタ)のLPFとしての遮断特性が大きく劣化する動作モードを備えているものもあります.(劣化した周波数特性はちゃんとLSIのデータシートに記載されています. データシートに特性を記載していないLSIメーカーを信用してはいけません)
- 方形波応答の測定によるオーディオ・アンプの特性評価・安定性評価に関しては、武末数馬氏の著書をご覧になることをおすすめします. 武末氏がご存命だったら、出来の良くないオーディオ・アンプの方形波応答とGibbsの現象を混同することなど絶対に無かったでしょう.