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

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

DSMだって勿論-90dBFSの出力は出来る。こけちゃうのもあるにはあるが。

 pcm1704の代替品はRF用の高速DACに落ち着いて、結果としてx512(24.576MHz)までのサンプリングが出来るようになり、アナログLPFなしでもほぼ完全な元信号の再現が可能になる。そしてx512まで行っているので、FPGA次第でDSMとの二刀流も可能になった。期せずして、PCM(マルチビット)とDSMの奇妙な同居。

 

  市販のチップの場合、両者は水と油のようで共存は無理。製造プロセスが違う。高速DACとFPGAというのであれば、神仏混淆のように融通無碍で、寺なら松で神社なら杉かという程度の差。原理的にも両者を分けるのはNFBの有無なので、これはデジタル的にどうにでもなる。マルチビットも16bitを超える精度は無理なので、どこかでDSM的発想に切り替わる。

 

 真正のマルチビットがA級でDSMに変わるとB級動作になるようなもの。無帰還の

 A級がマルチビットで、B級のNFB付きがDSMと言ってもそんなに的外れではない。DSDを、信号を疎と密で表すとか、PWMの一種とするよりはずっと正確。x512ぐらいまでの高速サンプリングさえできれば、あとは何とかなる。微小電圧で若干の違いはあるとしても。

 

 DSMで-90dBFS(0dBFS=6Vpp)を出すとこんな感じ。1bitの量子化器で、x256OSR。FPGA(spartan6)の容量の関係でDSMは五次。Artixならば七次に出来るので、x128OSRでもほとんど高調波ノイズは出ない。但し1bitというのは中々の曲者で、少しばかりの工夫が必要。そのまま1bitで出すと、こんな特性にはならない。20dB近くは悪くなる。

f:id:xx3stksm:20181127185331j:plain

 1bitDSMに相対誤差がないというのは机の上での話で、現実世界では通用しない。パルスの立ち上がりと立下りの時間がゼロでないとこの仮定は成り立たなくて、それは不可能であるので実際はかなりの誤差を持ってしまう。結果として、5bitぐらいにして相対誤差を減らす方法論に較べると、圧倒的に不利になる。試してみれば分かる事。

 

 なので1bitは特に必要ないのだけれど、例えばpcm1792にDSDデータを渡したりとか、DSMなのにデジタルフィルターという完全な二律背反が出来たり(これは童顔なのに巨乳なんてのとは些か次元を異にする)、量子化器の1bitと5bitの変更は簡単なので、おまけとして付いてる。

 

 変調器自体は1bitなので五次のDSDとして機能するし、デジタルフィルターを通して5bitまで拡張してからAD9717に出力するので、ノイズシェービングで取り切れない高調波ノイズもデジタルの領域でかなり落ちている。5bitであっても、パルスに対する要求は立ち上がりと立下りともにゼロ、で変わりない。但し、振幅が1/32になっているので誤差もその分小さくなっているというだけの事。

 

 完全な1biであれば、仮に-90dBFSの信号であっても出力は常に最大振幅(約1Vpp)で振れている。DACのレイルトゥレイルという言い方が相応しいかも。そこから200μVppの信号を引っ張り出そうというのは、少し話がうますぎる。これを5bitにしてしまえば、30mV(1/32≒30mV)ぐらいの中から200μVなので、ずっと自然な感じになって数字も良くなるという当たり前の話。

 

 但しやっぱり、一番下の30mVを使うしかないのは事実。30mVよりも下は、全部このLSBの30mVで賄っている。1bitのDSMならば、最初からすべてを最大振幅の1Vで賄う。16bitあるのなら、1/65536までは1bit動作にならないという事。現実論として、相対誤差の補正が出来るのは6bit程度までだから、1/64までというのが最大値。

 

 そんな訳で、x256ぐらいが特性としては良さそう。それより下は高調波ノイズが少し残る。x512はやはりパルスの正確性に難が出て来るのか、x256よりは少し悪い感じ。調整次第かも知れないけれど。1bitでここまで出れば上出来と思う。

 

 この信号をpcm1792のDSDモードに入れるとこう。左の小さいのがpcm1792の基板。表示のDSM_5bitというのは所謂フェイクニュース。これは実際の測定時ではなくて、写真撮影のために出した表示だと思う。DSM_1bitというモードにしないとDSDは出ない。

f:id:xx3stksm:20181127192718j:plain

 これが測定結果。pcm1792はデータシートではx256まで入る。実際には、x512でも動作した。但しIV変換の関係か、或いはpcm1792自体の問題か、x512はあまり良くない。AD9717と同じ傾向。この数字だけからするとあんまり良くないが、pcm1792は0dBFSまで振幅を上げてもあまりノイズが増えない。

 

 これはとても珍しい特性で、総合的には相当に高い能力を持っている。二個或いは四個のパラで使うならば、SNでは他を圧倒しそう。AD9717よりも良い。しかしTHDはそんなに良くはない。両方が良いものは中々ないので、やっぱりトレードオフという所に落ち着く。

 f:id:xx3stksm:20181127193133j:plain

 

 これがAD9717の5bit。これはあんまり良くない。

f:id:xx3stksm:20181127192226j:plain

 これは0dBFSのような大振幅の時とのトレードオフでこうなっている。0dBFSを優先すると、皺寄せがどうも-90dBFSに出て来る。0dBFSの時のTHDを少しだけ犠牲にすると、1bitと同じぐらいの特性になる。1bitの場合は、あんまりそんなトレードオフが出ない。理由は不明。微小電圧での特性は、マルチビットに少し分があるのかなと思う。DSMが求める理想条件が崩れて来るので、まあ仕方ない事かも。

 

 少し蛇足を。まずはRpiのHATでpifiberryとかいうやつ。$50ぐらいの中国製。DACはpcm5122。pcmの96bit/24bitのファイル。 値段と手頃な大きさからして悪くない。volumio2でデジタルボリュームも使える。ここでは振幅が小さいので、クロックジッタの影響はない。RpiのIISは言うまでもなく不完全なので、無補償で0dBFSにするとDACとは無関係に16bit程度のSNしか出ない。f:id:xx3stksm:20181127194356j:plain

volumio2の場合LRCKにはジッタがないので、DACマスターにするまでもなく、読み出しのクロックをLRCKから作るのが簡単。FIFOは最小の16ワードぐらいで間に合う。512kバイトぐらいのSRAMで非同期読み出しするようなHATもあるけど、volumio2限定、或いはドライバー限定ならば、クリスタルのPLLが簡単。

 

 うちのDACは寸法としてHATにならないけれど、IISのコネクターはRpiと同じ並びなのでそのままつながる。ドライバーはgeneric IIS。クリスタルのPLLで完全にジッタは取れて、SDカードからの読み出しなどと同じ特性になる。実験用以外でIISの必要はない。SDカード若しくはTOSLINKが実用。TOSLINKは非同期取り込みなので、オプトカプラーのジッタは影響せず、SDカードと同じく完全にアースグランドから絶縁できる。IISではこれが不可能。

 

 最後はこういうの。中国製のES9038だったか。$50ぐらいの。これはちゃんとDSM_1bitの表示になっている。IVは電流モードに変えてある。こっちの方がメーカーの推奨で特性も良い

f:id:xx3stksm:20181127200228j:plain

 

 これがx128(6.144MHz)のDSD。pifiberryとほぼ同じ。

f:id:xx3stksm:20181127200506j:plain

 

 x256にすると、こうなってしまう。これは詰る所、軽トラで100km/hを超えると、車内はがたつくしエンジンはうるさいし、になるのと同じ。と言っても、チップ自体の責任ではないと思う。写真では分からないけれど、値段から推測できるようにこれは普通の両面基板。

f:id:xx3stksm:20181127200718j:plain

  チップ自体が悪いのでないと言いつつも、これは100MHzのクロックを外から入れている。両面基板でそれを実装すると、物理法則は嘘をつかないのでこうなってしまう。高速動作をさせる場合、普通こういう事はしない。グランドプレーンを持った多層基板にするのも常識ながら、外からこんな高い周波数は入れない。

 

 最近のFPGAだと内部では500MHz近くでの動作もある。spartan6でも、200MHzぐらいはある。でも外からそんなのは入れない。うまく動かないので。外からはせいぜい50MHz。25MHzぐらいが無難。内部で必要な所まで上げる。そうしないと到底高速動作は無理。両面の基板に100MHzのクロックは常識として無理。そこに持ってきてIVのパラレル動作というのは、ちょっと現実から遊離している。

 

 実装次第で何とかなるかもだけど、大抵はこんな具合にこける。こうなると何をしても音が変わるという状態になって、お客さんはそれをむしろ喜ぶので双方の利害が一致ではあるけれど、こういうものに手を出す必要はないというのが結論。pcm1792の方がずっと素性が良いし、高速DACFPGAという組み合わせもある。pifiberry のpcm5122は両面基板でもこけない。好みの問題であるけれど、無意味に実装の難しいものに手を出す必要性は感じない。