ライター:mpcsp079さん(最終更新日時:2016/4/29)投稿日:2016/4/18
.
ΔΣDAコンバータ MASH方式について
⊿Σ方式のDACは3次以上で発散する。発振ではない。そこでMASHが出てきた。128のOSで2次とMASH2次、3次を比較してみる。周波数は1kHz
1)http://www.eit.lth.se/fileadmin/eit/courses/etin60/lectures/lec10.pdf#search='ΔΣ+DA'
2)
http://ameblo.jp/etsuo-okuda/entry-10478334894.html
3)1bitDACへの長い道のり ~そして、その先
http://www.geocities.co.jp/Milkyway/5457/dac.htm
図1 MASH ⊿ΣDAC(資料(1)から)
a,bはマルチビットDAである。
図2 3次MASH DAC(資料(2)から)
■線形解析
図3 線形解析(1)の文献
図4 こうかな???(2)の文献
図4で考えると、
v1=u+d1(1-z^-1)
e1=v1-d1ーv1=ーd1
v2=e1+d2(1-z^-1)
v2’=e1(1-z^-1)+d2(1-z^-1)^2
=ーd1(1-z^-1)+d2(1-z^-1)^2
v1+v2’=u+d2(1-z^-1)^2
これは、2次のノイズシェイピングと同じである。
3次は図2で考えると、
v1=u+d1(1-z^-1)
e1=v1-d1ーv1=ーd1
v2=e1+d2(1-z^-1)^2
v2’=e1(1-z^-1)+d2(1-z^-1)^3
=ーd1(1-z^-1)+d2(1-z^-1)^3
v1+v2’=u+d2(1-z^-1)^3
■シミュレーション
図5 シミュレーションした内容(1)の文献
図6 こうかな???(2)の文献
■ MASH2次
図7 図6のMASH2次のみ(16ビット最小値)
図8 図6のMASH(16ビット最小値*2)
■2次のみ(MASHではない)
図9
図10
■3次MASH(図2のもの)
図11
図12
2次とMASH2次は同じ結果になっていることがわかる。
ーーーープログラムMASH2次ーーーーーーーーー
REM MASH
REM 誤差に(1-z^-1)をかけて足す
REM 2次 44.1kHz 3次フィルタ10000Hz 最後をとる
REM s=100,cは3.6になる,
REM 128倍
REM IN小さくして分解能見る、WINDOW変えた
DIM v(100000),c(100000),e(100000),u(100000)
DIM vv(100000),vvv(100000),vvvv(100000)
DIM v2(100000),c2(100000),e2(100000),u2(100000)
DIM vv2(100000),vvv2(100000),vvvv2(100000)
DIM v3(100000)
LET n=100000
LET t=1.77E-7
LET tt=0
REM Hz
LET f=1000
LET OM=2*PI*f
LET v(1)=0
LET c(1)=0
LET e(1)=0
LET v2(1)=0
LET c2(1)=0
LET e2(1)=0
LET m=10000000/f
LET MAX=0
LET z=2*1.53E-5
SET WINDOW 0,m,-z,z
FOR i=3 TO m
LET tt=tt+t
LET u(i)=(z/2)*SIN(tt*OM )
LET c(i)=u(i)+e(i-1)
REM-----------------
LET s=100
IF c(i)>s THEN
LET c(i)=s
ELSE
END IF
IF c(i)<-s THEN
LET c(i)=-s
ELSE
END IF
REM-----------------
REM-----------------
LET s=100
IF c2(i)>s THEN
LET c2(i)=s
ELSE
END IF
IF c2(i)<-s THEN
LET c2(i)=-s
ELSE
END IF
REM-----------------
REM-----------------------------------------
REM-----------------------------------------
LET w=1
IF c(i)>0 THEN
LET v(i)=w
ELSE
LET v(i)=-w
END IF
REM-------------
LET e(i)=c(i)-v(i)
LET c2(i)=e(i)+e2(i-1)
REM-----------------------------------------
LET w=1
IF c2(i)>0 THEN
LET v2(i)=w
ELSE
LET v2(i)=-w
END IF
REM-------------
LET v3(i)=v2(i)-v2(i-1)
LET e2(i)=c2(i)-v2(i)
REM-----------------
LET w=10000000
IF e(i)>w THEN
LET e(i)=w
ELSE
END IF
IF e(i)<-w THEN
LET e(i)=-w
ELSE
END IF
REM-----------------
REM-----------------
LET w=10000000
IF e2(i)>w THEN
LET e2(i)=w
ELSE
END IF
IF e2(i)<-w THEN
LET e2(i)=-w
ELSE
END IF
REM-----------------
NEXT I
REM--------------------------------fiter---
LET a=2*PI*10000
FOR I=3 TO m
LET vv(i)=(v(i)+v(i-1)-vv(i-1)*(1-2/(t*a)))/(2/(t*a)+1)
NEXT i
FOR I=3 TO m
LET vvv(i)=(vv(i)+vv(i-1)-vvv(i-1)*(1-2/(t*a)))/(2/(t*a)+1)
NEXT i
FOR I=3 TO m
LET vvvv(i)=(vvv(i)+vvv(i-1)-vvvv(i-1)*(1-2/(t*a)))/(2/(t*a)+1)
NEXT i
REM---------------
REM--------------------------------fiter---
LET a=2*PI*10000
FOR I=3 TO m
LET vv2(i)=(v3(i)+v3(i-1)-vv2(i-1)*(1-2/(t*a)))/(2/(t*a)+1)
NEXT i
FOR I=3 TO m
LET vvv2(i)=(vv2(i)+vv2(i-1)-vvv2(i-1)*(1-2/(t*a)))/(2/(t*a)+1)
NEXT i
FOR I=3 TO m
LET vvvv2(i)=(vvv2(i)+vvv2(i-1)-vvvv2(i-1)*(1-2/(t*a)))/(2/(t*a)+1)
NEXT i
REM---------------
PLOT POINTS:0,0
FOR I=3 TO m
PLOT LINES: i, u(i);
PLOT LINES:i+1,u(i);
NEXT I
REM--------------
PLOT POINTS:0,0
FOR I=3 TO m
REM PLOT LINES: i, vvvv(i);
REM PLOT LINES:i+1,vvvv(i);
NEXT I
REM--------------
PLOT POINTS:0,0
FOR I=3 TO m
PLOT LINES: i, vvvv(i)+vvvv2(i);
PLOT LINES:i+1,vvvv(i)+vvvv2(i);
REM PRINT c2(i)
NEXT I
REM--------------
REM PRINT
END
ーーーーーMASH3次ーーーーーー
変更点
LET e(i)=c(i)-v(i)
LET c2(i)=e(i)+e2(i-1)
LET c2(i)=e(i)-e2(i-2)+2*e2(i-1)
文献12)は読みずらいので、ここに引用しておく
ーーーーー引用ーーーーーーーー
CDに刻まれている信号が「16bit」だという事はご存知ですね。 そして、fs(標本化周波数)が44.1KHzという事も。
16bitというのは量子化分解能です。16桁の0と1、即ち16桁の2進数、約6万5千段階です。 音楽信号の連続して変化する波形を44.1KHzでサンプリングします。つまり1秒を44100分割して、分割した1パートの範囲内では「変化して いない」とみなしてしまうのです。
本来電圧値は時間によって変化するので、アナログ的には時間(t)の関数 として捉えますが、デジタル処理では連続したものは扱えませんので、離散的なデータに変換します。これが「標本化」(サンプリング)です。各標本は「 時間の関数」ではなく単純な「量」です。
更にその「量」もまた、もともとはアナログ量(どんな値でもアリ)なんで すが、最大値と最小値を決めて、その間を6万5千段階に区切って、そのどれかのうち最も近い値(最初は単純に端数切り捨てか切り上げでしたが、最近は もうちょっと賢い処理をしています)を選びます。これが量子化(クォンタイズ)です。電圧値もまた連続量ではなく、離散的な値になります。
時間軸方向にfsを限りなく上げ、電圧値方向にはbit数を限りなく増やせば「離散」ではありますが「連続」と区別できなくなります。数学で言うと ころの「極限」は「アナログと同じ」です。でも実際には家庭で購入出来る価格でなければ意味がないので、その範囲で限界がありました。その値が44. 1KHzであり16bitだったのです。
時間方向には44.1KHz、電圧値方向には16bit。この「細かさ」が「充分」かどうかは当時から議論の的でした。さてお気付きでしょうか。CDに刻まれた信号はそもそも「階段上の波形」なのだという事に。このギザギザが「量子化ノイズ」です。このノイズは凄く 大きなエネルギーを持っていますが、幸いな事に信号(20KHzまで)より高い周波数です。そこでフィルタを通して不必要な高い周波数の成分を除去( 波形を滑らかに)してやると、元と変わらぬきれいな波形を再現できます。
CDの初期は、このフィルタの性能が勝負でした。20KHzまではきっち り通して44.1KHzから上はすっぱり遮断するなんてフィルタはどんなに金を積んでも実現できやしません。「きっちり」か「すっぱり」のどちらかを 重視するともう一方はある程度諦めなければならないのでした。その諦めの水準を僅かに高くするだけで値段は簡単に桁が増えてしまうのでした。
最初に「デジタルフィルタ」を導入したのはヤマハだったと思います。44.1KHzの間隔で並ぶデータの「間」のデータを「補完」して88.2KHz で標本化された信号としてDACにかければ、その後のアナログフィルタはかなり楽になります。これにより初めて定価10万円を割るCD-X1が発表さ れ、その後CDプレーヤは一気に低価格化できるようになりました。
もともとCDはエラー等である時刻の値が失われた時、前後の値から失われ たデータを「補完」するという技術を基本に持っていました。デジタルフィルタはその技術を見事に応用したと言えます。尤も、デジタルフィルタの技術そ のものはCDの補完技術から生まれたものではないようですが。
オーヴァサンプリングが常識となり、4fs、8fs、16fsとエスカレ ートしていきましたが、実際にはオーヴァサンプルだけでは4fs以上はそう大した改善がない事が知れると、オーヴァサンプル競争は一旦鎮静化します。
次に仕掛けてきたのもヤマハでした。今度は16bitのCDを再生するのに18bitのDACを使う「Hi-bitシステム」を発表しました。これ は実はデジタルフィルタの開発過程からすると自然な流れであったとも言えます。データとデータの隙間を計算により埋めようとすると、算出された値には しばしば「端数」が出ます。例えば1bitの段差の間を埋めようとすれば、その中間の値が出てしまいます。デジタルフィルタを最初から18bitで計算するものにして、18bitになって出てくるデータを18bitのDACで復調してやればより正確な出力が得られる。このハイビット化もすぐに過当 競争となり、現在では20bit以上が常識となっています。
しかし、20bitと言えば最大ビットと最小ビットは百万倍にもなります。 その間の階段をまっすぐに作るのは容易ではありません。レーザートリミング等で全体をまっすぐに近づければ逆に僅かなうねりが不規則に生じ、安物DACでは分解能は確かに20bitでも下4bitぐらいは意味がなかったりしたものでした。現在の技術でも直線性のいい20bitDACを量産するのは かなり困難で、それ以上のハイビットはあまり意味がないと思ってよいのではないでしょうか。
この少し前、マランツから4fs14bitDACという不思議なプレーヤ が発売されています。日本では「下2bitを捨てるなんて!」とやたら不人気でしたが、実は結構いい音していたのでした。この製品の歴史的意味が真に 理解されるまでには21世紀に入ってしまうでしょう。 実は、使っているDACは確かに14bitDACなのですが、システム全体としては17bit分の分解能を持っていたのです。しかも14bitDACは精度が高いのです。最小ビットと最大ビットの比が16bitより2bi t少ない分1/4になるので、同じ精度で作ったら14bitの方が高精度になってしまうのです。DACの精度とは「最小ビット何個分の狂い」ですから、最小ビットの大きな14bitDACはその分狂いが小さいという事になるのです。
でも、この製品は当時は鳴かず飛ばずで決してヒットはしていませんので、 今の歴史では大きく扱われてはいません。ハイビット戦争の真っ只中、フィリップスが「1bitDAC」を発表します。マランツはフィリップスのDACを好んで使っていますから、先述の14bitDACシステムもフィリップスのものだったかも知れません。実はこの 1bitDAC、先述の14bitDACシステムと同じ発想を更に進めたものだったのです。
1bit、即ち「0」と「1」の2値のみで出力するDACはフィリップス/ ヤマハのPDM(パルス密度変調)系とSONY/松下を中心とするPWM(パルス幅変調)系があり、PWM系の多くは電圧方向が2値ではないハイブリ ッド系パルスDACになっていますので、厳密には1bitではありません。よって以後「1bitDAC」という言葉を避け「パルスDAC」と総称します。
1bitDACは最大bitも最小bitもありませんのでDAC精度としては電圧的には電源の精度(電源電圧の変動が信号にモロに乗る)、時間的に は水晶発振器の精度になります。きちんと作ればとても直線性のよいDACシステムになります。パルスDACの先祖は70年代にトリオ(今のケンウッド)のFMチューナ に搭載された「パルスカウント検波」でしょう。しかしDACシステムに採用されるに至るまでにはもうひとつの技術「ノイズシェイピング(以下NS)」が欠かせません。 実は、オーヴァサンプリングを行うと4倍につき1bitの割合で分解能がUPしていたのです。4倍で1bit、16倍なら2bitという具合に。 そこにNSを使うと、更に2倍につき1bit、分解能が上がるのです。つまりNSを使った場合4fsで3bit、8fsでは4.5bit、16fsな ら6bit、分解能がupするのです。
そう。先述のマランツのシステムはNSを搭載した最初のCDプレーヤだっ たのです。そのため4fsで+3bit、合計17bit分の分解能を持っていたのです。 このNSを多重にかける技術がパルスDACの実現には不可欠だったのです。 2重ぐらいまでならそんなに困難はないのですが、3重以上かけようとするととても不安定になり易いのです。そこでフィリップスが採用したのは2次NS つき128fs1bit(これは本物)DACでした。128といえば2の7乗ですから、+17.5bit分の分解能改善が得られ、実に全体として18. 5bit相当の分解能が得られるのです。これに対しNTTが松下と協力して作ったMASHは32~64fsで作るため3次のNSに挑戦、何とかこれを実現しました。3次だと32fs(2の5乗)で+17.5bitの改善が得られます。
MASHが3次にこだわったのは、パルスDACが宿命的に持つ高周波ノイ ズ問題を少しでも軽減したかったからでした。パルスDACはとても高い周波数のパルスを使うため、フィルタなどお構いなしに電波となって空中を飛んで オーディオ信号系に飛び込んでしまうからです。専ら据え置の高級機を志向したフィリップスはしっかりしたシールドを施す事を前提に特性の素直な2次N S128fsを選び、ポータブルプレーヤに採用したかったMASHは32fsで済む3次に挑みました。
以上が1bitDAC登場までのおおまかなDACシステムの歴史と解説です。結構私情も入ってますので、細部は幾分(多分に)思い込みの部分もある かも知れませんが、技術的にはだいたいこんな感じで間違いないと思います。 現在では、マルチbitDACとパルスDACはどちらも熟成されていて、 どちらかが決定的に優れているとは言えません。ただ安価な製品ではマルチbitよりパルスDACの方が安く作れるため殆どがパルスDACを使っています。逆に高価な製品となると高周波をシールドするのにコストがかかったり、オーディオとは無縁の高周波の技術が必要になるためオーディオ屋はマルチbitを選びたがる傾向があるように思えます。
いまだ気付かれないようですが、かのマランツのシステムは大きな「答え」 を示しています。直線性に優れる高速の8~12bitDACに安定な2次のNSを併用して16~64fsで使えば、周波数も高過ぎず、直線性もよい最高のDACが作れる筈なのです。しかも8~10bitのDACはVIDEO用の高速な製品が安価に量産されています。これを使わない手はない。…って いう論文を同人誌に発表したのはもう5年も前です。トホホーっ。 もし現代のオーディオ技術者が馬鹿ばかりでなければ21世紀はミドルbitDACの時代となり、かのマランツのプレーヤは歴史の金字塔として語られるようになるでしょう。
8/6'98 そんぴ ( sompi@msh.biglobe.ne.jp )