以下に、本発明にかかるAD変換装置に関する実施の形態を、図面を用いて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
(第1の実施の形態)
図1は、第1の実施の形態に係るアナログ・ディジタル(AD)変換装置1の構成を表すものである。このAD変換装置1は、例えば、10ビットの複数個(図1では4個)のAD変換器11が、時間インターリーブ方式を構成するように並列に設置されている。各AD変換器11には、各AD変換器11を個数分のクロック周波数で駆動し、かつ、各相の位相(Phase Skew)を調整可能とするクロック発生回路12が接続されている。なお、クロック発生回路12は、各AD変換器11に個別に対応して複数設けるようにしてもよいが、1つにまとめて、各AD変換器11を同一のクロック発生回路11に接続するようにしてもよい。
各AD変換器11には、切替回路13を介して、各AD変換器11への入力信号を生成する正弦波発生回路14が接続されている。切替回路13は、通常は、ディジタル信号に変換するアナログ信号を各AD変換器11に入力するように構成され、各AD変換器11のミスマッチを補正する際に、正弦波発生回路14により生成した入力信号を各AD変換器11に入力するように構成されている。正弦波発生回路14は、各AD変換器11のミスマッチを補正する際に用いる正弦波を発生させるものである。正弦波発生回路14は、例えば、BIST用にDA(ディジタル・アナログ)変換器14Aを有しており、DA変換器14Aで用いる正弦波のデータを格納した正弦波データROM14Bを有していてもよい。
各AD変換器11の後段には、例えば、各AD変換器11の出力データを蓄積するためのバッファ15A、および、AD変換データ格納メモリ(RAM)15Bが設置されている。AD変換データ格納メモリメモリ15Bには、各AD変換器11の出力データを順に選択して結合する出力部15Cが接続されている。また、AD変換データ格納メモリ15Bには、各AD変換器11の出力を高速フーリエ変換(Fast Fourier Transform:FFT)処理するFFT演算回路16が接続され、FFT演算回路16の後段には、例えば、FFT演算回路16の演算結果を格納するためのFFT演算結果格納メモリ17が設置されている。
FFT演算結果格納メモリ17には、FFT演算回路16の演算結果に基づき、各AD変換器11のミスマッチを検出するミスマッチ検出部18が接続されている。ミスマッチ検出部18は、例えば、各AD変換器11のオフセットエラーを検出するオフセットエラー処理回路18Aと、各AD変換器11のゲインエラーを検出するゲインエラー処理回路18Bと、各AD変換器11の位相エラー(Phase Skew)を検出する位相エラー処理回路18Cとを有している。
ミスマッチ検出部18には、ミスマッチ検出部18の検出結果に基づき、各AD変換器11のミスマッチを補正する補正部19が接続されている。補正部19は、例えば、オフセットエラーを補正するオフセット補正部19Aと、ゲインエラーを補正するゲイン補正部19Bと、位相エラー(Phase Skew)を補正する位相補正部19Cとを有している。オフセット補正部19Aおよびゲイン補正部19Bは、例えば、各AD変換器11の前段に設置され、アナログ電圧を用いて補正を行う。
また、正弦波データROM14B、バッファ15A、AD変換データ格納メモリメモリ15B、出力部15C、FFT演算回路16、FFT演算結果格納メモリ17、および、ミスマッチ検出部18は、ディジタル部20を構成している。このディジタル部20および切替回路13は、コントローラ21に接続されている。
一般に、AD変換器を評価する際には、一定に増加するRamp波形を印加し、各入力値とディジタル出力を表にしたヒストグラム(Histogram)法によって行うが、ヒストグラム法ではミスマッチによる影響が原理上埋没してしまう可能性があるため、このAD変換装置1では、FFTによって周波数成分を解析する。
FFTによる解析において、各AD変換器11に入力する入力正弦波xin(t)を数1とすると、入力正弦波xin(t)に対するm番目のAD変換器11の出力xm[n]は、数2となる。数2に示したように、オフセットは直流分として現れ、ゲインは振動成分の振幅に現れ、位相(Phase Skew)は振動成分の位相に現れる。また、m番目のAD変換器11の出力xm[n]をFFT演算処理すると数3となる。
なお、xin(t)は入力正弦波、Aは入力正弦波の振幅、k0は入力正弦波の周期で整数、fsはAD変換器11のサンプリング周波数(クロック周波数)、tは時間、NはFFT点数、φは入力正弦波の位相、xm[n]はm番目のAD変換器11の出力、amはm番目のAD変換器11のゲイン、nはサンプル番号、mはAD変換器11の番号、τmはm番目のAD変換器11のタイミング誤差、omはm番目のAD変換器11のオフセット、Xm[k]はm番目のAD変換器11の出力xm[n]のFFTスペクトル、δはインパルス関数、kは整数である。
時間インターリーブ方式のAD変換装置1において、変換速度を決定するクロック(サンプリング)周波数をfs、各AD変換器11に入力する入力正弦波xin(t)の入力周波数をfinとすると、ゲインエラー、および、位相エラー(Phase Skew)に関するミスマッチは、fin+fs×k/Mとfs−(fin+fs×k/M)という周波数に現れる。ここで、Mは時間インターリーブされるAD変換器11の個数であり、図1の例ではM=4となる。また、kは整数値である。ゲインエラーと、位相エラー(Phase Skew)とを分離するためには、入力周波数finを変更する必要がある。例えば、ゲインエラーに関するミスマッチを求めるためには、低い入力周波数finを用意し、位相エラー(Phase Skew)に関するミスマッチを求めるためには、高い入力周波数finを用意する。また、オフセットエラーに関するミスマッチは、fs×k/Mという周波数に現れる。このようにして、入力周波数finの設定、および、FFTによる周波数解析を組み合わせることによって、ミスマッチの検出が可能となる。
ここで、FFT処理を簡易化することによって、ハードウエア規模を最小化することが、本発明の主眼となる。通常、FFTを実行する場合、入力正弦波xin(t)に位相不連続性が存在すると、本来は存在しない信号成分が現れる(Spectral Leakage)。この本来は存在しない信号成分の発生を防ぐために、通常はHann Windowなどの窓(Window)関数を利用する。しかしながら、窓関数を実装することは、ハードウエア規模が拡大するため、好ましくない。そこで、本発明では、窓関数を用いず、正弦波発生回路14から発生される入力波形を、FFT点数をN(Nは2のべき乗となる数)とした場合、入力周波数finとして、k0×fs/Nとなる周波数を選択する。これにより、入力波形に不連続点は生じず、Coherent Samplingを実現できるので、窓関数を適用する必要がなくなる。
k0は整数であり、ゲインエラーおよびオフセットエラーを求める際には、入力周波数finが低くなるように選択し、位相エラー(Phase Skew)を求める際には、ゲインエラーおよびオフセットエラーに関するミスマッチを求める際よりも入力周波数finが高くなるように選択する。例えば、ゲインエラーおよびオフセットエラーに関するミスマッチを求める際には、k0を0より大きくN/2よりも小さい整数で、Nとは互いに素となるような関係で、できるだけ小さい数、つまり、3や5、7などの数を選択する。位相エラー(Phase Skew)に関するミスマッチを求める際には、例えば、k0をN/2−1もしくはN/2+3とする。また、同時に、k0とNが互いに素となる関係を選択することで、AD変換器11のFFT出力に現れる量子化雑音をランダム化することができる。
また、ミスマッチ検出部18において、オフセットエラー処理回路18A、ゲインエラー処理回路18B、および位相エラー処理回路18Cは、FFT演算回路16の演算結果に基づき、オフセットエラー、ゲインエラー、または、位相エラー(Phase Skew)のミスマッチを算出する演算回路を有するようにしてもよいが、FFT演算回路16の演算結果と、その演算結果から算出されるミスマッチとを関連付けた補正値テーブル18D,18E,18Fを、予め表計算ソフトなどのソフトウェアで作成し、ROMに格納しておくことが好ましい。オフセットエラー、ゲインエラー、または、位相エラー(Phase Skew)のミスマッチを演算回路で算出するのは、大規模かつ複雑な演算回路が必要となり、消費電力および回路規模の増大を招くためである。補正値テーブル18D,18E,18Fの一例を図2に示す。なお、補正値テーブル18D,18E,18Fは、個別のファイルとしてもよいが、同一のファイルとしてもよい。
このようにM個のAD変換器11で構成された時間インターリーブ式のAD変換装置1の補正を行うアルゴリズムは下記のとおりである。まず、M個のうち1個のAD変換器11を基準として選択する。この基準となるAD変換器11のオフセット、ゲイン、位相(Phase)に合わせて、他の各AD変換器11を被測定のAD変換器11とし、オフセットエラー、ゲインエラー、位相エラー(Phase Skew)を補正する。例えば、AD変換器11の個数M=2での条件で、低周波の入力周波数fin(一例として、前記の条件k0×fs/Nを満たすk0として3を選択する)、AD変換器11のクロック周波数fsで、被測定のAD変換器11のオフセットエラーおよびゲインエラーを評価する。
例えば、クロック周波数fsが200MHzの場合、オフセットエラー(基準のAD変換器11と被測定AD変換器11のオフセットの差)は、fs×k/M=fs/2である100MHzに現れ、両者の和がDC成分に現れるため、この両者から、被測定AD変換器11のオフセットと調整量が判明し、オフセットの補正量を決定できる。ゲインエラー(基準のAD変換器11と被測定AD変換器11のゲインの差)は、fin+fs×k/M=(fs/2)+fin、または、fs−(fin+fs×k/M)=(fs/2)−finの周波数に現れ、両者の和がfinの周波数に現れる。この結果として、被測定AD変換器11のゲインの調整量が判明する。この場合、入力周波数が低いため、位相(Phase Skew)の影響は無視できると仮定する。
位相エラー(Phase Skew)に関しては、ゲインエラーの調整後、k0の値としてできるだけ高い周波数を選択し(一例としてN/2−1)、fin+fs×k/M=(fs/2)+fin、または、fs−(fin+fs×k/M)=(fs/2)−finの周波数に現れる位相差情報をベースに、調整を行う。1個の被測定AD変換器11について補正が完了したら、別の被測定AD変換器11に切り替え、上記と同様なシーケンスで、オフセットエラー、ゲインエラー、位相エラー(Phase Skew)を補正する。すべてのAD変換器11に関して補正を完了すれば、AD変換装置1としての利用が可能である。
なお、オフセットエラーおよびゲインエラーを調整する際にDA変換器を用いる場合には、そのハードウエア規模を小さくするため、あらかじめ前提となるオフセットエラーおよびゲインエラーの最大値を、プロセス情報から与えておく必要がある。例えば、オフセットエラーおよびゲインエラーの最大値が、±2LSB(Least Significant Bit)であれば、補正後の誤差を±0.25LSB以下にするためには、4ビットのDA変換器があれば充分である。
図3はAD変換装置1におけるミスマッチの影響を表すものである。図3では、100MS/s、10bitの時間インターリーブ方式のAD変換器1において、ゲインエラーのばらつきの標準偏差2LSB(Least Significant Bit)、AD変換器11の最小ビットのガウス分布を持ち、オフセットエラーのばらつきの標準偏差が2LSBのガウス分布である場合の、補正前のENOBと、補正後のENOBを比較している。
なお、ENOBとは、「Effective Number Of Bits」であり、有効ビット数を表す。図3では、AD変換器11を10ビットとしているので、10の値に近づくほど高品質であると言うことを意味する。6〜8に分散しているグラフが本発明の補正をする前の値で、9.5〜10に分散しているグラフが本発明の補正後の結果である。このように、ミスマッチが存在すると、AD変換装置1の最も重要な性能であるENOBが本来の10ビットから7ビット程度まで低下する。これでは、時間インターリーブ方式のAD変換装置1としての役割を果たすことができない。これに対して、上記前提条件において、本発明の技術を利用することにより、ENOBの劣化量を、3ビットから0.3ビットまで向上させることができる。
このように本実施の形態によれば、低消費電力、あるいは、省面積でありながら、低速度のAD変換器11を用い、これを複数個使用して、時間インターリーブ動作することによって、システムで要求される高速化を実現し、低消費電力、省面積のAD変換装置1を実現することができる。また、本実施の形態によれば、AD変換装置の自動テスト機能が組み込まれることとなるため、BIST機能を搭載し、テスト・コストを大幅に削減することが可能となる。
(第2の実施の形態)
第1の実施の形態で説明したAD変換装置1について、FFTに関連したハードウエア規模をさらに削減するため、完全なFFTを実施せず、特定の周波数ビンについてのみ計算をするように構成することも可能である。
図4は、第2の実施の形態に係るAD変換装置2の構成を表すものである。このAD変換装置2は、第1の実施の形態に係るAD変換装置1の構成を一部変えたものであり、第1の実施の形態のデータ格納メモリ15B、FFT演算回路16およびFFT演算結果格納メモリ17に代えて、簡易FFT演算回路216を備えている。また、第1の実施の形態の検出部18、オフセットエラー処理回路18A、ゲインエラー処理回路18B、位相エラー処理回路18C、補正値テーブル18D,18E,18Fに代えて、これらとは具体的な構成が異なるミスマッチ検出部218、オフセットエラー処理回路218A、ゲインエラー処理回路218B、位相エラー処理回路218C、補正値テーブル218D,218E,218Fを備えている。他は第1の実施の形態と同一である。なお、同一の構成要素には、同一の符号を付して説明する。
簡易FFT演算回路216は、バッファ15Aおよびミスマッチ検出部218に接続されており、各AD変換器11の出力についてFFTの特定の周波数ビンについて計算をするものである。ミスマッチ検出部218は、簡易FFT演算回路216の計算結果に基づき、各AD変換器11のミスマッチ、例えば、オフセットエラー、ゲインエラーおよび位相エラー(Phase Skew)を検出するものである。
各AD変換器11に入力する入力正弦波xin(t)を数4とすると、入力正弦波xin(t)に対するm番目のAD変換器11の出力xm[n]は数5となり、m番目のAD変換器11の出力xm[n]をFFT演算処理すると数6となる。数6において、オフセットは数7の形で検出され、ゲインは数8の形で検出され、位相(Phase Skew)は数9の形で検出される。
なお、xin(t)は入力正弦波、Aは入力正弦波の振幅、finは入力正弦波の周波数、tは時間、φは入力正弦波の位相、NはFFT点数、k0は入力正弦波の周期で整数、fsはAD変換器11のサンプリング周波数(クロック周波数)、Mは並列されるAD変換器11の個数、mはAD変換器11の番号、nはサンプルの番号、omはm番目のAD変換器11のオフセット、amはm番目のAD変換器11のゲイン、τmはm番目のAD変換器11のタイミング誤差、xm[n]はm番目のAD変換器11の出力、Xm[k]はm番目のAD変換器11の出力xm[n]のFFTスペクトル、Xm[k0]はm番目のAD変換器11の出力xm[n]のFFTにおけるk0番目の周波数ビンのスペクトル、Xm[0]はm番目のAD変換器11の出力xm[n]のFFTにおける0番目の周波数ビンのスペクトル、δはインパルス関数、kは整数である。
オフセットは、m番目のAD変換器11の出力xm[n]のFFTにおける0番目の周波数ビンに現れ、ゲインおよびタイミング誤差は、m番目のAD変換器11の出力xm[n]のFFTにおけるk0番目の周波数ビンに現れる。ゲインとタイミング誤差とは、両者とも複素数であるため、振幅情報・位相情報を得ることにより分離可能となる。図5に各AD変換器11のオフセットエラー、ゲインエラーおよびタイミング誤差を算出する回路を示す。図5は、AD変換器11および簡易FFT演算回路216の具体的な回路構成を表すものであり、図5に示したTsはサンプリング周期(Ts=1/fs)である。本手法であれば、加算器、および、積和演算器によって、ミスマッチ量を算出することが可能である。よって、本手法によれば、AD変換器11に必要な信号を入力しながら、補正データを決定できるため、高速な補正、あるいは、バックグラウンドでの補正が実現可能となる。
ここで、FFT処理を簡易化することによって、ハードウエア規模を最小化する。通常、FFTを実行する場合、入力正弦波xin(t)に位相不連続性が存在すると、本来は存在しない信号成分が現れる(Spectral Leakage)。この本来は存在しない信号成分の発生を防ぐために、通常はHann Windowなどの窓(Window)関数を利用する。しかしながら、窓関数を実装することは、ハードウエア規模が拡大するため、好ましくない。そこで、本発明では、窓関数を用いず、正弦波発生回路14から発生される入力波形を、FFT点数をN(Nは2のべき乗となる数)とした場合、入力周波数finとして、(k0/N)×(fs/M)となる周波数を選択する。これにより、入力波形に不連続点は生じず、Coherent Samplingを実現できるので、窓関数を適用する必要がなくなる。
第1の実施の形態では、k0は整数であり、ゲインエラーおよびオフセットエラーを求める際には、入力周波数finが低くなるように選択し、位相エラー(Phase Skew)を求める際には、ゲインエラーおよびオフセットエラーに関するミスマッチを求める際よりも入力周波数finが高くなるように選択することを述べた。しかし、第2の実施の形態では、同じ入力からゲインとタイミング誤差を導出できるため、finを変更する必要がない。ただし、同時に、k0とNが互いに素となる関係を選択することで、AD変換器11のFFT出力に現れる量子化雑音をランダム化しなければならない。
また、ミスマッチ検出部218において、オフセットエラー処理回路218A、ゲインエラー処理回路218B、および位相エラー処理回路218Cは、簡易FFT演算回路216の演算結果に基づき、オフセットエラー、ゲインエラー、または、位相エラー(Phase Skew)のミスマッチを算出する演算回路を有するようにしてもよいが、簡易FFT演算回路216の演算結果と、その演算結果から算出されるミスマッチとを関連付けた補正値テーブル218D,218E,218Fを、予め表計算ソフトなどのソフトウェアで作成し、ROMに格納しておくことが好ましい。オフセットエラー、ゲインエラー、または、位相エラー(Phase Skew)のミスマッチを演算回路で算出するのは、大規模かつ複雑な演算回路が必要となるため、消費電力および回路規模の増大を招いてしまうからである。なお、補正値テーブル218D,218E,218Fは、個別のファイルとしてもよいが、同一のファイルとしてもよい。
このようにM個のAD変換器11で構成された時間インターリーブ式のAD変換装置2の補正を行うアルゴリズムは下記のとおりである。まず、M個のうち1個のAD変換器11を基準として選択する。この基準となるAD変換器11のオフセット、ゲイン、位相(Phase)に合わせて、他の各AD変換器11を被測定のAD変換器11とし、オフセットエラー、ゲインエラー、位相エラー(Phase Skew)を補正する。
例えば、入力周波数finはタイミング誤差が顕著となるようなできるだけ高い周波数を選択する。オフセットエラーは0番目の周波数ビンに現れるため、基準のAD変換器11の出力のFFTにおける0番目の周波数ビンの値と、被測定の各AD変換器11の出力のFFTにおける0番目の周波数ビンの値との差分をとる事で算出する。ゲインエラーはk0番目の周波数ビンに現れるため、基準のAD変換器11の出力のFFTにおけるk0番目の周波数ビンの絶対値と、被測定の各AD変換器11の出力のFFTにおけるk0番目の周波数ビンの絶対値との比をとる事で算出する。なお、この処理は、被測定の各AD変換器11について、並行して同時に行う。
位相エラー(Phase Skew)に関しては、k0番目の周波数ビンに現れる位相差情報をベースに、調整を行う。この処理についても、被測定の各AD変換器11について、並行して同時に行う。これによりAD変換装置2としての利用が可能である。
なお、オフセットエラーおよびゲインエラーを調整する際にDA変換器を用いる場合には、そのハードウエア規模を小さくするため、あらかじめ前提となるオフセットエラーおよびゲインエラーの最大値を、プロセス情報から与えておく必要がある。例えば、オフセットエラーおよびゲインエラーの最大値が、±2LSB(Least Significant Bit)であれば、補正後の誤差を±0.25LSB以下にするためには、4ビットのDA変換器があれば充分である。
(第1の実施例)
本実施例は、第1の実施の形態に対応するものであり、4個のAD変換器11を並列に繋ぎ時間インターリーブを実現するためのものである。図1を参照して説明する。なお、本実施例ではAD変換器11の個数を4個としているが、この限りではなく任意に選択可能である。また、以降、基準のAD変換器11を“ADC0”、被測定のAD変換器11を“ADC1”“ADC2”“ADC3”と呼ぶ。
(1)リセット後、もしくは、補正指示がコントローラ21よりあった場合に、各AD変換器11へ入力する信号を正弦波発生回路14から出力される信号に切り替える。以下、補正動作が終了するまで切り替えたままにする。
(2)次に、正弦波発生回路14から正弦波を出力する。正弦波は、DA変換器14Aを用いて作成する。DA変換器14Aのデータは、予め正弦波データROM14Bに正弦波データを格納しておき、それを順次読み出してDA変換器14Aに用いる。ここでハードウェアが十分に高速であれば、演算回路により正弦波のデータを作る事も可能である。また、図示されてはいないが、DA変換器14Aにはリコンストラクション・フィルタが含まれているものとする。
作成する正弦波は、AD変換器11の規定のサンプリング回数(一例として4096回)内に、ちょうど5周期分出力するようにする。5周期と言うのは一例であり、この周期は、前述したk0×fs/Nとなる周波数から選択される。これは、位相(Phase skew)の影響を低減するために、できるだけ低い周波数で、また、量子化ノイズの周期性を除くために、k0は、Nとは互いに素となるような関係とする。そのため、5周期の他、3周期、7周期などでも補正動作は可能である。また、この効果は、それを実現するために、各DA変換器11のクロックとサンプリングクロックは同じクロック源を使用している。特に、サンプリングクロック÷DA変換器クロックを1/10、つまり10倍のクロック周期比を作ることで容易に正弦波5周期分の波形を作ることが可能である。コントローラ21は、正弦波を出力する際に、バッファ15Aにデータの保持を行うように通知する。
(3)バッファ15Aでは、各AD変換器11の出力データの保持をデータ格納メモリ15Bを介して行う。また、この制御は、各AD変換器11毎に行う。データ格納メモリ15Bにサンプリング回数分のデータが保持されたところでデータ保持完了をコントローラ21へ通知する。
(4)データ保持完了を感知したコントローラ21は、FFT演算回路16に演算を行うように指示する。FFT演算回路16は、まず、データ格納メモリ15Bに保持されているデータのうち、基準のAD変換器11(ADC0)の出力データと、被測定のAD変換器11のうちの1つ(例えば、ADC1)の出力データとを交互に読み出す。例えば、ADC0−ADC1−ADC0−ADC1・・・の順番に保持されたデータを読み出していく。その読み出したデータに対してFFT演算処理を行う。この際、前述したように完全なFFT演算を行う必要がなく、特定の周波数ビンの演算処理で良い。
ここで、オフセットエラーは、fs/2に相当する周波数ビンに、ゲインエラーは、fin、(fs/2)+fin、または、(fs/2)−finに相当する周波数ビンに現れることから、他の周波数ビンは不要である。そのために、fs/2、fin、(fs/2)+fin、または、(fs/2)−finに相当する周波数ビンの演算を行えば良い。例えば、FFT演算におけるバタフライ演算をすべて行う必要がなく、予めアドレッシングされたテーブルを用いて必要なバタフライ演算だけを行うことでFFT演算が1/2以下の処理で行うことが可能となる。FFT演算処理が終了するとコントローラ21にFFT演算終了通知を行う。また、FFT演算処理の際にFFT結果のデータをFFT演算結果格納メモリ17に保持しておく。
(5)FFT演算終了を感知したコントローラ21は、補正を行う被測定のAD変換器11(例えば、ADC1)に対してオフセットの補正を行うようにオフセットエラー処理回路18Aに通知する。オフセットエラー処理回路18Aは、FFT演算結果格納メモリ17より周波数がfs/2のデータを読み出し、オフセットエラーを算出する。オフセットエラーの算出は演算回路で実現する事も可能であるが、あらかじめ表計算ソフトなどのソフトウェアで作成した補正値テーブル18D(図2参照)をROMに格納しておき、周波数ビンがfs/2のデータをアドレスとしてオフセットエラーの値を読み出す方法が望ましい。オフセットエラー処理回路18Aは、検出したオフセットエラーの値をオフセット補正部19Aへ通知する。
オフセット補正部19Aは、通知されたオフセットエラーの値をアナログ電圧へ変換し、このアナログ電圧を用いてオフセット補正を行う。アナログ電圧への変換する方法としては、小型のDA変換器を使用する方法、複数の小型コンデンサの電荷を組み合わせる方法、コンパレータを使用する方法などがある。オフセット補正の方式としては、小型アンプを組み込んでこのアンプの基準電圧を変更する方法や、容量性カップリング後に基準電圧を印可する方法などがある。これらの方式はAD変換装置1に要求される補正精度、回路規模、消費電力などの条件に合わせて適切な方法を組み合わせて用いれば良い。オフセット補正終了後、オフセット補正部19Aはコントローラ21へオフセット補正終了を通知する。
(6)オフセット補正終了を感知したコントローラ21は、補正を行う被測定のAD変換器11(例えば、ADC1)に対してゲインの補正を行うようにゲインエラー処理回路18Bに通知する。ゲインエラー処理回路18Bは、まず、FFT演算結果格納メモリ17より周波数がfinと(fs/2)+finまたは(fs/2)−finとのデータを読み出す。次に、その値から、ゲインエラーを基準のAD変換器11(ADC0)と被測定のAD変換器11(ADC1)との比(Y+Z)/(Y−Z)として算出する。Yは周波数がfinに相当するビンのデータ、Zは周波数が(fs/2)+finまたは(fs/2)−finに相当するビンのデータである。このように基準のAD変換器11(ADC0)のデータと、被測定のAD変換器11(ADC1)のデータとの比からゲインエラーを算出するようにすれば、アークタンジェントによる位相計算が必要なく、演算回路規模と消費電力を小さくすることができるので好ましい。
ゲインエラーの算出は演算回路で実現する事も可能であるが、あらかじめ表計算ソフトなどのソフトウェアで作成した補正値テーブル18E(図2参照)をROMに格納しておき、基準のAD変換器11(ADC0)のデータと、被測定のAD変換器11(ADC1)のデータとの比をアドレスとしてゲインエラーの値を読み出す方法が望ましい。ゲインエラー処理回路18Bは、検出したゲインエラーの値をゲイン補正部19Bへ通知する。
ゲイン補正部19Bは、通知されたゲインエラーの値をアナログ電圧へ変換し、このアナログ電圧を用いてゲイン補正を行う。アナログ電圧への変換する方法としては、小型のDA変換器を使用する方法、複数の小型コンデンサの電荷を組み合わせる方法、コンパレータを使用する方法などがある。ゲイン補正の方式としては、小型アンプを組み込んでこのアンプのゲイン比(増幅率)を制御する方法などがある。これらの方式はAD変換装置1に要求される補正精度、回路規模、消費電力などの条件に合わせて適切な方法を組み合わせて用いれば良い。ゲイン補正終了後、ゲイン補正部19Bはコントローラ21へゲイン補正終了を通知する。
(7)ゲイン補正終了を感知したコントローラ21は、次に補正を行う被測定のAD変換器11(例えば、ADC2およびADC3)に対しての制御を行う。つまり、上述した(4)〜(7)までのADC1に対して行った制御をADC2およびADC3に対して同様に繰り返す。
(8)複数回補正を実行する場合は、上述した(1)〜(7)を複数回繰り返す。複数回補正処理を行うことで補正の精度が上がっていくことを確認している。また、上述の補正値テーブル18D、18Eの演算精度が、それに影響することも確認している。つまり、補正値テーブル18D、18Eの演算精度が高ければ1回の補正で十分な結果が得られる。
(9)次に、コントローラ21は、位相エラー(Phase Skew)補正のために(2)と同様の方法で正弦波発生回路14からできるだけ高周波の正弦波を出力する。例えば、入力周波数finはk0×fs/Nとし、k0はN/2−1もしくはN/2+3とする。また、(3)同様に、バッファ15Aでは、各AD変換器11の出力データの保持を、データ格納メモリ15Bを介して行う。
(10)データ保持完了を感知したコントローラ21は、(4)と同様にFFT演算回路16に演算を行うように指示する。ここで、位相エラー(Phase Skew)は、(fs/2)+fin、または、(fs/2)−finに相当する周波数ビンに現れることから、他の周波数ビンは不要である。そのために、(fs/2)+fin、または、(fs/2)−finに相当する周波数ビンの演算を行えば良い。例えば、予めアドレッシングされたテーブルを用いて必要なバタフライ演算だけを行うことでFFT演算が1/2以下の処理で行うことが可能となる。FFT演算処理が終了するとコントローラ21にFFT演算終了通知を行う。また、FFT演算処理の際にFFT結果のデータをFFT演算結果格納メモリ17に保持しておく。
(11)FFT演算終了を感知したコントローラ21は、補正を行う被測定のAD変換器11(例えば、ADC1)に対して位相エラー(Phase Skew)の補正を行うように位相エラー処理回路18Cに通知する。位相エラー処理回路18Cは、まず、FFT演算結果格納メモリ17より周波数が(fs/2)+fin、または、(fs/2)−finのデータを読み出し、位相エラー(Phase Skew)を算出する。位相エラー(Phase Skew)の算出は演算回路で実現する事も可能であるが、あらかじめ表計算ソフトなどのソフトウェアで作成した補正値テーブル18F(図2参照)をROMに格納しておき、周波数が(fs/2)+fin、または、(fs/2)−finのデータをアドレスとして、位相エラー(Phase Skew)の値を読み出す方法が望ましい。位相エラー処理回路18Cは、検出した位相エラー(Phase Skew)の値を位相補正部19Cへ通知する。
位相補正部19Cは、通知された位相エラー(Phase Skew)の値から位相補正を行う。具体的な補正方法に関しては、FPGAなどに搭載されているDCMを使用しクロックの位相をずらしていく方法、遅延を与えた複数のクロックから適宜選択する方法、PLL回路を使用してクロックの位相をずらす方法などがある。位相補正終了後、位相補正部19Cはコントローラ21へ位相補正終了を通知する。
(12)位相補正終了を感知したコントローラ21は、次に補正を行う被測定のAD変換器11(例えば、ADC2およびADC3)に対しての制御を行う。つまり、上述した(9)〜(11)までのADC1に対して行った制御をADC2およびADC3に対して同様に繰り返す。
(13)複数回位相エラー(Phase Skew)補正を実行する場合は、上述した(9)〜(12)を複数回繰り返す。
(14)すべての補正処理の完了後、コントローラ21は各AD変換器11へ入力する信号を正弦波発生装置14から出力される信号から汎用入力回路へ切り替える。AD変換器11が4個のAD変換装置1における1回の補正時間を算出すると、((正弦波データ受信[N×fs]+(FFT演算[(n+1)×N×演算周波数]+補正演算時間)×(AD変換器の個数)−1)×2)となり、仮にサンプリング点数Nを4096点、サンプリング周期fsを100MHz、演算周波数を100MHz、補正演算時間を演算周波数周期で20cycleとすると、3.278msとなる。さらに、この処理を2回繰り返し行うと倍の時間6.556msとなる。また、図6は本実施例で行った実際の補正結果を表しており、2回の補正でENOBの劣化量を、3ビットから0.5ビットまで向上することができることがわかる。
(第2の実施例)
本実施例は、第2の実施の形態に対応するものであり、4個のAD変換器11を並列に繋ぎ時間インターリーブを実現するためのものである。図4を参照して説明する。なお、本実施例ではAD変換器11の個数を4個としているが、この限りではなく任意に選択可能である。また、以降、基準のAD変換器11を“ADC0”、被測定のAD変換器11を“ADC1”“ADC2”“ADC3”と呼ぶ。
(1)リセット後、もしくは、補正指示がコントローラ21よりあった場合に、各AD変換器11へ入力する信号を正弦波発生回路14から出力される信号に切り替える。以下、補正動作が終了するまで切り替えたままにする。
(2)次に、正弦波発生回路14から正弦波を出力する。正弦波は、DA変換器14Aを用いて作成する。DA変換器14Aのデータは、予め正弦波データROM14Bに正弦波データを格納しておき、それを順次読み出してDA変換器14Aに用いる。ここでハードウェアが十分に高速であれば、演算回路により正弦波のデータを作る事も可能である。また、図示されてはいないが、DA変換器14Aにはリコンストラクション・フィルタが含まれているものとする。
作成する正弦波は、AD変換器11の規定のサンプリング回数(一例として4096回)内に、ちょうどN/2−1周期分出力するようにする。N/2−1周期と言うのは一例であり、この周期は、前述したk0/N×fs/Mとなる周波数から選択される。これは、位相(Phase skew)の影響を取り込み一回で測定するために、できるだけ高い周波数とし、また、量子化ノイズの周期性を除くために、k0は、Nとは互いに素となるような関係とする。また、この効果は、それを実現するために、各DA変換器11のクロックとサンプリングクロックは同じクロック源を使用している。また、作成した正弦波をサンプリングするクロック周波数はfs/Mとなり、各AD変換器11毎の変換データに対して後述のFFT演算を行う事になる。
(3)バッファ15Aでは、第1の実施例と異なり、メモリを使用せず、各AD変換器11の出力データを直接簡易FFT演算回路216へ渡す。
(4)簡易FFT演算回路216は、各AD変換器11の出力データを順次演算回路に入力していく。この制御は、各AD変換器11(ADC0、ADC1、ADC2、ADC3)について同時に各々行う。また、補正方法だが、オフセットエラーに関しては、基準のAD変換器11(ADC0)の出力のFFTにおける0番目の周波数ビンの値Xm[0]と、被測定の各AD変換器11(ADC1、ADC2、ADC3)の出力のFFTにおける0番目の周波数ビンの値Xm[0]との差分をとる事で算出する。ゲインエラーに関しては、基準のAD変換器11(ADC0)の出力のFFTにおけるk0番目の周波数ビンの値|Xm[k0]|と、被測定の各AD変換器11(ADC1、ADC2、ADC3)の出力のFFTにおけるk0番目の周波数ビンの値|Xm[k0]|との比をとる事で算出する。そのため、簡易FFT演算回路216における演算処理は、0番目の周波数ビンの値Xm[0]とk0番目の周波数ビンの値Xm[k0]を算出すればよい。図5に示したように、Xm[0]の値を算出するには、サンプリングしたAD変換データを順次加算する。Xm[k0]の値を算出するには、サンプリングしたAD変換データと回転因子データとを乗算したものを順次加算する。この際、回転因子データは、あらかじめROMに格納しておくことで演算回路を削減することが可能である。位相エラー(Phase skew)に関しては、基準のAD変換器11(ADC0)の出力のFFTにおけるk0番目の周波数ビンの位相∠Xm[k0]と、被測定の各AD変換器11(ADC1、ADC2、ADC3)の出力のFFTにおけるk0番目の周波数ビンの位相∠Xm[k0]との差分をとる事で算出する。位相エラー処理回路218Cでは、簡易FFT演算回路216より出力されたXm[k0]の位相を取り込む。位相エラー(Phase skew)の算出は演算回路で実現する事も可能であるが、あらかじめ表計算ソフトなどのソフトウェアで作成した補正値テーブル218FをROMに格納しておき、Xm[k0]の値をアドレスとして、これと関連付けられた位相エラー(Phase skew)の値を読み出す方法が望ましい。
(5)FFT演算終了を感知したコントローラ21は、補正を行う被測定の各AD変換器11(ADC1、ADC2、ADC3)に対してオフセットの補正を行うようにオフセットエラー処理回路218Aに通知する。オフセットエラー処理回路218Aは、簡易FFT演算回路216より出力されたXm[0]の値を取り込み、基準のAD変換器11(ADC0)のXm[0]の値と、被測定の各AD変換器11(ADC1、ADC2、ADC3)のXm[0]の値とについて、各々差分をとる。具体的には、ADC0のXm[0]−ADC1のXm[0]、ADC0のXm[0]−ADC2のXm[0]、ADC0のXm[0]−ADC3のXm[0]を行う。次に、この各々の差分からオフセットエラーの値を算出する。オフセットエラーの算出は演算回路で実現する事も可能であるが、あらかじめ表計算ソフトなどのソフトウェアで作成した補正値テーブル218DをROMに格納しておき、算出したXm[0]の差分をアドレスとして、これと関連付けられたオフセットエラーの値を読み出す方法が望ましい。オフセットエラー処理回路218Aは、検出したオフセットエラーの値をオフセット補正部19Aへ通知する。
オフセット補正部19Aは、通知されたオフセットエラーの値をアナログ電圧へ変換し、このアナログ電圧を用いてオフセット補正を行う。アナログ電圧への変換する方法としては、小型のDA変換器を使用する方法、複数の小型コンデンサの電荷を組み合わせる方法、コンパレータを使用する方法などがある。オフセット補正の方式としては、小型アンプを組み込んでこのアンプの基準電圧を変更する方法や、容量性カップリング後に基準電圧を印可する方法などがある。これらの方式はAD変換装置2に要求される補正精度、回路規模、消費電力などの条件に合わせて適切な方法を組み合わせて用いれば良い。オフセット補正終了後、オフセット補正部19Aはコントローラ21へオフセット補正終了を通知する。
(6)FFT演算終了を感知したコントローラ21は、補正を行う被測定の各AD変換器11(ADC1、ADC2、ADC3)に対してゲインの補正を行うようにゲインエラー処理回路18Bに通知する。ゲインエラー処理回路18Bは、簡易FFT演算回路216より出力されたXm[k0]の値を取り込み、基準のAD変換器11(ADC0)のXm[k0]の値と、被測定の各AD変換器11(ADC1、ADC2、ADC3)のXm[k0]の値とについて、各々比をとる。具体的には、ADC0のXm[k0]/ADC1のXm[k0]、ADC0のXm[k0]/ADC2のXm[k0]、ADC0のXm[k0]/ADC3のXm[k0]を行う。次に、この各々の比からゲインエラーの値を算出する。ゲインエラーの算出は演算回路で実現する事も可能であるが、あらかじめ表計算ソフトなどのソフトウェアで作成した補正値テーブル218EをROMに格納しておき、算出したXm[k0]の比をアドレスとして、これと関連付けられたゲインエラーの値を読み出す方法が望ましい。ゲインエラー処理回路218Bは、検出したゲインエラーの値をゲイン補正部19Bへ通知する。
ゲイン補正部19Bは、通知されたゲインエラーの値をアナログ電圧へ変換し、このアナログ電圧を用いてゲイン補正を行う。アナログ電圧への変換する方法としては、小型のDA変換器を使用する方法、複数の小型コンデンサの電荷を組み合わせる方法、コンパレータを使用する方法などがある。ゲイン補正の方式としては、小型アンプを組み込んでこのアンプのゲイン比(増幅率)を制御する方法などがある。これらの方式はAD変換装置2に要求される補正精度、回路規模、消費電力などの条件に合わせて適切な方法を組み合わせて用いれば良い。ゲイン補正終了後、ゲイン補正部19Bはコントローラ21へゲイン補正終了を通知する。
(7)次に、コントローラ21は、位相エラー(Phase Skew)補正のために(4)と同様に、簡易FFT演算回路216に演算を行うように指示する。
(8)FFT演算終了を感知したコントローラは、補正を行う被測定の各AD変換器11(ADC1、ADC2、ADC3)に対して位相エラー(Phase Skew)の補正を行うように位相エラー処理回路218Cに通知する。位相エラー処理回路218Cは、簡易FFT演算回路216より出力されたXm[k0]の値を取り込む。次に、この値から位相エラー(Phase Skew)の値を算出する。位相エラー(Phase Skew)の算出は演算回路で実現する事も可能であるが、あらかじめ表計算ソフトなどのソフトウェアで作成した補正値テーブル218FをROMに格納しておき、Xm[k0]の値をアドレスとして、これと関連付けられた位相エラー(Phase Skew)の値を読み出す方法が望ましい。ここで、被測定のAD変換器11(ADC1、ADC2、ADC3)に関して位相(Phase Skew)の理想的な時間差が各々相違していることから、補正値テーブル218Fを被測定のAD変換器11ごとに用意する。位相エラー処理回路218Cは、検出した位相エラー(Phase Skew)の値を位相補正部19Cへ通知する。
位相補正部19Cは、通知された位相エラー(Phase Skew)の値から位相補正を行う。具体的な補正方法に関しては、FPGAなどに搭載されているDCMを使用しクロックの位相をずらしていく方法、遅延を与えた複数のクロックから適宜選択する方法、PLL回路を使用してクロックの位相をずらす方法などがある。位相補正終了後、位相補正部19Cはコントローラ21へ位相補正終了を通知する。
(9)複数回位相(Phase Skew)補正を実行する場合は、上述した(7)〜(8)を複数回繰り返す。
(10)すべての補正処理の完了後、コントローラ21は各AD変換器11へ入力する信号を正弦波発生装置14から出力される信号から汎用入力回路へ切り替える。AD変換器11が4個のAD変換装置1における1回の補正時間を算出すると、((正弦波データ受信[N×fs]+補正演算時間)×1回)となり、仮にサンプリング点数Nを4096点、サンプリング周期fsを100MHz、演算周波数を100MHz、補正演算時間を演算周波数周期で20cycleとすると、20usとなり、第1の実施例のおおよそ1/160の補正時間で済むことになる。また、ハードウェアサイズも第1の実施例のAD変換データ受信時にデータを保持するデータ格納メモリ15BおよびFFT演算結果を保持するFFT演算結果格納メモリ17を削減できるため、第1の実施例よりもハードウェアサイズを大幅に削減することが可能となる。
以上、実施の形態および実施例を挙げて本発明を説明したが、本発明は種々変形可能である。例えば、上記実施の形態および実施例では、各AD変換器11のミスマッチとして、オフセットエラー、ゲインエラーおよび位相エラー(Phase Skew)を検出し、補正する場合について説明したが、これらの一部を本発明の方法により検出して補正するようにしてもよい。
また、本発明のAD変換装置は、どのような形態でもよく、集積回路により構成されてもよく、それ以外の回路により構成されてもよい。