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

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

フーリエ級数vsFFT(離散フーリエ変換)。畳み込みに丸め込まれないためには。

 一昔前の、つまりは昭和の頃のオーディオ関連の測定器と言えば、俗に言うOLDだった。Oはオシレーター、Lはレベルメーター、Dは歪測定器(ディストーションメーター)。テスターは勿論針式で入力抵抗も低くて、プレート電圧を測るような時には補正が必要だったりもした。遠い昔。オシロスコープもブラウン管だったしなかなかの高級品で、高校生ぐらいでは持っていなかった。

 

 更にその上にスペクトルアナライザーなるものがあって、これは信号の周波数スペクトルが分かるというシロモノで、はてさてどういう仕組みなんだろうかと、想像もつかなかった。値段も想像の範囲すら超えていた。それが何時の頃からか、テスターはデジタル式になって10MΩぐらいの入力抵抗になるし、オシロスコープも安くなって、終にはFFTアナライザーと言う形で周波数スペクトルも分かるようになった。デジタル化の勝利。

 


 発振器もPCがあれば簡単に作れるし、デジタルオーディオになってしまうともうアナログの発信器は必要ない。デジタルだけで可。今はもう、PCさえあれば昔のOLDからスペクトルアナライザーまでが、ほとんどタダで手に入るようになった。歪率測定にも、FFTを使うのが普通。ジッタ測定なんかにも使っているが、さてそれはかなり怪しい。おそらくほとんどの場合、測っているつもりでも窓関数の誤差に見たい所は埋もれている。FFTというのは見た目以上に複雑で奥が深いので。

 

 FFTは歴史的に考えて、フーリエ級数から始まった周波数解析の最終形でないかと思う。フーリエ級数は、周期性のあるものであれば方形波のような角張った波形でも、サインとコサインの無限級数に展開できるという理屈で、初めて聞いた時にはほんとかいなと思うけど、実際に次数を増やしていくと限りなく方形波に収束していくので、直感的に理解し易い。収束の様を目で見て確かめられるサイトもある。こことか。

フーリエ級数:正弦波による周期信号の合成

 

 でも現実の音声信号は周期的ではないので、このままでは周波数解析には使えない。そこで出てきたのがおそらくはフーリエ変換。これは周期のない単発の信号でも周波数解析が出来る、という話になっている。やっている事は単純。フーリエ級数では有限であった周期を無限にしてしまった。-T/2からT/2(Tが一周期)までだった範囲を、-∞から+∞にしてしまった。言うは易し、行うは難し。

 


 そうすると、無限大が一周期と言う話なので、数学的には辻褄が合うらしい。あるいは、合わせられると言うべきなのかも。具体的には、CD一枚の周波数解析をしたいのであれば、CDが60分であればその3600秒を一周期とすれば良し。3600秒は無限大ではないけれど、実質的には問題なし。

 


 そんなに長い計算は非現実的ではあるけれど、3600秒を一周期としてフーリエ級数に展開すると、1/3600Hzの分解能でスペクトルが出て来るので、フーリエ変換しましたと言っても嘘ではない。フーリエ変換フーリエ級数とは違って連続なスペクトルになるけれど、それは周期のTが無限大なので分解能は無限に小さくなる。フーリエ級数での1/3600Hz(0.00028Hz)の分解能であっても、連続的と言っても嘘でなし。実質的なフーリエ変換

 


 実際のフーリエ変換では、3600秒は長すぎるので一部分だけを取り出して、例えば一秒とかで代用してると思うけど。当然の話として、計算していない所にある周波数成分は分からない。1812年のような、終りの方で大砲がドンと鳴るような曲だと、前の方だけをフーリエ変換しても勿論大砲の解析は出来ない。それは当たり前なので直感的な理解は可能。難しいのは、一部分だけを取り出すために使う窓関数というヤツ

 


 3600秒は長すぎるので、初めの一秒だけを解析したい時は、ゼロ秒から一秒までが1で、残りはゼロと言う関数を元の信号に掛け算する。例えば矩形窓という窓関数。そうすると、ゼロ秒から一秒まで以外はゼロになってしまうので、そこはもう計算する必要が無くなる。勿論、そこにどんな周波数成分があったかは分からない。知りたければ、知りたい所だけにこの矩形窓を掛け算すれば良し、という話になっているのがフーリエ変換

 


 一応の辻褄は合っていそう。アナログの昭和の頃のスペクトルアナライザーは、その理屈でやっていたと思う。でもストレージばポラロイドにでも撮らないと出来ないから、周期信号でないと中々難しかったのでなかろうか。そして取り出してくる窓関数

というのが曲者で、矩形窓、ハン、ハニング、ブラックマンとか色々あって、被測定信号のスペクトルに合わせて適切なのを選びましょうね、と説明書には書いてある。だがしかし、被測定信号のスペクトルを知るためにスペクトルアナライザーを使うのであって、これは本質的に矛盾しているよね、まったく。

 

 少し考えると、被測定信号に窓関数を掛け算しているので、出てきたスペクトルは被測定信号だけではなくて、掛け算をした窓関数の影響を少しは受ける。なので、その影響が最小になるのを選んでね、だから窓関数はたくさん用意しています、というのがメーカーの本音。そのために色々な窓関数のスペクトルと言うのは公表されている。例えばこことか。ここではLが取り出す区間になっている。

窓関数の周波数特性 - Allisone

 

 でもまぁこれを見て、ああそうかとは普通ならない。10Hzの連続的な正弦波を1秒間だけ取り出すとしたら、Lが周期のTなのでこんな特性になるはず。一秒間だけ切りだす矩形の窓関数のスペクトルは青。それを10Hzの連続的な正弦波に掛け算すると、一秒間だけつまりは10サイクル分の正弦波が切り出されることになって、そのスペクトルは赤。マイナス側の-10Hzは一種の虚像なので、現実世界では無視する事になっている。

 

 これはでも、突っ込みどころがテンコモリ。最初の問題は、どうして10Hzの正弦波なのに10Hz以外の成分が沢山あるのか。マイナス側の無視は受け入れるとしても。これは単純に窓関数の問題。切り出した期間がたったの一秒なのでこうなってしまった。この場合はTが1秒なので、レベルがゼロになる間隔は1/1=1Hzになる。なので10Hz以外の整数ではゼロ。その間に何かしらがある状態。8.5Hzと11.5Hzあたりは最大で0.2ちょい。

 

 もしもTを1000秒にすると、レベルは変わらないけれどもこれらは10±0.0015Hzとなるので、10Hzだけとしても誤差は小さい。つまり、切り出す時間を長くすれば、誤差は減る。正弦波と言う時、暗黙の了解として無限に続いているよという仮定が含まれているので、それを考慮するならばこれはこれで正しいと言える。現実として1000秒でも長すぎるので、矩形の窓関数では中々正確なスペクトルは測れない。ハンであれば、10秒ぐらいでもそこそこだと思う。でも計算が面倒なので省略。

 

 それからレベルが1になっている所をメインローブ、その両脇の部分をサイドローブと言って、メインローブが急峻でありサイドローブがとても小さい窓関数が最も誤差が少ない、となっている。つまりはインパルスみたいなのが良い。でもそんなものはない。フーリエ変換に拘る限り、不透明さと隔靴掻痒の糞詰まり感は解消しない。窓関数とそのスペクトルとの関係が、直感として全く理解できない。幸いな事に、今はデジタルのFFTが主流なので、アナログのフーリエ変換は忘れるのが賢いと思う。

 

 デジタルの世界にも、フーリエ級数フーリエ変換に相当するだろう物はある。この表で、フーリエ級数のデジタル版が離散フーリエ変換で所謂FFTフーリエ変換のデジタル版が離散時間フーリエ変換。これは解釈の問題なので、違うと言う人もいると思う。但しそういう分け方をするならば、数学的な厳密性はないとしても現実世界で戸惑う事は無くて、窓関数の意味合いが地に足のついたものになって、FFTの使い方を間違える事もなく使いこなせるようになる。だから実用的にはそうした方が良いという話。

 デジタルと言っているのは、データが離散的な数字になっているという事。大雑把には、アナログのレコードなのかデジタルのCDなのか。フーリエ変換はあんまり直感的ではないので、そのデジタル版の離散時間フーリエ変換も考えずに忘れる。離散フーリエ変換は、計算の簡単さで実質的にFFT(Fast Fourie Transfer)しかない。これは離散を意味するDiscreteを前につけると思っていたけど、離散にきまっているからつけないみたい。この辺りの用語は、時々少し違った表現があるので、ただでさえややこしいのが上塗りになる。ひとまずFFTと言っていれば間違いはなさそう。

 

 FFTで大事なのは、フーリエ級数なので周期。無限大と言う概念はないので、フーリエ変換の様に信号の一部分を切り出すという操作はない。窓関数は必須だけど、一部分を切り出すためではない、と言い切る。FFTでの窓関数は、周期性の確保のためにのみ存在する。何故ならば、デジタルの世界での周期性は、アナログとは違って些か厳密性が高いので。

 

 それ故に、測定信号が既に周期性を持っているならば、窓関数は必須ではない。使っても良いけれど、誤差に漬かってしまうだけなので、避けられるのであれば漬物にしない方が正確になる。使わないというのは、矩形の窓関数を使うという意味になる。矩形の窓関数は、全てが1。全てのデータに1を掛けるので、結果は同じで変化なし。フーリエ変換では切り出す部分のみが1で残りはゼロなので、勿論結果は違って来る。FFTでは変わらない。測定信号に周期性があるならば、先に出てきたメインローブだけが1でサイドローブがゼロという理想形になる。

 

 多くの場合、FFTは離散時間フーリエ変換から説明されるので、矩形が他の窓関数とは別物であることは書いてないと思うし、測定信号に周期性を持たせろなんて話にもならない。これは実際の測定上の工夫と言うような次元の話だから。でも大事なのはこっちの方であって、数学的な厳密性ではない。

 

 FFTでの周期性がフーリエ級数よりも厳密になるのは、デジタル化されているので。下の図は4096Hzのサンプリング周波数で32Hzをデジタル化して、4096長のFFTで解析する場合。この時のbinは、4096Hz/4096=1Hz。binとはFFTの解像度であって、データを取り込んでいる時間の逆数。4096Hzのサンプリング周波数は時間として1/4096。4096長のFFTは4096のサンプリング点があるので、全体の時間としては(1/4096)*4096=1秒。FFT側からは、この1秒で周期性を持つと仮定されている。

 


 1秒とは1Hzなので、フーリエ級数と同じく1Hzの整数倍の2Hz、3Hz・・・2047Hzまでが構成要素。デジタルなので、フーリエ級数のように無限に続く事は無い。ナイキスト間隔の制限で2048Hzは超えない。FFTを通すと、出て来るのは2047Hzまで。この場合は取り込んでいる時間が1秒なので、binはその逆数の1Hz。もしも測定信号がbinの整数倍であると、初めから周期性は確保されているので窓関数は不要。32Hzであれば1秒の中に32サイクルぴったり収まるし、34Hzであれば34サイクル。

 

 なのでこの場合は、矩形窓(rectangular)で構わない。その時は青の元のままの信号に対してFFTがかかる。不要だけれどもハンを使うと、緑の様になる。青と緑は見た目ではかなり違うけど、スペクトル的にはそんなに変わらない。何故かと言えば、この時のハンは1Hzのコサインに直流オフセットを付けて、始まりと終わりがゼロになるようにしているだけ。なので掛け算すると始まりと終わりは必ずゼロとなり、無理矢理だけども周期性は確保される。32Hzは1秒の時間では周期的なので必要はないけれど。そして1Hzを32Hzに掛け算したので、結果としては32±1Hzと直流分からの32Hzとが出て来るだろうと直感的に分かる。結果はこれ。

 矩形窓で何も変えていない青は、そのまま32Hzのみ。ハンにした緑は、予想の通り31Hz、32Hz、33Hzの3つが出る。 教科書的には、ハンのスペクトルを32Hzの所に移して、尚且つ直流分があるのでそれは32Hzの所に持ってきて、更には離散時間フーリエ変換の連続スペクトルをbinの1Hzの整数倍の所でサンプリングすると、上の図のようになるはず。それは中々に手間でしんどい。ハンでの誤差がどのぐらいかの推測は難しい。

 

 32Hzのような、4096Hzサンプリングで4096長のFFTで周期的になる信号ならば、基本的に窓関数は不要。もしも 2048長にするとbinは2Hzになるので、32Hzは良いけれど33Hzはダメとなって窓関数は必須。基本的にFFTは長いと有利だけど、64kを超えると別の問題が出て来るので、過ぎたるはなお及ばざるが如し。同じ理屈で、ハニングも掛けているのはコサインのみなので、元の周波数の両脇に1Hzだけ離れたのが誤差として出る。本来は存在しない。ブラックマンは、binの2倍のコサインもあるので、32±1Hzと32±2Hzがゴーストとして出る。それを窓関数のスペクトルから推測するのは難しい。時間軸での掛け算からならば、直感的にすぐ分かる。

 

 一般的には、測定信号は周期的ではない。binが2Hzの時の33Hzのように。例えば、4096/120=34.133Hzだとこうなる。整数倍ではない周波数なので、終りはゼロではなくなって、周期的にはならない。それでもハンを掛けてやると、始まりと終わりはゼロになるので、緑のような周期的な波形になる。無理矢理合わせているけれど、多分何もしない青よりも誤差は少ない筈。  

 こんな具合。何もしない青では全体としてかなりの誤差がある。ハンの緑では、34±1Hzでは青よりも悪いけれど、全体としての誤差はずっと少ない実際は64kぐらいの長さのFFTを使うので、その場合のbinは1/16Hz。なので34±1Hzあたりでは、誤差は-100dBぐらいとなる(目盛の18と54の辺りに相当)。窓関数なしの青では、FFT長さを上げてもあんまり効果はない。

 

 

 現実的には、窓関数のスペクトルとの畳み込みを考える必要はなくて、FFTのアプリを使えばスペクトルは分かる。けれども、窓関数を使う限りは誤差と言うのか、本来は存在しないスペクトルが周期性の確保のために出てきてしまう。それが窓関数によってどんな出方なのかは、理論としては畳み込みだけど直感としては無理。窓関数でどんな具合に元の信号が変化するのかは、FFTフーリエ級数のデジタル版と捉えれば想像に難くない。

 

 実用面で正確なスペクトルを知りたいのであれば窓関数を省く必要があって、現実の測定であればADCからテスト信号を出して、DAC側のクロックはADC側のクロックに同期させる。IISであれば、信号は来ているのでDAC側のPLLの問題。最近の市販品は大抵IISがあるので、そういう仕様のADCを自作すれば解決。

 

 そうすれば、クロックジッタの影響などもFFTからある程度は判断できる。窓関数経由では無理。元信号の両隣りに本来は存在しないスペクトルが出て来るので、微小なジッタなどは到底測れない。時間軸で実際に窓関数を掛け算してみれば、自明な話。窓関数の畳み込みと言う抽象的な理屈からは想像できないので、DAC側をロックさせている例はほとんどないと思う。結局、見ているのは窓関数の誤差だけでしょう。

 

 

ここで打ち止め。2bitDSMの五代目基板。

 随分と長い旅になってしまったディスクリートのFPGADAC。方法論として可能性は限られている。まずはR2RかDSM。R2Rとして使えるものは、pcm1704のような既に製造終了したものは除いて、オーディオ用と産業用の高速RFDACに幾つかある。RFDACならば、PCMでもDSMでも出力可能なので、ほぼ完全な形で両者の比較が可能。既に試していて、結果としてDSMが聴感として優れている。数字的にも。

 

 という訳でDSMを採用するとなると、5bitぐらいのマルチビットをRFDACでするのか、1bitのような直線性の問題が発生しない方法にするのかの選択。これはやはり、ディスクリートで考えるのならば1bit的なのが最善で、既存のR2Rを使うと再現性とSNRの確保が難しい。結局、方法論としてはFPGADSMの変調をかけて、アナログ部分は直線性の影響を受けない1bitのような方法論が一番良さそう。

 

 FPGAが必須なのは、オーバーサンプリングしたりDSMの演算とかもあるけれど、一番の目玉はXover(チャンネルディバイダー)を入れられる事。音源は既にデジタルのデータになっているのだから、Xoverは2k長か1k長ぐらいのFIRで簡単に実装できる。マルチシステムやる人は今はほとんどいないようで、そのままデジタルで入れられるような装置は自作するのが一番。市販品では全く融通が効かない。

 

 部屋の定在波補正のノッチフィルターはトランスポートの大きめのFPGAで対応するから、DAC側はxc6slx9とかxc6slx25ぐらいの小さ目のFPGAでどうにでもなる。既存品では到底無理。マルチシステムの利点は、スピーカーの選択肢が増えるのもさりながら、思いっきり急峻な肩特性にしてやると(120dB/octとか)、目が覚めたようにというのか耳垢がごそっと取れたかのように、オーケストラの各楽器の鮮明度が上がる。

 

 電子機器での違いは、これが一番。誰でも分かるほどの違いが出る。DACの違いは、それに比べるとずっとずっと小さい。Xoverが違いすぎると言うべきかも。スピーカーに直結する話なので、どえらく変わるのは当然かもだけど。なのでFPGADACの最大の利点は、Xoverを内蔵できる事。自作品でないとこの利点は得られない。DAC部分は、そういう意味では余韻といったぐらいに僅か。その僅かのために基板を四回も試作して、終には最終形の第五版にまで辿り着いてしまった。

 

 これが第四版。これは1bitDSMではほぼ最終形。ディスクリートでは1bitが定番。直線性の問題が発生しないので。但し欠点もある。最大振幅が取れないので、tap数が増える。これは56taps。結果として、流す電流が増える。1tapで2.6mAなので、2.6x56≒145mA。ステレオだとこれの倍。基板もこれが二枚になってしまう。ちょっと重たい。更に、ESSのこぶみたいなTHDの悪化も-30dBFSから-60dBFSぐらいである。

f:id:xx3stksm:20220323201509j:plain

 問題解決には、マルチビット化するしかない。成功しているのは、Molamolaぐらいでなかろうか。これは数字にも出て来る。Chordよりはかなり良くて、AK4499なんかと同じ程度だったと思う。Molamolaは時分割で1bitのマルチビット化をしているようで、結果としてクロックが高くなる。これはアナログ部分に依存すると思うけど、理想的な変換は中々に難しい。うちの基板ではダメだった。

 

 そこで四版の基板を少し改造して、2bitDSMというのを試したのが、去年の夏ごろ。これは思いの外、上手く行った。ちょっと考えれば分かる事ながら、実は2bitというのも1bitと同じように直線性の影響を受けない。理由は単純。2bitは、-1、0、+1、の三つで出来ている。0が-1と+1の丁度真ん中に来さえすれば、直線性の影響を受けない。

 

 これはアナログ的な調整を必要としない。2bitの-1とは「00」、+1とは「11」、0とは「01」か「10」。0として仮にずっと「01」を使うと、これは必ずズレる。アナログ的な調整をしても、温度変化に耐えられない。しかし「01」と「10」を交互に使うならば、両者は平均されるので、結果として目的の-1と+1の丁度真ん中に収まる。細かい話は色々あるけれど、原理的にはほぼ解決。アナログ調整は不要で非常に安定。通電後三分ぐらいで、ほぼ元の状態に戻る。1bitでは五分は少なくともかかる。

 

 それやこれやを含めて、FPGAもデジタル用に一個追加して、三個。xc6slx25が一個でxc6slx9が二個。本来はxc6slx25をデジタル用にして、アナログ部分がつながる所はxc6slx9を二個にしたかったけど、最近の在庫切れの関係で在庫品を使うしかなくて、アナログ部分は、xc6slx25とxc6slx9になってしまった。この基板はステレオ。  f:id:xx3stksm:20220323200142j:plain

 2bit化してタップ数を減らせるので、32taps。電流は一チャンネルで2.6x32≒83mA。最近のDACチップはもっと流しているのでないだろうか。これぐらいだと発熱も少ないので、温度的にも有利。オーバーサンプリングとかXoverは、デジタル側のQFPのxc6slx9に入れる。DSMはアナログ側のFPGAの中。xc6slx25をデジタル側に使えていればDSMもそっちなので、割振りとしてはその方が良いと思う。特に問題はないみたいだけど。

 

 -120dB越える様なTHDだと、ADCの性能もあってどこまで正確なのかは分からない。同じ環境でD90(AK4499)みたいなのをリファレンスとして測ってみて、それとの比較でおおよその所を推測するのが現実。D90だとこんな具合。概ねAPなんかの測定値と同じ。SNRはAudioTesterだと少し良さ目になるので、まあこんなもの。SNRはADCの残留ノイズ分を補正する必要あり。

f:id:xx3stksm:20220323210334j:plain

 2bitDSMの第五版の基板だとこんな感じ。SNRD90より良くないけれど、最大振幅が8dBぐらい低いので、絶対値としてのノイズレベルはこっちの方が良い。D90も完璧な形でアッテネーターを入れるならば、理論的には絶対値は下がるけれど、後付けの部品でその性能はかなり難しい。熱雑音の問題も出て来るだろうし。単純にデジタルボリュームで落とすならば、勿論8dB悪くなる。

f:id:xx3stksm:20220323210605j:plain

 普通の家庭で使う場合、ましてマルチのシステムだと4Vrmsは大き過ぎる。最近のは5Vrmsとかのも多い。これは測定器との関係も含めて、上げた方が見た目の数字は良くなる。実際は使う人が不適切な状態で落とす事になるので、実使用でどうなっているかはかなり疑問。最初からDAC側で落として貰わないとなかなか上手くは行かない。でも4Vrmsが必要な人もいる訳で、市販品としては仕方ないのかも。

 

 DSMの特徴として、周波数依存性は低い。1kHzでなくてもだいたいは似たような傾向になる。これは375Hzと3kHz。R2Rだと、中々こうはならないと思う。Holoのkitsuneはかなり良い数字になってるけど、かなり大がかりな補正をしているだろうし、周波数変わると変化するのが普通。原理的に、R2Rではそうなってしまう。 

f:id:xx3stksm:20220323211651j:plain

f:id:xx3stksm:20220323211704j:plain

 ここまでは市販品のような汎用的な範囲での数字。自作のFPGADACの利点は、マルチシステムに特化している所で、低音用と中高音用では最大振幅が違う。違うように最適化しないと、実際の使用環境ではかなりSNRを損する事になる。デジタルボリュームで最大振幅を下げるような羽目になるので。うちの場合だと、中高音用の最大振幅は低音用よりも9dBぐらいは低い。ホーンを使うので当然そうなる。

 

 なのでステレオのDACと言っても、低音用と中高音用と言う意味での二チャンネル。中高音用は0.55Vrmsぐらいが最大振幅。SNRは完全にADCの測定限界を超えているので、もう測れない。30kHz近辺の量子化ノイズが低音用よりも9dBぐらい低くなっているので、ここから推測するしかない。これは抵抗でのアッテネーターと同じで、アナログ的な操作だからそのまま9dBぐらいは絶対値が落ちる。つまり、総合的なSNRはほぼ低音側と同じはず。   f:id:xx3stksm:20220323213002j:plain

 1kHzによる単独の測定だと、THDは振幅が小さくなるので有利に働くみたい。これは低音側も含めて調整した後の数字。デジタル的なレジスタ設定なので、通電後三分ぐらいすれば元の調整時の数字に落ち着く。R2Rではそうはならない。-110dBぐらいまでなら何とかなるが、-120dB越えて元の数字に戻る事は無い。特殊な補正をしても温度変化には勝てないと思う。2bitDSMだと、驚異的な再現性があるので-130dB近くまで同じ数字になる。 

 

 1kHzの単純な測定ではなくて実際の環境では、マルチシステムの場合些か状況が変わる。DACが複数あるのでSNR的に有利な状況になって、自動的にISOの発生は無くなる。ISOを防ぐには、オーバーサンプリングの前で何も考えずに振幅を6dBぐらい下げるしかない。結果として、その分だけSNRを損するけど仕方ない。今のDACは十分にSNRが良いので、その位は平気。ISOは壊滅的だから。

 

 DACが一つしかない場合、スピーカーのネットワークで最終的には帯域分割されるのだろうけれど、低音側と中高音側のノイズレベルは基本的に同じ。D90だとこんな感じ。20Hzから20kHzまでの32toneの信号。これはだいたい256kのFFTで出す事が多くて、各信号を0dBFSにした時、ノイズフロアが-130dB以下だと一級品。ほとんどのR2Rはこれで大コケする。1bitDSMも-130dB以下はちょっと難しい。うちの第四版の基板も-130dB以下にはならない。

f:id:xx3stksm:20220323214658j:plain

 2bitDSMになると、タップは32でも-130dB以下ぐらいになってくる。これは収束性の影響も多分ある。1bitというのは、FFTの始まりのデータと終わりのデータが一致する事は無い。同期サンプリングをしても、rectangularのウィンドウは使えない。具体的に言うと、PCMの96kサンプリングで12kHzのサイン波を作る時、96/12=8なので八個分のデータがあれば後はその繰り返しで済む。6kHzなら16個、3kHzなら32個。

f:id:xx3stksm:20220323215329j:plain

 では1bitDSMで12kHzのサイン波を作る時、OSRが64だと数字としては8x64=512で済む。でもこれはダメ。始まりと終わりは連続的につながらないのでダメ。スイッチング電源のノイズパターンが、だいたいは同じ繰り返しでも完全には同じでないのと同じ理由。それをFFTするので、つなぎ目にインパルスが入ったようになって、SNRは悪化する。個々の周波数の収束性もマルチビットと比べると少し悪い。4bitぐらいまで行けば、ほぼ問題は消える。2bitDSMだとそういう理由でかなり改善される。

 

 そしてマルチシステムで複数のDACを持っていると、実使用の環境では更に良くなる。これはXoverを経由した低音用と中高音用の二つを重ねて表示。パワーアンプの入力の所での数字。青の中音用は8dBぐらい白の低音用よりも低い。スピーカーの能率が違うのでこうなってる。但し量子化ノイズを見ると、中音用はかなり低くなっている。なのでレベル自体は低いけれど、SNRはほぼ低音側と同じ程度になる。

f:id:xx3stksm:20220323220506j:plain

 ここではまだそれだけになっているけれど、マルチシステムの特徴としてSNRはまだ6dBぐらいは良くなる。というのは、低音用に入っている信号は、最大値が-6dBぐらいまでしか振れない。32toneではなくて16toneぐらいまでなので、そうなる。なのでIV変換の抵抗値を6dB下げて、替りにデジタルボリュームで信号レベルを6dB上げてもクリップはしない。中高音用では更にその余裕は大きくなっているけれど、低音用で制約されるので6dBぐらいが最大値。これは十分過ぎるぐらいの値だけど。
 

 マルチシステムに特化した自作DACだと、そこまでSNRは上がる。それが出来るので、市販品の融通の利かないDACはマルチシステムには向かない。元々それは考えていない訳だし。クラシックを聴く場合、とにかくSNRは最優先なので、自作のXover内蔵のDACが最適解。値段が安いのは二次的な話。適切な肩特性とゲイン配分が出来ないと、マルチシステムは活きてこない。秋頃までには八台作って、PCMとDSMの共用可能な現行品と入れ替え。時間かかったけど、これでもう死ぬまで使えるかな。 

 

 

 

 

スウェーデン盤のバイロイトの第九。可もなし不可もなしの予想通り。

 日本の風物詩に合わせた訳ではないだろうけど、1951年のバイロイトの第九のスウェーデン放送に残されていたテープからの復刻CDが年末に出た。大体の予想はついているし、聴くとすればEMIの数年前のフルトヴェングラー生誕130年記念のSACDとか、当時に発売されたレコードからの自録りが質的には良いので、聴くために買う価値はないと思う。少し前に出たORFEO盤との比較とか、当時の国を超えた音声回線とは如何なものだったのか、の資料としては意味がある。

 

 聴くためでなくて数字的な確認なので、基本的にはFFTで見る。冒頭には題目の説明をドイツ語、フランス語、英語、スウェーデン語でしている。英語版では、ババリヤ(バイエルン)放送が、バイロイトの会場からドイツ・オーストリア、フランス、イギリス、スウェーデンの放送局に向けてお送りします、と言っている模様。時は1951年。送ったのはスウェーデンだけかと思っていたら、フランスにも。

 

 戦争が終わってまだ六年。フランスの対ドイツ感情からすると、ちょっと不思議な感じがする。イギリスでさえも少し違和感。当時の西ドイツを、西側として双方が認めるようになったのは、ベルリン封鎖(1948から1949)がきっかけとなったという話は知っていたが、このバイロイトの中継もその延長線上で、少し政治的な意味合いを持っていたのでないだろうか。

 

 フランス側からの要望がなければ実現する話とはとても思えない。ナチスの色が濃いいバイロイトワーグナーだから。とはいえ、ずっと前に見たテレビ番組では、ワグネリァンのユダヤ人が、ナチスワーグナーという素晴らしい絨毯に着いたたった一つのシミと言ってたが。そう考えると、バイロイトの会場に乗り込んだEMIのスタッフも、複雑な感情の人が少なからずいたのでは。

 

 因みに、1947年のフルトヴェングラー復活コンサートでは、アメリカ(5/25)とソ連(5/27)の占領地区の両方でコンサートをしている。ベルリン封鎖はその一年後なので、急速に関係悪化が表面化したのだろろうと推測できる。そんな国際情勢の中でのバイロイトからの西側への中継は、やっぱし何がしかの政治的意図を感じる。戦争が終わっても、この頃の音楽家には、まだしがらみがまとわりつく。

 

 なのでフランスとイギリスでも、ラジオの生中継が放送されたのでないだろうか。テープを残したのはスウェーデンだけだったが。でも正確には、長期保存したのはテープではなくてラッカー盤だったと思う。冒頭の四か国語のアナウンスで、たぶんフランス語の所だと思うけれど、レコード特有のクリック音が入っている。

 

 うちにある音源の中にも、アンペックスのテープが使われるようになる以前に、アセテート盤をコンサートホールに持ち込んで録音したというのがある。1941年の真珠湾攻撃の年のワルターの「フィデリオ」。ドナルド・キーンが生で聞いたという曲でないだろうか。これはRCAの録音で、ライナーノートにしっかりとそう書いてある。但しCDではなくてレコードで持っているので、再生した時のクリックと元々のクリックとの区別がつかない。

 

 今回のスウェーデン盤はSACDなので、元々あったクリツク音のみ。ただまあ絶対確実ではないので少しマメに追って行ったら、第四楽章の三分あたりにハッキリとした跡が残ってた。

f:id:xx3stksm:20211226205352j:plain

 四個のクリック音が、1.8秒間隔ぐらいで並んでる。1.8秒とは、毎分33回転の事。原盤に少し大きめの傷がつくと、一周するごとにクリックが入るので周期的になる。レコードを聴いている時、プチッという音が周期的に出るのはその理屈。こんなインパルスのように広帯域に亘るノイズは、原盤の傷以外では考えにくいし、更に周期が毎分33回転となれば、もう答は一つしかない。必ず一度はラッカー盤に記録している。

 

 推測するに、当時のテープは高価だったので、長期保存用としてはラッカー盤に刻んでしまい、テープ自体は他の用途に再利用したのでないだろうか。この時代の録音の中には、そんな経緯のものが他にもあるかも知れない。うちではレコードでしか買わないので、今回のような場合を除いては事の真偽は分からないけど。

 

 そんなオタク的興味を掻き立てる痕跡の他は、だいたい予想の範囲だった。録音自体はORFEO盤と同じ物で、本番かリハーサルかという話ならば、EMI盤ではなくてこちらが本番の演奏。バイエルン放送に残るテープがORFEO盤の元なので、既にそれはほぼ間違いのない事実ではあったと思う。今回で完全決着。どちらを聴くかと言えば、EMI盤の方だけど。

 

 いきなりラッカー盤に刻んだのでなくて、一度テープに録ったのを後からラッカー盤に移したんだろうと思う。ハムの跡は一本しかない。テープに録った時に入った物だと思う。テープはバイロイトではなくて、スウェーデン放送の会館にあったと推測する。ORFEO盤も、会場にあったテープで録ったEMI盤に比べると、明らかにバイエルン放送までの回線の影響を受けたように、狭帯域になっていた。

 

 スウェーデン盤は、ドイツ・オーストラリア放送経由という事で、更にもう少し狭帯域になっている。こんな具合。想像だけどオレンジのような特性の回線だったのでないかなあ。

f:id:xx3stksm:20211226211315j:plain

 放送局が音声を送る時、昔は特別な場所でなければ今のような高速回線はないので、基本的にはNTTから臨時の回線を借りて、放送局までつなぐ。映像の場合は中継用の小型送信機と受信機を使って、最寄りのNTTにつなげて臨時回線で放送局までもってくる。借りる時間が短すぎて、途中で切れてしまうなんてことも時にはある。映像はまだ良いのだが、音声は冷遇されてるので音質もかなり落ちたのが普通。

 

 日本の1980年代の音声の臨時回線の質はお粗末の限りで、公称で4kHzだけど実際は3kHz程度だった。昔のダイヤル式の電話で市外通話すると、音は小さいし質は悪いし時には他の通話と混線したりもした。あの程度の質でしか送れなかった。大都市ならばなんとか手はあったかもだけど。

 

 特に問題なのは低い方。市外線は周波数多重で沢山の回線を確保するので、かなり急峻なフィルターが入る。周波数多重の都合上、100Hzぐらいから切られてしまう結果となる。今回のSACDも、おそらく低音側はかなり切られていると思うので、冒頭の拍手の所から上のような特性だったのだろうと推測。勿論、確実ではないけど。

  但し、日本の80年代の実情からすれば、1951年にスウェーデンまで引っ張ってこの特性は上出来。放送局間の専用回線とは思えないので、NTTに相当する電話会社の国際電話用の回線とかでないかなと思う。イギリスまでだと、海底ケーブル通ってだろか。詳しく見ると、音楽とは無関係の成分が乗っていたりして、はるばると長い旅をして辿り着いたんだろう的な特性になってて、面白い。

 

 ORFEO盤はかなり特性を触っていて、あまり好ましくない。元に戻せる程度のものではあるけれど。スウェーデン盤は、元の質ではORFEO盤よりも距離の分だけ落ちている。でも何もせずにそのままデジタル化したような感じなので、ORFEO盤をそのまま聞くよりはより自然かなと思う。心眼でというか心耳で余計なノイズを取り去って、無くなっている所は補う事が出来るならば、バイロイトの本番の演奏の再現が出来る。EMI盤の方が楽、というのが個人的感想。バイロイトの事はこれで終り。1942の第九は、キッテルの事は夢のまた夢で、五里霧中。

 

 

バイロイトの第九。フルトヴェングラー色々。

 2008年に今のオーディオ部屋付きの家に引っ越してから、部屋の内装と共に電子機器の方も色々と作り直し、2015年頃からは取り残されていた最後の抵抗勢力の一掃にも着手。つまりは音源。例によって、レコードの時代が過ぎ去ってからは暫くCDを買い、再生環境が良くなるにつれCDの不自然さに嫌気がさして、確率的には不自然感のないSACDとか流れ始めたハイレゾ音源にも手を出した。

 

 そして最後の積りで、捨てずに持っていた80年代前半ぐらいまでの国内販売のジャズレコードのデジタル化を始める。ADCはDAC開発用のを流用して。思っていたよりも高品質で取れたので、ならばとクラシックの中古レコードもe-BAYで幾つか試した。例えば、エソテリックのSACDシリーズのおバカな値段でオークションに出ている、ケルテスの「新世界」とか。

 

 これはデッカの60年代初めが初出で、オリジナルよりもスピーカーズコーナーからの復刻盤の方が品質としては上で価格は安い。個人的意見として。これも上手く行った。RX4という音声処理ソフトを使えば、何度も何度も繰り返される「渾身のリマスタリング」とか「最新デジタルリマスタリングで蘇るなんちゃら」に迷わされる事もなく、自分ちの環境で最適なマスタリングが自分で出来る。マスタリング地獄からの解脱にはこれしかない。

 

 そのうちに50年代のモノラルとか、30年代のSP盤にも手が伸びて、これもまた自分ち専用のマスタリングだから、気に入るまでやれば良くて市販品とは比較にもならない程に音源の質が向上。編集ソフトもRX4からRX7のadvanceにまで進化。これを使えば、50年代中頃以前のモノラル盤も、全く問題のない状態で中古レコードから板起しが出来る。例えば、なにかとマニアの間では未だにあれこれと話題の尽きない、1951年のバイロイトフルトヴェングラーの第九。

 

 知らない人は全く知らないが、これは2007年ぐらいにORFEOからもう一つの録音テープから作ったCDが発売されて、それまで第九の至高と言われていたEMI盤との関係は如何と、随分話題になった。その頃はまだ音源作りしていなかったので、それを知ったのはEMI盤の板起しを始めた2015年頃だったけど。

 

 歴史的事実として、この演奏はORFEOが発売したCDの元になっているバイエルン放送に残っていた生中継の時のテープと、ずっと神と崇められていたEMI盤の二つが存在していて、どちらかが実際のバイロイトのフェスティバルでの本番で、もう一つはリハーサル(ゲネプロと言うらしい)であるとの事。大人の事情として、双方が自分達のが本番だと言っている。

 

 その昔ドイツが二つあった頃、私はドイツが大好きなので二つあってくれて嬉しいという、いかにもなフランス風味の皮肉があったけど、取り巻きでないのならば、利害関係がないのであれば、文字通りの意味で二つあって嬉しい。二つも残っていてとっても嬉しいよ、というのが大方の意見だとは思うんだが。

 

 そして今年の暮には、スウェーデン放送も生中継のテープを保存していたことが判明して、そこから作ったSACDも出る。という訳で、ORFEOの余震みたいなのが起きると思う。うちには、EMI盤の本家ではないけれどドイツ発売のレコード、生誕125年記念のSACD、いわく付のORFEOなどがやっぱりあって、音源としては初版に近いドイツ盤をデジタル化して聞いている。古い記録を調べてみたら、2015年の事。

 

 デジタル化に際しては、幾つかの音声処理をする。中古レコードなのでまずはクリック音の除去。スクラッチノイズの低減。電源のハムの除去など。これらはデジタル処理なので、すこぶる高品質。例えば、ピッチを変えずに曲の長さの調整なども出来る。アナログ的にはあり得ない。速く回せば再生時間は短くなるが、ピッチは高くなるので。デジタル処理であれば周波数領域に転生させてから処理するので、時間軸領域に戻ってきた時にもピッチはそのまま。こんなの朝飯前。

 

 バイロイトの第九のハム処理をしている時、ある事実に気が付いた。オリジナルのEMI盤と、そのコピーを元にしているドイツ盤とではハムの痕跡に違いがある。青がEMI盤で白がドイツ盤。ドイツ盤は三本あって一本多い。あまり気にも留めなかったけど、ある時これはダビング回数の違いでなかろうかと思いついた。本家のEMIはドイツ向けにテープを渡す時、当然コピーを送る。なのでドイツ盤はEMI盤よりも一回だけダビングの回数が多くなるはず。その結果として、ハムの痕跡が一本増える。

f:id:xx3stksm:20211026211233j:plain

 当時のテープは回転数を電源周波数に依存している。1970年代初めぐらいまではそういう仕様で、「カンターテドミノ」の録音に使ったテープが民生品としては電源依存から解放された初めての機種のはずで1970年代半ば。プロ用はもう少し早いかもだけど、プロ用機器の更新は思っているよりもずっとノロいので、現実としては民生品と大して変わらないと思う。

 

 そして当時のモノラルテープはあまりアイソレーションが良くなかったようで、必ず電源周波数が漏れてきて音楽と共に記録されてしまう。ステレオになってからは、こういう漏れは見た事がないので、モノラル特有の現象。技術的にはあり得る話だが、幾つかのウラを取る必要もあるので色々な実例を調べた結果、矛盾する事例は全くなくて、ダビングの際に一本づつハムが増えるのは間違いがないと分かった。

 

 これはアメリカのRCAが出したバイロイトの第九。アメリカは60Hzの国なので、新しく四本目のハムが入っている。つまり、EMIがオリジナルからRCA向けのテープをダビングした際に、ドイツ盤のように三本目が入り、それを受け取ったRCAはおそらく音質に不満でイコライザーを一度通して再録音(ダビング)したらしく、その時にアメリカの60Hzのハムが四本めとして入ったと推測できる。青がEMI盤で白がRCA盤。  

f:id:xx3stksm:20211026212521j:plain


 他にも実例は沢山あるのだけれど、これを元にしてEMI盤の来歴を追いかけてみると、ORFEO盤との意外な関係が見えてくる。まず最初の疑問は、何故オリジナルである
 EMI盤にはハムが二本あるのか。これはつい最近RX7で取り直したEMI盤とORFEO盤との比較。

f:id:xx3stksm:20211026213357j:plain

 このハムの周波数は、基本的には録音した時の電源周波数の記録。何故それが全部違う周波数になっているのかは、当時の電源事情が関係する。ORFEOの49.9Hzは、たぶん正しくない。これはきっと、再生装置は当時の物としても、今の正確に50Hzになっている電源で再生したと思う。でも録音当時はもう少し低くて、おそらくEMI盤の49.4Hzぐらいでなかったかと推測する。あくまでも想像。負荷が重くなると、発電機の回りが悪くなって、周波数は少し下がる。今はそんな事ないけど当時はね。

 

 なので大抵の復刻CDはピッチが高めになってしまう。「渾身のマスタリング」したのかEMI盤は正しそう。どういう根拠でこの周波数になったかは定かでないにしろ、49.4Hzは正しそうな雰囲気がする。そしてEMI盤では基準の440Hzは438Hzぐらいになっている。ORFEOは早回しだから442Hzぐらい。しかし、ならば二本目の48.6Hzとはなんぞや。これは常に出ていて音楽成分でないのは確か。

 

 そこで良く見ると、ORFEOには一本しかハムがない。FFTを見慣れていないと、素人がレントゲン写真見るようで、何が何だかわからんかもだが。両者を矛盾なく説明できるのは唯一つの仮説。ORFEO盤は生中継したバイエルン放送内にあったテープで収録した後、二次使用はしないという契約だったようで、そのまま倉庫行きして2007年まで眠り続けた。一度もダビングしていないので、ハムは一本だけ。二本のEMI盤は、バイロイトの演奏会場に置いたテープで取った後、イギリスに持ち帰り、何故か多分イギリスでダビングをした。イギリスの方が電源事情悪かったのかは定かでないけど、48.6Hzはかなり低い。バイロイトでのダビングではないと思う。

 

 どっちが本番かというどうでも良い話の上に、屋上屋を重ねるが如きなのが、足音論争。このバイロイトの日本発売のレコードには、一楽章の前にフルトヴェングラーが会場に入って来た時の拍手と足音が入っていた。他の国のにはなかった。この足音は本当に本人のものなのか?、というのが実はかなり真剣に論議されている。未だにね。仏様ならば仏足というのもあるし、ティラノザウルスならば足跡の化石にだって価値はあるんだが。なので東芝EMI盤のSACDには足音も入ってる。

 

 この足音を解析すると、これはおそらく当日の本物であって、EMI盤のオリジナルテープはこの足音から始まっていて、各国に送ったテープにも入っていただろうと思う。日本だけがそこも含めて発売した訳だが。理由は、足音にも同じ周波数で二本のハムが入っている。ここにも同じ周波数を二本入れるのは現実としては中々難しくて、あり得るシナリオは元のオリジナルに既に入っていたという仮説。それ以外ではわざわざ足音のために難しい事をするとは思えないので。

 

 残る問題は、何故にEMIはダビングをしたのかという点。そして、では元のオリジナルは、つまりはORFEOのように一本だけのハムのテープは何処に行ったのか。ここから先は、ほぼ100%の事実と80%ぐらいの推測の話。100%の方は、EMI盤には二か所でORFEO盤が使われている事。三楽章の9分16秒から10分50秒ぐらいと、15分27秒から16分06秒には、ハサミ編集で文字通りにORFEO盤と同じ演奏が使われている。

 

 RCAのような電子編集をすると、ダビングする事になるのでその時のハムが嫌でも録音されてしまう。当時の電源事情からすると、周波数はその日次第なので過去のハムと一致する事はまずない。なので一本増える。EMI盤の編集点では、驚いた事にハムは一本だけで、尚且つ中身は違う演奏であるORFEO盤に差し替わっている。しかし、検証するのであれば、これは好都合。両者が完全一致している事は、目で見ればハッキリ分かるので。なので100%確実。編集した所ではハム一本。イギリスでのダビング時のものと考えられる48.6Hzはない。

f:id:xx3stksm:20211026221409j:plain

 

 こんな微妙な差の周波数を識別するには、FFT正確にはDFFTの解像度を少し上げる必要がある。その短所として、反応性に難が出る。上の図のような設定だと、少なくとも五秒は必要で、十秒は欲しいのが本音。つまり、編集範囲が五秒ぐらいだけしかないならば、見つけるのはまず無理になる。十秒あれば何とかなる。そして同様の理由で、何処から編集が始まって、どこで終わったかもハッキリとはしない。

 

 今回は幸運にも差替えはORFEO盤であると分かったので、両者を比べればかなり正確に編集点は分かる。そのためには、このDFFTを時間軸上に展開したこんな図が便利。真ん中の9分16秒ぐらいからEMI盤はORFEOに切り替わるので、それより前の緑線の所では両者は違う演奏で、楽器の出だしに差がある。聞いては分らないだろうけれど、百聞は一見に如かず。見れば歴然。ORFEOは回転数が少し早めなので、それはEMI盤と同じになるように調整してある。編集点以降は両者は同じなので、赤線の所のように一切ずれは出なくなる。この状態が10分50秒ぐらいまで続く。

f:id:xx3stksm:20211026222131j:plain

 

 下の図で、10分50秒ぐらいまでは緑線のように両者は完璧に同じ。ここをを過ぎると、赤線のように、もうすぐにズレが出て来る。人が演奏しているので、違う演奏であれば必ず差が出る。当然、ここ以降は元のEMI盤の二本のハムに戻る。10秒おき位にハムの状態を確認していくと、結局EMI盤には100%確実な三楽章の二点と、80%以上は確実な四楽章の9分49秒から10分1秒までと、一楽章の36秒から55秒までが編集点で、前者の三つにはEMIが持っていたORFEOと同じ演奏(本番)の録音テープが使われていて、一楽章には行方知れずのEMI盤のオリジナル(ハム一本)をハサミ編集で使ったと推測できる。それが残っているハムの跡を矛盾なく説明できるシナリオ。  

f:id:xx3stksm:20211026222612j:plain

 

 三楽章と四楽章は、EMIの持っていたORFEOと同演奏のもの。この二つは同演奏ながら、多分置かれていた場所が違う。演奏会場のミキシング卓の出力はまずEMIの録音機につながれて、そのお下がりがバイエルン放送曲行きの専用回線につながっていたのかなと思う。ORFEO盤にはそんな特殊事情がないと有り得ない帯域制限がかかっているので。白がEMIで青がORFEO。見ての通りで、ORFEO盤はEMI盤よりも高域を上げている。所謂、評判のよくない使い方のデジタル処理。

f:id:xx3stksm:20211026224115j:plain

 

 ところが8kHzを超えた辺りから先は、一気に落ちてしまう。EMIは当時の標準的な特性のまま。放送で使う場合、放送機の直前にはこういう帯域制限が入るのだけれど、録音機の前には普通入れないし、放送系の分野でないとこう言う急峻なフィルターは使わない。音声系の回りでこういうフィルターの入る余地はまずない。持ってない。ハサミ編集は破壊編集なので、ORFEO盤が無傷で残っている以上は、EMIも同じ演奏を録音したテープを持っていたとしか考えられないし、差替えた部分の特性は同じ演奏内容でもORFEO盤とは違って、EMI盤と同じ当時の常識的なもの。なのでORFEO盤には、当時のハイファイにはなりえない特殊事情があったと推測される。

 

 四楽章の編集点は、まず間違いなくEMIの持っていたORFEOと同演奏のものだと思うけど、ソプラノが歌い始める所なので、音の始まりと終わりの区別があまりつかない。なので三楽章のような一目瞭然にはならない。ハムの痕跡としては確かだけれど、時間も短いので100%確実とは言えない。

 

 一楽章の場合は、ORFEOとは一致しない。但しハムは一本で、ORFEOのような帯域制限はかかっていない。そしてハムのレベルと周波数はEMI盤に酷似している。そのような偶然は普通起きないので、これはEMI盤のオリジナルのテープから取って来たものでなかろうか、と推測する。80%ぐらいの確率で。

 

 年末に出て来るスウェーデン放送のテープが如何なるものかは興味深い。こちらは生中継はしていないだろうと思う。不可能ではなかったにしろ、放送事故の確率は高いし、音質的にも難がある。会場で録音したのを後日放送したのでなかろうか。一回だけという契約で。帯域制限がかかっているかどうかが焦点。

 

 因みに、台湾で指揮者をしているyoutuberも、バイロイトの第九のEMI盤には三楽章で二か所の編集があると言っている。上にあげた所と同じ。彼は耳で聞いて判断したのだろうから、両者が一致するのは100%確実ではあるけれど、些か不思議ではある。ハムの痕跡の正しさは今までに幾つも経験しているけど、また一つの勲章が増えた感じ。

 

2bitというケモノミチ。宗旨替えした訳ではなくて、いわゆる変異株。

 1bitDSMを始めて、もう二年以上。趣味の範囲なので特に時間的制約はなくて、今は基板も自分で設計してネット発注できるので大した費用はかからない。仕事であれば中々二年というのはきつい。そうは言っても、この前の四代目の基板でそろそろ量産かなとは思ってた。マルチシステムで八台必要なので、実質的には量産。量産できる目途が立つぐらいでないと、長期的な安定性に問題が出る。

 

 出来なくはないだろうけれど、もう一押ししてみる事にした。ちょうど、ADCがほぼ完成したこともあって。ディスクリート型のDACを作る場合、1bitDSMになるしかないのは確定事項。AD9117のようなRF用DACを使うと、多ビットのDSMも可能で、実際今使っているのがそれ。3bitDSMで特に問題はなく、もう三年近くになると思う。-110dBぐらいのTHDと、110dBぐらいのSNRは安定的に出せる。

 

 1bitDSMにすると、-120dBを超えるTHDと、120dBぐらいのSNRになる。四次で160OSRのDSMにして、56のタップがあれば可能。再現性は、ディスクリートであっても1bitなので完璧。問題は、2mx56=112mAの電流と、120mmx70mmぐらいの基板でモノラルにしかならない事と、-30dBFS から-60dBFSぐらいまでの間で、少し特性が悪化する事。ESSの「こぶ」に似たような現象。

 

 これは1bitDSMの本質的な欠点で、対策もなくはないけれど、根本的な解決方法はないと思う。電流が増えてしまうのも、同じく本質的な欠点で、SNRを稼ぐためにはタップを増やすしかなくて結果として電流が増える。AK4499も、ppだと70mA超えるぐらい流していたとは思うけど。

 

 これは両方とも1bitDSMに起因するので、1bitDSMを止めれば自動的に問題は解決する。けれども、デイスクリートでの再現性が犠牲になるのでそれは出来ない、という矛盾との戦い。市販品には疎くてあれだけど、知っている限りでmolamolaだけはこの矛盾を克服している。太陽を克服した禰豆子のように。1bitDSMのようで1bitDSMではない方法論を取れば、克服できる。

 

 HPの解説は100%信用できるものではないけれど、彼等は七次で64OSRの5bitDSMを、1bitの64x32=2048OSR(3.072x32=98.304MHz)のPWMに変換してアナログ回路に送っているらしい。5bitDSMを使うと、-30dBFS から-60dBFSぐらいでの「こぶ」は無くなる。あんまり電流を増やす必要もなくなる。何故かと言えば、1bitDSMの宿痾の病のような振幅制限も消えるから。

 

 一般論として、七次のDSMだと最大振幅は-6dBFSぐらい。PCMであれば、ほぼ0dBFSまで振れるので、その差の6dBだけSNRは悪くなる。それを補填するためには電流を流して、SNRを稼ぐしか手はない。この差は、何らかの補填を外部からしないのであれば、AK4499のようなチップでも残る。5bitDSMにすれば、問題は全て解決。少なくともデジタルの次元であれば、多ビットのDSMで1bitDSMの本質的欠陥は消える。

 

 そんな救いの神の 多ビットDSMだけど、molamola以外では使っていないのでないかなあ。理由は色々あるとして、まずはアナログへの変換が上手く行かないのだと思う。100MHz近いクロックは些か問題にはなるけど、DSMを多ビット化するのは簡単。量子化器を変えるだけなので、ハードウエアの変更はごく僅か。必要な定数は1bitでも5bitでも同じ。

 

 でもPWM化の利点として、RTZになるので立ち上がりと立下りの差から来る誤差が無くなるというのは、幻想。ソフトウエアでsimしてみると分かるけれど、RTZするような形でPWM化すると、元の多ビットでのDSMとは同じスペクトルにはならない。こういう単純なPWM化では、全然機能しない。

f:id:xx3stksm:20210814211754j:plain

 

 5bitでの32値を、こんな風に単純にパルスの長さに置き換えると、DC的には元のデータが保存されているけれど、AC的にはまるでダメ。青がデジタル領域での3bitDSMのスペクトル。これを上のように単純にパルスの長さに置き換えて、128x5=640OSRの1bitにすると、デジタル領域では赤のスペクトルにしかならない。元の1kHzは保存されるけれど、THDもSNRもボロボロ。これをアナログに戻しても、意味ない。勿論、ボロボロ。

f:id:xx3stksm:20210814212018j:plain

 もっとOSRを上げると、少しはマシになるとしても、全く使い物にはならない。単純なリニアなPWM変換では、ダメ。色々と試したが、立ち上がりと立下りの差をキャンセルできるような変換では無理、というのが結論。これはD級アンプでも変調のかけ方で問題になるかと思う。molamolaのエンジニアは、そっちが本職なので、何かしらの解決法を知っているのかなとは想像する。

 

 FFTのクセを揣摩臆測しつつ変換方法を工夫すると、デジタル領域ではそこそこ使えるようにはなる。こんな風に。赤が変換後の1bitのパルス列。少しTHDが元よりも高めだけど、アナログ領域でこの数字は出ないので、まあまあ良し。上のに比べれば、遥かに上出来。OSRを上げれば、きっともっと良くなる。640OSR=3.072x10=30.72MHz。

f:id:xx3stksm:20210814213209j:plain

 ただ残念ながら、うちのハードウェアでは、この1bitパルス列を高品位にアナログに戻す事は出来ない。-100dBぐらいのTHDで、114dBぐらいのSNRにしかならない。高めのクロックとは、どうも相性が悪い。160OSRぐらいが上限で、256OSRになると、そろそろ劣化してくる。2048OSRなんてのは、到底無理。せっかくの多ビットDSMだけど、相性が悪いので、諦めざるを得ない。molamola以外で、PWM化した1bitDSMを見ないのは、アナログ変換の難しさであろうというのが一応の結論。

 

 molamola型は無理となるまでに約一か月。それと同時進行していたケダモンの呼吸というのがあって、こっちは一般論としてはダメながら意外とsimの結果は良かった。やっぱり1bitであって1bitではない1bitと多ビットの良いとこ取りで、2bitDSMというケモノミチ路線。

 

 2bitDSMにして1bitDSMの欠点をあらかた解決し、アナログ変換も2bitでやる。しかし、ディスクリートでは再現性の確保が出来ないという定説は、理論的卓袱台返しで引っくり返す。2bitDSMというのは3値。「-1」(00),「0」(01 or 10),「+1」(11)の三つ。1bitであれば一つしか電流源はないので、電流源をIb、温度変化他のエラー成分を時間の関数としてerr(t)とすれば、ゲインはIb+err(t)で決まる。

 

 err(t)は時間と共に変化するけれど、ゲイン全体が変化するだけなのでTHDの変化はない。なのでディスクリートでも安定。2bitの場合、IbとIb1+err(t)の二つの電流源が出来てしまう。両方がオフの時は0(「-1」)。両方がオンの時はIb+Ib1+err(t)(「+1」)。なのでゲインは、Ib+Ib1+err(t)。1bitの時と同じで、ゲイン全体が変化するだけなのでTHDの変化はない。「0」が(Ib+Ib1+err(t))/2という、唯一つの条件を満たすならば。

 

「0」=(Ib+Ib1+err(t))/2であれば、「+1」と「0」の差も「0」と「-1」の差も同じなので、THDの変化はない。1bitDSMと同じ条件になる。うちのハードウェアでは、「0」=(Ib+Ib1+err(t))/2にする事はそんなに難しくはなくて、2bitDSMの場合、振幅が下がって行くとこの条件には有利に働くので、simでも良い結果が出る。

 

 所詮、simはsimなので実物で試すしか手はない。六次で80OSRにすると、1bitDSMだと最大振幅は-5.6dBFSぐらい。これ以上に振幅を上げると、不安定になる。高次のDSM

が不安定というのは、くそとみそを同じと言うようなもので非科学的。高次は次数との関連で最大振幅が下がるというのが正しい認識。

f:id:xx3stksm:20210814221255j:plain

 2bitDSMにすると、同じ条件でも最大振幅は-2.34dBFSまで上がる。3dB以上も上がって、これはそのままSNRの改善になる。タップ数を減らせて電流も減る。1bitDSM固有の「こぶ」も消える。

f:id:xx3stksm:20210814221719j:plain

 
 これを2bitのままアナログに戻す。定説では直線性の確保が出来ないので、THDやSNRは悪化。しかし、分け入っても分け入っても藪の中を、やぶこぎして行くとケモノミチがあって、半信半疑で辿って行くと、思いっきりの近道で頂上に出ちゃうよ、とsimは言っている。数字的には予測されていた事だけど。青が変換後のアナログ。今の基板で出しているので、30タップしか使っていない。

f:id:xx3stksm:20210814222929j:plain

「0」の条件はほぼ確保できるので、再現性は1bitDSMの時と同じぐらいに高い。温度的に安定するまでの時間はこっちの方が早い。五分はかからない。1bitDSMは、五分では完全に元には戻らない。七分ぐらいかかる。2bitDSMに合わせて五代目の基板を作る必要はあるけれど、32タップで現行の1bitDSMの56タップと同じぐらいの数字になりそう。THDは少し落ちるかもだけど、再現性が確保されているならば-120dB超えていればもう誤差の範囲。

 四代目基板はこんな感じ。

f:id:xx3stksm:20210814223626j:plain

 2bit(3値)の場合は1bit(2値)と同じで、ゼロから最大振幅まで変換状態は変わらない。4値以上になると、小さいレベルと大きなレベルとでは使うコードが変わってしまう。なので、モノリシックのチップで全てのコードが同じ絶対値になるように厳重に補正する必要がある。2bitは「0」=(Ib+Ib1+err(t))/2という、比較的守りやすい条件を入れると、ディスクリート圏の住人になって、1bitの親戚。モノリシック圏にも勿論入れられるけど。

 

 今はひとまず六次を使っているので、もしも1bitDSMだと0とか1が連続的に続けるのは、ごく短期的に五個ぐらいまで。それがあるので最大振幅は-5.6dBFSぐらいに制限される。2bitは5bit程ではないにしろ、制限は随分と緩くなる。実際の回路で確かめると、ほぼ最大振幅の青の正弦波を出している時、二つのビット(bitAとbitB)はかなりの区間で、同じ値を出し続けている。この260nSぐらいの周期のパルス二つで、-120dBを超えるTHDの正弦波になるとは不思議。

 

f:id:xx3stksm:20210814224743j:plain


 PCMでのサンプリングも不思議ではあるけれど、DSMのパルス列が綺麗なアナログ信号になるというのも不思議。その不思議を更に腸捻転させて多ビット化すると、より少ないタップ数で同じ様な特性に出来る。1bitDSMはディスクリート型の定番で、新規ルート開拓には必須。ロープウェーで九合目ぐらいまで連れて行ってくれるモノリシックチップとは別路線。その中で更なるルート開拓をするならば、多ビット化。

 

 molamolaの場合、Chordもそうだけど、キモはデジタル側でなくてアナログ変換の所。あんまり明かされていないのは一番の秘密だからだと思う。molamolaは32タップという事なので、これは基本的なアナログ領域でのFIRのはず。1タップではSNRもTHDも稼げないので、どんどん足し込んで上げていく。これは、金は使えば使う程溜まるという未常識経済理論のように、足せば足すだけゲインが上がるけどノイズは一切増えないという血鬼術。勿論、ハードウェアにかなりの精度が要求されるけど、倍にしても3dBしか改善しないDACの並列化とは本質的に別物。

 

 Chordはパルスアレーとか言ってる。7とか11とか奇数を使っているのは、何か意味がありそう。一般的なアナログ領域でのFIRとは少し違う感じがする。少しmolamolaにはSNRで劣るのは、多ビット化していないからだと思う(下弦の鬼かも)。いずれにしても、両者ともどんなアナログ変換をしているのかは謎。まだまだ改善の余地はありそう。どういう形であれ、多ビット化は必須としても。

 

 ADCが良くなって、僅かな違いも見逃さなくなったので、DAC設計は楽。現実の問題として、DACは趣味の域を出る事はなくて、システム全体を左右する力はない。クラシックを聴くのであれば、部屋、音源、スピーカーで3/4は決まってしまう。オシロスコープと半田ごての出番は、残念ながらあんまりない。残りの4/16も3/16はX-overとアースグランドで決まる。DACはその残りの1/16とか。現実とはそういうもので、ワクチン打てば話は終わり、とはならないのと同じ。

 

 そのDACの出来を決めるのはADC。大工の腕は道具を見れば分かるように、DACの出来はADCを見れば分かる。山よりデカい猪はいないように、ADC以上のDACは出てこない。五代目の基板が必要になるとは、些か想定外。もうここまで来てしまったので、484pinのxc6slx25は¥7000ぐらいするのだけど、次の基板ではデジタル回路はほとんど入れずにアナログのドライバーとして使う積り。256pinのxc6slx9も。

f:id:xx3stksm:20210814232453j:plain

 32タップと28タップにして、二チャンネルを一枚の基板に乗せる。デジタル部分はQFPのxc6slx9を追加して入れる。それが良いのは分かっていたけれど、今まではそこまで割り切るほどの勇気がなかった。もうケモノミチ路線なので、なんでもあり。ケダモンの呼吸で猪突猛進。獣柱で行くことに。 

 

 

 

 


 

 

 

 

 

 

 

AD7768の最終形。つなぎとしては上出来。

 AD7768のADC基板の改訂版。HDMI-I2Sのコネクターを付けて、Rpiにつなぐためのコネクターも追加。AD7768としては、ほぼ完成。チップ自体の能力としては-130dBぐらいのTHDにはなる。そこまで行くにはなかなか色々あって、アプリケーションノートを参考にして、まあやっとこさ。一番の問題は、入力のS/Hを如何にして上手くドライブするかで、このタイプでは常に付きまとう問題。

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

 

 それを回避するためという事で、ADからは最近CTSDのAD7134というのが出た。AD7768とは若干ピンアサインが違うけれど、基板さえ作り直せば出力形式などはほぼそのままなので、FPGAの中身を変えれば十分対応可能。こっちはサンプリングも1.5MSPSまで行ける。但し、デルタシグマ型の宿命として高域では量子化ノイズが増えて来るので、帯域は最大で390kHzぐらい。これは十分過ぎる帯域。

 

 最終兵器のAD7134もいずれ試すけれど、今回の基板で、それまでのつなぎ以上の性能にはなった。前回の物だと、なかなかD90のような0dBFSで4Vrmsまで振ってくるDACは厳しい。-3dBFSぐらいからTHDがかなり悪くなってしまう。チップの問題ではなくて、アナログのドライバーの問題として。

f:id:xx3stksm:20210602203501j:plain

 今回は0dBFS=5.2Vrms(14.7Vpp)ぐらいの最大振幅で、4Vrmsを入れても-2.35dBFSぐらい。0dBFSではないのでSNRは少し損するけれど、元々こっちは残留ノイズを元にして補正する必要があるので、まぁ大勢に影響はなし。USB入力でのPCMはこんな感じ。

 

f:id:xx3stksm:20210602205854j:plain

 D90の0dBFS(4Vrms)まで振っても、-130dB近いTHDで、恐らくADC側での劣化はほとんどない。APでの測定値だとこんな按配。

Topping D90 Balanced USB DAC Review | Audio Science Review (ASR) Forum

この記事のTHD+N(SINAD)より少し良いのは、おそらく基本波を除去する時のノッチフィルターの特性。AudioTesterの方が少し多い目に取っているので、若干良い目の数字になっていると思う。奇数次のTHDが、上に行くほど段々と小さくなっているのは正しい。二次の出方は少し違うみたいだけど。

 

 電源入れても三万しない基板でここまで取れれば上出来。HDMIのコネクターが付くのは、最近の中国製の高級機は多くがHDMI-I2Sの入力が出来て、そこからDSDも入れられるようになっているので。それともう一つの新たな展開として、DSMの2チャンネル分の変調を、xc6slx9でも使えるようになった事。今まではxc6slx25でしか出来なかった。

 

 xc6slx25で2チャンネル分というのも、実際はなかなかの太っ腹でここまで出来れば御の字と思ってたけれど、世界は広くてxc6slx9に2チャンネル入れちゃった人がいた。そんなんアリかと思ったが、あるものはあるので、ならばなんとかならんかと試行錯誤して何とかなった。48k系だと、48kHz、96kHz、192kHzまでの入力に対応して、5次なら160OSR、4次なら256OSRまで出る。

 

 そのconfig romをこのADC基板に挿して、XMOSから44k系の44.1kとか88.2kを入れてやれば、HDMI-I2SのコネクターからはDSDがLVDSで出るのでD90につながる。FPGAの場合、LVDSのような差動形式はペアになる端子にさえ正と負を配置しておけば、入出力とか規格は自由に選べる。LVDSの入力にして外部からクロックを入れるとか、LVPECLみたいな規格にするのも可能。config rom次第で変幻自在。LVDSのドライバーICだって、そこそこの場所と費用が掛かるので、FPGAは圧倒的に有利。

 

 DSD256にしてD90につなぐとこうなる。

f:id:xx3stksm:20210602212438j:plain

前回の基板でもムリクリにつないだけれど、やっぱり正式版は特性が良い。これは4次のDSMなので最大振幅がPCMでの-6.5dBFSぐらいまで行く。おそらく、D90DSDはPCMでの-6dBFSで最大値の4Vrmsになるようなゲイン配分になっている。これは良くあるパターン。現実的には、4次のDSMならば-4dBFSぐらいまで振れるのだけれど、2.5dBはISO対策としての保険。

 

AK4499はマルチビットのDSMを1ビットに流用している筈なので、足りない分は後段のゲインを上げて対応しているのだと思う。結果として、SNRが6dB近く悪くなる。THDは小さ目なレベルになるので逆に少し良くなる。これも良くある話、THDとSNRは、どうしてもあちらを立てればこちらが立たず、な関係。

 

AK4499に限らず全ての市販チップの場合、DSDはオマケなので数字的には本来のマルチビットを超える事はない。心理的側面とか、営業戦略としては意味ありだが。実際、帯域外ノイズも、勿論マルチビットの方が良い。これは30mVrmsぐらいのマルチビット。

f:id:xx3stksm:20210602213440p:plain

1ビットだとDSD256でもこれぐらい。でもSACDなんかに較べると、腰抜かす程に良い。AK4499のDSDは、ESSなんかよりもずっと良さそう。敢えて使う必要があるかは、主観の問題としても。

f:id:xx3stksm:20210602213554p:plain

1ビットでも、それ専用のDACだとこのぐらいの特性にはなる。赤は元のDSMのデジタル領域での特性。青の変換後のアナログは、勿論必ずそれよりも悪くなる。でもSNRはそこそこの数字になる。レベルをもっと上げた方が数字は有利かもだけど、実使用では逆にマイナスになるので少し低め。

 

f:id:xx3stksm:20210602214425j:plain

帯域外ノイズもそこそこなので、AK4499のマルチビットよりも少し悪い程度に収まる。

f:id:xx3stksm:20210602213903p:plain


 ともかく、まずはADC。大工の腕は道具を見れば分かるように、DACの質は既にADCで決まっている。敗着はADCってやつ。

 

 

APの内部写真が出ていたので追加。

 

Archimago's Musings: A look IN the Audio Precision APx555 B-Series. Thoughts on price and value in audio products.

やはりADCは二種類を使っている。この作りなので$30000は仕方ない。プロ用とはこういうもの。問題は開発に時間がかかるので、ADC等(AK5394とAD7760)はすぐに時代遅れになってしまう。最新版(AD7134)で自作して、自分に必要な部分だけに特化するならば、破格の値段で同等かそれ以上になってしまうのが半導体の世界。けものみち製で公式の物ではないけれど、数字は嘘をつかない。特に結果がデジタルのADCでは。

 

 

 

帯域外ノイズのレベルをD90に合わせた。

 D90(AK4499)のDSD特性もデータを取っていたので、うちの1bitDSMのデータもそっちにレベルを合わせてみた。OSRが微妙に違うのと、アナログFIRが入るか入らないかなどの違いが帯域外のスペクトルに出る。聴感的には意味ないだろうけど、技術的興味として。

 

D90の六次で128OSR。DSMの変調はFPGA(xc6slx25)から。これは44.1kHzの系列で、80OSRのようなのは受けてくれない。AK4499自体では可能かもだが。64OSRでの六次は少し厳しいので仕方なく、128OSR。フィルターは65kの方。市販品なのでどうしても隔靴掻痒。羊頭狗肉ではないので悪くはないが。

f:id:xx3stksm:20210109215431j:plain

 自作品で少し工夫すると五次の80OSRで、音声帯域は似たような特性に出来る。帯域外ノイズはかなり減る。
f:id:xx3stksm:20210307154517j:plain

 

 D90で使うならば、四次の256OSRが最善。ここまでスイッチングを上げてもほとんど音声帯域での劣化がないのは立派。火事だけは想定外だった。100kHz近辺のは、スイッチング電源由来。上の六次では量子化ノイズに埋もれてて分からないだけ。SMPS使っていれば、出ないようにするのはとても難しいと思う。自作品ならば、アッサリと電池にして解決。 

f:id:xx3stksm:20210109220438j:plain

 

 自作品であれば同じ四次でも160OSRにまで落とせる。帯域外ノイズはほぼ同じぐらい。現実のHWとしては、160OSRと256OSRではかなりの違いがある。出来るだけ低い方が楽。その辺りの微調整は自作品でないと厳しい。特定の環境に最適な数字を選べるので、それが一から作る自作品の利点。そこを活かさないと、市販品には敵わない。

f:id:xx3stksm:20210307155209j:plain