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

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

1bitDSM。基板はシーズン2へ突入。

1bitDSM は、終にシーズン2に。シーズン1がパッとしなければ次はない。今は自分で基板のデータを作るならば、製作の実費は三万もしないので、ハードルは低いけれど。シーズン1では、潜在能力の高さが分かって、次回に期待という辺りで幕切れ。シーズン2の目玉は、所謂ミッシングリングを修復して、完全な輪に戻す事。欠けていたのは、発振対策、たくさんのタップを如何にして同じ条件でドライブするか、アナログ的な諸問題、など。

 

二か月ぐらい新しい基板で試行錯誤して、八割方はつながったと思う。そして最後に残った欠けた部分の存在も。FPGAのハード的な制約で(今回の基板でそんなのがあるのだと分かった)、今回の基板は完全な形では使えなかったから、まずは一歩後退。ではあるけれど、シーズン3でその問題は解決するから、二歩前進になるはず。最後に残った所が解決すれば完璧、そうでなくても120dBのSNRは確保できるのでないだろか。 

 

因みにSNRとはADの用語の解説にある通り、

SNR は、測定した出力信号 rms 値の、ナイキスト周波数より下
の全スペクトル成分の rms 値総和から 6 次までの高調波成分を
除いた分に対する比です。SNR は、デシベル値で表されます。」

の意味。オーデイオ業界では恣意的に違う解釈をしているので、もちろん正しいSNRの方。

 

こんな基板。

f:id:xx3stksm:20191124192527j:plain

f:id:xx3stksm:20191124192539j:plain

 右側のxc6slx9が36タップで、左のxc6slx25が48タップまで使える。その積りだったけど、今回のようなアナログ的な出力をする場合、些か出力ピンの選び方に制限が出来てしまい、全部は理想的な形では使えなかった。36のはずが24。48の方は36。まあ、なんとか、やりくりはしたけれど。

 

 この問題は、自動配線をする限り回避は出来ないと思う。自動配線のプログラムは、当然の事としてデジタルシステムに特化している。色々試行錯誤の結果、昔話に出て来るような古色蒼然の方法で解決する羽目に。手動配線に近い方法。今の大規模FPGAでは、どの回路にどのLUTを使うかなどは、全て自動配置でPCにやらせる。でもアナログ的な使い方では、後から人間が手動で配置転換をしてやらないと上手く行かない。

 

 それで昔はそれなりに使っていた、FPGA editorというので手動配置してやると、上手く行く。今はもうvivadoの時代だから、そんなものの存在を知っている人は稀かと思うけど、ISE14.7であれば、まだ使える。使えたので、かなりびっくりした。 こういうやつ。

f:id:xx3stksm:20191124193753j:plain

FPGAの中身を見れるソフトで、出力の極性を反転させる程度ならば、これで編集もできる。要するに、自動配置では少し出力パッドからは離れた場所に置かれてしまった関係するLUTを、空いている近くのLUTに配置換えする。デジタルで使う限り、その必要はない。今回は特殊な使い方をしているので、そんな裏ワザと言うのかハッキングが必要。今回見つけたミッシングリングの一つ。

 

そもそも1bitDSMというのは、市販品のESとかAKがピカピカで誰の目にも凄いと見える金閣ならば、ちょっとモッサリ感のある良く言えば味があって枯れた趣の銀閣玄人受けとでもいうのか。銀閣を建てた足利義政も、金閣に張り合おうなんて気はサラサラなくて、自分用に隠れ家的な隠居場所があったら良いなあ、ぐらいの積りだったと思う。

 

それが意外と当りで、彼は栄誉ある四畳半の発明と言うか発見者として、尊氏とか義満程の知名度はないけれど、今の日本文化の源流になったのは間違いなし。日本の地の研究者はあまり言ってないかもだけど、ドナルド・キーンはそう書いているし、ほんとにそうだと思う。引き算の美学、引き籠り、オタク、四畳半、茶道、生け花、能、わびさび、などなど。

義政の辞世

なにごとも ゆめまぼろしと おもいしる みにはうれいも よろこびもなし

 

というような、銀閣的なりわいの1bitDSM。1bitDSMは名前の通りに1bitしかないので、そのパルス列は、デジタルでもありアナログでもある。扱い方次第でどちらにでもなる。動物なのか植物なのか意味不明の粘菌のように。デジタルの次元であれば、適切なOSRと次数の選択で、音声帯域(20kHz)では-150dBFSぐらいの残留ノイズにすることは難しくない。

 

でもDACである限り出力はアナログなので、そんな理想状態からは乖離する。その乖離を何処まで減らせるのかが、1bitDSMのキモ。方法論は色々ある。普通の人は金閣の市販チップで、四畳半的な人はオタク志向をそそられるのか、例えばChordなんかがその成功例。Qutestは、そこそここなれた値段。

https://www.audiosciencereview.com/forum/index.php?threads/review-and-measurements-of-chord-qutest-dac.5981/

THD+Nが114dBという事なので、内訳はTHDが118dBで、Nが116dBぐらい。ダイナミックレンジは117.4dBで、これは基本波が-60dBFSの時だろうから、1bitDSMの例に漏れず、フルスケールでもNは、ほとんど劣化しない。

 

Signalyst型だと、数字は良くならないのでTHDが94dBで、Nも94dBぐらい。

https://www.diyaudio.com/forums/digital-line-level/345385-star-pure-dsd-dac-signalyst.html

 

 このTHDとNが大体同じ数字になるというのは、良く出来た1bitDSMの足跡みたいなものでなかろうか。うちの1bitDSMも、シーズン1とシーズン2が、最終的には同じような結果になった。上手く行っていない時はどちらも悪く、上手く行くとどちらも良い。金閣型は、たいていTHDがNよりも良い。  

 

 ただ問題なのは、-120dBFSのNを直接測るのは、APの桁を間違っているような測定器でないと無理。うちのAD7960は、二つパラにしても残留ノイズが-123dBFS。なので測定対象が-120dBFSだったとてしても、出て来る数字は両者の二乗平均で-118dBFSぐらい。金閣的な金持ちでもない限り、そうやって補正して使うしかない。-123dBFSは、銀閣的には飛びっきりのハイスペックなんだけど。なんとか-123dBFSぐらいまでは、補正して使える。

 

 そんな貧乏補正をして、尚且つ本来の48tapが使えない片肺の中で、辛うじて使えそうな6tapをかなり完璧な36tapに上乗せした42tapだと、このぐらいの数字になった。

f:id:xx3stksm:20191124203051j:plain

 これはTHDが少し良くない。1bitDSMの法則によると、やっぱり上手く行っていない。繕った6tapの出来があんまり宜しくないんだと思う。悪貨は良貨を駆逐する。まあ、補正後で118.7dBのSNRは立派だけど。48tapが全部揃えば、THDもNも更に良くなるはず。揃っている36tapだと、これ。

f:id:xx3stksm:20191124203502j:plain

THDとNが大体同じ。ゲインが1.3dBぐらい上がって、SNRが1dB上がっているので悪くはないけれど、THDは割を食った模様。理想的なアナログFIRの場合、ゲインが上がってもノイズレベルは変わらないので、SNRはそのまま1.3dB良くなる。36tapから48tapの場合、ゲインは2.5dB上がるので、理想的であれば117.7+2.5=120.2になる。実際はそこまで理想的に動作しないので、117.7+2=119.7ぐらいと思う。

 

8tapだとこれ。

f:id:xx3stksm:20191124204136j:plain

これはゲインが13dBぐらい上がるので、36tapは理想値として121dBぐらい。なので3dBちょっとロスしてる。

1tapはこれ。

f:id:xx3stksm:20191124204412j:plain

これから推測すると、8tapの理想値は、114dBほど。6dBぐらい損してる。1tapは、ほとんど回路の残留ノイズに等しいので、これを基準にするのはちょっと厳しいのだけど。ただ理想値としては、1tapの129dBというのが存在するのは事実。つまり、アナログFIRの動作環境次第で、まだまだ改善の余地があるという事。でもこれは熱雑音の領域なので、120dB辺りが現実的な数字だろうけど。

 

アナログFIRの場合、各タップのスイッチングの位相を揃える事でノイズの発生を抑えられて、より理想状態に近づく。但し足し算はアナログのデイスクリートなので、モノリシックよりは圧倒的に不利。それなりのノイズ増加が、タップを増やすと出る。

f:id:xx3stksm:20191124205356j:plain

上段の2tapだと、ほとんどまだ出ない。12tapになると、そこそこ。42tapは、繕い物のせいもあって、それなり。これは250MHzの帯域制限だから、相当に小さいのだけれど。128OSRなので、その周期でノイズが出る。100MHzぐらいの 単発サイン波のような感じ。そんな高い周波数がどうして音声帯域に影響するかと言えば、それは大太鼓とトライアングルの関係。

 

自明な話として、大太鼓はトライアングルよりも低い周波数成分を持つ。ではトライアングルにはないかと言うならば、ほとんど全ての人が誤解している。PCで使うFFTというか正確にはDFFTは、離散時間のフーリエ変換の事。離散時間とフーリエ変換は矛盾する概念で、数学的にはともかくとして現実世界では両立しない。この場合、離散時間がフーリエ変換を駆逐するので、実際にしている計算はフーリエ級数

 

無限のデータを扱わない限り、フーリエ変換にはならなくてフーリエ級数となる。フーリエ級数とは、周期の制限の中での計算。一秒の周期で計算するならば、その展開した周波数成分は、つまりはFFT(DFFT)のbinは1Hzの倍数。1Hz,2Hz,3Hz・・・fs/2まで。対象が大太鼓であってもトライアングルであっても関係なし。解析周期の整数倍の周波数成分に展開される。違いは、大太鼓の方がより低い周波数成分を含んでいるというだけであって、トライアングルだから低い方はないという話はない。一秒周期で叩いているならば、トライアングルであっても1Hzの成分が必ず出てしまうよ、というのが計算するまでもないフーリエ級数の常識。

 

この場合も、100MHzの単発パルスは間違いなく元の1kHzの信号に何らかの関連性を持っているので、音声帯域の方までも影響して不思議ではない。実際、このグリッチのようなのが小さくなると、THDもNも良くなる。なのでデジタル側とアナログ側を工夫して、これを出来るだけ大きなタップの時にも小さく出来る最適な方法論を見つけられるなら、それが最後のミッシングリング。シーズン3でそれが出来るならば、話はシーズン3で解決して大団円。

 

おまけで帯域外ノイズ。42tapになるとアナログFIRの効きも良くなるので、更に小さくなる。

f:id:xx3stksm:20191124211725j:plain

f:id:xx3stksm:20191124211736j:plain

以前のは24tapのはずだから、かなり違いがあるはず。オタク志向の1bitDSMで、マルチビットDSMに近い所まで来ている。