こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

DACは20kHzをどうやって出す?

表題の DAC は Multi Bit や Multi Stage Single Bit DAC ではなく、Pulse Generator を 1 基 (Single Stage) しか持たない Single Stage Single Bit DAC の事で、質問は「Single Stage Single Bit DAC はどうやって 20kHz の連続波を最大出力 (2V?) まで発振しているのでしょうか?」というものです(^^;)。

最終出力が 3bit~6bit 精度 (8fs~64fs) 以上となる Pulse Generator を 8 段~4 段重ねて段間出力誤差を DEM (Dynamic Element Matching) 回路等で補正した CLCS (Cirrus Logics Crystal Semiconductor) CS43xx Series や TIBB (Texas Instruments Burr Brown) PCM1716 或いは dCS952 のような Multi Stage Single Bit DAC ならば解るのですが、Pulse Generator 1 基のみの Single Bit DAC ですと 1/44,100 秒または 1/48,000 秒内に 24bit 分となる 16,777,216 回 Pulse 発振しなければならず、駆動 Clock 周波数は 16,777,216fs の 800THz 前後 (16bit 分でも 65,536fs の約 3GHz) という実現不能なものになってしまいます。

Single Bit DAC に内蔵されている Pulse Generator の駆動 Clock は ESS (Electronic Speech Systems) Technology ES9018 Series でも 100MHz 以下となっており、比較的安定して駆動できる 50MHz 程度ですと 1,024fs 程でしかなく、1,024 回の Pulse 発振では 20kHz 信号を 10bit 分しか立ち上げることができません。

長年 Multi Bit の PHILIPS TDA1541AS1 DAC Chip 機を愛用してきて、普段使いにしている TIBB PCM1792A DAC Chip 機も上位 6bit が 63 基の Pulse Generator になっている事からこれに 256~768fs 8~9bit 精度の下位 bit 用 Single Bit DAC 出力が加算されると 20kHz でも 14~15bit 分の動きに遅延なく追従できると思って安心して愛用しているのですが、新たに入手した Single Stage Single Bit の Generator を並列動作させるものであるらしい ES9018 機でも 20kHz の Test Tone を Peak 値まで連続出力できてしまう事から今までの Single Bit DA (Digital Audio) に対する理解が崩壊してしまいました(^^;)。

DSD (Direct Stream Digital) のような Single Bit DA (Digital Audio) では Sampling 周波数が 64fs だと 64 は 2 の 6 乗である事から 11.025~22.05kHz または 12~24kHz では 6bit 精度、即ち 6bit × 6dB/bit=36dB の Dynamic Range となり、20KHz 連続 Test DA 信号を Analog 変換すると最小出力 +36dB 以上の音が出せない理屈になってしまい、120dB もの理論 Dynamic Range を持つ 24bit DAC では理論上 Peak -84dB 以下というほぼ無音出力になってしまうと思っていたのが、実際は出てしまうんですよね(^^;)。

Single Bit DAC 嫌いでその動作原理をきちんと把握してこなかったことから実は 1MHz 程度の Sampling 周波数ながら 10KHz を数% の歪率で出力してしまう Class D Amp' IC Chip の複雑な Dithering 処理も不勉強でちんぷんかんぷんのまま Class D Amp' を利用しているですが(^^;)、実際に 20kHz Test Tone を最大出力 Level で連続出力できてしまう Single Stage Single Bit DAC のからくりも Dithering 処理の賜物なのでしょうか?

「44.1kHz の 64fs となる 2,822.4kHz Sampling の 1bit Digitizing では 2,822.4kHz の 1/4 から 1/2 までは 1bit=6dB、以下 1 Octave 下がる度に 1bit=6dB ずつ Dynamic Range が増加し、11.025kHz~22.05kHz では 6bit=36dB、1kHz が含まれる 0.689Hz~1.378kHz では 60dB の Dynamic Range となる」は間違いなのでしょうか?
間違いではないとすれば Single Stage Single Bit DAC は何故 20kHz Test Tone を連続で最大出力 (2V?) まで出力できるのでしょうか?

何故 16,777,216fs でなくても 24bit 精度の 20kHz を、或いは 65,536fs でなくても 16bit 精度の 20kHz Test Tone を Single Bit DAC は最大出力値で連続出力できるのか?……この疑問を解決できる Single Bit DA 解説 Page を御紹介いただけると幸いですm(_ _)m。

投稿日時 - 2020-09-20 20:59:09

QNo.9801826

困ってます

質問者が選んだベストアンサー

お礼ありがとうございます。
少しはお役に立てたようで嬉しいです。

reactionいただけたので、補筆しておきます。

取っつきにくいんです。
あれこれやってたらたまたまうまく行っちゃた的なノリが集まって発展してきたようで、理論づけが後手になってるように感じます。

参考ページ2番目の方だって、ご自分で造られたExcelグラフに目くらましされて、『信号を疎と密で表すと説明されることがある。嘘ではないけれど(中略)確かに上の図で、信号が最大値や最小値に近い所では出力にほとんど変化がなくて、疎になっている。』と言っている。それは誤解です。
グラフでデータの着色方法(実体に着色するか輪郭に着色するか)によるトリックに引っかかって、そのような意見を述べられている訳です。
グラフそのものは間違いではない。

その図『6kHzを48kHzでサンプリングして64倍のオーバーサンプリング(3.072MHz)。』を見ると(DSM出力は青色です)たしかに一見そのように見える。しかし、よく見ると「疎」に見える個所は「-1」または「1」の値で横に連なっている事が解る。縦の青線は入力される正弦波の「0」値付近に集まって、ここが密のように見えてしまう。輪郭に着色するとこうなるのです。
「0」値は1ビットデータとしては「1010・・・」だから1ビットでは最も激しく「-1」と「1」を往復するのはあたりまえ。ビットは矩形波ではなくパルスなのだから1と0が交互に組み合わされば正に矩形波となり、「0000・・・」ならbitパルスは「-1」に連なり最疎、「1111・・・」なら「1」に連なり最密という、実体は見事な粗密構造になっています。

と、些細な異論はあるにしても、他になかなか解りやすそうな解説がないのが実情ですね。

投稿日時 - 2020-09-24 07:42:38

お礼

お久しぶりです(^^;)。

愛機 MacBookAir 2018 に Stainless Bottle が倒れ込んで Display を割ってしまい、出張中の身で Hotel 住まいなものだから急遽購入した MacBookAir 2020 の設定やら周辺機器の購入やらでドタバタしていました(^^;)。

MacBookAir 2018 の Display が割れるまでは参考 Page 2 番目の方がこれまでに製作した ADC の記事を遡って読んでいたのですが、Pulse Width Single Bit の世界って確かに「あれこれやってたらたまたま上手く行った」の世界ですね(^^;)。

もっと多くの記事を読み込まないと 16bit (65536 段階) の電圧変化を 1 段階ずつしか認識できない筈の Single Bit 方式が何故 64 回分の検知時間で 65536 段階まで表現できるのかの疑問が氷解できないのですが、ADC 及び DAC では 2 次、3 次と NFB のような Feedback Loop で「Mandelbrot 集合 Fractal 図形かいな?」と首を傾げつつも Original Data にはない筈の細かい波形が出てくるのは実に不思議です(^^;)。

16bit を 1bit に変換する DDD 部も 16 桁で 65536 種を表現していたものを 15 桁にすると 32385~65536 を表現できなくなるので 15 桁を 2 行で表現せざるを得ず、同様に 14 桁では 4 行、13 桁では 8 行と増えて行き、1 桁表現である 1bit では 65536 行になる筈のものが 64 行で済ませているという不思議さ……そもそも電圧変化は 65536 段階であろうとなかろうと関係なく、Plus (1) か Minus (0) しか見ておらず、それも 1111 (1+1+1+1) では発振してしまうので 1101 (1+1-1+1) の 50% 変調に書き換えている等々「やってみたら結構良い塩梅の音になったけど、どう説明したら納得できるのか(^^;)?」みたいなものだらけですね。

私は仕事柄、文字が読み取れない不鮮明な写真 Data を Fractal 演算 Program にかけて文字を読み取れるようにした経験があるのですが、正に「やってみたら、出来ちゃった」であって「何故 Data にない筈の文字がはっきり読めるようになるの?」という疑問に回答を得られず、納得が行かないまま Program を使っていました(笑)。

何だか PWM の世界って昨今は眉が唾でビショビショになりそうな技術が大混乱なのですね(^^;)。

10 年程前から時折 Web 記事を見ていたものの良く判らないまま便利だからと使ってきた PWM 機器ですが、高次 Feedback Loop を採用し始めた頃 (90 年代?) の記事から勉強し直さなければと蒼くなっています(^^;)。

良い参考 Page、有難うございました(^_^)/

投稿日時 - 2020-09-30 17:20:19

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

こんにちは。

私にも漠然としたイメージくらいで、ピンポイント的には理解できていません。
もちろんですが、データ転送のSerial vs Multi の比較とは全く異なる概念です。
インターネットやSPDIFやUSB等のシリアル(当然1bit)で転送してもPCMデータはDigital codecされたMulti bitデータのままで、DACで扱うSingle BitデータやDSDとは大きく異なります。

Single Bit では、1010・・・というように値が交互の場合には出力は「無」となり、1111・・・なら Maxの正電位、0000・・・ならMaxの負電位となります。
いわば正負の電圧をパルスの密と粗で表現する訳です。
音波が空気の粗密(圧力の変化)で伝わるのとどこか似てますね。
実際、このSingle BitデータはAnalog Low-pass filterを通すだけで音声信号になります。(パルスデータが正しくサンプリング周波数のタイミングで送り出される必要があり、それがDACの役目です)

元々時間軸方向の変化なので1クロックのデータでは意味を持ちません。
理論上ってのがPCMのようには出て来ませんので、同一土俵で比較することができません。
PCMデータなら音を加工できますが、Single Bitは音量すら変更困難で、加工する為には先ずMulti bit のPCMに変換する必要があります。
PCMデータはビット深度毎に区切りがありますが、Single Bitデータには区切りが有りません。

Single Bit方式にはいくつかあるようです。
直接の回答にはなりませんが、現在主流である主流のΔΣ(デルタ・シグマ)変調(DSMと呼ばれる事もある)についての良さそうな解説をリンクしておきます。
https://ja.wikipedia.org/wiki/%CE%94%CE%A3%E5%A4%89%E8%AA%BF
https://xx3stksm.hatenablog.com/entry/2018/09/14/193059
https://www.jstage.jst.go.jp/article/ieejeiss/125/12/125_12_1891/_pdf

Single Bit化に伴い、BB(TI社)を始め変換時に 4~5bitのMultiで差分samplingしながらSingle Bitデータに変換するICが増えてるようです。
前後のsamplingで24~30dB以上の差があるとデータ欠損の筈ですが、現実的にそのような事は発生しないか、発生しても1サンプルなら人の感覚で検知できない極少歪み程度なのでしょうね。

もしbit幅の可変が許されるなら、PWMと言われる方式をデジタルパワーアンプが使っています。比較的低いキャリア周波数で20KHzの再生が可能です。
これが直流域限定であれば、パルス幅で電圧をコントロールするスイッチング電源、ということになります。

Single BitのオーディオDACなどでは、パルス幅と周期が固定で、パルスの密度が音信号となって出力される事になります。20KHzであれば1秒に2万回パルス密度の増減を規則的に繰り返し、1KHzであればパルス密度増減を秒間1千回繰り替えすことで実現できます。
(実際には1KHzや20KHzでは波のサンプリングタイミングが同一にならないので周期ごとに異なるデータで同じ波を表現することになります)
あるタイミングでのパルスの有無は Dithering の結果 と言えますね。
ただ、そのパルスの有無が音となって聞こえる為には、単独では不可能で可聴外のノイズまたは歪みとなってしまいます。音となるには前後幾多のパルスの協力(相互関係)が必要です。これが探せば見える画像の Dithering と異なる点ですね。
このようにPeak出力 の様子は簡単にイメージできます。
問題は、PCMのbit深度に当たる中小、いや弱小レベルの符号化歪みをPCM並みにするためにキャリア周波数(=サンプリング間隔)をどこまで引き上げるか、ということになりますね。
これには、一応回答が出ていて、 Native Single Bitの DSD 2.8MHzで、PCM 44.1KHz/16bit並みということになってます。(44.1kHz × 64fs = 2,822.4kHz )

DSDについてはこちらが良記事かな?
https://www.phileweb.com/review/article/201503/06/1551.html
DSDはSingle Bitデータのファイル形式だけど、ファイル化や転送の為のルールについて勉強不足でわからないことがたくさんあります。
また、ΔΣを経由したPCMサンプリングコンバート法など、ここ数年で勉強したハズなのに記憶に残ってないし(覚えているのは44.1K系と48K系の相互コンバートも容易いってことだけ)、資料も行方不明という老化進行中の最中にあります。

『「44.1kHz の 64fs となる・・・」は間違いなのでしょうか?』
Single Bitの概念には当てはまらないと思いますよ。

もうこんな時間か、ではでは。おやすみなさい。

投稿日時 - 2020-09-22 23:21:13

お礼

回答有難う御座います(^_^)/

ΔΣ変調ってホント、難易度高いですよね(^^;)。

Wiki の解説は AD と DA (実際は DD?) の回路上の違いが判らずにず~っと疑問符が立っていました……消化できずに放置して脂肪 Flag 化していました(爆)。

3 つ目の https://www.jstage.jst.go.jp/article/ieejeiss/125/12/125_12_1891/_pdf
は以前から Download して目を通していたのですが「式からは到底 Graph を Image できない(~◇~;)」とお手上げ状態(笑)。

2 つ目の https://xx3stksm.hatenablog.com/entry/2018/09/14/193059
は AD と DD をはっきりと異なる回路と説明し、積分器を NFB に置き換えて目に見える Graph 化した説明に目から鱗です!

学術的には「邪道な説明!」と言われそうですが、私も小難しい科学を子供達に説明する際には「数式で理解できるような道に進んだら改めて正攻法で理解すれば 良く、そうでない子は解り易い例で Image すれば良い。科学って所詮は別の形式に置き換えて説明するものなのだから。」と理解し易い例え話に載せ替えて解説する手法をよく採るものでして、この説明には感心してしまいました(^_^)/。

私はずっと 1bit の量子化器で理解してきたのですが「64fs が実は PCM Over Sampling とは無縁の 6bit (実質 5bit) 量子化器であり、5 次の NFB をかけて歪を搔き消したら 1 次では検出できない細かな波形変化が浮き上がってくるので 3MHz 程度の Sampling 周波数でも 20kHz 単一連続波を 100dB 以上の Dynamic Range で検波できる」が何となく見えてきました(^^;)。

https://www.phileweb.com/review/article/201503/06/1551.html
はよくある解説法で始まりますが、私は ASIO2.1 と無縁の Maccer なので DoP (DSD Audio over PCM Frames) というものがあるとは知りませんでした。……ES9018 は Chip 内でそれをやっているのかな(^^;)?

今までの 1bit 量子化器での理解では「12MHz Sampling でも全然足りないだろう」だったのが、5bit 量子化器なら「3MHz Sampling でも余裕じゃん(^^;)」になってしまうのですね。

PDM (Pulse Depth Modulation) の PHILIPS Bit Stream DAC で Single Bit 嫌いになったままだった私の知識を PWM (Pulse Width Modulation) で書き換える必要性をひしひしと感じてしまいました。……でも、NFB に置き換えるとか、理解するにはいろいる工夫する必要がありそうです(^^;)。

大変参考になる Page、有難う御座いました(^_^)/

投稿日時 - 2020-09-23 20:14:19

ANo.1

20kHzまで矩形波を再生するにはサンプリング周波数は40kHzあれば良いはずで、プラスマイナスで最低2bitあれば矩形波で再生出来るのではないですか?
図はAudacityで44100Hz16-bitで出した波形で5kHzでも歪がかなりあるようですが、20kHzではむちゃひどい波形でもDACの加工テクニックで極力サイン波形に似せることが出来ると思いますが相当な歪が残っていると思います。
DACの歪特性は1kHzで測定が多いはずで、倍音の2k,3k,4k,5k,6k,7~20kHzまでを測定するのが多いと思います。
10kHz測定では倍音が20kHzしかないので普通は測定しないのだとと思いますが、アナログアンプやスピーカーのように20~10kHzまで測定してみたらはっきりするのでは?とか思います。

質問が難しくて良く分かりませんが、
20kHzでも聴ける人が少ないし、1波長は0.00005秒(0.05m秒)なので聴けたとしても歪成分の倍音超音波40kHzが出るのが分かるのか疑問です。

参考
http://select.marutsu.co.jp/list/detail.php?id=187
https://ascii.jp/elem/000/000/827/827110/

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2020-09-22 10:27:44

補足

回答、有難う御座います(^_^)/
……って補足なのか御礼なのか(^^;)……

やっぱり、私の言い回しは難しいですよね(^^;)。

Multi Bit DA (Digital Audio) は 0101 が 16 個並ぶ 16bit や 24 個並ぶ 24bit を 1 組の Packet として波形を表しますが Single Bit DA は 0 か 1 の 1 個のみとなる 1bit でしかありません。

1bit DA では "1" で電圧を 1 Step 上げる、"0" で電圧を 1 Step 下げる、10101……では上げ下げ下げ下げ上げ……で微妙に振動しているものの全体的には直流を表現します。

Multi Bit DA は 1 度に 1 段と 2 段、4 段、8 段……32384 段……上り下りできる Pule Generator を同時に駆動する事で 1 Clock で 0V から一気に 2V まで立ち上げて次の Clock では一気に -2V にまで下げる ±2V の振幅を 2 Clock で行えるのですが、Bit DA は階段を 1 段ずつ上がったり降りたりするものですので 65,536 段上るには 65,536 Clock が必要になります。

今、最小単位の 1 Step を 31μV とすると Single Bit Pulse Generator は 65,536 回発振しないと 2,031,616μV≒2.0V にする電力を貯め込めませんので、40kHz Sampling の Pulse では 65,536fs の 2,621,440kHz≒2.6GHz の Clock で Pulse Generator を発振させないと 20kHz 波形を 2V で出力する事ができない理屈となります。
1bit では+か-のみしか表現できず、2bit では + 側 2 段階、- 側 2 段階の電圧しか表現できませんので、矩形波と正弦波の区別なんかできません(^^;)。

また、44.1kHz の 64fs である 2,822.4kHz の Single Bit DA では 22.05kHz の波形を 64 Clock で表す事となり、出力が固定された 1 基のみの Pulse Generator で動作する Single Bit DAC は 1 Clock で最大 64 Pulse しか発振できませんから、31μV の Pulse を 64 個重畳しても 1,984μV≒2mV にしかならず、2V の 1/1000 しか出す事ができません。

Single Bit DA の Merit は Pulse Generator が出力固定の 1 基のみで済むことから Pulse Generator を複数基配する Multi Bit DAC のように Generator 間の出力誤差に悩まされる事がなく、高い Quantum Bit 精度を得るための Over Sampling で Clock 周波数を高周波化している事から Zitter を相対的に分散低減できる上に LPF (Low Pass Filter) も単純な Condenser 1 発の 6dB/oct や CR (Condenser/Resistor) 1 段の 12dB/oct で済み、DAC 回路を極めて安価に作成できるところにあるのですが、 上記のように 64fs 程度では到底 20kHz なんて高周波の大振幅には追い付きませんので初期の Single Bit DAC である PHILIPS SAA722x Bit Stream DAC Series 機は軒並み高域が Soft を通り越して Mellow な音色感を呈していて好きにはなれませんでした……だから私はずっと TDA1541AS1 や PCM1704 の Multi Bit 派で、やっと普段使い用として妥協できたのが PCM1792A でした(^^;)。

このため 2000 年以前の DAC は上位 bit を担う Multi Bit DAC と下位 bit を担う Single Bit DAC の Burr Brown 社の Hybrid 型や 64fs (6bit 精度) 以上の 1bit DAC を 3 段以上重ねて 16bit や 24bit の精度を 24kHz 以上にまで持たせた Crystal Semiconductor 社の Multi Stage 型 (広告は Multi Bit を謳っていましたが(^^;)) が開発されたり、5~20kHz の信号から 10~40kHz の信号を作り出して Mix する PIONEER 社の Legato Link といった Software (Programming) での音作りもなされたものですが、Class D Power Amp' の TA2020 Chip が発明された頃には複雑な Dithering 処理で 10kHz 歪を理論値よりも大幅に引き下げる技術が生まれています。

この Dithering 処理は 80 年代の手法以降のものを全く Catch Up していない私にはさっぱり判らないのですが(^^;)、いつの間にやら PCM270x みたいな安価な Single Bit DAC でも御機嫌な音色感を呈するようになってしまい、今では Single Bit DAC の ES9018 が軒並み高評価を得ているのですから、今までの Single Bit DA に対する私の理解を根底から考え直す必要を感じているのです(^^;)。

sirasak さんが御紹介の Page はいずれも Multi Bit の解説ですね……ハイレゾも Multi Bit です。
私も今では 10kHz 以上の音が殆ど聞こえなくなっていますので AUDACITY で 7~15kHz を思いっきり Boost して全体の Level を下げた Data を高出力 Headphone Amp' で鳴らしているのですが(笑)「Single Bit DAC ではそんな大振幅の高周波に追従できるのか?」と懸念していたのが、軽々と 10kHz 以上 (20kHz までの) Test Tone 信号を出してしまった事からこの質問が生まれたという訳です(^^;)。

投稿日時 - 2020-09-22 21:40:56

お礼

回答、有難う御座います。
前回の回答を補足で記してしまったので、御礼率が 100% にならず、改めて御礼を書き込みました(^^;)。

Single Bitって DDC で 16bit 信号を 1bit に変換する際に ADC や DAC の概念で説明するのは無理ですね……私もその概念に囚われて「65,536fs じゃなければ大幅な Data 欠損じゃん」と思っていたのですが、電圧変化量を無視した 64fs 程度しかない単位時間毎の+か-だけで表現する手法は Pulse Width Modulation を一から理解しなければなさそうです。……Pulse Depth Modulation の PHILIPS Bit Stream DAC の音を嫌って Single Bit DAC を避けてきたツケが未だに足を引っ張り続けています(笑)。

Newton 誌に「音の世界 (デジタルでこう変わった)」とかの Title で PDM とΔΣの解説本 (特に DDC の部分) を編集してくれぃっ! と投稿しようかな(^^;)。

有難う御座いました(^_^)/

投稿日時 - 2020-10-14 08:40:44

あなたにオススメの質問