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

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

その後のD90。HDMI-IISとかDSDとか入れる羽目に。

D90をポチッたので、これを基準にしてADCの校正をする。前回よりもかなり良くなった。AD7768はドライバー次第でSFDRが-130dBぐらいまでは行く。ADA4896-2が良さそうで、EVboardもこれを使っている。ただどうも被測定側の出力抵抗が大きいとダメ。せいぜい100Ωぐらいまで。バイアス電流が11μと、typoかと思う値なのが関係しているのかも。

https://www.analog.com/media/en/technical-documentation/application-notes/AN-1384.pdf

 

その辺りを改善したらそこそこ。refをデータシートのように4Vまで下げると、-1dBFSでも劣化しないかと思う。今は5Vで使うしかないので、-3dBFSぐらいが限界値。SNRはこの設定では不正確になるので無視。正確にはASRの数字のように121dBぐらい。これでは二次の歪はほとんど消えている。最近分かったけど、二次は比較的消しやすい。おそらくそんな処理をしているのだと思う。

f:id:xx3stksm:20210109205028j:plain

ADCが良くなったので色々とUSBでの出力を調べていたら、幾つかの問題があるのだと分かった。まずは恐らくは手抜きの結果として、OSRは8で固定になっている。帯域外を見ると、PCMかいなという按配。fs=48kHzの時に、最初のイメージが384kHzの所に出る。fs=96kHzの時だと、786kHz。要するに8倍のOSR。

f:id:xx3stksm:20210109205507j:plain

AKM4499はマルチビットなので、8倍程度のOSRでも帯域内の歪は問題ない。だからこれでも可。多分、fs=768kHzの時は6.144MHzになるから、ここを基準にして全てを合わせたんだと思う。特に問題にはならないが少し変。100kHz辺りのスペクトルは、SMPSのノイズと思う。拡大するとこれ。fsに依存せず常に出ている。120dBμV=1Vrmsなので、あぁ出てますねぐらいの意味。

f:id:xx3stksm:20210109210104j:plain

ついでにDSM自体の残留ノイズはこのぐらい。1MHz辺りに20dBμV。マルチビットだけあってとても小さい。

f:id:xx3stksm:20210109210342j:plain

ちょっと驚きだったのが、USBのジッタ特性。USBはほとんど使わなくて、うちにあるXmosの出力のクロックは完全な線一本の理想的特性だったから、当然USBは皆こうだろうと思ってた。ところが信じられない事に、100Hz以下でもハッキリとクロックジッタによる影響がある。

f:id:xx3stksm:20210109210720j:plain

ジッタでの所謂フェイズノイズは周波数に比例する。見事に比例している。rectangularでは見られないので幾分不正確は仕方ないけど、比例関係は分かる。これから20kHzでの予想値はだいたい-63dB。実測値とは、当然ながらほぼ一致。そういう劣化のないI2S(青)と比べると、かなりスカートが広がる。アナログに比べるならば無視出きるけれど、Xmosならばこうはならないのでお粗末。 

f:id:xx3stksm:20210109211537j:plain

 

I2Sは同期サンプリングが出来るのでrectangularに出来る。正確にbinの解像度で見れる。これが本来の数字。SPDIFでも、ノイズフロアーは上がるけれど、スカートの広がりはない。ジッタの質が違う。ESSのようにASRCを入れるのは賢い。ただマルチのように複数台の場合はちょっと使えない。IISしか手はない。

f:id:xx3stksm:20210109211810j:plain

バルク転送かアイソクロノスでもASYNCにすればFIFOが入るので、こんなジッタは出したくても作れない。一個¥100のクリスタルでも線一本。FIFOが入っていないならば、ドライバー変えても無理。どうなってるかは分からんが、HWとしてFIFOが入っているならばSWでそれを外す事はまずない。嫌でも入ってしまうもの。なのでこれは修復不能かなと思う。

 

大勢に影響はないけれど、XmosのIISにLVDSの変換基板をかましHDMI-IISに入れる、というのが最善の方法。かなり面倒。120dB超えるSNRと-130dB近いTHDというのは、ポン置きというのかポンつなぎで出る数字ではない。些かの手間は必要。物理現象とはそういうもの。最近のDACにはHDMI-IIS付きが多い。ここから入れないと、まともな測定が出来ないという要素もあるのでしょう。

 

というような事で、仕方なくADCに空中配線でHDMIのコネクターを付けて、HDMI-IISに入れたのがこれ。上のIISもそれを使っている。少しTHDの値が違うのは誤差。このぐらいはずれる。もちろん、ここでの数字はUSBと同じ。見えない所では違う。

f:id:xx3stksm:20210109213204j:plain

 

毒を食らわば皿までという訳で、DSDも試す。HDMI-IISは、DSDにも対応している。但し、ADCにはDSMの回路までは入らないので、1bitDSMの基板を流用して入れる。この基板は外部同期で動くので、DSDも同期サンプリングが出来る。

 

f:id:xx3stksm:20210109213723j:plain

ちょっと誤算だったのは、AKM4499自体は48k系にも対応している筈なんだが、D90は受け付けない模様。44k系の2.8MHzとかの倍数のみだった。DSDはそっち系なので、まあ仕方ないのかも。その余波で1kHzは918Hzとかになってしまう。まぁ、これまた大勢に影響なし。AKM4499のDSDの実測例はあまりないと思うので、そこそこレアもん。

まずは2.8MHzのDSD64。

f:id:xx3stksm:20210109214413j:plain

これはDSD64なので、8次ぐらいにしないと音声帯域に量子化ノイズがこぼれてくる。そして44k系なのでADCも96kHzのSPDIFは出せなくて44.1kHz。88.2kHzも可能だが普通のPCは受けてくれないので仕方ない。音声帯域の特性は、予想外に良い。マルチビットのチップなので、DSDはオマケと思ってた。SNRも少し落ちるだろうと。SNRとTHDはほとんどPCMのマルチビットの時と変わらない。とても意外。やっぱし二次歪はほとんどない。

 

帯域外のノイズはDSD64なので、かなり多め。当然ながらSACDと同じぐらい。帯域外の影響がどれほどのものかは分からないが、SACDのように媒体での制約がある場合を除き、DSD64の必要性はないと思う。本来は11kHzぐらいの正弦波。DSDフィルターは65kのほう。

f:id:xx3stksm:20210109215123j:plain

 

少し実用的になってくるDSD128。もう8次の必要はないので6次。特性的にはDSD64とほぼ同じ。SNRも120dBはありそう。

f:id:xx3stksm:20210109215349j:plain

帯域外のノイズ。見た目でかなり高周波のノイズが減っている。FFTからしても然り。

f:id:xx3stksm:20210109215431j:plain

 

最後にDSD256。こちらは更に次数を減らして四次。スピーチとスカートは短いほど良いとしても、山高ければ貴からずで、DSMの次数も大きければ良しではない。帯域内と帯域外との相関で決まる。OSRが上がると帯域内への漏れは減るので、無意味な次数は必要ない。小さ目が良し。ほんの少しSNRは悪化していると思う。目見当で118dBぐらい。

f:id:xx3stksm:20210109215634j:plain

いずれはAPのようにTHD用とSNR用を同時に使い、SWで合成して両方を同時に見られるようにしたいが、たかだか二万程度の今のADCでの両立は無理。SNR用まではHDMIの対応が出来ないので、目視での推測。でもまあ、DSD256でここまでの特性が出ているとは驚き。ほんの少し高域での草が増えるだけ。火事で燃えたのは残念。多分、復活はもう無理だろうから。

 

帯域外ノイズ。このぐらいの信号レベルだと(107dBμV)、もう分からないぐらいまで小さくなる。勿論、帯域内の漏れはない。ピークで35dBμVぐらいだから、マルチビットの20dBμVと比べてもそこそこ。

f:id:xx3stksm:20210109220438j:plain

 

20kHzでのジッタ特性。IISより少し悪めに見えるのは、連続性の問題と思う。rectangularだから連続性は信号の側で確保する必要がある。原理的な問題として、1bitDSMでは厳密な意味での連続性は確保できない。その違いかなあ。クロック自体はIISと同じ精度で入る。超こまかい話としては、1bitDSMの限界。或いはFFTの特性上の問題。

f:id:xx3stksm:20210109220826j:plain

結論として、D90のUSBは厳密にはジッタが多い。多分製造元も知らない。ASRの測定も、ジッタ特性というのは全く意味不明のデータを出している。あれで何が分かるのか全く分からない。SPDIFであればノイズフロアの上昇として出て来る。D90のUSBは俗に言うフェイズノイズの増加という形になっているが、ジッタ由来のノイズかその他のノイズかの判別はそもそもできない。

 

周波数依存がはっきりしていれば、間違いなくクロックジッタであるけれど、ノイズフロアの上昇が何の原因によるかの追跡はほとんど不可能。32toneのような信号を入れた時、周波数依存してしまうDACは多いかもと思う。FIFOなしだときっとそうなる。でもそこまでは設計者だって手が回らない。SPDIF、USB、IISブルートゥースと色々あって、更に周波数も色々でDSDとかも有りとなれば、全部確認なんて出来ないのよね。

 

お客さんはあれもこれもと言って来るから、企画側はあれもこれも入れろと言ってくる。作る側は堪らんぜ。大勢に影響しない所は適当に手抜く。定価で$695な訳だし。こんだけ積み込んだのを作るなんて、ほんと大変。ストレスで頭禿げる年になる前に禿げる。良く頑張っている。中国産のニンニクを買おうとは思わないが、工業製品にはお買い得が結構ある。

 

テレビももうhisenseにした。いずれ日本製は駆逐されるだろうなあと思う。仕方ない。良く出来ているんでないのかな、D90は。本来のDACとしての使い方は無理で、低歪発信器としてだけど、元は取れる。星4.5、ってとこでしょか。