理想的なNビットADコンバータの、量子化雑音によって決まる信号対雑音比(SNR)の近似式はどれか。(フルスケールの正弦波入力の場合)
- A6.02N + 1.76 dB
- B3N dB
- C20N dB
分解能、クロックジッタ、入力周波数を入れると、量子化雑音とサンプリングクロックのジッタのそれぞれで決まるSN比と、両方を合わせたSN比、有効ビット数(ENOB)を計算します。データシートのSINADを入れれば、そこから求めたENOBも表示します。
フルスケールの正弦波を入力したときの理想的な値で、量子化雑音とジッタによる雑音は電力として足し合わせています。オーバーサンプリングの利得は、ノイズシェーピングを使わない場合の 10·log10(OSR) dB です。実際のADコンバータでは、熱雑音やひずみなどでSN比はさらに下がります。
ほかの入力は今の値のまま、選んだ入力だけを今の値の1/4〜4倍の範囲で変えたときの結果です。赤い点が今の値です。
理想的なNビットのADコンバータでは、量子化誤差は ±1/2 LSB の範囲に一様に分布するとみなせ、その雑音の実効値は LSB/√12 です。一方、フルスケールいっぱいの正弦波は振幅がフルスケールの半分なので、実効値は (2^N × LSB ÷ 2)/√2 です。この比をdBで表すと SNR = 20·log10(2^N) + 20·log10(√1.5) = 6.02N + 1.76 dB になります。既定値の12ビット、フルスケール2 Vでは、1 LSB(フルスケール ÷ 2^N)は約0.488 mV、SN比は約74.0 dBです。入力がフルスケールより小さければ、そのぶんSN比も下がります。
サンプリングのタイミングがクロックジッタσだけずれると、入力信号の傾きが急なほど、取り込む電圧の誤差も大きくなります。周波数finのフルスケールの正弦波では、ジッタだけで決まるSN比は SNR = −20·log10(2π × fin × σ) です。入力周波数かジッタが10倍になるごとに、このSN比は20 dB下がります。既定値の10 MHz、1 ps rmsでは約84.0 dBで、量子化の74.0 dBと雑音電力を足し合わせると約73.6 dB、ENOBは約11.93ビットです。100 MHzではジッタだけで約64.0 dBとなり、12ビットの理想値を下回ります。
量子化雑音が入力と無関係な白色雑音とみなせる場合、その電力は0からサンプリング周波数の半分までの帯域に一様に広がります。必要な信号帯域より高い周波数でサンプリングし、デジタルフィルタで帯域外の雑音を取り除くと、帯域内に残る雑音が減ります。この利得は 10·log10(OSR) dB で、オーバーサンプリング比(OSR)を4倍にするごとに約6 dB、つまり約1ビット分よくなります。ただしノイズシェーピングを使わない単純な方法では、4ビット稼ぐのにOSRが256倍も必要です。ΔΣ型のADコンバータは、雑音を帯域外へ押しやるノイズシェーピングで、はるかに小さいOSRで高い分解能を実現します。
データシートには、雑音だけを含むSNRのほかに、高調波ひずみも含めたSINAD(信号対雑音・ひずみ比)が載っています。有効ビット数は ENOB = (SINAD − 1.76) ÷ 6.02 で求められ、理想的なADコンバータの何ビット分に相当するかを表します。例えばSINADが70 dBならENOBは約11.34ビットです。SINADやENOBは、測定したときの入力周波数や振幅、サンプリング周波数によって変わり、入力周波数が高くなるとジッタやひずみのために下がるのが普通です。使いたい周波数での値や、周波数に対するグラフを確かめることが大切です。
正解:C. ±1/2 LSB
連続した値を1 LSB幅の段階に丸めるため、変換には必ず誤差が生じ、理想的なADCでは最大±1/2 LSBです。入力が十分に変化する場合、この誤差は ±1/2 LSB の範囲に一様に分布する雑音とみなせ、実効値は LSB/√12 になります。これが理想ADCのSNR(6.02N + 1.76 dB)の根拠です。ビット数を増やすと1 LSBが小さくなり、量子化誤差も小さくなります。
正解:B. 約6 dB(約1ビット分)
量子化雑音の総量は一定で、サンプリング周波数を上げると雑音がより広い周波数範囲に薄く広がります。信号帯域内の雑音は 10 log₁₀(4) ≈ 6 dB減り、約1ビット分の改善です。つまり単純なオーバーサンプリングでは、1ビット増やすのに4倍、2ビットで16倍の速度が必要になり、効率が悪いのが難点です。ΔΣ型はノイズシェーピングを組み合わせて、はるかに大きな改善を得ています。
正解:A. 約12ビット
理想的なNビットのADCのSN比は量子化雑音だけで決まり、6.02N + 1.76 dB です。これを逆に使って、ENOB = (SINAD − 1.76)/6.02 = (74 − 1.76)/6.02 ≈ 12.0ビット と求めます。16ビットの出力をもっていても、雑音やひずみのため、実質的には理想的な12ビットのADC相当の性能であることを意味します。SINADは入力信号の周波数や振幅によって変わるので、使う条件に近い周波数での値やグラフを確認します。分解能と実際の精度は別物です。
6.02 × 12 + 1.76 ≈ 74.0 dB です。フルスケールの正弦波を入力し、量子化雑音だけを考えたときの理論上の上限で、実際の製品では熱雑音やひずみ、ジッタのためにこれより低くなります。
(74 − 1.76) ÷ 6.02 ≈ 12.0ビットです。分解能が16ビットのADコンバータでも、SINADが74 dBなら、実際の性能は約12ビット相当ということになります。
ノイズシェーピングを使わない単純なオーバーサンプリングでは、帯域内の量子化雑音が約6 dB減り、約1ビット分の改善になります。2ビット改善するには16倍のオーバーサンプリング比が必要です。