ヒストグラムを利用して、A/Dコンバータのノイズを測定する

本稿では、ヒストグラムを利用して、A/Dコンバータ(ADC)の入力換算rmsノイズを求める方法を紹介します。その方法では、DCアナログ電圧を入力し、ADCの出力であるデジタル・コードのばらつきを観測します。これは、ADCの性能を評価するために広く用いられている定性的な手法を補完するものとして活用できます。

ヒストグラムの形でデータを収集する 本稿で紹介する方法では、ADCにDC信号を入力して繰り返し測定(A/D変換)を行い、出力される各コードの出現回数を集計することでヒストグラムを取得します。その手順は、以下のようなものになります。

  • クリーンなDC電源をADCのアナログ入力に接続します(リファレンスを外部から入力する場合には、同じようにクリーンな電源を使用します)。
  • 予想されるノイズのレベルに応じ、ばらつきを確認できるよう十分な数の変換結果を記録します。一般に、低ノイズのADCを対象とする場合でも、100万回から200万回分の変換結果を取得するのが適切だと言えます。
  • 変換結果として得られた各コードのヒット数を集計します。ヒストグラムの核になるのは、カウンタを利用して生成されるビン(ヒストグラムに表示される縦長の矩形。各階級/幅に対応する度数を表す)です。ここで行おうとしている評価では、ADCから出力される可能性のある各デジタル・コードに対して1つのビンが存在することになります。変換が行われるごとに、ADCの出力であるコードを(ハードウェアまたはソフトウェアによって)確認し、それに対応するカウンタをインクリメントします。

理想的な(ノイズのない)ADCに理想的なDC電圧が入力されている場合、n回の変換を行った結果であるヒストグラムでは、DC入力に対応する理想的なデジタル値(コード)のビンのヒット数がnになり、それ以外のビンのヒット数はすべてゼロになります。しかし、現実のADCにはノイズが存在します。そのため、任意のDC入力値に対し、メインのビンには該当しない別のコードが生成されます。そうしたメインのビンに該当しないコードの数が、ADCのrmsノイズを測定する上での重要な要素になります。なお、メインのビンに該当しないコードは、ADCの微分非直線性(DNL)も原因となって生成されます。この問題を回避する方法については、後述します。

図1. 量子化の結果。確率的な分布に従った場合の例です。
図1. 量子化の結果。確率的な分布に従った場合の例です。

ノイズ源について理解する ADCの主要なノイズ源は3つあります。1つ目は量子化ノイズです。これは、理想的なADCが存在したとしても、A/D変換に伴い原理的に必ず発生します。2つ目はACノイズです。これは位相ノイズのことであり、AC信号のサンプリングにおけるジッタの問題として表に現れます。3つ目は、ホワイト・ノイズやデジタル・フィードスルーといった広帯域ノイズです。これらのうち、DC入力に対するヒストグラムを利用した評価の対象とすべきものは広帯域ノイズです。量子化ノイズは、信号の誤差電力に対して大きく寄与します。しかし、量子化ノイズは、(測定時にドリフトが生じなければ)DCヒストグラムに複数のビンを生じさせる(何種類ものコードが生成される)原因にはなりません。アパーチャ・ジッタに起因するACノイズも、入力信号がDCである場合には問題にはなりません。このような理由から、残る広帯域ノイズが、ヒストグラムを利用して測定される入力換算ノイズの主要な要因になります。

この測定方法には、2つの重要な前提があります。まず、ADCのモデルは、理想的な量子化器の入力にガウス・ノイズ源を追加したものになります。主要なノイズ源がガウス分布を示さない場合(例えば、デジタル・フィードスルーは、コードと信号に依存する傾向があります)、測定結果にはやや誤りが生じます。もう1つは、測定結果にはADCのアーキテクチャの影響が及ぶというものです。ともあれ、この方法は、アナログ・デバイセズが提供する高速なパイプライン型ADCの大多数に対しては有効です。

rmsノイズをグラフ上で確認する ヒストグラムとノイズは、どのように関連づけられるのでしょうか。図1は、理想的な量子化器に対するガウス分布の入力と、それに対応する出力のヒストグラムを示したものです。入力の確率密度関数(PDF:Probability Density Function)を見ると、大多数の出力コードは単一のビンに含まれるはずですが、分布の裾野部分に対応するその他のコードも生成されるはずです。メインのビンには含まれないコードの割合は、ノイズの分布のばらつき具合、つまりは標準偏差σに依存します。

図2は、ADCの入力ノイズのPDFをプロットしたものです。σは、テストの対象となるADCのLSBに対応します。ADCへのDC入力は、PDFの中央(コードKの中心点)に一致するように調整されています。量子化を実施した後、メインのビンに該当しないコードの割合(図2の曲線で囲まれた総面積に対する塗りつぶされた裾野部分の面積の割合)が、ノイズとして測定される部分です。アナログ入力は、コードの中央になるよう調整されており、塗りつぶされた領域の境界は、コードの中央から±0.5LSB離れたところにあります。

図2. ガウス分布のグラフ。横軸は、中央値から何LSB離れているのかを表しています。
図2. ガウス分布のグラフ。横軸は、中央値から何LSB離れているのかを表しています。

以下の式(1)は、左右対称の形を示すガウス分布のPDFに対し、メインのビンに該当しないコードが出力される確率を表します1

数式1

積分の対象となる項は、単位領域と標準偏差σで表されるガウス分布に対応しています。-∞から-0.5LSBまでの積分によって片側の裾野部分の面積が求められ、0.5LSBから+∞までの積分によってもう片側の裾野部分の面積が求められます。左右対称の分布を示すことから、片側の裾野部分の面積を単に2倍すればトータルの値が求まることになります。

最終的にADCのノイズを算出するには、メインのビンに該当しないコードの割合であるPをヒストグラムから求め、式(1)をσについて解く必要があります。残念ながら、この積分の式にσの閉形式解は存在しません。1つの選択肢は、σに値を代入して式(1)の計算を行い、計算によって得られた値がヒストグラムから得られた値に等しくなるまで繰り返し作業を行うことです。あるいは、σの値を固定し、積分の上限値を変えて計算を行い、得られた値をグラフにプロットする方法も考えられます。そのグラフを使用すれば、任意のPの値に対する上限値を求めることができます。図3aは、σを1として次の式(2)に対応するプロットを示したものです。

数式2

この式を使えば、各点xについて積分を行い、割合の値Fを求めることができます。ここでF(= P)の値は、ヒストグラムから既に得られています。したがって、図3aから、Pに対応するX軸上の点x0を簡単に見いだすことができます。その値は、σの値が正しければ、式(1)を-∞から-0.5LSBまで積分した値に等しくなります。つまり、ADCのrmsノイズは、次の式(3)を計算するだけで求められます。

数式3

この手順は難しいものではないということを理解していただくために、1つの例を示すことにしましょう。メインのビンに該当しないコードの割合が0.0027であるとします。ここで、図3aを拡大した図3bを使用し、Y座標が0.0027になる点を探します(これらの値は、標準正規分布の曲線、または標準正規分布表のZの値から見いだすこともできます)。これに対応するX軸上の点x0は-3です。式(3)をσについて解くと、rmsノイズとして0.167LSBという値が求まります。

図3a、図3bは、rmsノイズとヒストグラムのコードの値を関連づけるものです。ヒストグラムを作成すれば、メインのビンに該当しないコードの割合を求めることができます。その値を図3aまたは図3bのY軸上で探し、それに対応するX軸の値を読み取ります。その値で0.5LSBを割ると、LSB単位のrmsノイズの値が得られます。

図3. 式(2)のFとxの関係
図3. 式(2)のFとxの関係

評価を行う際の注意点 評価装置を設定する際には、いくつかの実用的な原則に従う必要があります。まず、ADCの入力用には、測定の対象となるノイズよりもノイズ・レベルが低く抑えられているDC電源を使用してください。また、いくつかの条件で変換を実施し、アナログ入力を、コードの中央(両側の遷移点の間の中間点)に正確に合わせます。それにより、両側のビンのサイズはほぼ等しくなるはずです。上述した説明内容における「左右対称」という前提を満たすためには、このことが重要になります。また、それによって、メインのビンに該当しないコードの数が最大になり、統計的により意味のある測定結果が得られます。例えば、入力の中心を遷移点に合わせると、ヒストグラムには、ヒット数がほぼ同数で1LSB幅のメインのビンが2つ生成されます。それら2つのビンには、1LSB幅のメインのビンが中央に位置するようになっていれば、隣接するビンに含まれるはずだったコードの一部が含まれることになります。

ADCのノイズの測定は、求められる要件を満たせているかどうかを確認する際や、同じ種類または異なる種類の別のADCと性能を比較する際に役立ちます。図4aに示したのは、分解能が12ビット、サンプリング・レートが10MSPSのADC「AD872A」を対象として測定/取得した標準的なヒストグラムです。これを見ると、すべてのコードがメインのビンか、それに隣接する2つのビンに含まれており、ヒストグラムはほぼ左右対称になっています。このヒストグラムから、メインのビンに該当しないコード(3万4729個)がコード全体(65万2790個)に占める割合は、0.053であることがわかります。図3aから、Y軸が0.053の場合のX軸の値は約1.9σです。式(3)から、1.9σ = 0.5LSBとなり、rmsノイズ(σ)は0.26LSB rmsとなります。

図4. 代表的なADCのヒストグラム。
図4. 代表的なADCのヒストグラム。(a)はAD872A(サンプル・レートは10MSPS)、(b)はAD871(サンプル・レートは5MSPS)の評価結果です。

図4bに、比較用のヒストグラムを示しました。これは分解能が12ビット、サンプル・レートが5MSPSの高速ADC「AD871」の評価結果です。上記と同じ手順を適用すると、メインのビンに該当しないコードの割合は、2581/163万8400で約0.0016となります。したがって、AD871の入力換算ノイズは0.5/3.17で0.16LSB rmsとなります。AD871のような低ノイズのADCの場合、信頼できるノイズの測定結果を得るためには、十分に長い時間をかけてテストを実施しなければなりません。それにより、メインのビンに該当しないコードが十分な数に達するようにする必要があります。

測定に影響を及ぼすおそれのあるDNL ヒストグラムを利用した評価方法は、理想的な量子化器を想定したものです。それに対し、実際の測定結果はDNL誤差の影響を受けます。ADCのコード幅の指標であるDNLは、実際のコード幅と理想的な幅である1LSBとの差を表します。その値が正の場合は、理想よりもコード幅が広く、負の場合はコード幅が狭いということを意味します。011...11から100...00までといった大きな遷移において、この誤差は最も大きくなる傾向があります。コード幅が広い場合には、メインのビンにヒットするコードの数が多くなります。そのため、ノイズの測定結果は楽観的なものとなります。コード幅が狭い場合には、ノイズの測定結果は大きめな値になる傾向があります(但し、過度にコード幅が狭い場合には、究極的にはコードが出力されないので、測定結果は控えめな値になります)。この問題を回避する最も簡単な方法は、大きな遷移点、広いコード幅、狭いコード幅を避けることです。その上で、伝達関数上の複数の点においてσを計算し、結果を平均化します。

参考資料

1 Alvin W. Drake「Fundamentals of Applied Probability Theory(応用確率論の基礎)」McGraw-Hill Book Company、1967年

著者

Generic_Author_image

Steve Ruscak

Larry Singer

Larry Singer

Larry Singerは、アナログ・デバイセズのディビジョン・フェローです。1987年からマサチューセッツ州ウィルミントンを拠点とし、高速、高分解能のADC/DACを多数設計してきました。それらの中には、BiCMOS/CMOSプロセスで製造されるサブレンジング型、パイプライン型、インターリーブ型のアーキテクチャを採用した製品が含まれます。現在は、インターリーブ型のADC、パイプライン型のADC、高速サンプリング回路やインターフェース回路、ESD保護などの技術に注目しています。1985年に米マサチューセッツ工科大学(MIT)で電気工学の学士号、1987年に同修士号を取得しました。