デジタルのシステムには、必ず厳格な帯域制限がかかっている。ここがアナログとは根本的に違うので、出せる信号も自ずと違ってきてしまう。端的に表れるのが、いわゆるreconstruction filterの所。日本語にすると、再現フィルターかな。デジタル化で出てしまう本来は存在しないイメージ(虚像)を取るためのフィルター。デジタルフィルターだけでは取り切れないので、普通はアナログのLPFとの合わせ技になる。オーバーサンプリングフィルターとも言う。
48kHzのサンプリング周波数だと、20kHzまでを通すのは中々難しくて、かなりきつめのbrickwall(煉瓦塀)型を使う事になる。と言っても、煉瓦塀を使えるようになったのは半導体の集積度が上がったからで、昔のアナログフィルターでは相当にきつい。であるけれど、煉瓦塀特有のリンギングという現象は避けられない。リンギング自体は悪くはないと思うけれど。
このリンギングの正体とは、意外と単純。単純なのでリンギングしないフィルターというのも、以前書いたように不可能ではない。デジタルフィルターでのリンギングは、単に係数の並びの問題。係数が単調増加か単調現象であれば、リンギングはしない。簡単な五次ぐらいのデジタルフィルターで確かめてみれば良く分かる。デジタルフィルターは難しい数式で表されるけれども、要は漸化式なのでエクセルで図解すれば単純。こんな按配。
グラフ化しないと意味不明。
入力として方形波を用意して、二つのデジタルフィルターを通してみる。片方はリンギングしないように単調増加と単調現象のみ(a0-a4)。片方は普通の係数(b0-b4)。デジタルフィルターを通すとは、入力のFHと係数のFIかFJとの畳み込み積分を計算する事。畳み込み積分とは、入力と係数との単なる積和演算。文字式で書かれると卍固め決められたようで手も足も出ないが、漸化式で具体的な数字を当てはめるならば、普通の四則演算。
見ての通りで青はリンギングしない。赤はする。入力の方形波は、ずっとゼロが続いた後で今度は1が続く。ゼロの時は、勿論計算結果はゼロ。1が入って初めて何らかの値を持つ。b0からb4との畳み込みの場合、最初はb0の-0.1。次はb0とb1になるので足して0.2。最初のデータがマイナスだったのに次はプラスになるので、リンギングつまりは振動してしまう。a0-a4の場合は、常に足していくか或いは引いていくので、リンギングはしない。1024の次数になっても、理屈は同じ。
デジタルのシステムは帯域制限を入れるので、方形波のように無限の周波数帯域を持つものは、「幾許かの削り取られ」が必ず発生する。それがリンギングになったりならなかったりする。ほとんどの場合はなる。なので完全な方形波は、デジタルのシステムには存在しない。勿論アナログシステムにだって、そんなものは存在しないけれど。
リンギングが後に出るのはアナログフィルターでもそうであるから許すとしても、前に出るのは許せない、信号が来る前のリンギングはおかしい、というのはおそらく時間軸を間違えている。デジタルシステムでは簡単に遅延を入れられるので、出力が入力の前に来ているような状態にもできる。それを見て、デジタルに対する悪感情が入り混じったんだと思う。畳み込みの意味を考えればそれはあり得ない。正しい時間軸は、上の図。直線位相であれば大体次数の半分ほど出力は遅れる。5次であれば2から3。
リンギングの本質は、必須である帯域制限を如何にして入れるかという話。結論から言ってしまうと、遷移帯域を広めに取るのが宜しい。48kHzサンプリングで20kHzまでを通過帯域にする場合、必然的に20kHzから24kHzが遷移帯域になる。これはなかなか厳しくて、ちょっと狭すぎる。この条件でリンギング無しを選択すると、イメージの除去を完全に行うのは無理。
リンギング無しの条件である単調増加と単調減少を守ると、理由は分からないけれども急峻な特性は作れない。20kHzから24kHzのみが遷移帯域というのは無理。他にもリンギング無しの条件はあるかも知れないので、絶対に無理と断言はできないけれど、リンギング無しとイメージの除去は両立が難しい。あれこれと試行錯誤して何とか辿り着いたのがこんな特性。
あんまり意味がないけれど、インパルス応答がこれ。この図で分かるようにインパルス応答はデジタルフィルターの係数を並べただけなので、これ自体はあまり物理的意味合いを持たない。レベルがフィルターの種類で大きく変わるのも難点。利点は、これをFFTすれば上の周波数特性になるという事ぐらい。
赤のno_ringingは、全くリンギングしない。しかし半分の24kHzを超えても一向に減衰しないので、かなりのイメージが残ってしまう。具体的には、18kHzぐらいでも相当な歪率になる。こんなことになる。
こういう特性なので仕方ない。これは実測値。
最初の18kHzのイメージの30kHzでは、18kHzより-12dBぐらいしか下がらない。歪率25%になってしまう。但し、それより上のイメージは全てデジタルフィルターで取れている。x256以上のOSRであれば、特にアナログのLPFは不要。より現実的にはこんな具合で、リンギングはしない。
黄色は10kHzのバースト波形。少し波打っているのは、やっぱりイメージの影響があるため。但し、現実の音声では10kHzのここまで大きな信号はない。聞いて分かるか否かは不明。いずれ確かめるにしても、八台必要になるのでしばらくは先の話。完全なリンギング無しを、48kHzサンプリングで実現するのはおそらく無理と思う。
煉瓦塀であればイメージは完全に取れる。こんな特性だから。21kHzまででその上は無し。
リンギングは出る。周波数はリンギング無しと同じ。
但し、騙されてはいけない。木や金属でできた楽器を人間が弾くのであれば、こういう信号は現実世界ではありえない。シンセサイザーで無理やり作ったりしない限りは。楽器が音を出すためには空気を振動させる。そのためには質量を持った何らかの振動版が動く。その振動版は、重さ故に初めからこんな高速な反応はしない。リンギングが目立つほどの急峻な始まり方は出来ない。定常運動に入れば10kHzで振動可能としても。
問題があるとすれば、聞こえるかどうかは抜きにして本来あったはずの24kHz以上が消えてしまう事。24kHzまでで良いのかというのが本来の問題で、リンギング云々はその
二次的な話。いわば高域カットの警告程度の意味合い。一つの妥協が、両者の良いとこどりのhybrid。
これであれば18kHzでも30dBぐらいの減衰になるので、もうそんなには歪まない。こんな感じ。3%程の歪で真空管並み。そこそこの許容範囲。10kHzのバーストでこれならば、現実的にプリとかポストのリンギングは音楽信号では無視できる程度になる。
上の周波数特性から見て、これは20kHzから100dB/octぐらいで落ちていく。自然界の空気フィルターであれば、もっと緩やかな特性なのでまだまだ不自然かも知れないけれど、警告としてのリンギングもそこそこなので、この辺りが妥協点かなと思う。見た目のインパルス応答は、no_ringingと大差ない。実際の特性はかなり違うけれど。
結論として、基本的には煉瓦塀にして問題はないと思う。試せるのであれば、hybridとかno_ringingにも価値はありそう。いわゆるNOSというのは、もっともっとメチャクソな特性になるが、結構好きな人はいる。クラシックには向かなさそうだけど。或いは、20kHzまでしか使わないけれども、96kHzサンプリングにする。こう。
こうしてしまうと、20kHzのイメージの76kHzはno_ringingでも40dB近く確保できる。1%の歪。ハイレゾというものに意味があるとするならば、広めに取れる遷移領域。聞こえる聞こえないは抜きにして、このhybridの特性のようなフィルターは自然界でもかかると思う。20kHzから40dB/octぐらい。
もう実測値は取っていないけれど、48kHzの時よりもずっと良くなる。うちの音源はほぼ全てがレコードからのリッピングで、再生用は48kHzサンプリングにしているけれど、メモリーをケチらずに96kHzサンプリングにすれば、ほぼ完璧にこの特性でのデシタル録音と再生が可能。元ファイルは96kHzサンプリングなので、今からでも出来なくはなし。
20kHz以上は音声としては必要がない。スピーカーから数メートルも離れると、高域は一気に落ちる。うちのように10mぐらい離れてると、20kHzは実測値で20dBは落ちる。コンサートホールではもっと落ちてるが、全然気にならない。それでもデジタルシステムの帯域制限を円滑にかけるためには、広めの遷移領域が必要なので、96kHzサンプリングにも意味はある。結論の歌。敷島の 96kHzを 人問わば 広めに取れる 遷移領域かな。