響の沼

音響、それは響く沼。コード変換には成功するも、聞こえるのは悲鳴か。

PCM54 でサイン・マグニチュード

標準ロジック IC でコード変換!

 17 年ほど前に、デジタル・オーディオに関するさまざまな記事を雑誌に投稿しましたが、「DAC のパラレル接続」のように現在でも試される手法がある一方で、試すひともなく忘れられていった手法もありました。その代表が 1995 年にカンボジア滞在中に設計した、『パラレル入力の PCM54 を用いて PCM63P と同等のサイン・マグニチュード方式を実現する回路』です。自分でも二の足を踏んで先送りにしてきましたが、やっと組み上げる決心がつきましたので、そもそもそんなことが可能なのかというところから説明したいと思います。
 バー・ブラウン PCM63P では、入力された音声データを上半分と下半分に分けるコード変換を行ってから 2 つの DAC に入力し、電流出力を加算しています。余談ですが、1992 年にこの図を見たことが DAC のパラレル接続を思いつくきっかけになりました。PCM63P の内部では DAC の電流出力が単純にパラレル接続されているようなので、PCM56P などの電流出力も単純にパラレル接続できるのではないかと考えたのです。

PCM63P の構成
 <第 1 図> PCM63P の構成

 コード変換がどのように行われているのかも、データシートに載っています。ちょっと書き直して引用します。

コード変換のようす
 <第 2 図> コード変換のようす

 Two's コンプリメントでは、000 ... 000 がバイポーラ・ゼロに 111 ... 111 が -1LSB に、011 ... 111 がプラス・フルスケールに 100 ... 000 がマイナス・フルスケールになっています。INPUT CODE をよく見ると、1 ビットめの MSB はプラス側かマイナス側かを表しているだけだと見なせます。1 ビットめを無視して 2 ビットめ以下を見れば、バイポーラ・ゼロの x00 ... 000 からプラス・フルスケールの x11 ... 111 までと、マイナス・フルスケールの x00 ... 000 からバイポーラ・ゼロ -1LSB の x11 ... 111 までとが同じになっています。
 そこで、MSB が 0 のときには下位ビットをすべて 1 にすれば LOWER DAC CODE に、MSB が 1 のときには下位ビットをすべて 0 にすれば UPPER DAC CODE にできそうです。ここで MSB を反転しておけば、MSB と下位ビットとの OR が LOWER DAC CODE に、MSB と下位ビットとの AND が UPPER DAC CODE になります。

重み付け LOWER DAC CODE には、バイポーラ・ゼロ付近の対称性を厳格にするため 1LSB の重み付けがされています。UPPER DAC の「バイポーラ・ゼロ」に対して、LOWER DAC のフルスケールは「バイポーラ・ゼロ -1LSB」だからです。
 ただ、PCM54 でいえば 1.00000mA か 0.99997mA かの違いでしかないので、耳で判別できる違いだとは思えません。次項の第 4 図のように DAC の LSB ピンは使っていないので、MSB を反転して入力すれば 1/2LSB 相当の重み付けなら可能です。
 なお、この図は PCM1704 データシート日本語版に載っていたものですが、現在ダウンロードできる英語版には載っていません。

標準ロジックで構成してみる

コード変換回路
 <第 4 図> コード変換回路
 標準ロジックでは、OR ゲートの 74HC32 と AND ゲートの 74HC08 を使います。それぞれ 4 回路入りなので、16-bit では片チャンネル 4 個ずつ必要になります(第 4 図)。この図の LOWER DAC と UPPER DAC が逆に描いてある理由は、カンボジアの暑さのせいかと思います。
 シリパラ変換回路の Lch と Rch がシリーズになっている理由は、デジタル・フィルタにフィリップス SAA7220P/B を使うことを想定したためです。

74HC32/08

 PCM54 はグリッチレス DAC ではないため、バイポーラ・ゼロから -1LSB に切り替わるときに大きなグリッチが発生します。バイポーラ・ゼロをクロスするたびに発生しますから、小音量になるほど耳につくことになります。実験でも、「フツフツ...」というノイズがつきまとって対策が必要であることを確認しています。
 サイン・マグニチュードのコード変換を行うと、グリッチが発生するのは音量が大きいところにシフトします。マスキングされてグリッチ対策が不要になるのか、やはり必要なのかも興味のあるところです。
 なお、第 4 図の下のほうに描いてある図も正確ではなく、PCM54 では 111 ... 111 が 0 で 000 ... 000 は -2mA になります。

基板写真 第 4 図の片チャンネル分を組んだのがこの写真です。左列に 74HC164 x2 を、中央上に 74HC08 x4 中央下に 74HC32 x4 を、右列に 74HC573 x4 を配置しています。MSB は 74HC08 と 74HC32 を合わせて 32 個の入力に接続するので、74HC04 をバッファにして小分けします。
 右端の大きな IC が PCM54HP です。

本当に動くのか?

UPPER DAC
LOWER DAC

 ← UPPER DAC

 

 

合成波形  

   合成波形

 

 ← LOWER DAC

 DAI レシーバ CS8412 を直結して、デジタル・フィルタなしの 1 倍で動作チェックを行いました。PCM54 の電流出力は 220Ωの抵抗でシャントして電圧に変換し、ノイズを含めたすべてをオシロスコープで見てみます。
 信号源はテスト CD の 1kHz 0dB です。現状では写真のようにノイズが多くて実用レベルに達していませんが、サイン・マグニチュードのコード変換そのものは行われています。合成したときの振幅が半分になるのは、負荷の 220Ωが並列の 110Ωになるからです。バイポーラ動作のために印加される 1mA は合成したときに必要な 2mA になるので、半分ずつのときには足りない分シフトしています。
 今回の実験から、コード変換の考え方には誤りがないことが分かりましたが、使用するロジック IC の選定や基板の実装にはさらなるテクニックが必要なことも分かりました。グリッチがどうなったのか、なんて見られるレベルではありません。ただ、ノイズ混じりながらも聞くことはでき、音質傾向は PCM56P や PCM58P など当時のバー・ブラウンに共通したものです。組み直してノイズを克服したとしても、PCM56P や PCM58P などと一味違うことはないだろうと思われます。

 

【参考文献】
「サイン・マグニチュード方式 D/A コンバータの詳細」-「ラジオ技術」1990 年 4 月号

データシートの入手元:
PCM54 - テキサス・インスツルメンツ社の製品情報ページ
http://focus.tij.co.jp/jp/docs/prod/folders/print/pcm54.html
PCM63P - テキサス・インスツルメンツ社の製品情報ページ
http://focus.tij.co.jp/jp/docs/prod/folders/print/pcm63.html

* PCM63P では Sign Magnitude を Colinear (TM) と表記しています。


姉妹ページ [YM3434 + AD1860N 減速シフト・ドライブ] [レガシー DAC で 96kHz 18-bit ハイレゾ

Valid HTML 4.01 Strict 山何研 2010-06-20