電子回路の小ネタです.D/A変換器の基本方式の一つである,R-2Rラダー回路について.
これは,$n$ビット2進数値$(X_{n-1}X_{n-2}\cdots X_{0})_{\mathrm{B}}$に対応する入力電圧値列$\left\{v_{n-1}, v_{n-2}, \cdots v_{0}\right\}$を,アナログ電圧$v$に変換し出力する回路です.一般的に$v_{k}$($k=0,\cdots,n-1$)は,$X_{k}$が0ならばL(低電圧),1ならばH(高電圧)をとります.Lは大抵0Vです.Hは回路仕様によって変わりますが,5Vであることが多いのではと思います.
抵抗値$2R$である抵抗器が,抵抗値$R$である抵抗器によってはしごのように並列につなげられるので,ラダー(はしご)回路と呼ばれます.一番下,接地している直前の抵抗器だけ,抵抗値が$R$でなく$2R$になっていることにご注意下さい.
この回路の出力電圧$v$が確かに2進数を変換したものになっていることを数学的に証明しよう,というのが本記事の趣旨です.
よく知られているように,$n$ビットの2進数値$(X_{n-1}X_{n-2}\cdots X_{0})_{\mathrm{B}}$は,次式で10進数値$Y$に変換されます.
Y=\sum_{k=0}^{n-1}X_{k}\cdot 2^{k}
ですから,上記回路の期待される出力は,次のようになるはずです.
v=A\sum_{k=0}^{n-1}v_{k}\cdot 2^{k}
ただし,$A$は適当な比例係数です.これを踏まえて,回路の仕組みを見ていきましょう.
上の部分回路に着目します.電圧$v_{k}$が入力されて,抵抗値$2R$の抵抗器を電流$i_{k}$が流れ,接点の電位が$V_{k}$となります.これに上から電流$I_{k+1}$が合流し,抵抗値$R$の抵抗器を電流$I_{k}$が流れて,一段下の接点の電位$V_{k-1}$となります.
これらの間には次式が成り立ちます.
\displaylines{
V_{k}=v_{k}-2Ri_{k}
\\
I_{k}=I_{k+1}+i_{k}
\\
V_{k}-RI_{k}=V_{k-1}
}
ただし,$k=0$のときは最後の抵抗値は$2R$で,グラウンド電位$0$Vに落ちますので,次式が成り立ちます.
\displaylines{
V_{0}=v_{0}-2Ri_{0}
\\
I_{0}=I_{1}+i_{0}
\\
V_{0}-2RI_{0}=0
}
これらから$i_{0}$および$I_{0}$を消去すれば,次式を得ます.
V_{0}=\frac{1}{2}v_{0}+RI_{1}
これを$k=1$の部分回路に適用し,$i_{1}$および$I_{1}$を消去すれば,次式を得ます.
V_{1}=\frac{1}{2^2}v_{0}+\frac{1}{2}v_{1}+RI_{2}
カンの良い方ならば,「もしかして
V_{k}=\frac{1}{2^{k+1}}v_{0}+\frac{1}{2^{k}}v_{1}+\cdots+\frac{1}{2}v_{k}+RI_{k+1}
が成り立つのでは?」と気づきます(カンが良くなくても,同じ計算を$k=4$くらいまで試してみたら気づけると思います).
いずれにしても,これを仮定しまして,入力電圧$v_{k+1}$に対する部分回路に着目し$i_{k+1}$および$I_{k+1}$を消去すれば,次式を得ます.
V_{k+1}=\frac{1}{2^{k+2}}v_{0}+\frac{1}{2^{k+1}}v_{1}+\cdots+\frac{1}{2^2}v_{k}+\frac{1}{2}v_{k+1}+RI_{k+2}
つまり,同じ式が$k+1$でも成り立つと分かります.よって,帰納法によりこれは正しいと証明できました.
さて,$k=n-1$においてはもう上に回路がありませんので,$I_{n}=0$です.全体回路の出力電圧は$v=V_{n-1}$ですから,次式が言えます.
\displaylines{
v=V_{n-1}=\frac{1}{2^{n}}v_{0}+\frac{1}{2^{n-1}}v_{1}+\cdots+\frac{1}{2}v_{n-1}
\\
=\frac{1}{2^{n}}\left(v_{0}+2v_{1}+\cdots+2^{n-1}v_{n-1}\right)
\\
=\frac{1}{2^{n}}\sum_{k=0}^{n-1}v_{k}\cdot 2^{k}
}
これはまさしく,計算前に期待した結果であり,そのときに$A$とおいた比例係数は$1/2^{n}$であることも分かりました.
実際にはR-2Rラダー回路だけではD/A変換できず,出力電圧を平滑化する回路が必要ですが,それは通常のローパスフィルタを使えば良いです.

