サンプルレート変換システムにおける補間係数を計算するための方法及び装置
本発明によって、サンプルレート変換システムにおいて決定的に重要なパラメータである補間係数を、DSPクロックとデータクロックとの間に複雑な関係があるリアルタイムシステムで計算することを可能にする。通常、このようなシステムにおけるクロックの2つ又は3つは、単純な関係(CLOCK1=2*CLOCK2等)を有する。この関係は、実際には、考慮されるクロックが3つではなく1つ又は2つしかない縮退した場合につながる。さらに、本発明によって、DSPクロックレートよりも高い入力データレートが可能になる。本発明は、任意の時間遅延が出力信号に適用されるようにすることも提供する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、包括的には、デジタル信号処理に関し、より詳細には、第1のサンプリングレートのデジタル信号を第2のサンプリングレートの同じデジタル信号の表現に変換することに関する。
【0002】
[関連出願]
本願は、2007年11月16日に出願された米国仮特許出願第60/988,772号の優先権の利益を主張する。この米国仮特許出願の全内容は、参照により本明細書に援用される。
【背景技術】
【0003】
多く電子的用途において、信号は、デジタルで表現されて処理される。デジタルワード、すなわちサンプルは、規則的な時間間隔における信号の値を表す。この規則的な間隔は、多くの場合、サンプルレートと呼ばれ、通常、サンプル間隔時間周期の逆数を表すヘルツ(Hz)の単位で表される。このように表された信号は、サンプルレートの2分の1を超えるエネルギーを有することができず、サンプルレートの2分の1に等しい周波数は、ナイキスト周波数と呼ばれる。
【0004】
デジタルサンプルレート変換は、多くのタイプのデジタルシステムで使用される。例えば、音楽の記録を行う際に生成され得るようなオーディオ信号は、多くの場合、デジタルで処理される。信号を処理及び記録するのに使用されるさまざまな機器は、常に同じサンプリング周波数で動作しているわけではない。その結果、各機器は、第1のレートでサンプリングされたデジタル信号を受け取り、次に、そのデジタル信号を処理する前に、そのデジタル信号を第2のサンプリングレートを有するデジタル信号に変換することが、多くの場合必要である。もちろん、信号の情報内容は、サンプルレート変換によって、感知できるほどに変更されてはならず、さもなければ、信号の音質は劣化することになる。
【0005】
サンプルレート変換を達成する非常に単純な方法は、第1の信号からサンプルを単純に廃棄することである。出力波形の毎秒当たりのサンプルは、そのため、より少なくなり、したがって、サンプルレートはより低くなる。ナイキスト基準が出力信号において満たされているものと仮定すると、出力信号は、入力信号と同じ信号の精密な表現である。このプロセスは、一般に、「間引き」(decimation)と呼ばれる。ただし、この間引きは、入力のサンプリングレートが出力のサンプリングレートの整数倍である状況に限られる。
【0006】
補間と呼ばれるプロセスは、出力のサンプリングレートが、入力信号のサンプリングレートよりも整数倍高くなることを目的としているときに使用することができる。このような補間オペレーションでは、任意に0の値を割り当てられたサンプルで入力信号のサンプル間の時間を満たすことによって、中間信号を最初に作成することができる。このような中間信号は、「ゼロ詰め込み(zero-stuffed)」信号を呼ばれる。サンプルは、時間スパンが同じに保たれながら追加されるため、ゼロ詰め込み信号は、入力信号よりも高いサンプリングレートを有する。より高い周波数のゼロ詰め込み信号は、余分なサンプルを追加することによって引き起こされる不連続性を取り除くデジタル補間フィルタにおいてフィルタリングすることができる。その結果、デジタル信号は、入力信号と同じ形状を有するが、毎秒当たりより多くのサンプルを含む。
【0007】
間引きのプロセス及び補間のプロセスを組み合わせることができる。例えば、回路は、D分の1に間引くことができ、I倍に補間することができる。その結果の出力は、入力サンプリングレートに対してI/Dの比のサンプリングレートを有する。しかしながら、このような回路は、有理数によってサンプリングレートをスケーリングすることに限られる。より重要なことに、デジタルシステムの場合、D及びIの値の範囲には、実用上の限界がある。間引き係数Dは、間引かれた信号がナイキストレートをもはや充足しないほど大きくすることができない。加えて、補間フィルタの必要とされる複雑度は、Iが大きくなる(例えば、タップがより多くなる)につれて増加するため、補間係数Iも任意に大きくすることができない。その上、異なるクロックの少なくとも1つは、システムクロック(すなわち、DSPクロック)と本質的に同一であるか、又は2倍等、複雑でないようにシステムクロックに少なくとも関連していると仮定される。このような状況で、異なるサンプルレートクロック間の一貫性を維持することは、タイミングシステムのハードウェアの精度及び複雑度に負担をかける。
【発明の概要】
【0008】
3クロックシステムで精密にデータを処理することができることによって、デジタル信号処理に複雑度を追加することによってリアルアナログクロックを生成する要件の簡単化が可能になる。一般に、アナログの複雑度の低減は、システムの信頼性の増大、機能の柔軟性の拡大、及びシステムコストの低下につながるため望ましい。
【0009】
サンプルレート変換システムにおいて決定的に重要なパラメータである補間係数pを、DSPクロックとデータクロックとの間に複雑な関係があるリアルタイムシステムで計算することを可能にするシステム及びプロセスが本明細書で説明される。通常、このようなシステムにおけるクロックの2つ又は3つは、単純な関係(クロック1=2*クロック2等)を有する。この関係は、実際には、考慮されるクロックが2つしかない縮退した場合につながる。さらに、本明細書で説明するシステム及びプロセスによって、補間係数のこのような計算が、DSPクロックレートよりも高い入力データレートで行われることが可能になる。少なくともいくつかの実施の形態では、任意の時間遅延を出力信号に適用することができる。
【0010】
本発明の一つの実施の形態は、サンプリングされたデータをレート変換するためのプロセスに関する。入力サンプルクロックに従ってサンプリングされた入力データを受信する。入力サンプルクロックとは(整数である必要はない)値だけ異なる出力サンプルクロックを示す値も受信する。入力サンプルクロック及び出力サンプルクロックのそれぞれとプロセッサクロックとの間の各関係を求める。入力クロック及び出力クロックのそれぞれは、プロセッサクロックから独立している。入力サンプルクロックと、出力サンプルクロックと、プロセッサクロックとの関数として補間係数を求める。入力データと補間係数との関数として出力データを生成し、出力データは、出力サンプルクロックに従ってサンプリングされた入力データに対応する。
【0011】
本発明の別の実施の形態は、サンプリングされたデータを第1のデータレートから第2のデータレートへ変換するためのシステムに関する。このシステムは、入力サンプルクロックに従ってサンプリングされた入力データを受信し、出力サンプルクロックに従ってサンプリングされた入力データを示す出力データを作成するように構成されたレートコンバータを備える。該レートコンバータは、入力サンプルクロック及び出力サンプルクロックのいずれからも独立している処理クロックレートで動作する。処理クロックを受信するアキュムレータが、プロセッサクロックの状態を監視するように構成され且つ入力サンプルクロック及び出力サンプルクロックのそれぞれとプロセッサクロックとの各関係を求めるように構成される。本システムは、アキュムレータ及びレートコンバータと通信する補間係数回路も備える。該補間係数回路は、入力サンプルクロック及び出力サンプルクロックのそれぞれとプロセッサクロックとの各関係をアキュームレータから受信するように構成される。該補間係数回路は、入力サンプルクロック、出力サンプルクロック、及びプロセッサクロックの関数として補間係数を計算するようにも構成される。レートコンバータは、補間係数の関数として、入力データを出力データに変換するように構成される。
【図面の簡単な説明】
【0012】
本発明の上記並びに他の目的、特徴及び利点は、添付図面に示されたような本発明の好ましい実施形態の以下のより詳細な説明から明らかになる。添付図面において、同様の参照符合は、様々な図全体を通じて同じ部分を指す。図面は、必ずしも同一縮尺であるとは限らず、その代わり、本発明の原理を示すことに重点が置かれている。
【図1】サンプルレートコンバータの一実施形態と組み合わせられたデジタイザを示すブロック図である。
【図2】サンプルレートコンバータで使用できるアキュムレータの一実施形態をより詳細に示すブロック図である。
【図3】サンプルレートコンバータの一実施形態内の異なるクロック信号間の関係を示すタイミング図である。
【図4】補間係数のフォーマットの一実施形態を示す概略図である。
【図5】サンプルレート変換を達成するためのプロセスの一実施形態を示すフロー図である。
【図6】サンプルレートコンバータで使用できる補間係数を求めるための回路の一実施形態を示すブロック図である。
【図7】図6の補間係数回路の実施形態で使用できるレジスタの概略表現である。
【図8】デジタル化サンプルレートコンバータの一実施形態を示すブロック図である。
【図9】ソースサンプルレートコンバータの一実施形態を示すブロック図である。
【図10】図8又は図9のいずれかの補間係数計算回路の一例示の実施形態を示す概略図である。
【図11】図10のデュアルアキュムレータの一例示の実施形態を示す概略図である。
【図12】本発明による第2のアキュムレータを含むアキュムレータ/補間計算機回路の一実施形態を示すブロック図である。
【図13】補間係数を求めるための計算機の代替的な一実施形態を示すブロック図である。
【発明を実施するための形態】
【0013】
或るサンプルレートのデータを第2のサンプルレートのデータに変換するためのシステム及びプロセスが本明細書で説明される。従来技術では、サンプルレート変換システムの実施態様は、出力サンプルレートに等しいデジタル信号処理クロック又は出力サンプルレートの整数倍のように、出力サンプルレートに直接関連したデジタル信号処理クロックを用いる。有利なことには、本明細書で説明するシステム及び技法によって、システム処理クロックは、出力サンプルレートとの非自明なM/N関係を有することが可能になる。例えば、M及びNは、非常に大きな整数とすることができる。少なくともいくつかの実施形態では、プログラマブル時間遅延(任意の範囲及び分解能を有する)を出力信号に適用することもできる。
【0014】
一般に、本明細書で説明する技法は、固定されたコンバータ周波数、可変の(又は、固定であっても異なる)信号データレートを有するいかなるリアルタイムシステムにも適用することができる。コンバータという用語の使用は、一般に、特定の用途に応じて、アナログ/デジタルコンバータ(ADC)及びデジタル/アナログコンバータ(DAC)を含む。例えば、ソースモードでは、DACは、刺激信号の合成されたデジタル表現から得られるアナログ出力刺激信号を提供する。代替的に、検出器モードでは、ADCは、試験システムからのさらなる処理のために、被試験デバイスから得ることができるような受信されたアナログ応答信号を、受信された応答信号のデジタル表現に変換する。いずれの場合にも、コンバータ周波数又は信号データレートのいずれにも関連する必要がない第3のシステムクロック周波数が、例えばDSPを制御するのにおそらく使用される。他の用途は、既知のコンバータサンプルレートが既知のシステムクロック又は処理クロックに関連しないサンプルレート変換システムを含む。
【0015】
本明細書で説明するようなサンプルレート変換技法によって、ユーザは、実際のコンバータが動作する固定クロックレート(例えば、コンバータクロックレート)に対して広範囲且つ高分解能を有するレート(すなわち、タイミング)でベースバンド波形を画定することが可能になる。このサンプルレート変換は、コンバータクロック、ユーザクロック、及びシステムクロック、すなわちDSPクロック、の3つの異なるクロック間の関係に基づく非整数補間係数を求めることによって達成することができる。この補間係数は、補間フィルタによって使用される。例示の補間器フィルタは、ソースにおいてはポリフェーズ有限インパルス応答(FIR)フィルタ及び線形補間器を含み、デジタイザにおいてはポリフェーズFIRフィルタ、線形補間器、及び間引きFIRフィルタを組み合わせたものを含む。これらのフィルタ構成によって、関連していないプロセッサクロックレート又はDSPクロックレートで動作するシステム内で所望のレート変換がもたらされる。
【0016】
リサンプラのオペレーションは、ユーザには本質的にトランスペアレントであり、その結果、リサンプラ器具は、従来の任意の波形ジェネレータと、入力クロックレート又は出力クロックレートの一方で動作するコンバータを有するデジタイザとをあたかも含んでいるかのように振舞う。したがって、リサンプラは、開始コマンド、ユーザクロックリセットコマンド等の特殊なイベントも、サンプルサイズも、帯域幅制限以外の信号内容も全く知らない。リサンプリングプロセスによって導入されるすべての誤差は、スプリアスのないダイナミックレンジ仕様を下回ることになる。リサンプラは、入力周波数及び出力周波数の点でかなり柔軟である。リサンプリング比は、クロック制御のシナリオが異なるごとにカスタマイズすることができる外部の仮想クロックジェネレータによって駆動される。
【0017】
図1を参照すると、本発明によるリサンプラ100の一例示の実施形態のブロック図は、レートコンバータ102、アキュムレータ104、及び補間係数モジュール106を含む。リサンプラ100の入力に結合されたA/Dコンバータ108も示されている。A/Dコンバータ108は、入力アナログ信号S(t)を受信し、本明細書では第1のクロックドメインと呼ばれる入力サンプルレート、すなわちコンバータクロックに従ってその信号をサンプリングする。入力サンプルサイクルの周期は、TRSIとして示されている。レートコンバータ102は、第1のコンバータクロックドメインにおける入力信号のサンプリングされたデジタル表現S(n)を受信し、そのサンプリングされたデジタル表現S(n)を、同じ入力信号の出力表現ではあるが第2のユーザクロックドメインにおける出力表現に変換する。一般に、第2のクロックドメインは、第1のクロックドメインとは異なる出力サンプルレートを有する。出力サンプルサイクルの周期は、TRSOとして示されている。これらの2つのクロックドメインは、すべての実用面において関連していない。実際には、それらの2つのクロックドメインは、2つの非常に大きな数の非整数比によって変化し得る。本発明によって提供される重要な利点は、レートコンバータ102が、本明細書で第3のクロックドメインと呼ばれるさらに別のプロセスクロックに従って動作しているということである。この第3のクロックドメインは、システムクロックドメイン、すなわちDSPクロックドメインと呼ばれる。プロセッササンプルサイクルの周期は、TDSPとして示されている。
【0018】
アキュムレータ104は、いくつかの値を受信するか又は事前にロードされる。1つのこのような値は、出力サンプルレートを表す。この例では、この値は、出力サンプルレートの周期TRSOである。代替的に又は加えて、アキュムレータ104には、出力サンプル周波数FRSO(すなわち、TRSOの逆数)を事前にロードしておくことができる。別のこのような事前にロードされた値は、入力サンプルレートを表す。この例では、この値は、入力サンプルレートの周期TRSI(又は入力サンプル周波数FRSI)である。アキュムレータ104に事前にロードすることができるさらに別の値は、プロセッサクロックの周期TDSP(又はプロセッサクロック周波数FDSP)である。
【0019】
アキュムレータ104は、事前にロードされた値の1つ又は複数をプロセッサクロックレート(DSP CLK)で処理して、いくつかの出力値を作成する。主として、出力値は、異なるクロックドメイン間の関係を示す小数値を含む。1つのこのような小数値FRACRSIは、入力サンプルクロックとプロセッサクロックとの関係から得られる。別のこのような小数値FRACRSOは、出力サンプルクロックとプロセッサクロックとの関係から得られる。入力クロック及び出力クロックの周期及び周波数(TRSI、FRSI、TRSO、FRSO)の1つ又は複数を出力値として提供することもできる。この例示の実施形態では、アキュムレータは、出力値としてFRSI及びTRSOを提供する。いくつかの実施形態では、アキュムレータ104は、外部タイミング基準TREF及びリセット信号TRESET等の1つ又は複数の追加入力も受信する。アキュムレータ104は、出力値FRACRSI、FRACRSO、FRSI、TRSOを定期的に更新することができる。例えば、いくつかの実施形態では、出力値は、プロセッサクロックの各サイクルTDPS中にアキュムレータ104によって更新される。
【0020】
補間係数モジュール、すなわち回路106は、アキュムレータ104から出力値FRACRSI、FRACRSO、FRSI、TRSOを受信し、受信された値の1つ又は複数から補間係数pを導出する。補間係数モジュール106は、これらの入力の1つ又は複数を処理して、プロセッサクロックTDSPに従って出力を生成することもできる。レートコンバータ102は、補間係数モジュール106から補間係数pを受信し、この値を使用して、所望のサンプルレート変換を達成する。
【0021】
いくつかの実施形態では、補間係数モジュール106は、遅延入力値TDELAYも受信する。この遅延値は、異なるクロックドメイン間にスキューを導入するためにユーザが提供することができる。遅延値は、サンプリングされた出力信号をサンプリングされた入力信号に対して任意に遅延させるのに使用することもできる。実現可能なシステムが適応することができる最大遅延は、少なくとも或る程度は、その特定の実施形態の備え(provisioon)に依存する。例えば、以下でより詳細に説明するように、このような遅延された値に適応するために、先読みバッファを含めることができる。このような実施形態では、先読みバッファの深さは、最も長い予測遅延に基づいて求めることができる。遅延が長いほど、より深い先読みバッファが必要とされる。
【0022】
図2を参照すると、図1に示すアキュムレータ104等の本発明によるアキュムレータ150の一例示の実施形態は、累算レジスタ152を含む。この累算レジスタ152は、各プロセッサクロックサイクルでインクリメントされる値Nを記憶する。Nの値は、各プロセッサクロックサイクルの後に1つインクリメントされる2進整数とすることができる。Nの値は、リセット入力においてリセット信号RESETを受信すると0又は別の値にリセットすることができる。アキュムレータ150は、プロセッサクロック周期TDSPを示す値を記憶するためのプロセッサレジスタ154、入力サンプル周期TRSIを示す値を記憶するための入力クロックドメインレジスタ156、及び出力サンプル周期TRSOを示す値を記憶するための出力クロックドメインレジスタ158等の、さまざまな値を記憶するためのレジスタも含む。累算レジスタ152の値及びプロセッサクロック周波数TDSPの値は、乗算器160に供給される。乗算器160は、これらの値を合わせて乗算し、結果の値TNをプロセッサ時間レジスタ162に記憶する。記憶されたプロセッサ時間値TNは、入力クロックドメインレジスタ156に記憶されたTRSI値と共に第1のモジュロ算術演算プロセッサ164aに供給される。第1のモジュロ演算の結果は、2つの値TNとTRSIとの比の小数部分であるFRACRSIである。結果の値FRACRSIは、入力位相差レジスタ166に記憶される。同様に、記憶されたプロセッサ時間値TNは、出力クロックドメインレジスタ158に記憶されたTRSO値と共に第2のモジュロ算術演算プロセッサ164bにも供給される。第2のモジュロ演算の結果は、2つの値TNとTRSOとの比の小数部分であるFRACRSOである。結果の値FRACRSOは、出力位相差レジスタ168に記憶される。
【0023】
いくつかの実施形態では、入力クロックドメインレジスタ156に記憶された値の逆数が、入力クロックドメイン周波数レジスタ170に記憶される。同様に、いくつかの実施形態では、出力クロックドメインレジスタ158に記憶された逆数値が、出力クロックドメイン周波数レジスタ172に記憶される。記憶されたレジスタ値FRACRSI、FRACRSO、FRSI、及びFRSOの1つ又は複数は、補間係数モジュール106(図1)へ転送することができる。この例示の実施形態では、4つの値FRACRSI、FRACRSO、FRSI、及びTRSOが、補間係数モジュール106へ転送される。
【0024】
本発明による異なるタイミング信号間の一例示の関係を示すタイミング図が、図3に示されている。この図は、対象となる3つのクロック間の可能な関係を示している(ただし、説明するプロセスは、クロック間の任意の関係に適用される)。詳細には、周期TDSPを有するプロセッサクロック200の一部が示されている。プロセッサクロック200は、時にDSPクロックと呼ばれることがある。DSPクロックの真下には、周期TRSIを有する入力サンプルクロック202の重なる部分が示されている。入力サンプルクロック202は、時にリサンプラインクロックと呼ばれることがある。最後に、周期TRSOを有する出力サンプルクロック204の重なる部分が図の下部に示されている。この出力サンプルクロック204は、時にリサンプラアウトクロックと呼ばれることがある。
【0025】
FRACという用語は、「残差(residual)」とは対照的に、或るイベントから次のクロックサイクルまでに測定される時間を記述するのに使用される。「残差」は、いくつかの慣例によれば、或るクロックサイクルから次のイベントまでの前方を見た時間を指す。FRAC値は、以下でより詳細に説明するクロックジェネレータセクションから得られたDSPクロックについて提供される。したがって、FRACRSIは、リサンプラインクロックイベントから次のDSPクロックイベントまでの前方を見た時間である。同様に、FRACRSOは、リサンプラアウトクロックイベントから次のDSPクロックイベントまでの前方を見た時間である。
【0026】
いくつかの実施形態では、補間係数計算モジュール106(図1)は、コンバータクロックのFRACRSI値(リサンプラ入力TRSI)及びユーザクロックのFRACRSO値(リサンプラ出力TRSO)から補間係数pを計算する。補間係数は、
p=Tx/TRSI (1)
によって定義される。
【0027】
Txは、図3に示すクロック信号の相対配置から観察できるように、
Tx=TRSO−(FRACRSO−FRACRSI) (2)
によってFRAC値から導出される。
【0028】
補間係数であるpの値は、リサンプラ入力時間アキュムレータのFRACRSI値及びリサンプラ出力時間アキュムレータのFRACRSO値から導出することができる。すなわち、
【0029】
【数1】
【0030】
である。ここで、TDELAYは、目的とする用途に従って導入することができる任意の遅延である。
【0031】
【数2】
【0032】
シンボル
【0033】
【数3】
【0034】
は、モジュロ演算子を指す。サンプルレート変換システムでは、pの整数部は、入力データ先読み(input data look ahead)と解釈され、小数部は、現在の入力クロックサイクルへの現在の出力クロックサイクルのペネトレーション(penetration)と解釈される。補間係数210の一実施形態が図4に示されている。補間係数210は、小数点215によって分離された整数部212及び小数部214を含むように配置された複数の位置数字(例えば、2進法についてはビット)を含むことができる。補間係数210の小数部214は、上位小数部216と下位小数部218とにさらに再分割される。上位小数部216は、補間係数210の小数部214の有効度の大きい位置数字(例えば、上位ビット)を含み、下位小数部218は、補間係数210の小数部214の有効度の小さい位置数字(下位ビット)を含む。位置数字の特定の個数は、目的とする用途に応じて変化し得る。先読みバッファを含まない実施形態等、いくつかの実施形態では、整数部212は必要ではないため、含まれない。
【0035】
ポリフェーズフィルタ及び線形補間器を用いるサンプルレート変換システムでは、補間係数210は2進数として実施される。このシステムでは、pの小数部214の上位ビット216は、ポリフェーズサブフィルタ番号と解釈され、pの小数部214の下位ビット218は、線形補間係数と解釈される。整数部212が存在するとき、整数部212は、先読み値と解釈することができる。24ビット精度を有するpの一例示の値の場合、整数部212は3ビットを含むことができ、最大有効小数部216は9ビットを含むことができ、最小有効小数部218は12ビットを含むことができる。
【0036】
図5を参照すると、本発明によるサンプルレートコンバータを達成するための一例示のプロセス220を示すフロー図が示されている。第1のステップ222において、入力サンプルデータレートTRSIでサンプリングされた入力データを受信する。次のステップ224において、ユーザ出力サンプルレートTRSOに関連した値を受信する。いくつかの実施形態では、この値は、ユーザがプログラミングすることができる。ステップ226において、入力サンプルレート又は入力サンプルドメイン及び出力サンプルレート又は出力サンプルドメインのそれぞれと、プロセッサクロック又はプロセッサドメインとの間の位相関係を求める。これらの位相関係は、図3について上述した小数値FRACRSI、FRACRSOとして表すことができる。後続のステップ228において、求められた位相関係FRACRSI、FRACRSO、並びに入力クロックドメイン値TRSI及び出力クロックドメイン値TRSOから補間係数pを求める。補間係数pが得られると、補間係数pは、後続のステップ230において使用されて、サンプリングされた入力データが出力サンプルデータレートにリサンプリングされたものを示すサンプリングされた出力データを生成することができる。
【0037】
図6を参照すると、補間係数モジュール106(図1)等の補間係数を求めるための一例示の回路240のブロック図が示されている。補間係数回路240は、FRACRSO値を示すデジタル入力値i_frac_rsoの符号を反転する符号反転器242を含む。符号反転器242のオペレーションは、デジタルデータが記憶される性質に依存する。符号反転されたデジタル入力値i_frac_rso(FRACRSO)は、次に、図示する加算器224等の結合器において、FRACRSIを示すデジタル入力値i_frac_rsi及びTRSOを示すデジタル入力値i_t_rsoと結合される。加算器244の出力値は、値Tx(図3)を示すデジタルワードである。補間係数回路240は、値Txを示すデジタルワードに、FRSIを示すデジタル入力値i_f_rsiを乗算する乗算器246も含む。いくつかの実施形態では、補間係数回路240は、乗算器246の代わりに除算器を含む。それらの実施形態では、i_f_rsi値は、図10に示すようなi_f_rsiの逆数である値TRSIに置き換えられる。乗算器(除算器)から出力された値が補間係数pである。
【0038】
図7には、図6の補間係数回路で使用される例示のレジスタの概略表現が示されている。いくつかの実施形態では、pの比の計算は、Txの計算に起因する40ビット入力を有する。ここでは、15ビットの整数ビット及び25ビットの小数ビットが示されている。pの比の計算は、FRSI値からの40ビット入力も有する。その2ビットは整数であり、38ビットは小数である。図示するように、これらの2つの40ビット入力から、25ビット精度の乗算を行うことができる。カリフォルニア州サンノゼのアルテラ社(Altera Corp.)から市販されているハードウェア乗算器ブロックは、36ビット精度の乗算を提供する。この36ビット精度の乗算は、この目的には十分なものである。
【0039】
図8を参照すると、レート変換デジタイザ300の一例示の実施形態のブロック図が示されている。レート変換デジタイザ300は、サンプリングされた入力データi_converter_data[23:0]を受信する先読みバッファ302を含む。この先読みバッファ302は、1つ又は複数のデジタルフィルタに結合された1つ又は複数の出力を含む。例えば、先読みバッファ302は、ポリフェーズフィルタ304への第1の出力及びデルタフィルタ306への第2の出力を含む。フィルタ304、306のそれぞれは、先読みバッファ302から各入力を受信する。フィルタ出力は、線形補間器308へ入力される。線形補間器308は、間引き有限インパルス応答(FIR)ローパスフィルタに出力を提供する。いくつかの実施形態では、レート変換デジタイザ300の複数の部分は、実質的に複製されて、別個の高周波数パス及び低周波数パス等、2つ以上の経路を形成する。各経路は、それぞれの動作パラメータに適合されている。2つ以上の経路(図示せず)が提供されるとき、マルチプレクサ又は他の適した選択デバイスを使用して、異なる経路の中から1つが選択される。いくつかの実施形態では、このような選択デバイスは、レート変換処理を実質的に迂回する迂回経路を選択するように構成することができる。
【0040】
補間係数計算モジュール312も含まれる。この補間係数計算モジュール312は、FRACRSIを示すi_frac_rsi[39:0]、FRACRSOを示すi_frac_rso[32:0]、FRSIを示すi_f_rsi[39:0]、及びTRSOを示すi_t_rso[32:0]等の4つの入力デジタル値を1つ又は複数のアキュムレータ(図示せず)から受信する。補間係数計算モジュール312は、これらのさまざまな入力値から計算された補間係数pを出力として提供する。レート変換回路上のこの機能のいずれの複雑度も、デジタイザDSPクロックがコンバータクロックとは異なる可能性があることから由来するものである。いくつかの実施形態では、補間係数の少なくとも一部は、先読みバッファ302、ポリフェーズフィルタ304、デルタフィルタ306、及び線形補間器308へ送られる。補間係数pは、入力サンプルクロックサイクル又はコンバータ(例えばADC)クロックサイクルを基準とした出力サンプルクロックの位置又はユーザクロックの位置を表す。補間係数pの小数部の上位ビットは、ポリフェーズフィルタ304及びデルタフィルタ306のセットの中から一方を選択するのに使用することができる。補間係数pの小数部の下位ビットは、線形補間器308をスケーリングするのに使用することができる。レート変換デジタイザ300では、pの整数部は、データ先読みと解釈される。したがって、補間係数pの整数部は、先読みバッファ302へ転送され、補間係数の小数部の最大有効ビットである第1の小数部は、ポリフェーズフィルタ304及びデルタフィルタ306へ送られ、補間係数の小数部の最小有効ビットである第2の小数部は、線形補間器308へ送られる。
【0041】
レート変換デジタイザ300のすべて又は少なくとも一部は、当業者に知られているデジタル信号処理(DSP)技法を使用して、フィールドプログラマブルゲートアレイ(FPGA)において実施することができる。ポリフェーズフィルタ304、デルタフィルタ306、及びローパスフィルタ又はアンチエイリアシングフィルタ等の他の任意のフィルタの1つ又は複数は、デジタルフィルタとすることができる。デジタルフィルタの場合、それらのフィルタは、少なくとも部分的にフィルタ係数によって定義される。このようなフィルタ係数は、デジタルフィルタを設計するための標準的な設計実務に従って求めることができる。例えば、ポリフェーズフィルタ304は、16個のタップ及び512通りの位相セットを有し、その結果、係数は8192個となる。フィルタ係数を記憶するためのローカルメモリ318a、318b、318c(318と総称する)が提供される。この係数メモリ318のレイアウトは、利用可能なメモリブロックを活用するように最適化することができる。これらのメモリブロックは、FPGA設計では、読み出し専用メモリ(ROM)として扱われ、したがって、係数をロードするのに、明示的な制御回路部は必要とされない。
【0042】
レート変換デジタイザ300は、固定サンプルレートA/Dコンバータからのデータを、M/N補間ポリフェーズフィルタ304、線形補間器308、及び間引きFIRフィルタによって変換する。ポリフェーズフィルタ、線形補間器、及び間引きFIRフィルタの理論及びオペレーションは、当業者に既知である。これについては、例えば、J. G. Proakis及びD. K. ManolakisによるIntroduction to Digital Signal Processingの1992年第2版の第10章を参照されたい。この文献は、参照によりその全体が本明細書に援用される。
【0043】
先読みパイプライン302が提供されるとき、先読みパイプライン302は、1よりも大きな補間係数値に適応する。いくつかの実施形態では、先読みパイプライン302は、ポリフェーズフィルタ入力遅延線に1つ又は複数の余分なサンプルを単に記憶し、したがって、必要なときに、1つ又は複数のサンプルによって「未来」を見るオプションを与える。補間係数の整数部は、マルチプレクサを駆動して、適切なデータセットを選択する。
【0044】
線形補間器は、現在のポリフェーズフィルタの出力及び未来への1つの係数セットの出力を求め(例えば、計算し)、次に、きめ細かな補間係数によって重み付けられたこれらの2つの値の平均を計算することにより実施することができる。乗算器リソースを保存するために、この機能は、図示するようにデルタフィルタ306として実施することができる。この実施態様では、係数セット間の差分が事前に計算され、その結果、差分値は、フルサイズの乗算器ではなく小さな乗算器でハンドリングできる小さなものとなり得る。
【0045】
いくつかの実施形態では、入力アナログ信号は、先ず、アナログアンチエイリアシングフィルタ(図示せず)によって帯域が制限される。アナログフィルタリング阻止帯域に対する設計制約は、実質的に、A/Dエイリアス信号が、最も高い間引きFIR停止帯域よりも下に現れる可能性がないということである。この場合、その周波数は、正確にA/Dナイキストとなる。
【0046】
レート変換ソース構成340が図9に示されている。ソース構成は、レート変換ソース300が、Fuserレートのユーザデータを取り込み、変調ソースレート、すなわちコンバータレートのデータを作成する、サンプル変換を指す。ソースリサンプラの理論及び実施態様は、レート変換デジタイザ300(図8)のものと同様であるが、少なくとも3つの主な相違を有する。第1に、フィルタタップの個数が異なる場合がある。フィルタ係数値が異なる場合がある。リサンプラ出力周波数は、DSPクロックレートの整数約数とすることができる(例えば、FDSP=NFRSO)。この最後の相違によって、補間係数pが1未満の正の値、すなわち0≦p<1であるという点で、レート変換ソースアーキテクチャは簡単化される。
【0047】
この例示の実施形態では、レートFuserのユーザデータを示すデジタル値i_user_data[23:0]が受信される。このユーザデータは、図示するように、先読みパイプライン342において受信することができる。ソース構成340は、図8について上述した配置と同様のポリフェーズフィルタ344、デルタフィルタ346、線形補間器348、及び補間係数計算モジュール352も含む。補間係数は1未満であるため、先読みパイプライン342へ整数部を転送する必要はない。補間係数の上位ビット及び下位ビットは、図8に関連して上述したように、フィルタバンク344、346及び線形補間器348に分配される。リサンプリングされた出力デジタル信号は、線形補間器348の出力において利用可能であり、本明細書では、o_converter_data[23:0]と呼ばれる。
【0048】
補間係数計算モジュール360の一例示の実施形態の概略図が図10に示されている。モジュール360は、入力アキュムレータ362a、出力アキュムレータ362b、3入力加算器364、及び除算器366を含む。モジュール360は、入力サンプル周期TRSI及び出力サンプル周期TRSOを示す別個のデジタル入力値を受信する。これらのサンプル周期値TRSI、TRSOは、それぞれのレジスタ368a、368bに記憶することができる。モジュール360は、システム(すなわち、DSP)クロックTDSPを示すデジタル入力も受信する。入力サンプル周期TRSIは、制限として入力アキュムレータ362aに入力される。アキュムレータ362aは、処理クロックTDSPに従ってインクリメントされる。入力アキュムレータ362aは、小数出力FRACRSIを計算し、出力として小数出力FRACRSIを加算器364の第1の入力に提供する。同様に、出力サンプル周期TRSOも、制限として入力アキュムレータ362bに入力される。出力アキュムレータ362bも、処理クロックTDSPに従ってインクリメントされる。出力アキュムレータ362bは、小数出力FRACRSOを計算し、出力として小数出力FRACRSOを加算器364の第2の入力に提供する。加算器364のこの第2の入力は、当業者に知られている技法によって符号反転され、それによって、求められた合計からFRACRSO値が減算される。入力値TRSOは、加算器364の出力が値Tx(図3)を表すように、加算器364の第3の入力に入力される。いくつかの実施形態では、加算器364の出力は、除算器回路366の第1の被除数端子に入力される。入力値TRSIは、乗算器回路の商の出力値が補間係数pを表すように、除算器回路366の第2の除数入力に入力することができる。
【0049】
図11は、図10のアキュムレータ362a、362bのいずれにも適したアキュムレータ400の一例示の実施形態を示す概略図である。第1のアキュムレータ400(362a)は、制限値としてTRSIを受信し、インクリメント値としてTDSPを受信する。これらの入力値は、概略説明図に従って処理され、値FRACRSIをもたらす。同様に、第2のアキュムレータ400(362b)は、制限値としてTRSOを受信し、インクリメント値としてTDSPを受信する。これらの入力値は、概略説明図に従って処理され、値FRACRSOをもたらす。
【0050】
【表1】
【0051】
補間係数pは、0〜1.5の範囲を有する(2進小数点の右に)21ビット精度に計算することができる。pの計算は、
【0052】
【数4】
【0053】
である。
除算演算を回避するために、TRSIの逆数を事前に計算することができる。
p=(TRSO−FracRSO+FracRSI)(FRSI) (7)
入力周波数及び出力周波数の範囲が大きな範囲をカバーする用途では、補間係数計算精度は、図13に示すように、補間係数の適切な2進スケーリングによって保存することができる。
【0054】
いくつかの実施形態では、DSPクロック周波数とリサンプラ出力周波数との間の整数関係(FDSP=NFRSO)によって、補間係数の計算が簡単化される。ソースの場合、0≦p<1を保証することができ、したがって、先読みパイプラインは必要とされない。
【0055】
以下の例では、ユーザは、200MHzでサンプリングされた40MHz BWの信号を生成するものとする。ユーザデータは、102GHz(512×200MHz)にサンプルレートを持ってくるためにゼロパッディングされる。200MHzサンプルレートのイメージは、ポリフェーズFIRフィルタによって減衰される。この信号は、内部の4倍(4×)補間フィルタを含むコンバータに印加される。補間された信号は、この時点で533MHzのサンプルレートであり、0次オーダホールド(sin x/x)応答を有するアナログに変換される。最後に、アナログローパスフィルタは、コンバータレートサンプリングイメージを除去する。
【0056】
図8に示すサンプルレートコンバータを参照すると、線形補間器308は、デルタフィルタ306の出力に、線形補間係数の下位ビット(例えば、図4に示す下位ビット218)を乗算する。この例示の14ビット線形補間係数は、[0,1)の範囲を有する。この例示の実施形態では、線形補間器308の出力は、例えば7ビットといった複数ビット分、右にシフトされる(且つ符号拡張される)。これは、デルタフィルタ係数が、ROM318bに記憶される前に同じ量だけ(例えば、27倍)スケールアップされた状況を補償するために行われる。このブロックの出力データは、次に、メインポリフェーズフィルタ304の出力に加えられる。
【0057】
いくつかの実施形態では、サンプルレートコンバータは、迂回モードを含む。迂回モードが設定されているとき、ポリフェーズFIRフィルタ及び間引きFIRフィルタを含むサンプルレートコンバータの少なくともかなりの部分が迂回される。データは、FA/Dレートでリサンプラに入力し、次に、リサンプラの処理が何ら行われることなく、その同じレートでリサンプラから去る。このモードは、生のADCサンプルへのユーザアクセスを提供する。このようなアクセスは、ユーザが、キャプチャされたデータに対してFFTを実行する予定である場合に有用であり、ユーザは、最大でコンバータのナイキスト(FA/D/2)までの周波数成分を見ることになる。迂回モードによって、アナログフロントエンドがこの状況を許容するならば、ユーザは、アンダーサンプリング形式でデータレートコンバータを用いることも可能になる。コンバータのナイキストよりも大きなADC入力におけるトーンは、エイリアシングされて、DCとFA/D/2との間の帯域に戻る。この時点で、迂回モードのデータレートコンバータは、このキャプチャされたデータに対して処理を何ら実行しない。
【0058】
いくつかの実施形態では、リサンプラ低周波数入力パイプライン、データ先読み、デルタフィルタ、線形補間、及びポリフェーズフィルタは、マルチサイクル状態マシンで実施される。例えば、1つのマルチサイクル状態マシンは、信号のすべてを処理することができる1つの36×36ビット乗算器を利用する。このようなハードウェア効率は、必要とされる出力データレートがFPGA DSPクロックレートよりもはるかに低いため可能である。
【0059】
図12を参照すると、ブロック図は、アキュムレータ/補間計算機回路600の代替的な一実施形態を示す。位相アキュムレータ600は、リアルタイムコンバータクロックの状態、仮想ユーザクロックの状態、及びこれらのクロック間の相対位相の経過を追跡する。この状態及び相対位相の情報は、コンバータクロックドメインとユーザクロックドメインとの間でユーザの信号を変換するために、サンプルレートコンバータ300、340(図8、図9)が使用することができる。リサンプラ300は、先読みを有する入力データパイプライン302、ポリフェーズFIRフィルタ304、及び線形補間器308から成り(図8)、リサンプラ340は、先読みを有する入力データパイプライン342、ポリフェーズFIRフィルタ344、及び線形補間器348から成る(図9)。ソースチャネル(例えば、図9)上のリサンプラ340は、仮想ユーザレートのデータを取り込み、固定コンバータレートのデータを作成して出力する。キャプチャチャネル(例えば、図8)上のリサンプラ300は、A/Dコンバータから固定コンバータレートのデータを取り込み、仮想ユーザレートでデータを作成して出力する。
【0060】
アキュムレータは、DSPクロックと同期したリサンプラ入力データを適格とすることができる。例えば、DSPクロックごとに適格とされる入力データポイントが0個、1個、又は2個存在することができる。DSPクロックごとに適格とされる出力データポイントが0個又は1個存在することができる。アキュムレータ600は、リアルタイムコンバータクロックの状態も追跡する。例えば、アキュムレータ600は、各コンバータクロックの状態を追跡する。コンバータクロックリセットイベントは、コンバータクロックアキュムレータ及びコンバータクロックが同期するようにこれらの2つをリセットする。このリセットイベントはt0も定義する。コンバータクロックリセットイベントは、通常、電源再投入後又は他の破局的なイベントの後に発生する。位相アキュムレータは、コンバータクロック周波数を正確に照合しなければならない。
【0061】
アキュムレータ600は、仮想ユーザクロックの状態を追跡する。このユーザクロックは、時刻t0に対応してリセットすることができる。正確なランツーランタイミング反復可能性(run to run timing repeatability)を保証できるように、ユーザクロックのリセットによって、ユーザクロックアキュムレータがリセットされる。このようなユーザクロックリセットは、テスタの用途におけるテストシーケンスの開始時等、通常のオペレーション中の固有のブレイクポイントで生じる場合がある。ユーザクロックは、高分解能又はその整数分数(integer fraction)の点から追跡することができる。好ましくは、ユーザクロック周波数は、2進小数の周期に基づいてプログラミング可能である。一例示の実施形態では、ユーザクロック周期は、少なくとも10ns/244分解能を有し、ユーザクロック範囲は、5kHz〜400MHzである。
【0062】
いくつかの実施形態では、遅延値又はスキュー値TDELAYを追加することができる。このような遅延値又はスキュー値は、デジタルサブシステムを基準としてアナログ波形を時間において効果的にシフトする。有利なことには、このような遅延値は、ユーザクロック又はコンバータクロックのいずれもその後リセットする必要なく、変更することができる。いくつかの実施形態では、スキュー値は、4nsの範囲及び少なくとも約10ns/232(すなわち、0.0023fs)の分解能を有する。いくつかの実施形態では、TDELAYの値を0に設定することができる。すなわち完全に無視することができる。各リサンプラ出力データポイントについて、リサンプラ補間係数
p=(Tx+TDELAY)/TRSI (8)
を計算する。ここで、TRSIは、リサンプラ入力クロック周期であり、Txは、現在のDSPクロックに先行する最も近時のリサンプラ入力クロックから現在のDSPクロックサイクルにおける最も近時のリサンプラ出力クロックまでの時間である。
【0063】
ユーザクロックの追跡が高分解能値の点から必要とされる用途の場合、正確な基本クロックドメイン(underlying clock domain)で動作する正確な時間アキュムレータを有することが必要である。したがって、ユーザクロックは、一定の周期分解能と合成される。基本イベントをDSPクロックドメインに変換する方法が必要とされる。1つのこのような実施態様は、DSPクロックドメインと基本システムクロックドメインとの間の一致点において基本システムクロックドメインに同期されたDSPクロックドメインで動作する(正確な)位相アキュムレータ602の第2のセットを提供するものである。第2の実施態様は、3つごとの基本システムクロックドメインユーザクロック状態を8つのDSPドメインユーザクロック状態に直接マッピングすることである。
【0064】
2つの時間アキュムレータの状態から補間係数を計算しなければならないという複雑さは、DSPクロック周波数、リサンプラ入力周波数、及びリサンプラ出力周波数がすべて異なることに由来する。この状況は、リサンプラ出力クロックがDSPクロックと同じであるか又はDSPクロックの或る単純倍数である実施形態については簡単化される。
【0065】
基本システムクロックドメインユーザクロック時間アキュムレータの機能は、基本システムクロックサイクルの点からユーザクロックの状態の経過を追跡することである(t0は、基本システムクロックイベントの値に、ユーザクロックリセットイベント時の高精度なシステムクロック位相値を加えたものに従って定義される)。任意の所与の基本システムクロックイベント時において、ユーザクロックサイクルを確定的に選択して基本システムクロックイベントに一致させることを可能にするには、t0以降の高分解能カウントの総数を知る必要がある。リサンプラ補間係数計算への入力として、ユーザクロックを基準とした時間も知る必要がある。これらの必要性の双方について、t0から現在の基本システムクロックイベントまでの時間が実際に測定される。
【0066】
tN=NTref (9)
ここで、tNは、N番目の基本システムクロックイベント時におけるt0以降の時間であり、Nは、t0以降の基本システムクロックサイクル数であり、Trefは、基本システムクロックであるシステムクロックの周期、すなわち10nsである。
【0067】
ユーザクロック周期の点からtNを表すことによって、小数値FRACは、最後のユーザクロック以降の時間(次のユーザクロックまでの時間である残差ではない)を求めることができる。これは、数学的には、
【0068】
【数5】
【0069】
によって表すことができる。ここで、FRACuserは、最後のユーザクロックからの時間であり、Tuserは、ユーザクロック周期であり、
【0070】
【数6】
【0071】
は、モジュロ演算子である。基準クロック当たり複数の仮想クロックイベントが存在する状況のために、この最後のユーザクロックからの時間を測定する方法は、この用途の残差方法よりも好ましい。この場合、複数の剰余値を生成する必要があるのに対して、最後のユーザクロック(すなわちFRAC)値からの時間は、単一の時間で十分である。
【0072】
一般に、基準クロックから合成されたユーザクロックは、基準クロックの有理分数となる、すなわち、
【0073】
【数7】
【0074】
又は時間の点からは、
【0075】
【数8】
【0076】
となる。A項は、TrefをA Tresolutionとして表すことができるように固定とすることができ、したがって、式(9)、(10)、及び(12)を組み合わせることによって
【0077】
【数9】
【0078】
が与えられる。関数
【0079】
【数10】
【0080】
は、モジュロBアキュムレータとしてハードウェアにおいて実施される。このモジュロBアキュムレータでは、値A=Tref/Tresolutionが事前に計算され、次に、各基本システムクロックサイクルに累算される。
【0081】
リサンプラオペレーションは、システムクロックサイクル、すなわちDSPクロックサイクルで行われるため、基本システムクロックドメイン時間アキュムレータ値は、DPSクロックドメインにマッピングされる。このマッピングが、長期のフィードバックなしで行われる場合、導入されたいずれの誤差も累算せず、したがって、マッピングは近似とすることができる。以下に示す値は、リサンプラ器具の例示のクロック周波数についてのものである。
【0082】
【数11】
【0083】
コンバータクロック時間アキュムレータは、コンバータクロックアキュムレータが、ユーザクロックリセットイベントによってではなく、コンバータクロックリセットイベントによってリセットされることを除いて、ユーザクロック時間アキュムレータと同じである。コンバータクロック周波数は、ユーザクロック周波数よりもはるか多く制限され、したがって、低分解能アキュムレータが許容可能となる。
【0084】
リサンプラ出力クロックがDSPクロックと一致する場合は、DSPクロックの「後」に生じる仮想リサンプラクロックとして扱われ、その結果、FRAC値が常に0よりも大きいことを暗に意味する。
【0085】
一例示の実施形態では、ユーザクロックの範囲の要件は、340MHzから、下は5kHzまでである。ユーザクロック時間アキュムレータは、したがって、
【0086】
【数12】
【0087】
をカウントできなければならず、したがって、この範囲をカバーするには、14ビットが必要とされる。
いくつかの実施形態では、ユーザクロックは、周期を整数インクリメントしたものに基づいている。一般に、アナログクロックとデジタルクロックとの間のコヒーレンシを達成することはできないが、本発明者の用途に十分近づけることはできる。関心のある領域は、(1)FFT出力が「漏れ」を有し、したがって、誤りのある結果を与えること、及び(2)時間の経過に伴いアナログ信号とデジタル信号との間にゆっくりとした位相ドリフトがあるということである。
【0088】
正弦波信号対雑音比に対する周波数精度の影響は、長方形ウィンドウFFT解析によって測定され、近似であることが知られている。これについては、例えば、Rosenfield及びMaxの「When ‘Almost’ is Good Enough: a Fresh Look at DSP Clock Rates」, International Test Conference, 1988を参照されたい。この文献は、参照によりその全体が本明細書に援用される。
【0089】
【数13】
【0090】
ここで、Tは、キャプチャされて解析された信号の継続時間であり、ω1は、実際の正弦波周波数であり、ω2は、理想的な正弦波周波数である。このSNRは、
【0091】
【数14】
【0092】
と表すことができる。ここで、Mは、解析された正弦波サイクルの個数であり、eは、相対周波数誤差である。
シミュレーションソフトウェアアプリケーションを使用して行われたテストは、相関が0.1dBよりも良好であることを示した。ナイキスト周波数については、雑音電力の約2分の1が、M−1ビンに集中し、したがって、SNR+3dBのSFDR制限がある。大規模FFT(64kの実用上の制限を考慮)及び低雑音器具では、非コヒーレントクロックに起因したSFDR制限は、160dBよりも良好であるはずである。
【0093】
157dBのSNRを達成するには、10ns/244(5.6 E−22秒)のユーザクロック分解能が必要とされる。5.6 E−22秒のユーザクロック周期分解要件を使用すると、最悪の場合の位相ドリフトは、
【0094】
【数15】
【0095】
となる。すなわち、6.8ps/分;400ps/時間となる。
pの範囲は、その寄与係数の極値から導出される。TDELAYを無視すると、最小のpの値は、
【0096】
【数16】
【0097】
から得られる。FRAC値は(0,T]の範囲を有し、したがって、pMINはほぼ0である。pの最大値は、Txの最大値から得られ、その結果、FRACRSOの最小値から得られる。つまり、
【0098】
【数17】
【0099】
となる。
FRACRSOの最小値は、リサンプラ出力クロックがDSPクロックの直前に発生したときに生じ、このとき、FRACRSO=TRSO−TDSPである。したがって、
【0100】
【数18】
【0101】
である。Kが整数であるとし、リサンプラ入力クロックTRSOとDSPクロックTDSPとが同相に位置合わせされている状況で、TRSO=KTDSPである以下に示す特殊な場合には、FRACRSOは常にTRSOに等しいことに留意されたい。このような場合には、
【0102】
【数19】
【0103】
である。
補間係数pは、リサンプラ出力クロックとリサンプラ入力クロックとの相対位相を表す。リサンプラは、全パスポリフェーズサブフィルタ(理想的な相対位相を一まとめに扱うインクリメンタル遅延値を有する)の2つを適用し、次に、2つの結果の間を線形補間することによって出力値を補間する。このようなリサンプラのSNRは、
【0104】
【数20】
【0105】
であることが知られている。ここで、Ifilterは、ポリフェーズサブフィルタの個数であり、ωxは、相対帯域幅2πBWuser/FRSIである。これについては、例えば、J. G. Proakis及びD. K. ManolakisによるIntroduction to Digital Signal Processingの(第2版1992年)に説明されているものを参照されたい。さらに、線形補間器自体が、実際には、
【0106】
【数21】
【0107】
のSNRを有するポリフェーズフィルタである。
どの自動化された試験機器、器具類、又は通信システムも、波形デジタイザ、任意波形ジェネレータ、変調システム、及び復調システムの設計及び実施が簡単化されるため、本発明から利益を受ける。
【0108】
本明細書では、本発明の好ましい実施形態及びさまざまな代替的な実施形態を開示し、詳細に説明してきたが、本発明の趣旨及び範囲から逸脱することなく、形式及び細部におけるさまざまな変更をそれらの実施形態において行えることが当業者には明らかであり得る。
【0109】
本明細書に示した例は、本発明の精神及び範囲を多少なりとも限定するものと決して解釈されるべきでないことに留意すべきである。具体的な例及び実施態様は、本明細書では、例証のためにのみ示されている。また、好ましい実施形態では、フィルタの状態数は、サンプルレート変換を実行するために変更されたときに不変のままとすることができるが、代替的な実施形態では、本発明の精神及び範囲から逸脱することなく、付加的な状態を追加することができる。
【技術分野】
【0001】
本発明は、包括的には、デジタル信号処理に関し、より詳細には、第1のサンプリングレートのデジタル信号を第2のサンプリングレートの同じデジタル信号の表現に変換することに関する。
【0002】
[関連出願]
本願は、2007年11月16日に出願された米国仮特許出願第60/988,772号の優先権の利益を主張する。この米国仮特許出願の全内容は、参照により本明細書に援用される。
【背景技術】
【0003】
多く電子的用途において、信号は、デジタルで表現されて処理される。デジタルワード、すなわちサンプルは、規則的な時間間隔における信号の値を表す。この規則的な間隔は、多くの場合、サンプルレートと呼ばれ、通常、サンプル間隔時間周期の逆数を表すヘルツ(Hz)の単位で表される。このように表された信号は、サンプルレートの2分の1を超えるエネルギーを有することができず、サンプルレートの2分の1に等しい周波数は、ナイキスト周波数と呼ばれる。
【0004】
デジタルサンプルレート変換は、多くのタイプのデジタルシステムで使用される。例えば、音楽の記録を行う際に生成され得るようなオーディオ信号は、多くの場合、デジタルで処理される。信号を処理及び記録するのに使用されるさまざまな機器は、常に同じサンプリング周波数で動作しているわけではない。その結果、各機器は、第1のレートでサンプリングされたデジタル信号を受け取り、次に、そのデジタル信号を処理する前に、そのデジタル信号を第2のサンプリングレートを有するデジタル信号に変換することが、多くの場合必要である。もちろん、信号の情報内容は、サンプルレート変換によって、感知できるほどに変更されてはならず、さもなければ、信号の音質は劣化することになる。
【0005】
サンプルレート変換を達成する非常に単純な方法は、第1の信号からサンプルを単純に廃棄することである。出力波形の毎秒当たりのサンプルは、そのため、より少なくなり、したがって、サンプルレートはより低くなる。ナイキスト基準が出力信号において満たされているものと仮定すると、出力信号は、入力信号と同じ信号の精密な表現である。このプロセスは、一般に、「間引き」(decimation)と呼ばれる。ただし、この間引きは、入力のサンプリングレートが出力のサンプリングレートの整数倍である状況に限られる。
【0006】
補間と呼ばれるプロセスは、出力のサンプリングレートが、入力信号のサンプリングレートよりも整数倍高くなることを目的としているときに使用することができる。このような補間オペレーションでは、任意に0の値を割り当てられたサンプルで入力信号のサンプル間の時間を満たすことによって、中間信号を最初に作成することができる。このような中間信号は、「ゼロ詰め込み(zero-stuffed)」信号を呼ばれる。サンプルは、時間スパンが同じに保たれながら追加されるため、ゼロ詰め込み信号は、入力信号よりも高いサンプリングレートを有する。より高い周波数のゼロ詰め込み信号は、余分なサンプルを追加することによって引き起こされる不連続性を取り除くデジタル補間フィルタにおいてフィルタリングすることができる。その結果、デジタル信号は、入力信号と同じ形状を有するが、毎秒当たりより多くのサンプルを含む。
【0007】
間引きのプロセス及び補間のプロセスを組み合わせることができる。例えば、回路は、D分の1に間引くことができ、I倍に補間することができる。その結果の出力は、入力サンプリングレートに対してI/Dの比のサンプリングレートを有する。しかしながら、このような回路は、有理数によってサンプリングレートをスケーリングすることに限られる。より重要なことに、デジタルシステムの場合、D及びIの値の範囲には、実用上の限界がある。間引き係数Dは、間引かれた信号がナイキストレートをもはや充足しないほど大きくすることができない。加えて、補間フィルタの必要とされる複雑度は、Iが大きくなる(例えば、タップがより多くなる)につれて増加するため、補間係数Iも任意に大きくすることができない。その上、異なるクロックの少なくとも1つは、システムクロック(すなわち、DSPクロック)と本質的に同一であるか、又は2倍等、複雑でないようにシステムクロックに少なくとも関連していると仮定される。このような状況で、異なるサンプルレートクロック間の一貫性を維持することは、タイミングシステムのハードウェアの精度及び複雑度に負担をかける。
【発明の概要】
【0008】
3クロックシステムで精密にデータを処理することができることによって、デジタル信号処理に複雑度を追加することによってリアルアナログクロックを生成する要件の簡単化が可能になる。一般に、アナログの複雑度の低減は、システムの信頼性の増大、機能の柔軟性の拡大、及びシステムコストの低下につながるため望ましい。
【0009】
サンプルレート変換システムにおいて決定的に重要なパラメータである補間係数pを、DSPクロックとデータクロックとの間に複雑な関係があるリアルタイムシステムで計算することを可能にするシステム及びプロセスが本明細書で説明される。通常、このようなシステムにおけるクロックの2つ又は3つは、単純な関係(クロック1=2*クロック2等)を有する。この関係は、実際には、考慮されるクロックが2つしかない縮退した場合につながる。さらに、本明細書で説明するシステム及びプロセスによって、補間係数のこのような計算が、DSPクロックレートよりも高い入力データレートで行われることが可能になる。少なくともいくつかの実施の形態では、任意の時間遅延を出力信号に適用することができる。
【0010】
本発明の一つの実施の形態は、サンプリングされたデータをレート変換するためのプロセスに関する。入力サンプルクロックに従ってサンプリングされた入力データを受信する。入力サンプルクロックとは(整数である必要はない)値だけ異なる出力サンプルクロックを示す値も受信する。入力サンプルクロック及び出力サンプルクロックのそれぞれとプロセッサクロックとの間の各関係を求める。入力クロック及び出力クロックのそれぞれは、プロセッサクロックから独立している。入力サンプルクロックと、出力サンプルクロックと、プロセッサクロックとの関数として補間係数を求める。入力データと補間係数との関数として出力データを生成し、出力データは、出力サンプルクロックに従ってサンプリングされた入力データに対応する。
【0011】
本発明の別の実施の形態は、サンプリングされたデータを第1のデータレートから第2のデータレートへ変換するためのシステムに関する。このシステムは、入力サンプルクロックに従ってサンプリングされた入力データを受信し、出力サンプルクロックに従ってサンプリングされた入力データを示す出力データを作成するように構成されたレートコンバータを備える。該レートコンバータは、入力サンプルクロック及び出力サンプルクロックのいずれからも独立している処理クロックレートで動作する。処理クロックを受信するアキュムレータが、プロセッサクロックの状態を監視するように構成され且つ入力サンプルクロック及び出力サンプルクロックのそれぞれとプロセッサクロックとの各関係を求めるように構成される。本システムは、アキュムレータ及びレートコンバータと通信する補間係数回路も備える。該補間係数回路は、入力サンプルクロック及び出力サンプルクロックのそれぞれとプロセッサクロックとの各関係をアキュームレータから受信するように構成される。該補間係数回路は、入力サンプルクロック、出力サンプルクロック、及びプロセッサクロックの関数として補間係数を計算するようにも構成される。レートコンバータは、補間係数の関数として、入力データを出力データに変換するように構成される。
【図面の簡単な説明】
【0012】
本発明の上記並びに他の目的、特徴及び利点は、添付図面に示されたような本発明の好ましい実施形態の以下のより詳細な説明から明らかになる。添付図面において、同様の参照符合は、様々な図全体を通じて同じ部分を指す。図面は、必ずしも同一縮尺であるとは限らず、その代わり、本発明の原理を示すことに重点が置かれている。
【図1】サンプルレートコンバータの一実施形態と組み合わせられたデジタイザを示すブロック図である。
【図2】サンプルレートコンバータで使用できるアキュムレータの一実施形態をより詳細に示すブロック図である。
【図3】サンプルレートコンバータの一実施形態内の異なるクロック信号間の関係を示すタイミング図である。
【図4】補間係数のフォーマットの一実施形態を示す概略図である。
【図5】サンプルレート変換を達成するためのプロセスの一実施形態を示すフロー図である。
【図6】サンプルレートコンバータで使用できる補間係数を求めるための回路の一実施形態を示すブロック図である。
【図7】図6の補間係数回路の実施形態で使用できるレジスタの概略表現である。
【図8】デジタル化サンプルレートコンバータの一実施形態を示すブロック図である。
【図9】ソースサンプルレートコンバータの一実施形態を示すブロック図である。
【図10】図8又は図9のいずれかの補間係数計算回路の一例示の実施形態を示す概略図である。
【図11】図10のデュアルアキュムレータの一例示の実施形態を示す概略図である。
【図12】本発明による第2のアキュムレータを含むアキュムレータ/補間計算機回路の一実施形態を示すブロック図である。
【図13】補間係数を求めるための計算機の代替的な一実施形態を示すブロック図である。
【発明を実施するための形態】
【0013】
或るサンプルレートのデータを第2のサンプルレートのデータに変換するためのシステム及びプロセスが本明細書で説明される。従来技術では、サンプルレート変換システムの実施態様は、出力サンプルレートに等しいデジタル信号処理クロック又は出力サンプルレートの整数倍のように、出力サンプルレートに直接関連したデジタル信号処理クロックを用いる。有利なことには、本明細書で説明するシステム及び技法によって、システム処理クロックは、出力サンプルレートとの非自明なM/N関係を有することが可能になる。例えば、M及びNは、非常に大きな整数とすることができる。少なくともいくつかの実施形態では、プログラマブル時間遅延(任意の範囲及び分解能を有する)を出力信号に適用することもできる。
【0014】
一般に、本明細書で説明する技法は、固定されたコンバータ周波数、可変の(又は、固定であっても異なる)信号データレートを有するいかなるリアルタイムシステムにも適用することができる。コンバータという用語の使用は、一般に、特定の用途に応じて、アナログ/デジタルコンバータ(ADC)及びデジタル/アナログコンバータ(DAC)を含む。例えば、ソースモードでは、DACは、刺激信号の合成されたデジタル表現から得られるアナログ出力刺激信号を提供する。代替的に、検出器モードでは、ADCは、試験システムからのさらなる処理のために、被試験デバイスから得ることができるような受信されたアナログ応答信号を、受信された応答信号のデジタル表現に変換する。いずれの場合にも、コンバータ周波数又は信号データレートのいずれにも関連する必要がない第3のシステムクロック周波数が、例えばDSPを制御するのにおそらく使用される。他の用途は、既知のコンバータサンプルレートが既知のシステムクロック又は処理クロックに関連しないサンプルレート変換システムを含む。
【0015】
本明細書で説明するようなサンプルレート変換技法によって、ユーザは、実際のコンバータが動作する固定クロックレート(例えば、コンバータクロックレート)に対して広範囲且つ高分解能を有するレート(すなわち、タイミング)でベースバンド波形を画定することが可能になる。このサンプルレート変換は、コンバータクロック、ユーザクロック、及びシステムクロック、すなわちDSPクロック、の3つの異なるクロック間の関係に基づく非整数補間係数を求めることによって達成することができる。この補間係数は、補間フィルタによって使用される。例示の補間器フィルタは、ソースにおいてはポリフェーズ有限インパルス応答(FIR)フィルタ及び線形補間器を含み、デジタイザにおいてはポリフェーズFIRフィルタ、線形補間器、及び間引きFIRフィルタを組み合わせたものを含む。これらのフィルタ構成によって、関連していないプロセッサクロックレート又はDSPクロックレートで動作するシステム内で所望のレート変換がもたらされる。
【0016】
リサンプラのオペレーションは、ユーザには本質的にトランスペアレントであり、その結果、リサンプラ器具は、従来の任意の波形ジェネレータと、入力クロックレート又は出力クロックレートの一方で動作するコンバータを有するデジタイザとをあたかも含んでいるかのように振舞う。したがって、リサンプラは、開始コマンド、ユーザクロックリセットコマンド等の特殊なイベントも、サンプルサイズも、帯域幅制限以外の信号内容も全く知らない。リサンプリングプロセスによって導入されるすべての誤差は、スプリアスのないダイナミックレンジ仕様を下回ることになる。リサンプラは、入力周波数及び出力周波数の点でかなり柔軟である。リサンプリング比は、クロック制御のシナリオが異なるごとにカスタマイズすることができる外部の仮想クロックジェネレータによって駆動される。
【0017】
図1を参照すると、本発明によるリサンプラ100の一例示の実施形態のブロック図は、レートコンバータ102、アキュムレータ104、及び補間係数モジュール106を含む。リサンプラ100の入力に結合されたA/Dコンバータ108も示されている。A/Dコンバータ108は、入力アナログ信号S(t)を受信し、本明細書では第1のクロックドメインと呼ばれる入力サンプルレート、すなわちコンバータクロックに従ってその信号をサンプリングする。入力サンプルサイクルの周期は、TRSIとして示されている。レートコンバータ102は、第1のコンバータクロックドメインにおける入力信号のサンプリングされたデジタル表現S(n)を受信し、そのサンプリングされたデジタル表現S(n)を、同じ入力信号の出力表現ではあるが第2のユーザクロックドメインにおける出力表現に変換する。一般に、第2のクロックドメインは、第1のクロックドメインとは異なる出力サンプルレートを有する。出力サンプルサイクルの周期は、TRSOとして示されている。これらの2つのクロックドメインは、すべての実用面において関連していない。実際には、それらの2つのクロックドメインは、2つの非常に大きな数の非整数比によって変化し得る。本発明によって提供される重要な利点は、レートコンバータ102が、本明細書で第3のクロックドメインと呼ばれるさらに別のプロセスクロックに従って動作しているということである。この第3のクロックドメインは、システムクロックドメイン、すなわちDSPクロックドメインと呼ばれる。プロセッササンプルサイクルの周期は、TDSPとして示されている。
【0018】
アキュムレータ104は、いくつかの値を受信するか又は事前にロードされる。1つのこのような値は、出力サンプルレートを表す。この例では、この値は、出力サンプルレートの周期TRSOである。代替的に又は加えて、アキュムレータ104には、出力サンプル周波数FRSO(すなわち、TRSOの逆数)を事前にロードしておくことができる。別のこのような事前にロードされた値は、入力サンプルレートを表す。この例では、この値は、入力サンプルレートの周期TRSI(又は入力サンプル周波数FRSI)である。アキュムレータ104に事前にロードすることができるさらに別の値は、プロセッサクロックの周期TDSP(又はプロセッサクロック周波数FDSP)である。
【0019】
アキュムレータ104は、事前にロードされた値の1つ又は複数をプロセッサクロックレート(DSP CLK)で処理して、いくつかの出力値を作成する。主として、出力値は、異なるクロックドメイン間の関係を示す小数値を含む。1つのこのような小数値FRACRSIは、入力サンプルクロックとプロセッサクロックとの関係から得られる。別のこのような小数値FRACRSOは、出力サンプルクロックとプロセッサクロックとの関係から得られる。入力クロック及び出力クロックの周期及び周波数(TRSI、FRSI、TRSO、FRSO)の1つ又は複数を出力値として提供することもできる。この例示の実施形態では、アキュムレータは、出力値としてFRSI及びTRSOを提供する。いくつかの実施形態では、アキュムレータ104は、外部タイミング基準TREF及びリセット信号TRESET等の1つ又は複数の追加入力も受信する。アキュムレータ104は、出力値FRACRSI、FRACRSO、FRSI、TRSOを定期的に更新することができる。例えば、いくつかの実施形態では、出力値は、プロセッサクロックの各サイクルTDPS中にアキュムレータ104によって更新される。
【0020】
補間係数モジュール、すなわち回路106は、アキュムレータ104から出力値FRACRSI、FRACRSO、FRSI、TRSOを受信し、受信された値の1つ又は複数から補間係数pを導出する。補間係数モジュール106は、これらの入力の1つ又は複数を処理して、プロセッサクロックTDSPに従って出力を生成することもできる。レートコンバータ102は、補間係数モジュール106から補間係数pを受信し、この値を使用して、所望のサンプルレート変換を達成する。
【0021】
いくつかの実施形態では、補間係数モジュール106は、遅延入力値TDELAYも受信する。この遅延値は、異なるクロックドメイン間にスキューを導入するためにユーザが提供することができる。遅延値は、サンプリングされた出力信号をサンプリングされた入力信号に対して任意に遅延させるのに使用することもできる。実現可能なシステムが適応することができる最大遅延は、少なくとも或る程度は、その特定の実施形態の備え(provisioon)に依存する。例えば、以下でより詳細に説明するように、このような遅延された値に適応するために、先読みバッファを含めることができる。このような実施形態では、先読みバッファの深さは、最も長い予測遅延に基づいて求めることができる。遅延が長いほど、より深い先読みバッファが必要とされる。
【0022】
図2を参照すると、図1に示すアキュムレータ104等の本発明によるアキュムレータ150の一例示の実施形態は、累算レジスタ152を含む。この累算レジスタ152は、各プロセッサクロックサイクルでインクリメントされる値Nを記憶する。Nの値は、各プロセッサクロックサイクルの後に1つインクリメントされる2進整数とすることができる。Nの値は、リセット入力においてリセット信号RESETを受信すると0又は別の値にリセットすることができる。アキュムレータ150は、プロセッサクロック周期TDSPを示す値を記憶するためのプロセッサレジスタ154、入力サンプル周期TRSIを示す値を記憶するための入力クロックドメインレジスタ156、及び出力サンプル周期TRSOを示す値を記憶するための出力クロックドメインレジスタ158等の、さまざまな値を記憶するためのレジスタも含む。累算レジスタ152の値及びプロセッサクロック周波数TDSPの値は、乗算器160に供給される。乗算器160は、これらの値を合わせて乗算し、結果の値TNをプロセッサ時間レジスタ162に記憶する。記憶されたプロセッサ時間値TNは、入力クロックドメインレジスタ156に記憶されたTRSI値と共に第1のモジュロ算術演算プロセッサ164aに供給される。第1のモジュロ演算の結果は、2つの値TNとTRSIとの比の小数部分であるFRACRSIである。結果の値FRACRSIは、入力位相差レジスタ166に記憶される。同様に、記憶されたプロセッサ時間値TNは、出力クロックドメインレジスタ158に記憶されたTRSO値と共に第2のモジュロ算術演算プロセッサ164bにも供給される。第2のモジュロ演算の結果は、2つの値TNとTRSOとの比の小数部分であるFRACRSOである。結果の値FRACRSOは、出力位相差レジスタ168に記憶される。
【0023】
いくつかの実施形態では、入力クロックドメインレジスタ156に記憶された値の逆数が、入力クロックドメイン周波数レジスタ170に記憶される。同様に、いくつかの実施形態では、出力クロックドメインレジスタ158に記憶された逆数値が、出力クロックドメイン周波数レジスタ172に記憶される。記憶されたレジスタ値FRACRSI、FRACRSO、FRSI、及びFRSOの1つ又は複数は、補間係数モジュール106(図1)へ転送することができる。この例示の実施形態では、4つの値FRACRSI、FRACRSO、FRSI、及びTRSOが、補間係数モジュール106へ転送される。
【0024】
本発明による異なるタイミング信号間の一例示の関係を示すタイミング図が、図3に示されている。この図は、対象となる3つのクロック間の可能な関係を示している(ただし、説明するプロセスは、クロック間の任意の関係に適用される)。詳細には、周期TDSPを有するプロセッサクロック200の一部が示されている。プロセッサクロック200は、時にDSPクロックと呼ばれることがある。DSPクロックの真下には、周期TRSIを有する入力サンプルクロック202の重なる部分が示されている。入力サンプルクロック202は、時にリサンプラインクロックと呼ばれることがある。最後に、周期TRSOを有する出力サンプルクロック204の重なる部分が図の下部に示されている。この出力サンプルクロック204は、時にリサンプラアウトクロックと呼ばれることがある。
【0025】
FRACという用語は、「残差(residual)」とは対照的に、或るイベントから次のクロックサイクルまでに測定される時間を記述するのに使用される。「残差」は、いくつかの慣例によれば、或るクロックサイクルから次のイベントまでの前方を見た時間を指す。FRAC値は、以下でより詳細に説明するクロックジェネレータセクションから得られたDSPクロックについて提供される。したがって、FRACRSIは、リサンプラインクロックイベントから次のDSPクロックイベントまでの前方を見た時間である。同様に、FRACRSOは、リサンプラアウトクロックイベントから次のDSPクロックイベントまでの前方を見た時間である。
【0026】
いくつかの実施形態では、補間係数計算モジュール106(図1)は、コンバータクロックのFRACRSI値(リサンプラ入力TRSI)及びユーザクロックのFRACRSO値(リサンプラ出力TRSO)から補間係数pを計算する。補間係数は、
p=Tx/TRSI (1)
によって定義される。
【0027】
Txは、図3に示すクロック信号の相対配置から観察できるように、
Tx=TRSO−(FRACRSO−FRACRSI) (2)
によってFRAC値から導出される。
【0028】
補間係数であるpの値は、リサンプラ入力時間アキュムレータのFRACRSI値及びリサンプラ出力時間アキュムレータのFRACRSO値から導出することができる。すなわち、
【0029】
【数1】
【0030】
である。ここで、TDELAYは、目的とする用途に従って導入することができる任意の遅延である。
【0031】
【数2】
【0032】
シンボル
【0033】
【数3】
【0034】
は、モジュロ演算子を指す。サンプルレート変換システムでは、pの整数部は、入力データ先読み(input data look ahead)と解釈され、小数部は、現在の入力クロックサイクルへの現在の出力クロックサイクルのペネトレーション(penetration)と解釈される。補間係数210の一実施形態が図4に示されている。補間係数210は、小数点215によって分離された整数部212及び小数部214を含むように配置された複数の位置数字(例えば、2進法についてはビット)を含むことができる。補間係数210の小数部214は、上位小数部216と下位小数部218とにさらに再分割される。上位小数部216は、補間係数210の小数部214の有効度の大きい位置数字(例えば、上位ビット)を含み、下位小数部218は、補間係数210の小数部214の有効度の小さい位置数字(下位ビット)を含む。位置数字の特定の個数は、目的とする用途に応じて変化し得る。先読みバッファを含まない実施形態等、いくつかの実施形態では、整数部212は必要ではないため、含まれない。
【0035】
ポリフェーズフィルタ及び線形補間器を用いるサンプルレート変換システムでは、補間係数210は2進数として実施される。このシステムでは、pの小数部214の上位ビット216は、ポリフェーズサブフィルタ番号と解釈され、pの小数部214の下位ビット218は、線形補間係数と解釈される。整数部212が存在するとき、整数部212は、先読み値と解釈することができる。24ビット精度を有するpの一例示の値の場合、整数部212は3ビットを含むことができ、最大有効小数部216は9ビットを含むことができ、最小有効小数部218は12ビットを含むことができる。
【0036】
図5を参照すると、本発明によるサンプルレートコンバータを達成するための一例示のプロセス220を示すフロー図が示されている。第1のステップ222において、入力サンプルデータレートTRSIでサンプリングされた入力データを受信する。次のステップ224において、ユーザ出力サンプルレートTRSOに関連した値を受信する。いくつかの実施形態では、この値は、ユーザがプログラミングすることができる。ステップ226において、入力サンプルレート又は入力サンプルドメイン及び出力サンプルレート又は出力サンプルドメインのそれぞれと、プロセッサクロック又はプロセッサドメインとの間の位相関係を求める。これらの位相関係は、図3について上述した小数値FRACRSI、FRACRSOとして表すことができる。後続のステップ228において、求められた位相関係FRACRSI、FRACRSO、並びに入力クロックドメイン値TRSI及び出力クロックドメイン値TRSOから補間係数pを求める。補間係数pが得られると、補間係数pは、後続のステップ230において使用されて、サンプリングされた入力データが出力サンプルデータレートにリサンプリングされたものを示すサンプリングされた出力データを生成することができる。
【0037】
図6を参照すると、補間係数モジュール106(図1)等の補間係数を求めるための一例示の回路240のブロック図が示されている。補間係数回路240は、FRACRSO値を示すデジタル入力値i_frac_rsoの符号を反転する符号反転器242を含む。符号反転器242のオペレーションは、デジタルデータが記憶される性質に依存する。符号反転されたデジタル入力値i_frac_rso(FRACRSO)は、次に、図示する加算器224等の結合器において、FRACRSIを示すデジタル入力値i_frac_rsi及びTRSOを示すデジタル入力値i_t_rsoと結合される。加算器244の出力値は、値Tx(図3)を示すデジタルワードである。補間係数回路240は、値Txを示すデジタルワードに、FRSIを示すデジタル入力値i_f_rsiを乗算する乗算器246も含む。いくつかの実施形態では、補間係数回路240は、乗算器246の代わりに除算器を含む。それらの実施形態では、i_f_rsi値は、図10に示すようなi_f_rsiの逆数である値TRSIに置き換えられる。乗算器(除算器)から出力された値が補間係数pである。
【0038】
図7には、図6の補間係数回路で使用される例示のレジスタの概略表現が示されている。いくつかの実施形態では、pの比の計算は、Txの計算に起因する40ビット入力を有する。ここでは、15ビットの整数ビット及び25ビットの小数ビットが示されている。pの比の計算は、FRSI値からの40ビット入力も有する。その2ビットは整数であり、38ビットは小数である。図示するように、これらの2つの40ビット入力から、25ビット精度の乗算を行うことができる。カリフォルニア州サンノゼのアルテラ社(Altera Corp.)から市販されているハードウェア乗算器ブロックは、36ビット精度の乗算を提供する。この36ビット精度の乗算は、この目的には十分なものである。
【0039】
図8を参照すると、レート変換デジタイザ300の一例示の実施形態のブロック図が示されている。レート変換デジタイザ300は、サンプリングされた入力データi_converter_data[23:0]を受信する先読みバッファ302を含む。この先読みバッファ302は、1つ又は複数のデジタルフィルタに結合された1つ又は複数の出力を含む。例えば、先読みバッファ302は、ポリフェーズフィルタ304への第1の出力及びデルタフィルタ306への第2の出力を含む。フィルタ304、306のそれぞれは、先読みバッファ302から各入力を受信する。フィルタ出力は、線形補間器308へ入力される。線形補間器308は、間引き有限インパルス応答(FIR)ローパスフィルタに出力を提供する。いくつかの実施形態では、レート変換デジタイザ300の複数の部分は、実質的に複製されて、別個の高周波数パス及び低周波数パス等、2つ以上の経路を形成する。各経路は、それぞれの動作パラメータに適合されている。2つ以上の経路(図示せず)が提供されるとき、マルチプレクサ又は他の適した選択デバイスを使用して、異なる経路の中から1つが選択される。いくつかの実施形態では、このような選択デバイスは、レート変換処理を実質的に迂回する迂回経路を選択するように構成することができる。
【0040】
補間係数計算モジュール312も含まれる。この補間係数計算モジュール312は、FRACRSIを示すi_frac_rsi[39:0]、FRACRSOを示すi_frac_rso[32:0]、FRSIを示すi_f_rsi[39:0]、及びTRSOを示すi_t_rso[32:0]等の4つの入力デジタル値を1つ又は複数のアキュムレータ(図示せず)から受信する。補間係数計算モジュール312は、これらのさまざまな入力値から計算された補間係数pを出力として提供する。レート変換回路上のこの機能のいずれの複雑度も、デジタイザDSPクロックがコンバータクロックとは異なる可能性があることから由来するものである。いくつかの実施形態では、補間係数の少なくとも一部は、先読みバッファ302、ポリフェーズフィルタ304、デルタフィルタ306、及び線形補間器308へ送られる。補間係数pは、入力サンプルクロックサイクル又はコンバータ(例えばADC)クロックサイクルを基準とした出力サンプルクロックの位置又はユーザクロックの位置を表す。補間係数pの小数部の上位ビットは、ポリフェーズフィルタ304及びデルタフィルタ306のセットの中から一方を選択するのに使用することができる。補間係数pの小数部の下位ビットは、線形補間器308をスケーリングするのに使用することができる。レート変換デジタイザ300では、pの整数部は、データ先読みと解釈される。したがって、補間係数pの整数部は、先読みバッファ302へ転送され、補間係数の小数部の最大有効ビットである第1の小数部は、ポリフェーズフィルタ304及びデルタフィルタ306へ送られ、補間係数の小数部の最小有効ビットである第2の小数部は、線形補間器308へ送られる。
【0041】
レート変換デジタイザ300のすべて又は少なくとも一部は、当業者に知られているデジタル信号処理(DSP)技法を使用して、フィールドプログラマブルゲートアレイ(FPGA)において実施することができる。ポリフェーズフィルタ304、デルタフィルタ306、及びローパスフィルタ又はアンチエイリアシングフィルタ等の他の任意のフィルタの1つ又は複数は、デジタルフィルタとすることができる。デジタルフィルタの場合、それらのフィルタは、少なくとも部分的にフィルタ係数によって定義される。このようなフィルタ係数は、デジタルフィルタを設計するための標準的な設計実務に従って求めることができる。例えば、ポリフェーズフィルタ304は、16個のタップ及び512通りの位相セットを有し、その結果、係数は8192個となる。フィルタ係数を記憶するためのローカルメモリ318a、318b、318c(318と総称する)が提供される。この係数メモリ318のレイアウトは、利用可能なメモリブロックを活用するように最適化することができる。これらのメモリブロックは、FPGA設計では、読み出し専用メモリ(ROM)として扱われ、したがって、係数をロードするのに、明示的な制御回路部は必要とされない。
【0042】
レート変換デジタイザ300は、固定サンプルレートA/Dコンバータからのデータを、M/N補間ポリフェーズフィルタ304、線形補間器308、及び間引きFIRフィルタによって変換する。ポリフェーズフィルタ、線形補間器、及び間引きFIRフィルタの理論及びオペレーションは、当業者に既知である。これについては、例えば、J. G. Proakis及びD. K. ManolakisによるIntroduction to Digital Signal Processingの1992年第2版の第10章を参照されたい。この文献は、参照によりその全体が本明細書に援用される。
【0043】
先読みパイプライン302が提供されるとき、先読みパイプライン302は、1よりも大きな補間係数値に適応する。いくつかの実施形態では、先読みパイプライン302は、ポリフェーズフィルタ入力遅延線に1つ又は複数の余分なサンプルを単に記憶し、したがって、必要なときに、1つ又は複数のサンプルによって「未来」を見るオプションを与える。補間係数の整数部は、マルチプレクサを駆動して、適切なデータセットを選択する。
【0044】
線形補間器は、現在のポリフェーズフィルタの出力及び未来への1つの係数セットの出力を求め(例えば、計算し)、次に、きめ細かな補間係数によって重み付けられたこれらの2つの値の平均を計算することにより実施することができる。乗算器リソースを保存するために、この機能は、図示するようにデルタフィルタ306として実施することができる。この実施態様では、係数セット間の差分が事前に計算され、その結果、差分値は、フルサイズの乗算器ではなく小さな乗算器でハンドリングできる小さなものとなり得る。
【0045】
いくつかの実施形態では、入力アナログ信号は、先ず、アナログアンチエイリアシングフィルタ(図示せず)によって帯域が制限される。アナログフィルタリング阻止帯域に対する設計制約は、実質的に、A/Dエイリアス信号が、最も高い間引きFIR停止帯域よりも下に現れる可能性がないということである。この場合、その周波数は、正確にA/Dナイキストとなる。
【0046】
レート変換ソース構成340が図9に示されている。ソース構成は、レート変換ソース300が、Fuserレートのユーザデータを取り込み、変調ソースレート、すなわちコンバータレートのデータを作成する、サンプル変換を指す。ソースリサンプラの理論及び実施態様は、レート変換デジタイザ300(図8)のものと同様であるが、少なくとも3つの主な相違を有する。第1に、フィルタタップの個数が異なる場合がある。フィルタ係数値が異なる場合がある。リサンプラ出力周波数は、DSPクロックレートの整数約数とすることができる(例えば、FDSP=NFRSO)。この最後の相違によって、補間係数pが1未満の正の値、すなわち0≦p<1であるという点で、レート変換ソースアーキテクチャは簡単化される。
【0047】
この例示の実施形態では、レートFuserのユーザデータを示すデジタル値i_user_data[23:0]が受信される。このユーザデータは、図示するように、先読みパイプライン342において受信することができる。ソース構成340は、図8について上述した配置と同様のポリフェーズフィルタ344、デルタフィルタ346、線形補間器348、及び補間係数計算モジュール352も含む。補間係数は1未満であるため、先読みパイプライン342へ整数部を転送する必要はない。補間係数の上位ビット及び下位ビットは、図8に関連して上述したように、フィルタバンク344、346及び線形補間器348に分配される。リサンプリングされた出力デジタル信号は、線形補間器348の出力において利用可能であり、本明細書では、o_converter_data[23:0]と呼ばれる。
【0048】
補間係数計算モジュール360の一例示の実施形態の概略図が図10に示されている。モジュール360は、入力アキュムレータ362a、出力アキュムレータ362b、3入力加算器364、及び除算器366を含む。モジュール360は、入力サンプル周期TRSI及び出力サンプル周期TRSOを示す別個のデジタル入力値を受信する。これらのサンプル周期値TRSI、TRSOは、それぞれのレジスタ368a、368bに記憶することができる。モジュール360は、システム(すなわち、DSP)クロックTDSPを示すデジタル入力も受信する。入力サンプル周期TRSIは、制限として入力アキュムレータ362aに入力される。アキュムレータ362aは、処理クロックTDSPに従ってインクリメントされる。入力アキュムレータ362aは、小数出力FRACRSIを計算し、出力として小数出力FRACRSIを加算器364の第1の入力に提供する。同様に、出力サンプル周期TRSOも、制限として入力アキュムレータ362bに入力される。出力アキュムレータ362bも、処理クロックTDSPに従ってインクリメントされる。出力アキュムレータ362bは、小数出力FRACRSOを計算し、出力として小数出力FRACRSOを加算器364の第2の入力に提供する。加算器364のこの第2の入力は、当業者に知られている技法によって符号反転され、それによって、求められた合計からFRACRSO値が減算される。入力値TRSOは、加算器364の出力が値Tx(図3)を表すように、加算器364の第3の入力に入力される。いくつかの実施形態では、加算器364の出力は、除算器回路366の第1の被除数端子に入力される。入力値TRSIは、乗算器回路の商の出力値が補間係数pを表すように、除算器回路366の第2の除数入力に入力することができる。
【0049】
図11は、図10のアキュムレータ362a、362bのいずれにも適したアキュムレータ400の一例示の実施形態を示す概略図である。第1のアキュムレータ400(362a)は、制限値としてTRSIを受信し、インクリメント値としてTDSPを受信する。これらの入力値は、概略説明図に従って処理され、値FRACRSIをもたらす。同様に、第2のアキュムレータ400(362b)は、制限値としてTRSOを受信し、インクリメント値としてTDSPを受信する。これらの入力値は、概略説明図に従って処理され、値FRACRSOをもたらす。
【0050】
【表1】
【0051】
補間係数pは、0〜1.5の範囲を有する(2進小数点の右に)21ビット精度に計算することができる。pの計算は、
【0052】
【数4】
【0053】
である。
除算演算を回避するために、TRSIの逆数を事前に計算することができる。
p=(TRSO−FracRSO+FracRSI)(FRSI) (7)
入力周波数及び出力周波数の範囲が大きな範囲をカバーする用途では、補間係数計算精度は、図13に示すように、補間係数の適切な2進スケーリングによって保存することができる。
【0054】
いくつかの実施形態では、DSPクロック周波数とリサンプラ出力周波数との間の整数関係(FDSP=NFRSO)によって、補間係数の計算が簡単化される。ソースの場合、0≦p<1を保証することができ、したがって、先読みパイプラインは必要とされない。
【0055】
以下の例では、ユーザは、200MHzでサンプリングされた40MHz BWの信号を生成するものとする。ユーザデータは、102GHz(512×200MHz)にサンプルレートを持ってくるためにゼロパッディングされる。200MHzサンプルレートのイメージは、ポリフェーズFIRフィルタによって減衰される。この信号は、内部の4倍(4×)補間フィルタを含むコンバータに印加される。補間された信号は、この時点で533MHzのサンプルレートであり、0次オーダホールド(sin x/x)応答を有するアナログに変換される。最後に、アナログローパスフィルタは、コンバータレートサンプリングイメージを除去する。
【0056】
図8に示すサンプルレートコンバータを参照すると、線形補間器308は、デルタフィルタ306の出力に、線形補間係数の下位ビット(例えば、図4に示す下位ビット218)を乗算する。この例示の14ビット線形補間係数は、[0,1)の範囲を有する。この例示の実施形態では、線形補間器308の出力は、例えば7ビットといった複数ビット分、右にシフトされる(且つ符号拡張される)。これは、デルタフィルタ係数が、ROM318bに記憶される前に同じ量だけ(例えば、27倍)スケールアップされた状況を補償するために行われる。このブロックの出力データは、次に、メインポリフェーズフィルタ304の出力に加えられる。
【0057】
いくつかの実施形態では、サンプルレートコンバータは、迂回モードを含む。迂回モードが設定されているとき、ポリフェーズFIRフィルタ及び間引きFIRフィルタを含むサンプルレートコンバータの少なくともかなりの部分が迂回される。データは、FA/Dレートでリサンプラに入力し、次に、リサンプラの処理が何ら行われることなく、その同じレートでリサンプラから去る。このモードは、生のADCサンプルへのユーザアクセスを提供する。このようなアクセスは、ユーザが、キャプチャされたデータに対してFFTを実行する予定である場合に有用であり、ユーザは、最大でコンバータのナイキスト(FA/D/2)までの周波数成分を見ることになる。迂回モードによって、アナログフロントエンドがこの状況を許容するならば、ユーザは、アンダーサンプリング形式でデータレートコンバータを用いることも可能になる。コンバータのナイキストよりも大きなADC入力におけるトーンは、エイリアシングされて、DCとFA/D/2との間の帯域に戻る。この時点で、迂回モードのデータレートコンバータは、このキャプチャされたデータに対して処理を何ら実行しない。
【0058】
いくつかの実施形態では、リサンプラ低周波数入力パイプライン、データ先読み、デルタフィルタ、線形補間、及びポリフェーズフィルタは、マルチサイクル状態マシンで実施される。例えば、1つのマルチサイクル状態マシンは、信号のすべてを処理することができる1つの36×36ビット乗算器を利用する。このようなハードウェア効率は、必要とされる出力データレートがFPGA DSPクロックレートよりもはるかに低いため可能である。
【0059】
図12を参照すると、ブロック図は、アキュムレータ/補間計算機回路600の代替的な一実施形態を示す。位相アキュムレータ600は、リアルタイムコンバータクロックの状態、仮想ユーザクロックの状態、及びこれらのクロック間の相対位相の経過を追跡する。この状態及び相対位相の情報は、コンバータクロックドメインとユーザクロックドメインとの間でユーザの信号を変換するために、サンプルレートコンバータ300、340(図8、図9)が使用することができる。リサンプラ300は、先読みを有する入力データパイプライン302、ポリフェーズFIRフィルタ304、及び線形補間器308から成り(図8)、リサンプラ340は、先読みを有する入力データパイプライン342、ポリフェーズFIRフィルタ344、及び線形補間器348から成る(図9)。ソースチャネル(例えば、図9)上のリサンプラ340は、仮想ユーザレートのデータを取り込み、固定コンバータレートのデータを作成して出力する。キャプチャチャネル(例えば、図8)上のリサンプラ300は、A/Dコンバータから固定コンバータレートのデータを取り込み、仮想ユーザレートでデータを作成して出力する。
【0060】
アキュムレータは、DSPクロックと同期したリサンプラ入力データを適格とすることができる。例えば、DSPクロックごとに適格とされる入力データポイントが0個、1個、又は2個存在することができる。DSPクロックごとに適格とされる出力データポイントが0個又は1個存在することができる。アキュムレータ600は、リアルタイムコンバータクロックの状態も追跡する。例えば、アキュムレータ600は、各コンバータクロックの状態を追跡する。コンバータクロックリセットイベントは、コンバータクロックアキュムレータ及びコンバータクロックが同期するようにこれらの2つをリセットする。このリセットイベントはt0も定義する。コンバータクロックリセットイベントは、通常、電源再投入後又は他の破局的なイベントの後に発生する。位相アキュムレータは、コンバータクロック周波数を正確に照合しなければならない。
【0061】
アキュムレータ600は、仮想ユーザクロックの状態を追跡する。このユーザクロックは、時刻t0に対応してリセットすることができる。正確なランツーランタイミング反復可能性(run to run timing repeatability)を保証できるように、ユーザクロックのリセットによって、ユーザクロックアキュムレータがリセットされる。このようなユーザクロックリセットは、テスタの用途におけるテストシーケンスの開始時等、通常のオペレーション中の固有のブレイクポイントで生じる場合がある。ユーザクロックは、高分解能又はその整数分数(integer fraction)の点から追跡することができる。好ましくは、ユーザクロック周波数は、2進小数の周期に基づいてプログラミング可能である。一例示の実施形態では、ユーザクロック周期は、少なくとも10ns/244分解能を有し、ユーザクロック範囲は、5kHz〜400MHzである。
【0062】
いくつかの実施形態では、遅延値又はスキュー値TDELAYを追加することができる。このような遅延値又はスキュー値は、デジタルサブシステムを基準としてアナログ波形を時間において効果的にシフトする。有利なことには、このような遅延値は、ユーザクロック又はコンバータクロックのいずれもその後リセットする必要なく、変更することができる。いくつかの実施形態では、スキュー値は、4nsの範囲及び少なくとも約10ns/232(すなわち、0.0023fs)の分解能を有する。いくつかの実施形態では、TDELAYの値を0に設定することができる。すなわち完全に無視することができる。各リサンプラ出力データポイントについて、リサンプラ補間係数
p=(Tx+TDELAY)/TRSI (8)
を計算する。ここで、TRSIは、リサンプラ入力クロック周期であり、Txは、現在のDSPクロックに先行する最も近時のリサンプラ入力クロックから現在のDSPクロックサイクルにおける最も近時のリサンプラ出力クロックまでの時間である。
【0063】
ユーザクロックの追跡が高分解能値の点から必要とされる用途の場合、正確な基本クロックドメイン(underlying clock domain)で動作する正確な時間アキュムレータを有することが必要である。したがって、ユーザクロックは、一定の周期分解能と合成される。基本イベントをDSPクロックドメインに変換する方法が必要とされる。1つのこのような実施態様は、DSPクロックドメインと基本システムクロックドメインとの間の一致点において基本システムクロックドメインに同期されたDSPクロックドメインで動作する(正確な)位相アキュムレータ602の第2のセットを提供するものである。第2の実施態様は、3つごとの基本システムクロックドメインユーザクロック状態を8つのDSPドメインユーザクロック状態に直接マッピングすることである。
【0064】
2つの時間アキュムレータの状態から補間係数を計算しなければならないという複雑さは、DSPクロック周波数、リサンプラ入力周波数、及びリサンプラ出力周波数がすべて異なることに由来する。この状況は、リサンプラ出力クロックがDSPクロックと同じであるか又はDSPクロックの或る単純倍数である実施形態については簡単化される。
【0065】
基本システムクロックドメインユーザクロック時間アキュムレータの機能は、基本システムクロックサイクルの点からユーザクロックの状態の経過を追跡することである(t0は、基本システムクロックイベントの値に、ユーザクロックリセットイベント時の高精度なシステムクロック位相値を加えたものに従って定義される)。任意の所与の基本システムクロックイベント時において、ユーザクロックサイクルを確定的に選択して基本システムクロックイベントに一致させることを可能にするには、t0以降の高分解能カウントの総数を知る必要がある。リサンプラ補間係数計算への入力として、ユーザクロックを基準とした時間も知る必要がある。これらの必要性の双方について、t0から現在の基本システムクロックイベントまでの時間が実際に測定される。
【0066】
tN=NTref (9)
ここで、tNは、N番目の基本システムクロックイベント時におけるt0以降の時間であり、Nは、t0以降の基本システムクロックサイクル数であり、Trefは、基本システムクロックであるシステムクロックの周期、すなわち10nsである。
【0067】
ユーザクロック周期の点からtNを表すことによって、小数値FRACは、最後のユーザクロック以降の時間(次のユーザクロックまでの時間である残差ではない)を求めることができる。これは、数学的には、
【0068】
【数5】
【0069】
によって表すことができる。ここで、FRACuserは、最後のユーザクロックからの時間であり、Tuserは、ユーザクロック周期であり、
【0070】
【数6】
【0071】
は、モジュロ演算子である。基準クロック当たり複数の仮想クロックイベントが存在する状況のために、この最後のユーザクロックからの時間を測定する方法は、この用途の残差方法よりも好ましい。この場合、複数の剰余値を生成する必要があるのに対して、最後のユーザクロック(すなわちFRAC)値からの時間は、単一の時間で十分である。
【0072】
一般に、基準クロックから合成されたユーザクロックは、基準クロックの有理分数となる、すなわち、
【0073】
【数7】
【0074】
又は時間の点からは、
【0075】
【数8】
【0076】
となる。A項は、TrefをA Tresolutionとして表すことができるように固定とすることができ、したがって、式(9)、(10)、及び(12)を組み合わせることによって
【0077】
【数9】
【0078】
が与えられる。関数
【0079】
【数10】
【0080】
は、モジュロBアキュムレータとしてハードウェアにおいて実施される。このモジュロBアキュムレータでは、値A=Tref/Tresolutionが事前に計算され、次に、各基本システムクロックサイクルに累算される。
【0081】
リサンプラオペレーションは、システムクロックサイクル、すなわちDSPクロックサイクルで行われるため、基本システムクロックドメイン時間アキュムレータ値は、DPSクロックドメインにマッピングされる。このマッピングが、長期のフィードバックなしで行われる場合、導入されたいずれの誤差も累算せず、したがって、マッピングは近似とすることができる。以下に示す値は、リサンプラ器具の例示のクロック周波数についてのものである。
【0082】
【数11】
【0083】
コンバータクロック時間アキュムレータは、コンバータクロックアキュムレータが、ユーザクロックリセットイベントによってではなく、コンバータクロックリセットイベントによってリセットされることを除いて、ユーザクロック時間アキュムレータと同じである。コンバータクロック周波数は、ユーザクロック周波数よりもはるか多く制限され、したがって、低分解能アキュムレータが許容可能となる。
【0084】
リサンプラ出力クロックがDSPクロックと一致する場合は、DSPクロックの「後」に生じる仮想リサンプラクロックとして扱われ、その結果、FRAC値が常に0よりも大きいことを暗に意味する。
【0085】
一例示の実施形態では、ユーザクロックの範囲の要件は、340MHzから、下は5kHzまでである。ユーザクロック時間アキュムレータは、したがって、
【0086】
【数12】
【0087】
をカウントできなければならず、したがって、この範囲をカバーするには、14ビットが必要とされる。
いくつかの実施形態では、ユーザクロックは、周期を整数インクリメントしたものに基づいている。一般に、アナログクロックとデジタルクロックとの間のコヒーレンシを達成することはできないが、本発明者の用途に十分近づけることはできる。関心のある領域は、(1)FFT出力が「漏れ」を有し、したがって、誤りのある結果を与えること、及び(2)時間の経過に伴いアナログ信号とデジタル信号との間にゆっくりとした位相ドリフトがあるということである。
【0088】
正弦波信号対雑音比に対する周波数精度の影響は、長方形ウィンドウFFT解析によって測定され、近似であることが知られている。これについては、例えば、Rosenfield及びMaxの「When ‘Almost’ is Good Enough: a Fresh Look at DSP Clock Rates」, International Test Conference, 1988を参照されたい。この文献は、参照によりその全体が本明細書に援用される。
【0089】
【数13】
【0090】
ここで、Tは、キャプチャされて解析された信号の継続時間であり、ω1は、実際の正弦波周波数であり、ω2は、理想的な正弦波周波数である。このSNRは、
【0091】
【数14】
【0092】
と表すことができる。ここで、Mは、解析された正弦波サイクルの個数であり、eは、相対周波数誤差である。
シミュレーションソフトウェアアプリケーションを使用して行われたテストは、相関が0.1dBよりも良好であることを示した。ナイキスト周波数については、雑音電力の約2分の1が、M−1ビンに集中し、したがって、SNR+3dBのSFDR制限がある。大規模FFT(64kの実用上の制限を考慮)及び低雑音器具では、非コヒーレントクロックに起因したSFDR制限は、160dBよりも良好であるはずである。
【0093】
157dBのSNRを達成するには、10ns/244(5.6 E−22秒)のユーザクロック分解能が必要とされる。5.6 E−22秒のユーザクロック周期分解要件を使用すると、最悪の場合の位相ドリフトは、
【0094】
【数15】
【0095】
となる。すなわち、6.8ps/分;400ps/時間となる。
pの範囲は、その寄与係数の極値から導出される。TDELAYを無視すると、最小のpの値は、
【0096】
【数16】
【0097】
から得られる。FRAC値は(0,T]の範囲を有し、したがって、pMINはほぼ0である。pの最大値は、Txの最大値から得られ、その結果、FRACRSOの最小値から得られる。つまり、
【0098】
【数17】
【0099】
となる。
FRACRSOの最小値は、リサンプラ出力クロックがDSPクロックの直前に発生したときに生じ、このとき、FRACRSO=TRSO−TDSPである。したがって、
【0100】
【数18】
【0101】
である。Kが整数であるとし、リサンプラ入力クロックTRSOとDSPクロックTDSPとが同相に位置合わせされている状況で、TRSO=KTDSPである以下に示す特殊な場合には、FRACRSOは常にTRSOに等しいことに留意されたい。このような場合には、
【0102】
【数19】
【0103】
である。
補間係数pは、リサンプラ出力クロックとリサンプラ入力クロックとの相対位相を表す。リサンプラは、全パスポリフェーズサブフィルタ(理想的な相対位相を一まとめに扱うインクリメンタル遅延値を有する)の2つを適用し、次に、2つの結果の間を線形補間することによって出力値を補間する。このようなリサンプラのSNRは、
【0104】
【数20】
【0105】
であることが知られている。ここで、Ifilterは、ポリフェーズサブフィルタの個数であり、ωxは、相対帯域幅2πBWuser/FRSIである。これについては、例えば、J. G. Proakis及びD. K. ManolakisによるIntroduction to Digital Signal Processingの(第2版1992年)に説明されているものを参照されたい。さらに、線形補間器自体が、実際には、
【0106】
【数21】
【0107】
のSNRを有するポリフェーズフィルタである。
どの自動化された試験機器、器具類、又は通信システムも、波形デジタイザ、任意波形ジェネレータ、変調システム、及び復調システムの設計及び実施が簡単化されるため、本発明から利益を受ける。
【0108】
本明細書では、本発明の好ましい実施形態及びさまざまな代替的な実施形態を開示し、詳細に説明してきたが、本発明の趣旨及び範囲から逸脱することなく、形式及び細部におけるさまざまな変更をそれらの実施形態において行えることが当業者には明らかであり得る。
【0109】
本明細書に示した例は、本発明の精神及び範囲を多少なりとも限定するものと決して解釈されるべきでないことに留意すべきである。具体的な例及び実施態様は、本明細書では、例証のためにのみ示されている。また、好ましい実施形態では、フィルタの状態数は、サンプルレート変換を実行するために変更されたときに不変のままとすることができるが、代替的な実施形態では、本発明の精神及び範囲から逸脱することなく、付加的な状態を追加することができる。
【特許請求の範囲】
【請求項1】
サンプリングされたデータをレート変換するための方法であって、
入力サンプルクロックに従ってサンプリングされた入力データを受信すること、
前記入力サンプルクロックとは非整数値だけ異なる出力サンプルクロックを示す値を受信すること、
前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれとプロセッサクロックとの間の各関係を求めることであって、前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれは、前記プロセッサクロックから独立している、求めること、
前記入力サンプルクロックと、前記出力サンプルクロックと、該入力サンプルクロック及び該出力サンプルクロックのそれぞれと前記プロセッサクロックとの間の前記求められた関係との関数として補間係数を求めること、並びに
前記入力データと前記補間係数との関数として出力データを生成することであって、該出力データは、前記出力サンプルクロックに従ってサンプリングされた前記入力データに対応し、それによって、前記入力データを前記入力サンプルクロックから前記出力サンプルクロックへレート変換する、生成すること、
を含む方法。
【請求項2】
前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれと前記プロセッサクロックとの間の関係をそれぞれ求める前記行為は、
前記入力サンプルクロックと前記プロセッサクロックとの間の遅延を示す入力位相値を求めること、及び
前記出力サンプルクロックと前記プロセッサクロックとの間の遅延を示す出力位相値を求めること、
を含む、請求項1に記載の方法。
【請求項3】
入力位相値を求める前記行為及び出力位相値を求める前記行為の少なくとも一方は、アキュムレータを使用することを含む、請求項2に記載の方法。
【請求項4】
前記補間係数を求める前記行為は、
前記出力位相値と前記入力位相値との間の差分として量を求めると共に、該求められた差分値を前記出力サンプルクロックの周期から減算すること、及び
前記求められた量を前記入力サンプルクロックの周期によって除算すること、
を含む、請求項1に記載の方法。
【請求項5】
前記量を求める前記行為は、
前記出力位相値と前記入力位相値との間の差分を求めること、
前記出力サンプルクロックの周期から、前記出力位相値と前記入力位相値との間の差分を減算すること、及び
前記減算された結果に遅延値を加算することであって、前記サンプリングされた出力データは、前記遅延値に比例して時間が遅延される、加算すること、
を含む、請求項4に記載の方法。
【請求項6】
前記遅延値は選択可能である、請求項5に記載の方法。
【請求項7】
サンプリングされた入力データの2つ以上の順次セットをタップ付き遅延線に記憶することをさらに含み、サンプリングされた入力データの各セットは、各タップに関連付けられ、データの異なる順次セットは、各タップを通じてアクセス可能である、請求項1に記載の方法。
【請求項8】
前記補間係数の整数部を入力データ先読みと解釈することをさらに含む、請求項1に記載の方法。
【請求項9】
前記補間係数の上位小数部に従ってポリフェーズフィルタ選択を行うことをさらに含む、請求項1に記載の方法。
【請求項10】
前記補間係数の下位小数部を線形補間スケーリング係数と解釈することをさらに含む、請求項9に記載の方法。
【請求項11】
前記補間係数を求めることは、前記入力サンプルクロック、前記出力サンプルクロック、及び前記プロセッサクロックの少なくとも1つの異なるサンプル中に繰り返される、請求項1に記載の方法。
【請求項12】
前記補間係数を求めることは、前記出力サンプルクロックの各サンプルについて繰り返される、請求項11に記載の方法。
【請求項13】
サンプリングされたデータを第1のレートから第2のレートへ変換するための装置であって、
入力サンプルクロックに従ってサンプリングされた入力データを受信し、出力サンプルクロックに従ってサンプリングされた前記入力データを示す出力データを作成するように構成されたレートコンバータであって、該レートコンバータは、前記入力サンプルクロック及び前記出力サンプルクロックのいずれからも独立している処理クロックレートで動作する、レートコンバータと、
前記処理クロックを受信し、前記プロセッサクロックの状態を監視するように構成され且つ前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれと前記プロセッサクロックとの各関係を求めるように構成されたアキュムレータと、
前記アキュムレータ及び前記レートコンバータと通信する補間係数回路であって、該補間係数回路は、前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれと前記プロセッサクロックとの前記各関係を受信し、少なくとも、上位小数部及び下位小数部を有する補間係数を計算するように構成され、該補間係数は、前記入力サンプルクロック、前記出力サンプルクロック、及び前記プロセッサクロックの関数として計算され、前記レートコンバータは、前記補間係数の関数として、前記入力データを前記出力データに変換するように構成される、補間係数回路と、
を備える装置。
【請求項14】
前記アキュムレータは、前記入力サンプルクロックに関連した値、前記出力サンプルクロックに関連した値、並びに前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれと前記プロセッサクロックとの前記各関係に関連した値を記憶するように構成された複数のレジスタを含む、請求項13に記載の装置。
【請求項15】
前記アキュムレータは、モジュロ算術演算機能を備える、請求項14に記載の装置。
【請求項16】
前記レートコンバータは、
前記補間係数回路と通信するデジタル入力フィルタであって、前記補間係数の上位機能部を受信し、入力サンプルクロックに従ってサンプリングされた入力データをフィルタリングするように構成される、デジタル入力フィルタと、
前記デジタル入力フィルタの出力及び前記補間係数回路と通信する線形補間器であって、前記補間係数の下位小数部を受信する、線形補間器と、
前記線形補間器の出力と通信するローパスフィルタであって、入力サンプルクロックでサンプリングされて入力されたデータは、前記出力サンプルクロックでサンプリングされた対応する出力データにレート変換される、ローパスフィルタと、
を備える、請求項13に記載の装置。
【請求項17】
受信される入力データと前記デジタル入力フィルタとの間に先読みバッファをさらに備え、該先読みバッファも、前記補間係数回路と通信し、前記補間係数の整数部を受信する、請求項16に記載の装置。
【請求項18】
前記デジタル入力フィルタは、ポリフェーズフィルタ及びデルタフィルタを備える、請求項16に記載の装置。
【請求項19】
前記デジタル入力フィルタのフィルタ係数を記憶するように構成された少なくとも1つのメモリブロックをさらに備える、請求項13に記載の装置。
【請求項20】
前記レートコンバータ、前記アキュムレータ、及び前記補間係数回路の少なくとも1つを実施するデジタル信号プロセッサをさらに備える、請求項13に記載の装置。
【請求項21】
サンプリングされたデータを第1のレートから第2のレートへレート変換するための装置であって、
入力サンプルクロックに従ってサンプリングされた入力データを受信する手段と、
前記入力サンプルクロックとは非整数値だけ異なる出力サンプルクロックを示す値を受信する手段と、
前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれとプロセッサクロックとの間の各関係を求める手段であって、前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれは、前記プロセッサクロックから独立している、求める手段と、
前記入力サンプルクロックと、前記出力サンプルクロックと、該入力サンプルクロック及び該出力サンプルクロックのそれぞれと前記プロセッサクロックとの間の前記求められた関係との関数として補間係数を求める手段と、
前記入力データと前記補間係数との関数として出力データを生成する手段であって、該出力データは、前記出力サンプルクロックに従ってサンプリングされた前記入力データに対応し、それによって、前記入力データを前記入力サンプルクロックから前記出力サンプルクロックへレート変換する、生成する手段と、
を備える装置。
【請求項1】
サンプリングされたデータをレート変換するための方法であって、
入力サンプルクロックに従ってサンプリングされた入力データを受信すること、
前記入力サンプルクロックとは非整数値だけ異なる出力サンプルクロックを示す値を受信すること、
前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれとプロセッサクロックとの間の各関係を求めることであって、前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれは、前記プロセッサクロックから独立している、求めること、
前記入力サンプルクロックと、前記出力サンプルクロックと、該入力サンプルクロック及び該出力サンプルクロックのそれぞれと前記プロセッサクロックとの間の前記求められた関係との関数として補間係数を求めること、並びに
前記入力データと前記補間係数との関数として出力データを生成することであって、該出力データは、前記出力サンプルクロックに従ってサンプリングされた前記入力データに対応し、それによって、前記入力データを前記入力サンプルクロックから前記出力サンプルクロックへレート変換する、生成すること、
を含む方法。
【請求項2】
前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれと前記プロセッサクロックとの間の関係をそれぞれ求める前記行為は、
前記入力サンプルクロックと前記プロセッサクロックとの間の遅延を示す入力位相値を求めること、及び
前記出力サンプルクロックと前記プロセッサクロックとの間の遅延を示す出力位相値を求めること、
を含む、請求項1に記載の方法。
【請求項3】
入力位相値を求める前記行為及び出力位相値を求める前記行為の少なくとも一方は、アキュムレータを使用することを含む、請求項2に記載の方法。
【請求項4】
前記補間係数を求める前記行為は、
前記出力位相値と前記入力位相値との間の差分として量を求めると共に、該求められた差分値を前記出力サンプルクロックの周期から減算すること、及び
前記求められた量を前記入力サンプルクロックの周期によって除算すること、
を含む、請求項1に記載の方法。
【請求項5】
前記量を求める前記行為は、
前記出力位相値と前記入力位相値との間の差分を求めること、
前記出力サンプルクロックの周期から、前記出力位相値と前記入力位相値との間の差分を減算すること、及び
前記減算された結果に遅延値を加算することであって、前記サンプリングされた出力データは、前記遅延値に比例して時間が遅延される、加算すること、
を含む、請求項4に記載の方法。
【請求項6】
前記遅延値は選択可能である、請求項5に記載の方法。
【請求項7】
サンプリングされた入力データの2つ以上の順次セットをタップ付き遅延線に記憶することをさらに含み、サンプリングされた入力データの各セットは、各タップに関連付けられ、データの異なる順次セットは、各タップを通じてアクセス可能である、請求項1に記載の方法。
【請求項8】
前記補間係数の整数部を入力データ先読みと解釈することをさらに含む、請求項1に記載の方法。
【請求項9】
前記補間係数の上位小数部に従ってポリフェーズフィルタ選択を行うことをさらに含む、請求項1に記載の方法。
【請求項10】
前記補間係数の下位小数部を線形補間スケーリング係数と解釈することをさらに含む、請求項9に記載の方法。
【請求項11】
前記補間係数を求めることは、前記入力サンプルクロック、前記出力サンプルクロック、及び前記プロセッサクロックの少なくとも1つの異なるサンプル中に繰り返される、請求項1に記載の方法。
【請求項12】
前記補間係数を求めることは、前記出力サンプルクロックの各サンプルについて繰り返される、請求項11に記載の方法。
【請求項13】
サンプリングされたデータを第1のレートから第2のレートへ変換するための装置であって、
入力サンプルクロックに従ってサンプリングされた入力データを受信し、出力サンプルクロックに従ってサンプリングされた前記入力データを示す出力データを作成するように構成されたレートコンバータであって、該レートコンバータは、前記入力サンプルクロック及び前記出力サンプルクロックのいずれからも独立している処理クロックレートで動作する、レートコンバータと、
前記処理クロックを受信し、前記プロセッサクロックの状態を監視するように構成され且つ前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれと前記プロセッサクロックとの各関係を求めるように構成されたアキュムレータと、
前記アキュムレータ及び前記レートコンバータと通信する補間係数回路であって、該補間係数回路は、前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれと前記プロセッサクロックとの前記各関係を受信し、少なくとも、上位小数部及び下位小数部を有する補間係数を計算するように構成され、該補間係数は、前記入力サンプルクロック、前記出力サンプルクロック、及び前記プロセッサクロックの関数として計算され、前記レートコンバータは、前記補間係数の関数として、前記入力データを前記出力データに変換するように構成される、補間係数回路と、
を備える装置。
【請求項14】
前記アキュムレータは、前記入力サンプルクロックに関連した値、前記出力サンプルクロックに関連した値、並びに前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれと前記プロセッサクロックとの前記各関係に関連した値を記憶するように構成された複数のレジスタを含む、請求項13に記載の装置。
【請求項15】
前記アキュムレータは、モジュロ算術演算機能を備える、請求項14に記載の装置。
【請求項16】
前記レートコンバータは、
前記補間係数回路と通信するデジタル入力フィルタであって、前記補間係数の上位機能部を受信し、入力サンプルクロックに従ってサンプリングされた入力データをフィルタリングするように構成される、デジタル入力フィルタと、
前記デジタル入力フィルタの出力及び前記補間係数回路と通信する線形補間器であって、前記補間係数の下位小数部を受信する、線形補間器と、
前記線形補間器の出力と通信するローパスフィルタであって、入力サンプルクロックでサンプリングされて入力されたデータは、前記出力サンプルクロックでサンプリングされた対応する出力データにレート変換される、ローパスフィルタと、
を備える、請求項13に記載の装置。
【請求項17】
受信される入力データと前記デジタル入力フィルタとの間に先読みバッファをさらに備え、該先読みバッファも、前記補間係数回路と通信し、前記補間係数の整数部を受信する、請求項16に記載の装置。
【請求項18】
前記デジタル入力フィルタは、ポリフェーズフィルタ及びデルタフィルタを備える、請求項16に記載の装置。
【請求項19】
前記デジタル入力フィルタのフィルタ係数を記憶するように構成された少なくとも1つのメモリブロックをさらに備える、請求項13に記載の装置。
【請求項20】
前記レートコンバータ、前記アキュムレータ、及び前記補間係数回路の少なくとも1つを実施するデジタル信号プロセッサをさらに備える、請求項13に記載の装置。
【請求項21】
サンプリングされたデータを第1のレートから第2のレートへレート変換するための装置であって、
入力サンプルクロックに従ってサンプリングされた入力データを受信する手段と、
前記入力サンプルクロックとは非整数値だけ異なる出力サンプルクロックを示す値を受信する手段と、
前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれとプロセッサクロックとの間の各関係を求める手段であって、前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれは、前記プロセッサクロックから独立している、求める手段と、
前記入力サンプルクロックと、前記出力サンプルクロックと、該入力サンプルクロック及び該出力サンプルクロックのそれぞれと前記プロセッサクロックとの間の前記求められた関係との関数として補間係数を求める手段と、
前記入力データと前記補間係数との関数として出力データを生成する手段であって、該出力データは、前記出力サンプルクロックに従ってサンプリングされた前記入力データに対応し、それによって、前記入力データを前記入力サンプルクロックから前記出力サンプルクロックへレート変換する、生成する手段と、
を備える装置。
【図4】
【図5】
【図6】
【図13】
【図1】
【図2】
【図3】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図5】
【図6】
【図13】
【図1】
【図2】
【図3】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公表番号】特表2011−504340(P2011−504340A)
【公表日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願番号】特願2010−534225(P2010−534225)
【出願日】平成20年11月14日(2008.11.14)
【国際出願番号】PCT/US2008/083619
【国際公開番号】WO2009/065027
【国際公開日】平成21年5月22日(2009.5.22)
【出願人】(591069226)テラダイン・インコーポレーテッド (56)
【氏名又は名称原語表記】TERADYNE INCORPORATED
【公表日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願日】平成20年11月14日(2008.11.14)
【国際出願番号】PCT/US2008/083619
【国際公開番号】WO2009/065027
【国際公開日】平成21年5月22日(2009.5.22)
【出願人】(591069226)テラダイン・インコーポレーテッド (56)
【氏名又は名称原語表記】TERADYNE INCORPORATED
[ Back to top ]