Utilities Web

ADC 分解能・LSB・電圧 計算機

分解能と基準電圧からLSB電圧・量子化誤差・ダイナミックレンジ・code↔電圧変換・ENOB・オーバーサンプリングを計算

使い方

  1. デバイスプリセット(Arduino / ESP32 / STM32 / 16bit)を選ぶか、分解能(bit)と基準電圧Vrefを入力します
  2. LSB規約(2^N 標準 / 2^N−1 エンドポイント)を選びます
  3. 1LSB電圧・コード数・量子化誤差・ダイナミックレンジ・理想SNRが表示されます
  4. コードまたは電圧を入力すると、もう一方が双方向に計算されます
  5. 分解能比較表で、同じVrefでの各ビット深度のLSBを見比べられます
  6. SINADを入力するとENOB(実効分解能)、追加ビットを入力するとオーバーサンプリング所要倍率が出ます

こんな場面で使えます

  • 分解能と基準電圧から1LSBが何mV/µVかを知りたい時
  • ADCの読み値(コード)を電圧に、または電圧をコードに変換したい時
  • Arduino の analogRead を電圧にするとき 1024 と 1023 のどちらで割るか確認したい時
  • データシートのSINADから実効分解能(ENOB)を求めたい時
  • オーバーサンプリングで分解能を何ビット稼ぐのに何倍サンプルが必要か知りたい時

よくある質問

analogRead を電圧にするとき 1024 と 1023 のどちらで割りますか? ▼

どちらも使われます。1024(=2^N)はADCの転送関数に忠実で、各コードが幅 Vref/1024 のビンを表します(読み値1023は4.9951Vで、ちょうど5Vにはなりません)。1023(=2^N−1)は 0〜Vref を線形写像し、読み値1023がちょうど5Vになります。最も正確には 1024 で割り +0.5LSB のオフセットを足します。本ツールの規約トグルで両方の結果を確認できます。

LSB・量子化誤差・ダイナミックレンジの関係は? ▼

1 LSB = Vref ÷ 2^N が1コードあたりの電圧で、量子化誤差は ±0.5 LSB です。ダイナミックレンジは 6.02·N dB(フルスケール÷1LSBの比)、理想SNRはフルスケール正弦波で 6.02·N + 1.76 dB です。Nを1bit増やすとLSBは半分、ダイナミックレンジは約6dB改善します。LSBはVrefと規約で変わりますが、ダイナミックレンジ/SNRはNだけで決まります。

オーバーサンプリングで分解能はどこまで上げられますか? ▼

分解能を w ビット上げるには 4^w 倍のサンプルを加算し、2^w で割り(デシメーション)ます。例えば 12bit を 14bit 相当にするには 4^2 = 16倍のサンプルが必要です。ただし入力に1LSB以上のランダムノイズ(必要ならディザ)があることが前提で、ノイズが小さすぎると効果が出ません。実効分解能 = N + w、実効LSB = Vref ÷ 2^(N+w) になります。

関連ツール