前々から、音声出力回路についていろいろ考えて
いました。
デジタルの音声データをアナログ出力するっていうと
DA変換回路が必要になるわけですが、その中で
お手軽なものっていうとR−2Rラダーとか
重み付け抵抗回路とかが挙がりますが、当然
精度は低く、せいぜい5〜6ビット程度まで
というのがいいところでしょう。
一方、音声信号なら、扱う周波数がそんなに高くない
のでPWMで出力できる範疇だし、LPFを通せば
人の耳にはそれなりにちゃんと聞こえるので、
音声をお手軽にDA変換するのにはPWMが便利。
得られる波形も理論上はゼロクロス歪みもほぼ
ゼロ(のはず)だし、リニアリティーも極めて
高いし。クリスタルの発振精度に依存するからね…。
ところが、AVR程度のマイコン、つまり20Mhz
程度のクロックでは、16ビットタイマーを使って
PWM出力させるとせいぜい300sps程度。
つまり150Hz程度しか再生できない計算…
( ̄〆 ̄)
音声データといえば、CD−DAなら16ビット
ですし、その程度の精度が出せれば個人的には
満足なんですが、1ビットDAの専用ICとか
使うのはちょっと癪。
8ビット〜9ビット程度の精度にしてしまえば
20Mhz程度のマイコンでも20000hz
程度までは普通に出せるんだけど、それじゃぁ
期待値以下。
TINY861なら内蔵PLLを使って10〜11ビット
程度のPWM出力ができるんだけど…うーん、
ちょっと惜しい…
一方、最近流行り(?)のDクラスアンプなど
を見ていると、いわゆるPWMを応用して
歪みの低減やパワーロスの改善をしているっぽい
感じなので、その手のアンプは何か上手い方法を
使っているんだろうな…どんなことしてるんだろう?
っていうのが最近のオイラの素朴な疑問でした。
で、ふと今日あるアイデアを思いつきました。
さっき自転車漕ぎながら頭の中で計算してみた
だけなのでなんともいえないんだけど、
音声信号の16ビット精度程度のDA変換なら
なんとかなるんじゃないかな?と思えて
きました。
あとで紙の上でちゃんと計算しなおしてみよう…
使えると面白いアイデアなんだけどな…。
(例によって、普通に手に入る部品だけで
その手のことをやっちゃおうっていう
作戦です)
どうなることやら…
それにしても、市販の1ビットDAコンバータとか
Dクラスアンプとかって、どんな処理してるんだろう?
単純にPWMで40000Hzの16ビットを出そう
とすると2.6Ghzが必要になっちゃうんだけど、
まさかそんなねぇ…

2