デジタルオーディオあれこれ

半田ごての人。紙と鉛筆だけではちょっと。

リンギングしない(プリエコーなし)FIRフィルターの意味合いとは。 

 標本化定理のために必要な理想フィルターとは、FIRフィルターのタップ長さはそこそこで良くて、必須なのは高いサンプリング周波数であるというのが前回の結論。そこから少し藪の中に入り込んでみるのが趣味の世界。分け入っても分け入っても藪の中かも知れず、思いの外、高台からの良い眺めに巡り合うことも。銀閣を建て始めた時、後世に金閣を超える日本文化の象徴になるとは 、きっと誰も思わなかったように。

 

 理想フィルターはその性質上、どうしても急峻な特性が必要になる。一番初めのCDの時代は特に。一般的には20kHzから落として、22kHzでは-120dBぐらいの減衰量が欲しい。所謂ブリックウォール、煉瓦塀特性が必要。これは今ではFIRフィルターで実現可能で、尚且つアナログでは有り得なかった直線位相になっている。初期のアナログ多段フィルターと比べれば、完璧。一つケチがつくのは、方形波などでリンギングを起こす事。

 

f:id:xx3stksm:20180805211509j:plain

こんな具合に、方形波やインパルスに対して発振しているようなリンギングが出る。これはアンプの発振とは違って、単にFIRフィルターの係数に由来する。アナログ時代こういう波形は嫌われたので、今に至ってもリンギングにはアレルギーがある。感情論的に、後に出るリンギングはアナログフィルターでも出るので構わないが、前に出るのは気に入らない、というのもある。

f:id:xx3stksm:20180805211928j:plain

 周波数特性としてはこんな按配で、典型的な煉瓦塀。実測なので測定器のスプリアスの関係で、65dBぐらいしか落ちていないように見えるけれど、本来は42kHzまでが通過帯域で、46kHz以上は-120dB以上落ちている(96kHzサンプリング)。オーバーサンプリングで思いっ切りサンプリング周波数は高いので、アナログフィルターなしでもそのまま使える。こんな基板。近々うちのシステムはこれに更新の予定。

f:id:xx3stksm:20180805212431j:plain

 このリンギングをどう考えるかは中々に難しい。多分、問題はないと思う。リンギングの一番の原因はおそらくギブス現象にある。特定の周波数帯域で制限することは、デジタルの世界では暗黙の了解事項。これがないと標本化定理は成り立たず、つまりはデジタル化が出来ないので、CDであればどう足掻いても22kHzぐらいが上限になる。結果として、方形波の振動は避けられない。

 

 FIRフィルターの側から言うと、一般論としてその係数は振動している。1024の係数があると、プラスの値とマイナスの値の両方を取りながら大きくなって行き、最大値から後はやはり振動しながら段々と小さくなる。インパルスに対する応答は、そっくりそのまま係数の値を並べる事になるので、係数の振動は応答の振動を意味する。従って、振動しないFIRフィルターは稀。稀ではあるが零ではない。

 

 これは経験法則で理論的裏付けはない。つまり工学的回答はあるのだけれど、理論的な証明はひとまず横に置く。論より証拠でこんなの。上の基板での実測データ。FIRフィルターで直線位相。タップ数は1024に収まる。

f:id:xx3stksm:20180805214013j:plain

 下のインパルスが振動せず単調に上がって行って、最大値の後は単調に落ちるので、方形波に対しても勿論振動はしない。周波数応答には少し難がある。なんでも良い事ばっかしではないので。

f:id:xx3stksm:20180805214345j:plain

 96kHzサンプリングなので、基本的には煉瓦塀のように48kHz以上は-120dBぐらい落としたいし、通過帯域も40kHzぐらいまでは欲しい。これは21kHzで-3dBぐらい落ちる。48kHzではまだ18dBぐらいしか落ちない。21kHzぐらいまでを使う積りになると、実質的に不要な高調波は、折り返してくる75kHz以上となる。それより上は完全に落ちるので(88.4-42)=46.4dBの減衰量が最悪値。

 

 あんまり褒められた特性ではないけれど、俗に言うNOSというものは完全な高調波垂れ流しだし、多くのDACに乗っているslowのフィルターを44.1kHzで使うともっと悪い。勿論これも、96kHzで使うのがミソ。実際に20kHzと30kHzを出してみると、20kHzではほとんど残留高調波の影響はない。30kHzでは少し見える。青が30kHz。

f:id:xx3stksm:20180805215646j:plain

 

 

 

f:id:xx3stksm:20180805220004j:plain

 実際の使用として96kHzサンプリング以上であれば、このぐらいの緩い特性でも音楽信号の再生に問題はないのかなあと思う。リンギングの有無に関して、あまり積極的な意味合いは感じないとしても、煉瓦塀とリンギングレスの両方を選べるのであれば損はなかろうと。

 ここでの実測値は、特記のない限りアナログのフィルターの前で測っている。位相云々とかリンギングあれこれを言うならば、アナログフィルターの後では意味がない。

ほとんどの場合、DACには12db/oct以上のアナログフィルターが入る。これは当然位相が回る。リンギングみたいな様相を呈するので、どこに原因があるかはもう分からなくなる。

f:id:xx3stksm:20180805220756j:plain

 これはリンギングレスFIRをアナログフィルターに通した結果。黄色は12db/octで青は6db/oct。6db/octは信者がいるように、ほとんど見た目の変化はない。と言っても、最大で90度は回っている。直線位相は一切回らない。12db/octは180度回るので、なんか角が立っている。これはSPICEでシミュレーションしても、ほぼ同じ結果になる。

 

 振幅特性は平坦でも、位相特性の乱れで角が立ってしまう。あんまりアナログフィルターには期待せず6db/octにして、高いオーバーサンプリングでデシタル処理するのが賢い。コストが安く再現性もある。

 

 リンギングレスのFIRは、係数が単調増加か単調減少であれば宜しい。幾つか可能性はあると思うけど、ここで使っているのは移動平均フィルター。単純な移動平均では、下の紫のように全く高い方で落ちないので、アナログフィルターが必須となり好ましくない。幾つかの移動平均を組み合わせて96kHzや192kHzに零点が来るようにして使う。下図では一目盛が3kHz。

 

f:id:xx3stksm:20180805221842j:plain

 192kHzサンプリングで20kHzまでを使うのであれば、図の赤なので20kHzで-1dB。不要高調波も最悪値で-60dB以上は落とせる。流石にそこまでの無駄遣いはアレなので、96kHzサンプリングで何とかしたい。煉瓦塀と移動平均の中間というのも可能で、これは両者の中間の特性になる。少しリンギングするけれど、高調波の漏れはほとんど出ない。

 リンギングレスの利点は、些かギブス現象を超越してしまう所。常識的には、帯域を制限されてしまうデジタルのシステムでは、必ず方形波はリンギングする。さはさりながら、リンギングレスは違う落とし所を用意している。リンギングレスの実測値は、FIRフィルターで完全に帯域制限されている。しかしギブス現象を起こしていない。振動しない方形波になっている。何処かに勘違いがないかは簡単に確かめられる。

 

 実測値は黄色の特性で96kHzに零点があるフィルター。これを実現するには192kHzサンプリングが必要。話を単純化するには96kHzサンプリングのシステムで、48kHzに零点があるフィルターを想定した方が楽。仮に6kHzの方形波を出すとすると、6kHz、18kHz、30kHz、42kHz の四つのサイン波で方形波を作る事になるので。192kHzサンプリングだと八個必要になる。

 

 素のままの方形波の場合、6kHzを-3dbとすると、18kHzは-12.5dB、30kHzは-17dB、42kHzは-20dBのサイン波の合成。48kHzに零点のあるリンギングレスフィルターは18kHzで-5dB、30kHzで-17dB、42kHzで-40dBの減衰。結果として、6kHzを-3dbとすると、18kHzは(-12.5-5)dB、30kHzは(-17-17)dB、42kHzは(-20-40)dBのサイン波の合成。

両者を並べて表示するとこうなる。

f:id:xx3stksm:20180805225427j:plain

 42kHzは-60dBになるので影響なしとして無視。省略して三つでの合成。素のままの方形波は確かに振動してしまう。帯域制限されたシステムでの見慣れた風景としてこうなる。下はちょっと驚きの結果。リンギングレスフィルターの面目躍如。帯域制限からの立ち上がりのなまりは仕方ないとしても、全く振動していない。

 当然と言えば当然。リンギングレスフィルターの係数は振動していない。なのでインパルスであれ方形波であれ、計算結果つまりはフィルターの出力が振動することはない。理論的にはそうなるしかないので振動はしない。しかし方形波を三つだけのサイン波に制限してしまうので、ギブス現象の影響を受けそうだが受けない。

 係数で決まる減衰量で三次と五次のサイン波を落とす結果、振動しない方形波が出来上がる。これは勿論192kHzサンプリングでも同じ結果となる。その場合は足しているサイン波の数が増えるので、それなら不思議ない感じもするけれど、96kHzサンプリングはたったの三つで出来てしまうのが驚き。

 結論として、リンギングレスにあまり積極的意味合いは感じないとしても、自然界の音は上の波形のようにリンギングしたりはせず、下のようになだらかになるだけと思う。なので、デジタルシステムの都合としての帯域制限が、結果として多くの場合は不自然なリンギングにつながる。

 リンギングレスフィルターのような帯域制限は、高調波の漏れからして常識的には掟破りであるけれど、20kHz帯域に対して少し広めの96kHzサンプリングや、ゆるゆるの192kHzサンプリングに意味はあるのでなかろうか。ハイレゾというのは、20kHz以上の蝙蝠帯域は無意味としても、不自然な帯域制限を避けるという観点で意味がある。20kHz帯域に対して96kHzサンプリングしていると、それなりの利点はあるという事。