【実施例】
【0059】
(第1の実施例)
本実施例は、第1の実施の形態に対応するものであり、4個のAD変換器11を並列に繋ぎ時間インターリーブを実現するためのものである。
図1を参照して説明する。なお、本実施例ではAD変換器11の個数を4個としているが、この限りではなく任意に選択可能である。また、以降、基準のAD変換器11を“ADC0”、被測定のAD変換器11を“ADC1”“ADC2”“ADC3”と呼ぶ。
【0060】
(1)リセット後、もしくは、補正指示がコントローラ21よりあった場合に、各AD変換器11へ入力する信号を正弦波発生回路14から出力される信号に切り替える。以下、補正動作が終了するまで切り替えたままにする。
【0061】
(2)次に、正弦波発生回路14から正弦波を出力する。正弦波は、DA変換器14Aを用いて作成する。DA変換器14Aのデータは、予め正弦波データROM14Bに正弦波データを格納しておき、それを順次読み出してDA変換器14Aに用いる。ここでハードウェアが十分に高速であれば、演算回路により正弦波のデータを作る事も可能である。また、図示されてはいないが、DA変換器14Aにはリコンストラクション・フィルタが含まれているものとする。
【0062】
作成する正弦波は、AD変換器11の規定のサンプリング回数(一例として4096回)内に、ちょうど5周期分出力するようにする。5周期と言うのは一例であり、この周期は、前述したk
0×fs/Nとなる周波数から選択される。これは、位相(Phase skew)の影響を低減するために、できるだけ低い周波数で、また、量子化ノイズの周期性を除くために、k
0は、Nとは互いに素となるような関係とする。そのため、5周期の他、3周期、7周期などでも補正動作は可能である。また、この効果は、それを実現するために、各DA変換器11のクロックとサンプリングクロックは同じクロック源を使用している。特に、サンプリングクロック÷DA変換器クロックを1/10、つまり10倍のクロック周期比を作ることで容易に正弦波5周期分の波形を作ることが可能である。コントローラ21は、正弦波を出力する際に、バッファ15Aにデータの保持を行うように通知する。
【0063】
(3)バッファ15Aでは、各AD変換器11の出力データの保持をデータ格納メモリ15Bを介して行う。また、この制御は、各AD変換器11毎に行う。データ格納メモリ15Bにサンプリング回数分のデータが保持されたところでデータ保持完了をコントローラ21へ通知する。
【0064】
(4)データ保持完了を感知したコントローラ21は、FFT演算回路16に演算を行うように指示する。FFT演算回路16は、まず、データ格納メモリ15Bに保持されているデータのうち、基準のAD変換器11(ADC0)の出力データと、被測定のAD変換器11のうちの1つ(例えば、ADC1)の出力データとを交互に読み出す。例えば、ADC0−ADC1−ADC0−ADC1・・・の順番に保持されたデータを読み出していく。その読み出したデータに対してFFT演算処理を行う。この際、前述したように完全なFFT演算を行う必要がなく、特定の周波数ビンの演算処理で良い。
【0065】
ここで、オフセットエラーは、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に保持しておく。
【0066】
(5)FFT演算終了を感知したコントローラ21は、補正を行う被測定のAD変換器11(例えば、ADC1)に対してオフセットの補正を行うようにオフセットエラー処理回路18Aに通知する。オフセットエラー処理回路18Aは、FFT演算結果格納メモリ17より周波数がfs/2のデータを読み出し、オフセットエラーを算出する。オフセットエラーの算出は演算回路で実現する事も可能であるが、あらかじめ表計算ソフトなどのソフトウェアで作成した補正値テーブル18D(
図2参照)をROMに格納しておき、周波数ビンがfs/2のデータをアドレスとしてオフセットエラーの値を読み出す方法が望ましい。オフセットエラー処理回路18Aは、検出したオフセットエラーの値をオフセット補正部19Aへ通知する。
【0067】
オフセット補正部19Aは、通知されたオフセットエラーの値をアナログ電圧へ変換し、このアナログ電圧を用いてオフセット補正を行う。アナログ電圧への変換する方法としては、小型のDA変換器を使用する方法、複数の小型コンデンサの電荷を組み合わせる方法、コンパレータを使用する方法などがある。オフセット補正の方式としては、小型アンプを組み込んでこのアンプの基準電圧を変更する方法や、容量性カップリング後に基準電圧を印可する方法などがある。これらの方式はAD変換装置1に要求される補正精度、回路規模、消費電力などの条件に合わせて適切な方法を組み合わせて用いれば良い。オフセット補正終了後、オフセット補正部19Aはコントローラ21へオフセット補正終了を通知する。
【0068】
(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)のデータとの比からゲインエラーを算出するようにすれば、アークタンジェントによる位相計算が必要なく、演算回路規模と消費電力を小さくすることができるので好ましい。
【0069】
ゲインエラーの算出は演算回路で実現する事も可能であるが、あらかじめ表計算ソフトなどのソフトウェアで作成した補正値テーブル18E(
図2参照)をROMに格納しておき、基準のAD変換器11(ADC0)のデータと、被測定のAD変換器11(ADC1)のデータとの比をアドレスとしてゲインエラーの値を読み出す方法が望ましい。ゲインエラー処理回路18Bは、検出したゲインエラーの値をゲイン補正部19Bへ通知する。
【0070】
ゲイン補正部19Bは、通知されたゲインエラーの値をアナログ電圧へ変換し、このアナログ電圧を用いてゲイン補正を行う。アナログ電圧への変換する方法としては、小型のDA変換器を使用する方法、複数の小型コンデンサの電荷を組み合わせる方法、コンパレータを使用する方法などがある。ゲイン補正の方式としては、小型アンプを組み込んでこのアンプのゲイン比(増幅率)を制御する方法などがある。これらの方式はAD変換装置1に要求される補正精度、回路規模、消費電力などの条件に合わせて適切な方法を組み合わせて用いれば良い。ゲイン補正終了後、ゲイン補正部19Bはコントローラ21へゲイン補正終了を通知する。
【0071】
(7)ゲイン補正終了を感知したコントローラ21は、次に補正を行う被測定のAD変換器11(例えば、ADC2およびADC3)に対しての制御を行う。つまり、上述した(4)〜(7)までのADC1に対して行った制御をADC2およびADC3に対して同様に繰り返す。
【0072】
(8)複数回補正を実行する場合は、上述した(1)〜(7)を複数回繰り返す。複数回補正処理を行うことで補正の精度が上がっていくことを確認している。また、上述の補正値テーブル18D、18Eの演算精度が、それに影響することも確認している。つまり、補正値テーブル18D、18Eの演算精度が高ければ1回の補正で十分な結果が得られる。
【0073】
(9)次に、コントローラ21は、位相エラー(Phase Skew)補正のために(2)と同様の方法で正弦波発生回路14からできるだけ高周波の正弦波を出力する。例えば、入力周波数finはk
0×fs/Nとし、k
0はN/2−1もしくはN/2+3とする。また、(3)同様に、バッファ15Aでは、各AD変換器11の出力データの保持を、データ格納メモリ15Bを介して行う。
【0074】
(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に保持しておく。
【0075】
(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へ通知する。
【0076】
位相補正部19Cは、通知された位相エラー(Phase Skew)の値から位相補正を行う。具体的な補正方法に関しては、FPGAなどに搭載されているDCMを使用しクロックの位相をずらしていく方法、遅延を与えた複数のクロックから適宜選択する方法、PLL回路を使用してクロックの位相をずらす方法などがある。位相補正終了後、位相補正部19Cはコントローラ21へ位相補正終了を通知する。
【0077】
(12)位相補正終了を感知したコントローラ21は、次に補正を行う被測定のAD変換器11(例えば、ADC2およびADC3)に対しての制御を行う。つまり、上述した(9)〜(11)までのADC1に対して行った制御をADC2およびADC3に対して同様に繰り返す。
【0078】
(13)複数回位相エラー(Phase Skew)補正を実行する場合は、上述した(9)〜(12)を複数回繰り返す。
【0079】
(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ビットまで向上することができることがわかる。
【0080】
(第2の実施例)
本実施例は、第2の実施の形態に対応するものであり、4個のAD変換器11を並列に繋ぎ時間インターリーブを実現するためのものである。
図4を参照して説明する。なお、本実施例ではAD変換器11の個数を4個としているが、この限りではなく任意に選択可能である。また、以降、基準のAD変換器11を“ADC0”、被測定のAD変換器11を“ADC1”“ADC2”“ADC3”と呼ぶ。
【0081】
(1)リセット後、もしくは、補正指示がコントローラ21よりあった場合に、各AD変換器11へ入力する信号を正弦波発生回路14から出力される信号に切り替える。以下、補正動作が終了するまで切り替えたままにする。
【0082】
(2)次に、正弦波発生回路14から正弦波を出力する。正弦波は、DA変換器14Aを用いて作成する。DA変換器14Aのデータは、予め正弦波データROM14Bに正弦波データを格納しておき、それを順次読み出してDA変換器14Aに用いる。ここでハードウェアが十分に高速であれば、演算回路により正弦波のデータを作る事も可能である。また、図示されてはいないが、DA変換器14Aにはリコンストラクション・フィルタが含まれているものとする。
【0083】
作成する正弦波は、AD変換器11の規定のサンプリング回数(一例として4096回)内に、ちょうどN/2−1周期分出力するようにする。N/2−1周期と言うのは一例であり、この周期は、前述したk
0/N×fs/Mとなる周波数から選択される。これは、位相(Phase skew)の影響を取り込み一回で測定するために、できるだけ高い周波数とし、また、量子化ノイズの周期性を除くために、k
0は、Nとは互いに素となるような関係とする。また、この効果は、それを実現するために、各DA変換器11のクロックとサンプリングクロックは同じクロック源を使用している。また、作成した正弦波をサンプリングするクロック周波数はfs/Mとなり、各AD変換器11毎の変換データに対して後述のFFT演算を行う事になる。
【0084】
(3)バッファ15Aでは、第1の実施例と異なり、メモリを使用せず、各AD変換器11の出力データを直接簡易FFT演算回路216へ渡す。
【0085】
(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におけるk
0番目の周波数ビンの値|Xm[k
0]|と、被測定の各AD変換器11(ADC1、ADC2、ADC3)の出力のFFTにおけるk
0番目の周波数ビンの値|Xm[k
0]|との比をとる事で算出する。そのため、簡易FFT演算回路216における演算処理は、0番目の周波数ビンの値Xm[0]とk
0番目の周波数ビンの値Xm[k
0]を算出すればよい。
図5に示したように、Xm[0]の値を算出するには、サンプリングしたAD変換データを順次加算する。Xm[k
0]の値を算出するには、サンプリングしたAD変換データと回転因子データとを乗算したものを順次加算する。この際、回転因子データは、あらかじめROMに格納しておくことで演算回路を削減することが可能である。位相エラー(Phase skew)に関しては、基準のAD変換器11(ADC0)の出力のFFTにおけるk
0番目の周波数ビンの位相∠Xm[k
0]と、被測定の各AD変換器11(ADC1、ADC2、ADC3)の出力のFFTにおけるk
0番目の周波数ビンの位相∠Xm[k
0]との差分をとる事で算出する。位相エラー処理回路218Cでは、簡易FFT演算回路216より出力されたXm[k
0]の位相を取り込む。位相エラー(Phase skew)の算出は演算回路で実現する事も可能であるが、あらかじめ表計算ソフトなどのソフトウェアで作成した補正値テーブル218FをROMに格納しておき、Xm[k
0]の値をアドレスとして、これと関連付けられた位相エラー(Phase skew)の値を読み出す方法が望ましい。
【0086】
(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へ通知する。
【0087】
オフセット補正部19Aは、通知されたオフセットエラーの値をアナログ電圧へ変換し、このアナログ電圧を用いてオフセット補正を行う。アナログ電圧への変換する方法としては、小型のDA変換器を使用する方法、複数の小型コンデンサの電荷を組み合わせる方法、コンパレータを使用する方法などがある。オフセット補正の方式としては、小型アンプを組み込んでこのアンプの基準電圧を変更する方法や、容量性カップリング後に基準電圧を印可する方法などがある。これらの方式はAD変換装置2に要求される補正精度、回路規模、消費電力などの条件に合わせて適切な方法を組み合わせて用いれば良い。オフセット補正終了後、オフセット補正部19Aはコントローラ21へオフセット補正終了を通知する。
【0088】
(6)FFT演算終了を感知したコントローラ21は、補正を行う被測定の各AD変換器11(ADC1、ADC2、ADC3)に対してゲインの補正を行うようにゲインエラー処理回路18Bに通知する。ゲインエラー処理回路18Bは、簡易FFT演算回路216より出力されたXm[k
0]の値を取り込み、基準のAD変換器11(ADC0)のXm[k
0]の値と、被測定の各AD変換器11(ADC1、ADC2、ADC3)のXm[k
0]の値とについて、各々比をとる。具体的には、ADC0のXm[k
0]/ADC1のXm[k
0]、ADC0のXm[k
0]/ADC2のXm[k
0]、ADC0のXm[k
0]/ADC3のXm[k
0]を行う。次に、この各々の比からゲインエラーの値を算出する。ゲインエラーの算出は演算回路で実現する事も可能であるが、あらかじめ表計算ソフトなどのソフトウェアで作成した補正値テーブル218EをROMに格納しておき、算出したXm[k
0]の比をアドレスとして、これと関連付けられたゲインエラーの値を読み出す方法が望ましい。ゲインエラー処理回路218Bは、検出したゲインエラーの値をゲイン補正部19Bへ通知する。
【0089】
ゲイン補正部19Bは、通知されたゲインエラーの値をアナログ電圧へ変換し、このアナログ電圧を用いてゲイン補正を行う。アナログ電圧への変換する方法としては、小型のDA変換器を使用する方法、複数の小型コンデンサの電荷を組み合わせる方法、コンパレータを使用する方法などがある。ゲイン補正の方式としては、小型アンプを組み込んでこのアンプのゲイン比(増幅率)を制御する方法などがある。これらの方式はAD変換装置2に要求される補正精度、回路規模、消費電力などの条件に合わせて適切な方法を組み合わせて用いれば良い。ゲイン補正終了後、ゲイン補正部19Bはコントローラ21へゲイン補正終了を通知する。
【0090】
(7)次に、コントローラ21は、位相エラー(Phase Skew)補正のために(4)と同様に、簡易FFT演算回路216に演算を行うように指示する。
【0091】
(8)FFT演算終了を感知したコントローラは、補正を行う被測定の各AD変換器11(ADC1、ADC2、ADC3)に対して位相エラー(Phase Skew)の補正を行うように位相エラー処理回路218Cに通知する。位相エラー処理回路218Cは、簡易FFT演算回路216より出力されたXm[k
0]の値を取り込む。次に、この値から位相エラー(Phase Skew)の値を算出する。位相エラー(Phase Skew)の算出は演算回路で実現する事も可能であるが、あらかじめ表計算ソフトなどのソフトウェアで作成した補正値テーブル218FをROMに格納しておき、Xm[k
0]の値をアドレスとして、これと関連付けられた位相エラー(Phase Skew)の値を読み出す方法が望ましい。ここで、被測定のAD変換器11(ADC1、ADC2、ADC3)に関して位相(Phase Skew)の理想的な時間差が各々相違していることから、補正値テーブル218Fを被測定のAD変換器11ごとに用意する。位相エラー処理回路218Cは、検出した位相エラー(Phase Skew)の値を位相補正部19Cへ通知する。
【0092】
位相補正部19Cは、通知された位相エラー(Phase Skew)の値から位相補正を行う。具体的な補正方法に関しては、FPGAなどに搭載されているDCMを使用しクロックの位相をずらしていく方法、遅延を与えた複数のクロックから適宜選択する方法、PLL回路を使用してクロックの位相をずらす方法などがある。位相補正終了後、位相補正部19Cはコントローラ21へ位相補正終了を通知する。
【0093】
(9)複数回位相(Phase Skew)補正を実行する場合は、上述した(7)〜(8)を複数回繰り返す。
【0094】
(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の実施例よりもハードウェアサイズを大幅に削減することが可能となる。
【0095】
以上、実施の形態および実施例を挙げて本発明を説明したが、本発明は種々変形可能である。例えば、上記実施の形態および実施例では、各AD変換器11のミスマッチとして、オフセットエラー、ゲインエラーおよび位相エラー(Phase Skew)を検出し、補正する場合について説明したが、これらの一部を本発明の方法により検出して補正するようにしてもよい。
【0096】
また、本発明のAD変換装置は、どのような形態でもよく、集積回路により構成されてもよく、それ以外の回路により構成されてもよい。