ここでは、ありふれた「電圧を計測すること」をテーマにして、アナログとディジタルとの関係、ならびに非常に精密なアナログの世界をご紹介します。
自然界の物理量
自然界に存在する物理量は「アナログ analog, analogue」です。「物理量」は難しい言い方に聞こえるかも知れませんが、たとえば「音」や「光」、「振動」などの強さを厳密に表現するならば、「1.595」のように明確な数字で表すことができません。
そんなバカな、とお思いかもしれませんが、電圧計などで計測した値「1.595」は厳密に言うと「近似値 approximation」です。「1.595」と表現できる大きさは、「何らかの処理」で変換した結果です。これから、その理由を説明します。
電池の電圧を測る
エレクトロニクスの世界では、必ず電気信号を扱います。たとえば冒頭で述べた「電圧」はその代表的なものです。
- 新しい乾電池の電圧はこれくらいはあります。先ほどの数字「1.595」の最後に「次元 dimension」を表す Volt の頭文字「V」を付け、「1.595 V」と表現します。英語では、より明確に「1.595 Volts」のように表現することもあります。
- ちなみに、マンガン乾電池等の電圧は1.5 Vの表記がありますが、この値は目安を意味する「公称電圧」のことです。「公称電圧」は一種の代表値で、常にその近辺のおおよその値です。銀電池などは構造が異なるので、電圧変動の大きなマンガン電池などより長期にわたりはるかに正確な一定の値を示します。
話が少しそれましたが、上記の「何らかの処理」とは、たとえば、昔ながらの針式の電圧計(一般には「導通テスター」)では「1.59 V」のように読む処理のことです。「1.59 V」くらいなら読めますが、実際に「1.595 V」のように最後の桁を読み取るのはほとんど不可能です。
このように、測った値を数字で読み取る処理が発生します。どれほどの細かい値を読むことができるのか、これが「分解能 resolution」です。
メーターの針が表す電圧の値を読み取るとき、斜めから読んだのでは大きな誤差が出ます。正確な値を読めるように指針のところに鏡が付いた電圧計があります。鏡に反射した針が1本に見えるように視線を調整すると、この誤差を小さくすることができます。
ここで、「分解能」の話以外に、「正確さ」を表す尺度である「確度 accuracy」も関係しますが、しばらくこの話は横に置いておきます。(一般に「精度 」という表現をよく使いますが、「精度 」は「確度」とは少し別の意味であり、計測器メーカーは二つの表現を明確に使い分けます。)
アナログ・ディジタル変換と分解能
アナログ・ディジタル変換器 (AD変換器、Analog to Digital Convertor)ならば、「1.595 V」ほどの分解能ならば楽に扱うことができます。先ほど、「明確な数字で表すことができない」と書いた理由が存在します。実際の値は「1.595 V」ではなく「1.5959 V」であるかもしれないという意味です。さらに「1.59594 V」かもしれません。
小さな桁まで正確に読むには、相応の分解能を必要とします。
このように、細かく見ると桁数は際限なく増えます。現実には、無限に桁数が増えることはなく、必ず一定の限界が存在します。物理的な限界は「ノイズ noise」で決まります。現実には、装置の仕様で決まることのほうが多く、もっと言えば、装置の値段で決まることがほとんどです。
ノイズ のことを日本語では「雑音」で表現することがありますが、「雑音」は元は耳で聴いたときのことを表します。ノイズは様々なものがあり耳に聞こえるとは限らないでので、ここではあえて「ノイズ」で表します。耳に聞こえるのは、最大で20〜20KHzの範囲です。
「1.595941 V」の最小桁、つまり「0.000001 V」は「1μV」ですが、これくらいの小さな信号の領域くらいから下では、ノイズによる影響が現れ、正確に測ることは非常に困難な場合があります。
電圧計とディジタル処理
1.999999 Vを測ることができるディジタル型電圧計は、同じレンジの電圧範囲をアナログ信号からディジタル信号へ変換することで実現できます。この電圧計に内蔵するAD変換器は、最低でも21ビットの分解能が必要です。
2n = 1999999 より n = log21999999 =20.93 (約)
ディジタル型電圧計の装置の内部では、たとえば次のような処理を行います。ここでは単純化するためプラス側しか考えません。現実の電圧計は、マイナス側の処理も必要です。
1.999999 Vのときの、AD変換器の出力は 1 1110 1000 0100 0111 1111
0.000001 Vのときの、AD変換器の出力は 0 0000 0000 0000 0000 0001
AD変換器の出力には「0」 または「1」の数が21個あることがわかります。
次に、AD変換器の出力が入力電圧と等しいことを確認します。
[ 1 1110 1000 0100 0111 1111 ]
↓
1×220 +1×219 +1×218 +1×217 +0x216 +1×215 +0x214 +0x213 +0x212 +1×211 +0x210 +0x29 +0x28 +1×27 +1×26 +1×25 +1×24 +1×23 +1×22 +1×21 +1×20
= 1x 1048576 +1x 524288 +1x 262144 +1x 131072 +0x 65536 +1x 32768 +0x 16384 +0x 8192 +0x 4096 +0x 2048 +1x 1024 +0x 512 +0x 256 +0x 128 +1x 64 +1x 32 +1x 16 +1x 8 +1x 4 +1x 2 +1x 1
=1999999
最小値は1μVですから、1μVから1.999999 Vの範囲を計測することができます。
すでに前のところで、次に現れる「分解能」という言葉を使いましたが、この仕様は「分解能は1μVで、ダイナミックレンジは1.999999 Vである」という表現をします。
- 「ディジタル型電圧計」は実際には「マルチメータ」のような表現を使います。電圧計の機能のみならず、抵抗計、電流計、周波数計など複数の機能を備えるものが一般的です。電圧計以外の機能は、内部ではそれぞれの信号を電圧信号に変換し電圧計で計測する仕組みです。
ここでは簡単な説明だけに留めますが、ADコンバータの内部は次のような構造です。なお、ADコンバータの回路構成は数多くあり、ここで紹介するのはそのなかのごく一部です。
電圧計に使用するAD変換器は、積分形ADコンバータ (Integrating Type A to D Converter) というものを使います。この回路のかなめは、OPアンプ (Operational Amplifier) による積分器 (Intgrator)です。帰還信号による働きで直線性 (linearity) を極限まで高めることができるのは、高精度の積分回路による働きです。
積分回路の出力を計数回路 (counter circuit) によりディジタル信号に変換します。電圧計の表示は10進数ですから、2進カウンタ (binary counter)ではなく、10進カウンタの一種である BCD (binary coded decimal) カウンタを使います。
「ディジタルだから高精度」のような表現を聞くことは多いですが、誤解してはいけないのは、OPアンプによる積分回路のような高精度のアナログ回路があって初めて実現できることです。アナログからディジタル、またはディジタルからアナログへの変換回路で、高精度の回路では必ず高精度のアナログ回路が裏に隠れています。
さらに高い電圧の計測
現実に使う場合ですが、このままでは1.999999 Vよりも高い電圧を計測することができません。
では、どうするのか?
この場合は、減衰器、アッテネータ (attenuator) を使います。
10倍の電圧を計測する場合は、10分の1、 100倍の電圧を計測する場合は、100分の1のアッテネータが必要です。
10分の1のとき19.99999 Vまで測れる
100分の1のとき199.9999 Vまで測れる
10分の1や100分の1のアッテネータは、机上の計算では簡単にどうにでもなります。つまり計算するだけならどんなものでも作れる、という意味です。
しかし、現実に正確な電圧計を作ろうとすると非常に難しい問題があります。
計測誤差
たとえば、この電圧計の誤差を最大で1千分の1(0.1%)まで許容すると仮定します。
ここで言う誤差は、アッテネータとAD変換器のそれぞれの誤差を総合したものです。
この値は、ごく普通に数千円ほどで買うことができるハンディ型のテスターなどと比較すると、誤差は非常に小さいことがわかります。(数%程度、たとえば3%)
しかし、ここではあえて、アッテネータを含めた0.1%の21ビットのAD変換器の誤差がどれほど大きく感じるのかを説明します。正確な値である 10.00000 V の電圧を測ることを想定します。(この値はもっと正確な装置で計測したという想定です。)
+0.1%の誤差は10.00000 Vのとき、10.01000 V と現れます。どうでしょうか。これほどの桁数があると、+0.1%の誤差はとても大きく感じませんか?
反対に、-0.1%の誤差は10.00000 Vのとき、9.99000 V と現れます。プラスのときと同様に大きく感じると思います。
この部分がディジタル型電圧計のアナログ部分の難しさです。
まだ、難しさに関しては、「誤差」の話題しか取り上げていませんが、現実の装置では別の難しい問題があります。
被計測物の問題
アッテネータは被計測物の負荷になるため、可能な限り高い抵抗値にする必要があります。つまり非計測物からアッテネータへ電流が流れます。この電流がなるべく小さくなければならない理由は、電流が流れたことにより負荷の状態が変化してはならないのです。
- 計測の世界では、どんな被計測物でも扱えないと困ります。たとえば非常に弱った電池があると仮定します。数ミリアンペアも流したら電圧が下がり状態が変化して元の状態が測れない電池の場合です。電池の電圧を測るとき、電圧計に流れる電流は、数ミリアンペアよりはるかに小さな値まで下げなくてはなりません。
- 市販の高級なディジタル型電圧計は、6.5桁や7.5桁などのものがあります。DC(直流)電圧を計測するときの内部抵抗は 1GΩ以上です。1.5 Vの電圧を測るときに流れる電流は 1.5 nAほどの微小な電流しか流れません。
- 人体の内部には微弱な電流が流れています。大きさは数マイクロアンペアほどですが、この大きさと比較しても非常に小さいことがわかります。
アッテネータは難しさの極地
10分の1や100分の1などのアッテネータで、0.1%の誤差を自作で実現することは、結論を言うと非常に困難です。減衰率が大きいほど難しくなります。ここでは、数百メグオーム以上の高抵抗で、たとえ直流 (DC) しか扱わない条件でもです。
たとえば、上記の例のように、1GΩもの高抵抗は普通の市販品は存在しません。高抵抗を専門に扱うところはありますから買うこともできますが、誤差は1%ほどもありとんでもない値段です。誤差0.1%もの市販品は皆無で、どこを探してもありません。
こうなれば大きな誤差の抵抗を組み合わせるしか方法はないと思いますが、今度は数百メグオームの領域で0.1%の誤差で計測することは非常な困難を伴います。
- アナログ回路では、1対1、つまり同じ値の抵抗器が必要なものがあります。この条件では自作の回路で簡単に選別したり抵抗器を組み合わせて調整することは簡単です。別の記事に書く予定ですが、OPアンプの負帰還の性質を利用することにより、物凄く精密に合わせることができます。
ここでは、まだごく控えめな数字を書いてますが、専門メーカーの製品にもなると凄さはこんなものではなく、驚くのはまだ早いです。
筆者が所有する有名メーカーのマルチメータは6.5桁ですが、電圧を計測するときの誤差の最大値は0.005%です。もはや、PPM (百万分率、parts per milion) で表現するほうが早く、0.005%=50PPMです。10分の1のレンジ、100分の1のレンジ、1000分の1のレンジなどすべてがこの誤差の範囲に収まるのです。
どんなに高性能で高分解能のAD変換器を使っても、正確な高い確度のアッテネータがなければ広い範囲(高い電圧まで)の計測を行うことはできないことが分かっていただけると思います。