A-Dコンバーター変換の誤差は、ノイズ起因によるもの以外に、次のようなA-Dコンバーター変換モジュールの持つ特性起因の誤差が発生する。
1)オフセット誤差とゲイン誤差
2)非直線性誤差
オフセット誤差は0Vを変換したときに変換結果が0よりも大きくなる、または、0Vよりも大きな値なのに変換値が0になってしまう誤差である。また、ゲイン誤差は、フルスケールの電圧を変換したときに結果がフルスケールの理論値(例、12ビット分解能の場合、0xFFF)よりも小さくなってしまう、もしくは、フルスケールに至らない電圧を変換してもフルスケールの理論値が得られてしまう誤差である。
非直線性誤差が比較的小さい場合、すなわち変換特性が直線に近似できる結果が得られる場合は、これらを1次関数とみなし、ソフトウェアで補正すると、より正確な変換結果を得ることができる。
今回の変換結果で、非直線性誤差を無視できるような結果はなかったが、例として「単1形乾電池×2個/デカップリングコンデンサーあり/変換は1回のみ」の場合を補正してみる。補正する計算式を図8に示す。また、補正結果と補正前の元データ(実測値)を図9に示す。
補正後と補正前を比べると、わずかではあるが誤差は小さくなっている。
理想変換の結果は直線を描くが、実際は曲線を描き、理想直線から少しずれた値になる。この直線からずれた曲線の特性を持つ誤差を非直線性誤差と呼ぶ。オフセット誤差やゲイン誤差のように、理論的に説明できる誤差ではないので、理論式では補正できない。しかし、擬似的な補正方法として、2次関数に置き換えて補正する方法がある。2次関数に近似する際にオフセット誤差とゲイン誤差も考慮すれば、より誤差の小さい結果が得られるはずだ。
補正する計算式を図10で簡単に説明する。比較のために、ここでも「単1形乾電池×2個/デカップリングコンデンサーあり/変換は1回のみ」の場合を補正してみる。補正結果と補正前の元データ(実測値)を図11に示す。
オフセット誤差とゲイン誤差だけを補正した場合に比べると、まだ実用的ではないが、かなり改善された結果が得られる。
非直線性誤差を2次関数で補正するのは、理論的ではないので無理はあるが、ある一定範囲だけに限定すると、比較的正確な補正が可能になる場合がある。
今回の変換結果の中で、2次関数に近い特性が見られたのは、「単1形乾電池×2個/デカップリングコンデンサーなし/平均化処理を行った場合」の0Vから2Vの電圧を変換した場合であったので、その部分だけを補正した結果を図12に示す。
この補正結果は、測定できる電圧が限定されるが、かなり改善された値に補正されている。
非直線性誤差を2次関数で補正する方法は、一部では行われているようだが、理論式に基づいていないので、筆者はお勧めしない。どうしても、この2次関数の補正をお使いになる場合は、データの蓄積を十分に行って、しっかり検証してほしい。
また、ディザー(Dither)を使用したノイズ除去の方法もあるが、この方法はかなり複雑で、多くの説明を要する。本記事では、割愛するが、詳細を知りたい方は、STマイクロエレクトロニクスのアプリケーションノート(AN2668)に原理と方法が詳しく記載されているので、参照してほしい。
Copyright © ITmedia, Inc. All Rights Reserved.