ADCの動的性能を把握するために、ENOBの値を算出する方法

2019年06月24日
myAnalogに追加

myAnalog のリソース セクション、既存のプロジェクト、または新しいプロジェクトに記事を追加します。

新規プロジェクトを作成

要約

A/D コンバータの動的性能を表すためには、様々な指標が用いられます。代表的なものとしては、S/N比(SNR:Signal to Noise Ratio)、信号/ノイズ+歪み(SINAD)、THD(全高調波歪み)、有効ビット数(ENOB)が挙げられます。これらのうち、ENOB の値は、SNR と THD の既知の値を使って計算することができます。

はじめに

ENOBは、ADCの動的性能を表す指標の1つです。本稿では、SNR、SINAD、THDの各指標とENOBの関係について説明します。また、分解能が24ビットのデルタ・シグマADC「MAX11216」を具体例として取り上げ、ENOBの計算値と実測値を比較してみます。

各種の指標の関係

まずは、SNR、SINAD、THD、ENOBの関係について押さえておきましょう。それに向けて、以下では各指標について詳しく説明することにします。

SNR

ADCの動的性能を評価する際には、特定の周波数の信号(基本波)を対象として、ノイズや歪みとの関係を数値化します。SNRは、その基本波の出力レベル(PS)とノイズの出力レベル(PN)の比です。数学的には、以下の式(1)によって表されます。

SNR = 10log(PS/PN) = 10logPS – 10logPN (式1)

また、理想的なADCを想定した場合、そのSNRの理論値は分解能を使用することで表現できます。具体的には、SNR = (6.02×N + 1.76)〔dB〕という式が成り立ちます。但し、現実のADCのSNRはこの式によって一律に決まるわけではありません。例えば、デルタ・シグマADCであるMAX11216は、プログラマブルなデジタル・フィルタ(ローパス・フィルタ)を内蔵しています。このタイプの製品の場合、フィルタの特性を調整することで、SNRを高められます。具体的には、フィルタの帯域幅を狭くしてフィルタの減衰量を増大させると、SNRの値は向上します。なお、フィルタの帯域幅を広げてフィルタの減衰量を抑えると、データ・レートを上げられます。

図1に示したのは、MAX11216から出力されるデジタル・データを高速フーリエ変換(FFT)によって処理した結果です。この例では、連続モードでの動作、sincフィルタを使用、バッファを使用という条件で同ADCを動作させています。上述したように、SNRは基本波の出力レベル(PS)とノイズの出力レベル(PN)の比として求められます。この例の場合、データ・レートが8kspsという条件におけるSNRは110.4dBとなりました。なお、FFTは周波数解析を行うために用いられる手法です。A/D変換によって得られたデータに対してFFTの処理を適用することで、基本波とその高調波に加え、非高調波のスプリアス、ノイズ成分の振幅を算出できます。

図1. MAX11216の出力のFFT結果(その1)。SNRは110.4dBとなっています。サンプル・レートが8ksps、fIN = 1kHz、VAVDD = 3.6V、VAVSS = 0V、VREF = 3.6V、TA = 25℃、外部クロックの周波数が8.192MHzという条件で取得しました。

図1. MAX11216の出力のFFT結果(その1)。SNRは110.4dBとなっています。サンプル・レートが8ksps、fIN = 1kHz、VAVDD = 3.6V、VAVSS = 0V、VREF = 3.6V、TA = 25℃、外部クロックの周波数が8.192MHzという条件で取得しました。

SINAD

SINADは、基本波の出力レベル(PS)と、ノイズと歪みの出力レベルを合算した値(PN+D)の比です。数学的には以下の式で表されます。

SINAD = 10log[PS/(PN+D)] = 10logPS – 10logPN+D (式2)

歪みには、高調波とそれ以外のスプリアスが含まれます。図2に示すように、MAX11216のSINADは、データ・レートが8kspsという条件において109.4dBとなっています。なお、図1の場合と同じく、この結果は連続モード、sincフィルタを使用、バッファを使用という条件で取得しました。

図2. MAX11216の出力のFFT結果(その2)。SINADの値は109.4dBとなっています。サンプル・レートが8ksps、fIN = 1kHz、VAVDD = 3.6V、VAVSS = 0V、VREF = 3.6V、TA = 25℃、外部クロックの周波数が8.192MHzという条件で取得しました。

図2. MAX11216の出力のFFT結果(その2)。SINADの値は109.4dBとなっています。サンプル・レートが8ksps、fIN = 1kHz、VAVDD = 3.6V、VAVSS = 0V、VREF = 3.6V、TA = 25℃、外部クロックの周波数が8.192MHzという条件で取得しました。

THD

THDは、基本波の出力レベルと、その高調波の出力レベルの合算値(ノイズを除く)の比です。一般的には、歪みの大部分は最初の5つの高調波成分によって占められます。そのため、以下に示すように、THDの計算には最初の5つの高調波成分だけを使用します。

THD (dB) = 10log(PS) – 10log(P2 + P3 + P4 + P5 + P6) (式3)

ここで、PS、P2~P6の単位はmWです。

例えば、PS = P1 = 1mW、P2 = 0.1nW、P3 = 0.01nW、P4 = 0.001nW、P5 = 0.0001nW、P6 = 0.00001nWである場合、THDの値は以下のように計算します。

THD(dB) = 10log(1) – 10log[(0.1 + 0.01 + 0.001 + 0.0001 + 0.00001) × 10−6]
THD(dB) = −69.5074dB

仮に6次高調波(P6)の値が0.00002nWであった場合、THDの値は-69.5070dBに増加します。ただ、その増分はごくわずかであることがわかります。.

図3に示すように、基本波の周波数が1kHz、サンプル・レートが8kspsという条件において、MAX11216のTHDは-116.3dBとなっています。なお、図1、図2の場合と同じく、この結果は連続モード、sincフィルタを使用、バッファを使用という条件で取得しました。

図3. MAX11216の出力のFFT結果(その3)。THDの値は116.3dBとなっています。サンプル・レートが8ksps、fIN = 1kHz、VAVDD = 3.6V、VAVSS = 0V、VREF = 3.6V、TA = 25℃、外部クロックの周波数が8.192MHzという条件で取得しました。

図3. MAX11216の出力のFFT結果(その3)。THDの値は116.3dBとなっています。サンプル・レートが8ksps、fIN = 1kHz、VAVDD = 3.6V、VAVSS = 0V、VREF = 3.6V、TA = 25℃、外部クロックの周波数が8.192MHzという条件で取得しました。

ENOB

ENOBは、ノイズと歪みの両方を考慮に入れた事実上の分解能に相当します。数学的には以下の式で表されます。

ENOB = (SINAD – 1.76)/6.02 (式4)

ENOBをSNRとTHDで表したい場合、以下の手順に従って計算を行います。

  1. 以下のように式(1)と式(2)を使用することで、式(5)を導出します。
    SINAD = 10log[PS/(PN+D)] = 10logPS – 10logPN+D
    SNR = 10log (PS/PN)
    log (PS/PN) = SNR/10
    PS/PN = 10SNR/10
    PN/PS = 10−SNR/10 (式5)
  2. 式(5)は、以下のように表すこともできます。
    PD/PS = 10−THD/10 (式6)
  3. 式(5)と式(6)を加算すると、以下の式(7)が得られます。
    (PN+PD)/PS = 10−SNR/10 + 10−THD/10
    PS/(PN+D) = 1/(10−SNR/10 + 10−THD/10) = (10−SNR/10 + 10-THD/10)−1 (式7)
  4. 式(7)を式(2)に代入すると、式(8)が得られます。
    SINAD = 10log(10−SNR/10 + 10−THD/10)−1
    = −10log(10−SNR/10 + 10-THD/10) (式8)
  5. 最後に式(8)を式(4)に代入すると、次のようにSNRとTHDでENOBを表すことができます。
    ENOB = {[−10log(10−SNR/10 + 10−THD/10)] – 1.76}/6.02 (式9)

MAX11216のENOB

表1は、MAX11216のSNRのシミュレーション結果をまとめたものです。各シミュレーションは、データ・レートとPGAのゲインを変更して実施しました。また、デジタル・フィルタはsincフィルタとして構成しています。それ以外の条件は、VIN = 0V、VAVDD = 3.6V、VAVSS = 0V、VREF = 3.6V、TA = 25℃です。

表1. MAX11216のSNR(dB)のシミュレーション結果。各シミュレーションは、データ・レートとPGAのゲインを変更し、連続モード、sincフィルタを使用という条件で実施しました。
データ・レート〔sps〕(sps) バッファ ゲイン:1 ゲイン:8 ゲイン:128
低ノイズ 低ノイズ 低ノイズ
1.9 139.8 136.5 140.5 128
3.9 139.4 135.3 139.2 125.4
7.8 139.2 134.7 137.9 122.5
31.2 135.8 132.1 134.3 116.5
62.5 133.8 129.4 131.5 114
500 125.8 121.2 123.3 104.8
1000 123.1 118.5 120.4 101.8
4000 117.7 113.1 115.1 96.5
16000 114.6 109.9 112 93.4
64000 107.8 103.2 105.8 88.2

表2は、ENOBの値についてまとめたものです。各値は、SNRの値を使用し、式(9)によって算出しました。その際、THDの値は120dBとしています。これは、MAX11216のデータシートでTHDの代表値として記されている値です。それ以外の条件は、VIN = 0V、VAVDD = 3.6V、VAVSS = 0V、VREF = 3.6V、TA = 25℃です。

表2. MAX11216のENOB(ビット)の計算結果。各計算は、データ・レートとPGAのゲインを変更し、連続モード、sincフィルタを使用という条件で実施しました。
データ・レート〔sps〕 ENOB
バッファ ゲイン:1 低ノイズ ゲイン:8 低ノイズ ゲイン:128 低ノイズ
1.9 19.6336811 19.62522357 19.63479484 19.53506307
3.9 19.6329602 19.62021353 19.63257437 19.45838575
7.8 19.63257437 19.61715616 19.62958982 19.3193091
31.2 19.62246601 19.59803115 19.61487866 18.79339941
62.5 19.6117322 19.56278581 19.59185023 18.4828525
500 19.4727366 19.23395095 19.3643726 17.09481505
1000 19.35361828 19.00585701 19.17360407 16.60710288
4000 18.92511435 18.36098144 18.62499223 15.73432624
16000 18.56137578 17.89619095 18.20615941 15.22101479
64000 17.57240744 16.83558105 17.25547296 14.35832751

表3は、ENOBの実測結果をまとめたものです。

表3. MAX11216のENOB(ビット)の実測結果。各測定は、データ・レートとPGAのゲインを変更し、連続モード、sincフィルタを使用という条件で実施しました。
データ・レート〔sps〕 バッファ ゲイン:1 ゲイン:8 ゲイン:128
低ノイズ 低ノイズ 低ノイズ
1.9 24.6 25.2 24.8 24.5
3.9 23.4 24.7 23.9 24.4
7.8 23.6 23.4 23.3 23.1
31.2 22.3 22.3 22.1 22
62.5 21.6 21.7 21.5 21.4
500 20.2 20.1 20.2 20
1000 19.7 19.6 19.5 19.3
4000 18.8 18.8 18.7 18.5
16000 18.3 18.8 18.5 18.6
64000 17.2 17.3 17.3 17.3

図4、図5、図6、図7は、ENOBの実測値と計算値を比較したものです。それぞれ、バッファを使用、ゲインが1、ゲインが8、ゲインが128の場合に対応しています。

図4. MAX11216のENOBの実測値と計算値(その1)。バッファを使用した場合の結果です。連続モード、sincフィルタを使用という条件で比較しています。

図4. MAX11216のENOBの実測値と計算値(その1)。バッファを使用した場合の結果です。連続モード、sincフィルタを使用という条件で比較しています。

図5. MAX11216のENOBの実測値と計算値(その2)。ゲインが1の場合の結果です。連続モード、sincフィルタを使用という条件で比較しています。

図5. MAX11216のENOBの実測値と計算値(その2)。ゲインが1の場合の結果です。連続モード、sincフィルタを使用という条件で比較しています。

図6. MAX11216のENOBの実測値と計算値(その3)。ゲインが8の場合の結果です。連続モード、sincフィルタを使用という条件で比較しています。

図6. MAX11216のENOBの実測値と計算値(その3)。ゲインが8の場合の結果です。連続モード、sincフィルタを使用という条件で比較しています。

図7. MAX11216のENOBの実測値と計算値(その4)。ゲインが128の場合の結果です。連続モード、sincフィルタを使用という条件で比較しています。

図7. MAX11216のENOBの実測値と計算値(その4)。ゲインが128の場合の結果です。連続モード、sincフィルタを使用という条件で比較しています。

図8は、ENOBの実測値とデータ・レートの関係を示したものです。バッファを使用、ゲインが1、ゲインが8、ゲインが128の場合の結果を比較しています。

図8. MAX11216のENOBの実測値とデータ・レートの関係。バッファを使用、ゲインが1、ゲインが8、ゲインが128の場合の結果を比較しています。

図8. MAX11216のENOBの実測値とデータ・レートの関係。バッファを使用、ゲインが1、ゲインが8、ゲインが128の場合の結果を比較しています。

まとめ

SNR、SINAD、THD、ENOBは、ADCの動的性能を表す一般的な指標です。ENOBの値は、SNRとTHDの値を使用することで、正確かつ簡単に計算できます。本稿では、MAX11216のENOBの値を実測し、その結果が理論式に基づくENOBの計算値とほぼ一致することを確認しました。また、プログラマブルなデジタル・フィルタを内蔵するデルタ・シグマADCでは、フィルタの減衰量を増大させるとSNRとENOBが向上します。そのことも、本稿で示した実測結果から確認できました。



最新メディア 21

Subtitle
さらに詳しく
myAnalogに追加

myAnalog のリソース セクション、既存のプロジェクト、または新しいプロジェクトに記事を追加します。

新規プロジェクトを作成