AD変換・量子化誤差 体験ツール

理想量子化器の量子化誤差と、コード幅のずれから生じるDNL(微分非直線性)/INL(積分非直線性)をグラフで確認するWebツールです。 ビット数、入力範囲、入力電圧を動かしながら、アナログ値がどのコードへ割り当てられるかを見られます。

ADCの条件

3 bit / 8 codes
1 LSB0.125 V1 V / 8
出力コード3 / 0b0110.40958 V 以上 0.54011 V 未満
量子化誤差-0.0175 V入力 - 理想コード中心 = -0.14 LSB
静的直線性+0.1846 LSB / +0.3209 LSB最大DNL / 最大INL

変換特性

入力電圧 → 出力コード
0 V1 Vcode
理想直線理想量子化器非理想ADCモデル入力電圧

量子化誤差

入力 - 理想量子化器のコード中心
error0+0.5-0.5
量子化誤差

DNL / INL

微分非直線性 / 積分非直線性
LSB+1-1
DNL(棒)INL(線)

コード幅

先頭8コード
codeDNLINL
01.1846 LSB+0.1846 LSB+0.1846 LSB
11.0965 LSB+0.0965 LSB+0.2811 LSB
20.9955 LSB-0.0045 LSB+0.2766 LSB
31.0443 LSB+0.0443 LSB+0.3209 LSB
40.943 LSB-0.057 LSB+0.2638 LSB
50.7421 LSB-0.2579 LSB+0.0059 LSB
60.8519 LSB-0.1481 LSB-0.1421 LSB
71.1421 LSB+0.1421 LSB-

このツールは学習用の簡易モデルです。実際のADCでは、ノイズ、オフセット誤差、ゲイン誤差、基準電圧、サンプリング回路、測定方法も関係します。
要望やバグ報告はお問い合わせフォームからどうぞ。

使い方

まずは「理想3bit」を選ぶと、AD変換の階段状の変換特性と量子化誤差が見やすくなります。 ビット数を増やすとコード数が増え、1 LSBは小さくなります。

「コード幅のばらつき」を上げると、各コードの幅が理想的な1 LSBからずれます。 このずれをDNL(微分非直線性)として表示し、遷移点の累積的なずれをINL(積分非直線性)として表示します。

AD変換と量子化誤差

AD変換は、連続的なアナログ電圧を有限個のデジタルコードへ割り当てる処理です。 このページでは、連続的な入出力の目安を「理想直線」、DNL/INLのない階段状の変換特性を「理想量子化器」と呼び分けます。 入力範囲(フルスケール範囲、FSR)を \(V_{\mathrm{FSR}}\)、ビット数を \(N\) とすると、1 LSBは次のように表せます。

\[ q = \frac{V_{\mathrm{FSR}}}{2^N} \]

入力を \(x\)、理想量子化器のコード中心を \(Q(x)\) とすると、量子化誤差は次の差です。

\[ e = x - Q(x) \]

理想量子化器では、丸め方や端点を除けば、量子化誤差はおおむね \(\pm 1/2\) LSBの範囲に入ります。 十分に多くのコードをまたぐ信号では、量子化誤差を一様分布として近似し、rms値を \(q/\sqrt{12}\) とみなすことがあります。

DNL(微分非直線性)とは

DNL(微分非直線性)は Differential Non-Linearity の略で、各コード幅が理想的な1 LSBからどれだけずれているかを表します。

\[ \mathrm{DNL}[k] = \frac{W[k] - q}{q} \]

ここで \(W[k]\) はコード \(k\) の実際の幅、\(q\) は理想コード幅です。 DNLが正ならそのコード幅は広く、負なら狭くなります。 単調性を持つADCなら \(\mathrm{DNL} \geq -1\) LSB が境界条件です。\(-1\) LSBではコード幅が0になり、ミッシング・コードになります。\(-1\) LSBを下回る場合は遷移順が崩れ、非単調なモデルになります。

INL(積分非直線性)とは

INL(積分非直線性)は Integral Non-Linearity の略で、実際のコード遷移点が理想直線からどれだけずれているかを表します。

このツールでは、入力範囲の両端を合わせた簡易的なend-point line基準で、内部遷移点のずれをLSB単位で表示しています。 実際のデータシートでは、end-point line基準かbest-fit line基準かでINLの見かけが変わるため、比較するときは基準線の定義を確認する必要があります。

微分非直線性と積分非直線性の違い

DNL、つまり微分非直線性は「各ステップの幅」を見ます。 INL、つまり積分非直線性は「遷移点が理想直線からどれだけずれたか」を見ます。 量子化誤差が理想量子化器でも生じる誤差なのに対して、DNL/INLは実デバイスの静的直線性を表す誤差です。

項目見るものこのページでの扱い
量子化誤差入力値と理想コード中心の差理想量子化器の誤差波形として表示
DNL各コード幅のずれコード幅を1 LSBと比較
INL遷移点の累積的なずれend-point基準の簡易モデル

実務での注意

実際のADC評価では、量子化誤差、DNL/INL、ノイズ、オフセット誤差、ゲイン誤差、クロック、基準電圧を分けて考えます。 DNL/INLは静的直線性の指標であり、SNRやTHD+Nのような動的特性とは別の見方です。

音声ADCではDNL/INLよりSNRやTHD+Nが主指標になりやすく、精密計測や画像、制御ではミッシング・コードなしであることやINLが重要になることがあります。 「何bitか」と「そのbit数ぶんの精度があるか」は同じではありません。

関連ツール

時間方向のサンプリングで起きる折り返しを確認したい場合は、エイリアシング体験ツールも使えます。 このページでは振幅方向の量子化を扱い、エイリアシング体験ツールでは時間方向のサンプリングを扱います。

エイリアシング 体験ツール