(57)【特許請求の範囲】
【請求項１】
サンプリングされたデータをレート変換するための方法であって、
入力サンプルクロックに従ってサンプリングされた入力データを受信すること、
前記入力サンプルクロックのサンプリングレートとは非整数値だけ異なるサンプリングレートを有する出力サンプルクロックを示す値を受信すること、
前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれとプロセッサクロックとの間の各位相関係を求めること、前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれは、前記プロセッサクロックから独立しており、
前記入力サンプルクロックと、前記出力サンプルクロックと、該入力サンプルクロック及び該出力サンプルクロックのそれぞれと前記プロセッサクロックとの間の前記求められた位相関係との関数として補間係数を求めること、並びに
前記入力データと前記補間係数との関数として出力データを生成すること、該出力データは、前記出力サンプルクロックに従ってサンプリングされた前記入力データに対応し、それによって、前記入力データを前記入力サンプルクロックから前記出力サンプルクロックへレート変換する、
を含む方法。
【請求項２】
前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれと前記プロセッサクロックとの間の位相関係をそれぞれ求める前記行為は、
前記入力サンプルクロックと前記プロセッサクロックとの間の遅延を示す入力位相値を求めること、及び
前記出力サンプルクロックと前記プロセッサクロックとの間の遅延を示す出力位相値を求めること、
を含む、請求項１に記載の方法。
【請求項３】
入力位相値を求める前記行為及び出力位相値を求める前記行為の少なくとも一方は、アキュムレータを使用することを含む、請求項２に記載の方法。
【請求項４】
前記補間係数を求める前記行為は、
前記出力位相値と前記入力位相値との間の差分として量を求めると共に、該求められた差分値を前記出力サンプルクロックの周期から減算すること、及び
前記求められた量を前記入力サンプルクロックの周期によって除算すること、
を含む、請求項２に記載の方法。
【請求項５】
前記量を求める前記行為は、
前記出力位相値と前記入力位相値との間の差分を求めること、
前記出力サンプルクロックの周期から、前記出力位相値と前記入力位相値との間の前記差分を減算すること、及び
前記減算された結果に遅延値を加算することであって、前記サンプリングされた出力データは、前記遅延値に比例して時間が遅延される、加算すること、
を含む、請求項４に記載の方法。
【請求項６】
前記遅延値は選択可能である、請求項５に記載の方法。
【請求項７】
サンプリングされた入力データの２つ以上の順次セットをタップ付き遅延線に記憶することをさらに含み、サンプリングされた入力データの各セットは、各タップに関連付けられ、データの異なる順次セットは、各タップを通じてアクセス可能である、請求項１に記載の方法。
【請求項８】
前記補間係数の整数部を入力データ先読みと解釈することをさらに含む、請求項１に記載の方法。
【請求項９】
前記補間係数の上位小数部に従ってポリフェーズフィルタ選択を行うことをさらに含む、請求項１に記載の方法。
【請求項１０】
前記補間係数の下位小数部を線形補間スケーリング係数と解釈することをさらに含む、
請求項９に記載の方法。
【請求項１１】
前記補間係数を求めることは、前記入力サンプルクロック、前記出力サンプルクロック、及び前記プロセッサクロックの少なくとも１つの異なるサンプル中に繰り返される、請求項１に記載の方法。
【請求項１２】
前記補間係数を求めることは、前記出力サンプルクロックの各サンプルについて繰り返される、請求項１１に記載の方法。
【請求項１３】
サンプリングされたデータを第１のレートから第２のレートへ変換するための装置であって、
入力サンプルクロックに従ってサンプリングされた入力データを受信し、出力サンプルクロックに従ってサンプリングされた前記入力データを示す出力データを作成するように構成されたレートコンバータであって、該レートコンバータは、前記入力サンプルクロック及び前記出力サンプルクロックのいずれからも独立している処理クロックレートで動作する、レートコンバータと、
前記処理クロックを受信し、プロセッサクロックの状態を監視するように構成され且つ前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれと前記プロセッサクロックとの各位相関係を求めるように構成されたアキュムレータと、
前記アキュムレータ及び前記レートコンバータと通信する補間係数回路であって、該補間係数回路は、前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれと前記プロセッサクロックとの前記各位相関係を受信し、少なくとも、上位小数部及び下位小数部を有する補間係数を計算するように構成され、該補間係数は、前記入力サンプルクロック、前記出力サンプルクロック、及び前記プロセッサクロックに対する前記入力サンプルクロックと前記出力サンプルクロックのそれぞれの位相関係の関数として計算され、前記レートコンバータは、前記補間係数の関数として、前記入力データを前記出力データに変換するように構成される、補間係数回路と、
を備える装置。
【請求項１４】
前記アキュムレータは、前記入力サンプルクロックに関連した値、前記出力サンプルクロックに関連した値、並びに前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれと前記プロセッサクロックとの前記各位相関係に関連した値を記憶するように構成された複数のレジスタを含む、請求項１３に記載の装置。
【請求項１５】
前記アキュムレータは、モジュロ算術演算機能を備える、請求項１４に記載の装置。
【請求項１６】
前記レートコンバータは、
前記補間係数回路と通信するデジタル入力フィルタであって、前記補間係数の上位小数部を受信し、入力サンプルクロックに従ってサンプリングされた入力データをフィルタリングするように構成される、デジタル入力フィルタと、
前記デジタル入力フィルタの出力及び前記補間係数回路と通信し、前記補間係数の下位小数部を受信する、線形補間器と、
前記線形補間器の出力と通信するローパスフィルタと、前記入力サンプルクロックでサンプリングされて入力されたデータは、前記出力サンプルクロックでサンプリングされた対応する出力データにレート変換される、
を備える、請求項１３に記載の装置。
【請求項１７】
前記受信される入力データと前記デジタル入力フィルタとの間に先読みバッファをさらに備え、該先読みバッファも、前記補間係数回路と通信し、前記補間係数の整数部を受信する、請求項１６に記載の装置。
【請求項１８】
前記デジタル入力フィルタは、ポリフェーズフィルタ及びデルタフィルタを備える、請求項１６に記載の装置。
【請求項１９】
前記デジタル入力フィルタのフィルタ係数を記憶するように構成された少なくとも１つのメモリブロックをさらに備える、請求項１６に記載の装置。
【請求項２０】
前記レートコンバータ、前記アキュムレータ、及び前記補間係数回路の少なくとも１つを実施するデジタル信号プロセッサをさらに備える、請求項１３に記載の装置。
【請求項２１】
サンプリングされたデータを第１のレートから第２のレートへレート変換するための装置であって、
入力サンプルクロックに従ってサンプリングされた入力データを受信する手段と、
前記入力サンプルクロックのサンプリングレートとは非整数値だけ異なるサンプリングレートを有する出力サンプルクロックを示す値を受信する手段と、
前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれとプロセッサクロックとの間の各位相関係を求める手段であって、前記入力サンプルクロック及び前記出力サンプルクロックのそれぞれは、前記プロセッサクロックから独立しており、
前記入力サンプルクロックと、前記出力サンプルクロックと、該入力サンプルクロック及び該出力サンプルクロックのそれぞれと前記プロセッサクロックとの間の前記求められた位相関係との関数として補間係数を求める手段と、
前記入力データと前記補間係数との関数として出力データを生成する手段と、該出力データは、前記出力サンプルクロックに従ってサンプリングされた前記入力データに対応し、それによって、前記入力データを前記入力サンプルクロックから前記出力サンプルクロックへレート変換する、
を備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的には、デジタル信号処理に関し、より詳細には、第１のサンプリングレートのデジタル信号を第２のサンプリングレートの同じデジタル信号の表現に変換することに関する。
【０００２】
［関連出願］
本願は、２００７年１１月１６日に出願された米国仮特許出願第６０／９８８，７７２号の優先権の利益を主張する。この米国仮特許出願の全内容は、参照により本明細書に援用される。
【背景技術】
【０００３】
多く電子的用途において、信号は、デジタルで表現されて処理される。デジタルワード、すなわちサンプルは、規則的な時間間隔における信号の値を表す。この規則的な間隔は、多くの場合、サンプルレートと呼ばれ、通常、サンプル間隔時間周期の逆数を表すヘルツ（Ｈｚ）の単位で表される。このように表された信号は、サンプルレートの２分の１を超えるエネルギーを有することができず、サンプルレートの２分の１に等しい周波数は、ナイキスト周波数と呼ばれる。
【０００４】
デジタルサンプルレート変換は、多くのタイプのデジタルシステムで使用される。例えば、音楽の記録を行う際に生成され得るようなオーディオ信号は、多くの場合、デジタルで処理される。信号を処理及び記録するのに使用されるさまざまな機器は、常に同じサンプリング周波数で動作しているわけではない。その結果、各機器は、第１のレートでサンプリングされたデジタル信号を受け取り、次に、そのデジタル信号を処理する前に、そのデジタル信号を第２のサンプリングレートを有するデジタル信号に変換することが、多くの場合必要である。もちろん、信号の情報内容は、サンプルレート変換によって、感知できるほどに変更されてはならず、さもなければ、信号の音質は劣化することになる。
【０００５】
サンプルレート変換を達成する非常に単純な方法は、第１の信号からサンプルを単純に廃棄することである。出力波形の毎秒当たりのサンプルは、そのため、より少なくなり、したがって、サンプルレートはより低くなる。ナイキスト基準が出力信号において満たされているものと仮定すると、出力信号は、入力信号と同じ信号の精密な表現である。このプロセスは、一般に、「間引き」（decimation）と呼ばれる。ただし、この間引きは、入力のサンプリングレートが出力のサンプリングレートの整数倍である状況に限られる。
【０００６】
補間と呼ばれるプロセスは、出力のサンプリングレートが、入力信号のサンプリングレートよりも整数倍高くなることを目的としているときに使用することができる。このような補間オペレーションでは、任意に０の値を割り当てられたサンプルで入力信号のサンプル間の時間を満たすことによって、中間信号を最初に作成することができる。このような中間信号は、「ゼロ詰め込み（zero-stuffed）」信号を呼ばれる。サンプルは、時間スパンが同じに保たれながら追加されるため、ゼロ詰め込み信号は、入力信号よりも高いサンプリングレートを有する。より高い周波数のゼロ詰め込み信号は、余分なサンプルを追加することによって引き起こされる不連続性を取り除くデジタル補間フィルタにおいてフィルタリングすることができる。その結果、デジタル信号は、入力信号と同じ形状を有するが、毎秒当たりより多くのサンプルを含む。
【０００７】
間引きのプロセス及び補間のプロセスを組み合わせることができる。例えば、回路は、Ｄ分の１に間引くことができ、Ｉ倍に補間することができる。その結果の出力は、入力サンプリングレートに対してＩ／Ｄの比のサンプリングレートを有する。しかしながら、このような回路は、有理数によってサンプリングレートをスケーリングすることに限られる。より重要なことに、デジタルシステムの場合、Ｄ及びＩの値の範囲には、実用上の限界がある。間引き係数Ｄは、間引かれた信号がナイキストレートをもはや充足しないほど大きくすることができない。加えて、補間フィルタの必要とされる複雑度は、Ｉが大きくなる（例えば、タップがより多くなる）につれて増加するため、補間係数Ｉも任意に大きくすることができない。その上、異なるクロックの少なくとも１つは、システムクロック（すなわち、ＤＳＰクロック）と本質的に同一であるか、又は２倍等、複雑でないようにシステムクロックに少なくとも関連していると仮定される。このような状況で、異なるサンプルレートクロック間の一貫性を維持することは、タイミングシステムのハードウェアの精度及び複雑度に負担をかける。
【発明の概要】
【０００８】
３クロックシステムで精密にデータを処理することができることによって、デジタル信号処理に複雑度を追加することによってリアルアナログクロックを生成する要件の簡単化が可能になる。一般に、アナログの複雑度の低減は、システムの信頼性の増大、機能の柔軟性の拡大、及びシステムコストの低下につながるため望ましい。
【０００９】
サンプルレート変換システムにおいて決定的に重要なパラメータである補間係数ｐを、ＤＳＰクロックとデータクロックとの間に複雑な関係があるリアルタイムシステムで計算することを可能にするシステム及びプロセスが本明細書で説明される。通常、このようなシステムにおけるクロックの２つ又は３つは、単純な関係（クロック１＝２＊クロック２等）を有する。この関係は、実際には、考慮されるクロックが２つしかない縮退した場合につながる。さらに、本明細書で説明するシステム及びプロセスによって、補間係数のこのような計算が、ＤＳＰクロックレートよりも高い入力データレートで行われることが可能になる。少なくともいくつかの実施の形態では、任意の時間遅延を出力信号に適用することができる。
【００１０】
本発明の一つの実施の形態は、サンプリングされたデータをレート変換するためのプロセスに関する。入力サンプルクロックに従ってサンプリングされた入力データを受信する。入力サンプルクロックとは（整数である必要はない）値だけ異なる出力サンプルクロックを示す値も受信する。入力サンプルクロック及び出力サンプルクロックのそれぞれとプロセッサクロックとの間の各関係を求める。入力クロック及び出力クロックのそれぞれは、プロセッサクロックから独立している。入力サンプルクロックと、出力サンプルクロックと、プロセッサクロックとの関数として補間係数を求める。入力データと補間係数との関数として出力データを生成し、出力データは、出力サンプルクロックに従ってサンプリングされた入力データに対応する。
【００１１】
本発明の別の実施の形態は、サンプリングされたデータを第１のデータレートから第２のデータレートへ変換するためのシステムに関する。このシステムは、入力サンプルクロックに従ってサンプリングされた入力データを受信し、出力サンプルクロックに従ってサンプリングされた入力データを示す出力データを作成するように構成されたレートコンバータを備える。該レートコンバータは、入力サンプルクロック及び出力サンプルクロックのいずれからも独立している処理クロックレートで動作する。処理クロックを受信するアキュムレータが、プロセッサクロックの状態を監視するように構成され且つ入力サンプルクロック及び出力サンプルクロックのそれぞれとプロセッサクロックとの各関係を求めるように構成される。本システムは、アキュムレータ及びレートコンバータと通信する補間係数回路も備える。該補間係数回路は、入力サンプルクロック及び出力サンプルクロックのそれぞれとプロセッサクロックとの各関係をアキュームレータから受信するように構成される。該補間係数回路は、入力サンプルクロック、出力サンプルクロック、及びプロセッサクロックの関数として補間係数を計算するようにも構成される。レートコンバータは、補間係数の関数として、入力データを出力データに変換するように構成される。
【図面の簡単な説明】
【００１２】
本発明の上記並びに他の目的、特徴及び利点は、添付図面に示されたような本発明の好ましい実施形態の以下のより詳細な説明から明らかになる。添付図面において、同様の参照符合は、様々な図全体を通じて同じ部分を指す。図面は、必ずしも同一縮尺であるとは限らず、その代わり、本発明の原理を示すことに重点が置かれている。
【図１】サンプルレートコンバータの一実施形態と組み合わせられたデジタイザを示すブロック図である。
【図２】サンプルレートコンバータで使用できるアキュムレータの一実施形態をより詳細に示すブロック図である。
【図３】サンプルレートコンバータの一実施形態内の異なるクロック信号間の関係を示すタイミング図である。
【図４】補間係数のフォーマットの一実施形態を示す概略図である。
【図５】サンプルレート変換を達成するためのプロセスの一実施形態を示すフロー図である。
【図６】サンプルレートコンバータで使用できる補間係数を求めるための回路の一実施形態を示すブロック図である。
【図７】図６の補間係数回路の実施形態で使用できるレジスタの概略表現である。
【図８】デジタル化サンプルレートコンバータの一実施形態を示すブロック図である。
【図９】ソースサンプルレートコンバータの一実施形態を示すブロック図である。
【図１０】図８又は図９のいずれかの補間係数計算回路の一例示の実施形態を示す概略図である。
【図１１】図１０のデュアルアキュムレータの一例示の実施形態を示す概略図である。
【図１２】本発明による第２のアキュムレータを含むアキュムレータ／補間計算機回路の一実施形態を示すブロック図である。
【図１３】補間係数を求めるための計算機の代替的な一実施形態を示すブロック図である。
【発明を実施するための形態】
【００１３】
或るサンプルレートのデータを第２のサンプルレートのデータに変換するためのシステム及びプロセスが本明細書で説明される。従来技術では、サンプルレート変換システムの実施態様は、出力サンプルレートに等しいデジタル信号処理クロック又は出力サンプルレートの整数倍のように、出力サンプルレートに直接関連したデジタル信号処理クロックを用いる。有利なことには、本明細書で説明するシステム及び技法によって、システム処理クロックは、出力サンプルレートとの非自明なＭ／Ｎ関係を有することが可能になる。例えば、Ｍ及びＮは、非常に大きな整数とすることができる。少なくともいくつかの実施形態では、プログラマブル時間遅延（任意の範囲及び分解能を有する）を出力信号に適用することもできる。
【００１４】
一般に、本明細書で説明する技法は、固定されたコンバータ周波数、可変の（又は、固定であっても異なる）信号データレートを有するいかなるリアルタイムシステムにも適用することができる。コンバータという用語の使用は、一般に、特定の用途に応じて、アナログ／デジタルコンバータ（ＡＤＣ）及びデジタル／アナログコンバータ（ＤＡＣ）を含む。例えば、ソースモードでは、ＤＡＣは、刺激信号の合成されたデジタル表現から得られるアナログ出力刺激信号を提供する。代替的に、検出器モードでは、ＡＤＣは、試験システムからのさらなる処理のために、被試験デバイスから得ることができるような受信されたアナログ応答信号を、受信された応答信号のデジタル表現に変換する。いずれの場合にも、コンバータ周波数又は信号データレートのいずれにも関連する必要がない第３のシステムクロック周波数が、例えばＤＳＰを制御するのにおそらく使用される。他の用途は、既知のコンバータサンプルレートが既知のシステムクロック又は処理クロックに関連しないサンプルレート変換システムを含む。
【００１５】
本明細書で説明するようなサンプルレート変換技法によって、ユーザは、実際のコンバータが動作する固定クロックレート（例えば、コンバータクロックレート）に対して広範囲且つ高分解能を有するレート（すなわち、タイミング）でベースバンド波形を画定することが可能になる。このサンプルレート変換は、コンバータクロック、ユーザクロック、及びシステムクロック、すなわちＤＳＰクロック、の３つの異なるクロック間の関係に基づく非整数補間係数を求めることによって達成することができる。この補間係数は、補間フィルタによって使用される。例示の補間器フィルタは、ソースにおいてはポリフェーズ有限インパルス応答（ＦＩＲ）フィルタ及び線形補間器を含み、デジタイザにおいてはポリフェーズＦＩＲフィルタ、線形補間器、及び間引きＦＩＲフィルタを組み合わせたものを含む。これらのフィルタ構成によって、関連していないプロセッサクロックレート又はＤＳＰクロックレートで動作するシステム内で所望のレート変換がもたらされる。
【００１６】
リサンプラのオペレーションは、ユーザには本質的にトランスペアレントであり、その結果、リサンプラ器具は、従来の任意の波形ジェネレータと、入力クロックレート又は出力クロックレートの一方で動作するコンバータを有するデジタイザとをあたかも含んでいるかのように振舞う。したがって、リサンプラは、開始コマンド、ユーザクロックリセットコマンド等の特殊なイベントも、サンプルサイズも、帯域幅制限以外の信号内容も全く知らない。リサンプリングプロセスによって導入されるすべての誤差は、スプリアスのないダイナミックレンジ仕様を下回ることになる。リサンプラは、入力周波数及び出力周波数の点でかなり柔軟である。リサンプリング比は、クロック制御のシナリオが異なるごとにカスタマイズすることができる外部の仮想クロックジェネレータによって駆動される。
【００１７】
図１を参照すると、本発明によるリサンプラ１００の一例示の実施形態のブロック図は、レートコンバータ１０２、アキュムレータ１０４、及び補間係数モジュール１０６を含む。リサンプラ１００の入力に結合されたＡ／Ｄコンバータ１０８も示されている。Ａ／Ｄコンバータ１０８は、入力アナログ信号Ｓ（ｔ）を受信し、本明細書では第１のクロックドメインと呼ばれる入力サンプルレート、すなわちコンバータクロックに従ってその信号をサンプリングする。入力サンプルサイクルの周期は、ＴＲＳＩとして示されている。レートコンバータ１０２は、第１のコンバータクロックドメインにおける入力信号のサンプリングされたデジタル表現Ｓ（ｎ）を受信し、そのサンプリングされたデジタル表現Ｓ（ｎ）を、同じ入力信号の出力表現ではあるが第２のユーザクロックドメインにおける出力表現に変換する。一般に、第２のクロックドメインは、第１のクロックドメインとは異なる出力サンプルレートを有する。出力サンプルサイクルの周期は、ＴＲＳＯとして示されている。これらの２つのクロックドメインは、すべての実用面において関連していない。実際には、それらの２つのクロックドメインは、２つの非常に大きな数の非整数比によって変化し得る。本発明によって提供される重要な利点は、レートコンバータ１０２が、本明細書で第３のクロックドメインと呼ばれるさらに別のプロセスクロックに従って動作しているということである。この第３のクロックドメインは、システムクロックドメイン、すなわちＤＳＰクロックドメインと呼ばれる。プロセッササンプルサイクルの周期は、ＴＤＳＰとして示されている。
【００１８】
アキュムレータ１０４は、いくつかの値を受信するか又は事前にロードされる。１つのこのような値は、出力サンプルレートを表す。この例では、この値は、出力サンプルレートの周期ＴＲＳＯである。代替的に又は加えて、アキュムレータ１０４には、出力サンプル周波数ＦＲＳＯ（すなわち、ＴＲＳＯの逆数）を事前にロードしておくことができる。別のこのような事前にロードされた値は、入力サンプルレートを表す。この例では、この値は、入力サンプルレートの周期ＴＲＳＩ（又は入力サンプル周波数ＦＲＳＩ）である。アキュムレータ１０４に事前にロードすることができるさらに別の値は、プロセッサクロックの周期ＴＤＳＰ（又はプロセッサクロック周波数ＦＤＳＰ）である。
【００１９】
アキュムレータ１０４は、事前にロードされた値の１つ又は複数をプロセッサクロックレート（ＤＳＰ  ＣＬＫ）で処理して、いくつかの出力値を作成する。主として、出力値は、異なるクロックドメイン間の関係を示す小数値を含む。１つのこのような小数値ＦＲＡＣＲＳＩは、入力サンプルクロックとプロセッサクロックとの関係から得られる。別のこのような小数値ＦＲＡＣＲＳＯは、出力サンプルクロックとプロセッサクロックとの関係から得られる。入力クロック及び出力クロックの周期及び周波数（ＴＲＳＩ、ＦＲＳＩ、ＴＲＳＯ、ＦＲＳＯ）の１つ又は複数を出力値として提供することもできる。この例示の実施形態では、アキュムレータは、出力値としてＦＲＳＩ及びＴＲＳＯを提供する。いくつかの実施形態では、アキュムレータ１０４は、外部タイミング基準ＴＲＥＦ及びリセット信号ＴＲＥＳＥＴ等の１つ又は複数の追加入力も受信する。アキュムレータ１０４は、出力値ＦＲＡＣＲＳＩ、ＦＲＡＣＲＳＯ、ＦＲＳＩ、ＴＲＳＯを定期的に更新することができる。例えば、いくつかの実施形態では、出力値は、プロセッサクロックの各サイクルＴＤＰＳ中にアキュムレータ１０４によって更新される。
【００２０】
補間係数モジュール、すなわち回路１０６は、アキュムレータ１０４から出力値ＦＲＡＣＲＳＩ、ＦＲＡＣＲＳＯ、ＦＲＳＩ、ＴＲＳＯを受信し、受信された値の１つ又は複数から補間係数ｐを導出する。補間係数モジュール１０６は、これらの入力の１つ又は複数を処理して、プロセッサクロックＴＤＳＰに従って出力を生成することもできる。レートコンバータ１０２は、補間係数モジュール１０６から補間係数ｐを受信し、この値を使用して、所望のサンプルレート変換を達成する。
【００２１】
いくつかの実施形態では、補間係数モジュール１０６は、遅延入力値ＴＤＥＬＡＹも受信する。この遅延値は、異なるクロックドメイン間にスキューを導入するためにユーザが提供することができる。遅延値は、サンプリングされた出力信号をサンプリングされた入力信号に対して任意に遅延させるのに使用することもできる。実現可能なシステムが適応することができる最大遅延は、少なくとも或る程度は、その特定の実施形態の備え（provisioon）に依存する。例えば、以下でより詳細に説明するように、このような遅延された値に適応するために、先読みバッファを含めることができる。このような実施形態では、先読みバッファの深さは、最も長い予測遅延に基づいて求めることができる。遅延が長いほど、より深い先読みバッファが必要とされる。
【００２２】
図２を参照すると、図１に示すアキュムレータ１０４等の本発明によるアキュムレータ１５０の一例示の実施形態は、累算レジスタ１５２を含む。この累算レジスタ１５２は、各プロセッサクロックサイクルでインクリメントされる値Ｎを記憶する。Ｎの値は、各プロセッサクロックサイクルの後に１つインクリメントされる２進整数とすることができる。Ｎの値は、リセット入力においてリセット信号ＲＥＳＥＴを受信すると０又は別の値にリセットすることができる。アキュムレータ１５０は、プロセッサクロック周期ＴＤＳＰを示す値を記憶するためのプロセッサレジスタ１５４、入力サンプル周期ＴＲＳＩを示す値を記憶するための入力クロックドメインレジスタ１５６、及び出力サンプル周期ＴＲＳＯを示す値を記憶するための出力クロックドメインレジスタ１５８等の、さまざまな値を記憶するためのレジスタも含む。累算レジスタ１５２の値及びプロセッサクロック周波数ＴＤＳＰの値は、乗算器１６０に供給される。乗算器１６０は、これらの値を合わせて乗算し、結果の値ＴＮをプロセッサ時間レジスタ１６２に記憶する。記憶されたプロセッサ時間値ＴＮは、入力クロックドメインレジスタ１５６に記憶されたＴＲＳＩ値と共に第１のモジュロ算術演算プロセッサ１６４ａに供給される。第１のモジュロ演算の結果は、２つの値ＴＮとＴＲＳＩとの比の小数部分であるＦＲＡＣＲＳＩである。結果の値ＦＲＡＣＲＳＩは、入力位相差レジスタ１６６に記憶される。同様に、記憶されたプロセッサ時間値ＴＮは、出力クロックドメインレジスタ１５８に記憶されたＴＲＳＯ値と共に第２のモジュロ算術演算プロセッサ１６４ｂにも供給される。第２のモジュロ演算の結果は、２つの値ＴＮとＴＲＳＯとの比の小数部分であるＦＲＡＣＲＳＯである。結果の値ＦＲＡＣＲＳＯは、出力位相差レジスタ１６８に記憶される。
【００２３】
いくつかの実施形態では、入力クロックドメインレジスタ１５６に記憶された値の逆数が、入力クロックドメイン周波数レジスタ１７０に記憶される。同様に、いくつかの実施形態では、出力クロックドメインレジスタ１５８に記憶された逆数値が、出力クロックドメイン周波数レジスタ１７２に記憶される。記憶されたレジスタ値ＦＲＡＣＲＳＩ、ＦＲＡＣＲＳＯ、ＦＲＳＩ、及びＦＲＳＯの１つ又は複数は、補間係数モジュール１０６（図１）へ転送することができる。この例示の実施形態では、４つの値ＦＲＡＣＲＳＩ、ＦＲＡＣＲＳＯ、ＦＲＳＩ、及びＴＲＳＯが、補間係数モジュール１０６へ転送される。
【００２４】
本発明による異なるタイミング信号間の一例示の関係を示すタイミング図が、図３に示されている。この図は、対象となる３つのクロック間の可能な関係を示している（ただし、説明するプロセスは、クロック間の任意の関係に適用される）。詳細には、周期ＴＤＳＰを有するプロセッサクロック２００の一部が示されている。プロセッサクロック２００は、時にＤＳＰクロックと呼ばれることがある。ＤＳＰクロックの真下には、周期ＴＲＳＩを有する入力サンプルクロック２０２の重なる部分が示されている。入力サンプルクロック２０２は、時にリサンプラインクロックと呼ばれることがある。最後に、周期ＴＲＳＯを有する出力サンプルクロック２０４の重なる部分が図の下部に示されている。この出力サンプルクロック２０４は、時にリサンプラアウトクロックと呼ばれることがある。
【００２５】
ＦＲＡＣという用語は、「残差（residual）」とは対照的に、或るイベントから次のクロックサイクルまでに測定される時間を記述するのに使用される。「残差」は、いくつかの慣例によれば、或るクロックサイクルから次のイベントまでの前方を見た時間を指す。ＦＲＡＣ値は、以下でより詳細に説明するクロックジェネレータセクションから得られたＤＳＰクロックについて提供される。したがって、ＦＲＡＣＲＳＩは、リサンプラインクロックイベントから次のＤＳＰクロックイベントまでの前方を見た時間である。同様に、ＦＲＡＣＲＳＯは、リサンプラアウトクロックイベントから次のＤＳＰクロックイベントまでの前方を見た時間である。
【００２６】
いくつかの実施形態では、補間係数計算モジュール１０６（図１）は、コンバータクロックのＦＲＡＣＲＳＩ値（リサンプラ入力ＴＲＳＩ）及びユーザクロックのＦＲＡＣＲＳＯ値（リサンプラ出力ＴＲＳＯ）から補間係数ｐを計算する。補間係数は、
ｐ＝Ｔｘ／ＴＲＳＩ                               （１）
によって定義される。
【００２７】
Ｔｘは、図３に示すクロック信号の相対配置から観察できるように、
Ｔｘ＝ＴＲＳＯ−（ＦＲＡＣＲＳＯ−ＦＲＡＣＲＳＩ）  （２）
によってＦＲＡＣ値から導出される。
【００２８】
補間係数であるｐの値は、リサンプラ入力時間アキュムレータのＦＲＡＣＲＳＩ値及びリサンプラ出力時間アキュムレータのＦＲＡＣＲＳＯ値から導出することができる。すなわち、
【００２９】
【数１】
0005563469.tif 000002
【００３０】
である。ここで、ＴＤＥＬＡＹは、目的とする用途に従って導入することができる任意の遅延である。
【００３１】
【数２】
0005563469.tif 000003
【００３２】
シンボル
【００３３】
【数３】
0005563469.tif 000004
【００３４】
は、モジュロ演算子を指す。サンプルレート変換システムでは、ｐの整数部は、入力データ先読み（input data look ahead）と解釈され、小数部は、現在の入力クロックサイクルへの現在の出力クロックサイクルのペネトレーション（penetration）と解釈される。補間係数２１０の一実施形態が図４に示されている。補間係数２１０は、小数点２１５によって分離された整数部２１２及び小数部２１４を含むように配置された複数の位置数字（例えば、２進法についてはビット）を含むことができる。補間係数２１０の小数部２１４は、上位小数部２１６と下位小数部２１８とにさらに再分割される。上位小数部２１６は、補間係数２１０の小数部２１４の有効度の大きい位置数字（例えば、上位ビット）を含み、下位小数部２１８は、補間係数２１０の小数部２１４の有効度の小さい位置数字（下位ビット）を含む。位置数字の特定の個数は、目的とする用途に応じて変化し得る。先読みバッファを含まない実施形態等、いくつかの実施形態では、整数部２１２は必要ではないため、含まれない。
【００３５】
ポリフェーズフィルタ及び線形補間器を用いるサンプルレート変換システムでは、補間係数２１０は２進数として実施される。このシステムでは、ｐの小数部２１４の上位ビット２１６は、ポリフェーズサブフィルタ番号と解釈され、ｐの小数部２１４の下位ビット２１８は、線形補間係数と解釈される。整数部２１２が存在するとき、整数部２１２は、先読み値と解釈することができる。２４ビット精度を有するｐの一例示の値の場合、整数部２１２は３ビットを含むことができ、最大有効小数部２１６は９ビットを含むことができ、最小有効小数部２１８は１２ビットを含むことができる。
【００３６】
図５を参照すると、本発明によるサンプルレートコンバータを達成するための一例示のプロセス２２０を示すフロー図が示されている。第１のステップ２２２において、入力サンプルデータレートＴＲＳＩでサンプリングされた入力データを受信する。次のステップ２２４において、ユーザ出力サンプルレートＴＲＳＯに関連した値を受信する。いくつかの実施形態では、この値は、ユーザがプログラミングすることができる。ステップ２２６において、入力サンプルレート又は入力サンプルドメイン及び出力サンプルレート又は出力サンプルドメインのそれぞれと、プロセッサクロック又はプロセッサドメインとの間の位相関係を求める。これらの位相関係は、図３について上述した小数値ＦＲＡＣＲＳＩ、ＦＲＡＣＲＳＯとして表すことができる。後続のステップ２２８において、求められた位相関係ＦＲＡＣＲＳＩ、ＦＲＡＣＲＳＯ、並びに入力クロックドメイン値ＴＲＳＩ及び出力クロックドメイン値ＴＲＳＯから補間係数ｐを求める。補間係数ｐが得られると、補間係数ｐは、後続のステップ２３０において使用されて、サンプリングされた入力データが出力サンプルデータレートにリサンプリングされたものを示すサンプリングされた出力データを生成することができる。
【００３７】
図６を参照すると、補間係数モジュール１０６（図１）等の補間係数を求めるための一例示の回路２４０のブロック図が示されている。補間係数回路２４０は、ＦＲＡＣＲＳＯ値を示すデジタル入力値ｉ＿ｆｒａｃ＿ｒｓｏの符号を反転する符号反転器２４２を含む。符号反転器２４２のオペレーションは、デジタルデータが記憶される性質に依存する。符号反転されたデジタル入力値ｉ＿ｆｒａｃ＿ｒｓｏ（ＦＲＡＣＲＳＯ）は、次に、図示する加算器２２４等の結合器において、ＦＲＡＣＲＳＩを示すデジタル入力値ｉ＿ｆｒａｃ＿ｒｓｉ及びＴＲＳＯを示すデジタル入力値ｉ＿ｔ＿ｒｓｏと結合される。加算器２４４の出力値は、値Ｔｘ（図３）を示すデジタルワードである。補間係数回路２４０は、値Ｔｘを示すデジタルワードに、ＦＲＳＩを示すデジタル入力値ｉ＿ｆ＿ｒｓｉを乗算する乗算器２４６も含む。いくつかの実施形態では、補間係数回路２４０は、乗算器２４６の代わりに除算器を含む。それらの実施形態では、ｉ＿ｆ＿ｒｓｉ値は、図１０に示すようなｉ＿ｆ＿ｒｓｉの逆数である値ＴＲＳＩに置き換えられる。乗算器（除算器）から出力された値が補間係数ｐである。
【００３８】
図７には、図６の補間係数回路で使用される例示のレジスタの概略表現が示されている。いくつかの実施形態では、ｐの比の計算は、Ｔｘの計算に起因する４０ビット入力を有する。ここでは、１５ビットの整数ビット及び２５ビットの小数ビットが示されている。ｐの比の計算は、ＦＲＳＩ値からの４０ビット入力も有する。その２ビットは整数であり、３８ビットは小数である。図示するように、これらの２つの４０ビット入力から、２５ビット精度の乗算を行うことができる。カリフォルニア州サンノゼのアルテラ社（Altera Corp.）から市販されているハードウェア乗算器ブロックは、３６ビット精度の乗算を提供する。この３６ビット精度の乗算は、この目的には十分なものである。
【００３９】
図８を参照すると、レート変換デジタイザ３００の一例示の実施形態のブロック図が示されている。レート変換デジタイザ３００は、サンプリングされた入力データｉ＿ｃｏｎｖｅｒｔｅｒ＿ｄａｔａ［２３：０］を受信する先読みバッファ３０２を含む。この先読みバッファ３０２は、１つ又は複数のデジタルフィルタに結合された１つ又は複数の出力を含む。例えば、先読みバッファ３０２は、ポリフェーズフィルタ３０４への第１の出力及びデルタフィルタ３０６への第２の出力を含む。フィルタ３０４、３０６のそれぞれは、先読みバッファ３０２から各入力を受信する。フィルタ出力は、線形補間器３０８へ入力される。線形補間器３０８は、間引き有限インパルス応答（ＦＩＲ）ローパスフィルタに出力を提供する。いくつかの実施形態では、レート変換デジタイザ３００の複数の部分は、実質的に複製されて、別個の高周波数パス及び低周波数パス等、２つ以上の経路を形成する。各経路は、それぞれの動作パラメータに適合されている。２つ以上の経路（図示せず）が提供されるとき、マルチプレクサ又は他の適した選択デバイスを使用して、異なる経路の中から１つが選択される。いくつかの実施形態では、このような選択デバイスは、レート変換処理を実質的に迂回する迂回経路を選択するように構成することができる。
【００４０】
補間係数計算モジュール３１２も含まれる。この補間係数計算モジュール３１２は、ＦＲＡＣＲＳＩを示すｉ＿ｆｒａｃ＿ｒｓｉ［３９：０］、ＦＲＡＣＲＳＯを示すｉ＿ｆｒａｃ＿ｒｓｏ［３２：０］、ＦＲＳＩを示すｉ＿ｆ＿ｒｓｉ［３９：０］、及びＴＲＳＯを示すｉ＿ｔ＿ｒｓｏ［３２：０］等の４つの入力デジタル値を１つ又は複数のアキュムレータ（図示せず）から受信する。補間係数計算モジュール３１２は、これらのさまざまな入力値から計算された補間係数ｐを出力として提供する。レート変換回路上のこの機能のいずれの複雑度も、デジタイザＤＳＰクロックがコンバータクロックとは異なる可能性があることから由来するものである。いくつかの実施形態では、補間係数の少なくとも一部は、先読みバッファ３０２、ポリフェーズフィルタ３０４、デルタフィルタ３０６、及び線形補間器３０８へ送られる。補間係数ｐは、入力サンプルクロックサイクル又はコンバータ（例えばＡＤＣ）クロックサイクルを基準とした出力サンプルクロックの位置又はユーザクロックの位置を表す。補間係数ｐの小数部の上位ビットは、ポリフェーズフィルタ３０４及びデルタフィルタ３０６のセットの中から一方を選択するのに使用することができる。補間係数ｐの小数部の下位ビットは、線形補間器３０８をスケーリングするのに使用することができる。レート変換デジタイザ３００では、ｐの整数部は、データ先読みと解釈される。したがって、補間係数ｐの整数部は、先読みバッファ３０２へ転送され、補間係数の小数部の最大有効ビットである第１の小数部は、ポリフェーズフィルタ３０４及びデルタフィルタ３０６へ送られ、補間係数の小数部の最小有効ビットである第２の小数部は、線形補間器３０８へ送られる。
【００４１】
レート変換デジタイザ３００のすべて又は少なくとも一部は、当業者に知られているデジタル信号処理（ＤＳＰ）技法を使用して、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）において実施することができる。ポリフェーズフィルタ３０４、デルタフィルタ３０６、及びローパスフィルタ又はアンチエイリアシングフィルタ等の他の任意のフィルタの１つ又は複数は、デジタルフィルタとすることができる。デジタルフィルタの場合、それらのフィルタは、少なくとも部分的にフィルタ係数によって定義される。このようなフィルタ係数は、デジタルフィルタを設計するための標準的な設計実務に従って求めることができる。例えば、ポリフェーズフィルタ３０４は、１６個のタップ及び５１２通りの位相セットを有し、その結果、係数は８１９２個となる。フィルタ係数を記憶するためのローカルメモリ３１８ａ、３１８ｂ、３１８ｃ（３１８と総称する）が提供される。この係数メモリ３１８のレイアウトは、利用可能なメモリブロックを活用するように最適化することができる。これらのメモリブロックは、ＦＰＧＡ設計では、読み出し専用メモリ（ＲＯＭ）として扱われ、したがって、係数をロードするのに、明示的な制御回路部は必要とされない。
【００４２】
レート変換デジタイザ３００は、固定サンプルレートＡ／Ｄコンバータからのデータを、Ｍ／Ｎ補間ポリフェーズフィルタ３０４、線形補間器３０８、及び間引きＦＩＲフィルタによって変換する。ポリフェーズフィルタ、線形補間器、及び間引きＦＩＲフィルタの理論及びオペレーションは、当業者に既知である。これについては、例えば、J. G. Proakis及びD. K. ManolakisによるIntroduction to Digital Signal Processingの１９９２年第２版の第１０章を参照されたい。この文献は、参照によりその全体が本明細書に援用される。
【００４３】
先読みパイプライン３０２が提供されるとき、先読みパイプライン３０２は、１よりも大きな補間係数値に適応する。いくつかの実施形態では、先読みパイプライン３０２は、ポリフェーズフィルタ入力遅延線に１つ又は複数の余分なサンプルを単に記憶し、したがって、必要なときに、１つ又は複数のサンプルによって「未来」を見るオプションを与える。補間係数の整数部は、マルチプレクサを駆動して、適切なデータセットを選択する。
【００４４】
線形補間器は、現在のポリフェーズフィルタの出力及び未来への１つの係数セットの出力を求め（例えば、計算し）、次に、きめ細かな補間係数によって重み付けられたこれらの２つの値の平均を計算することにより実施することができる。乗算器リソースを保存するために、この機能は、図示するようにデルタフィルタ３０６として実施することができる。この実施態様では、係数セット間の差分が事前に計算され、その結果、差分値は、フルサイズの乗算器ではなく小さな乗算器でハンドリングできる小さなものとなり得る。
【００４５】
いくつかの実施形態では、入力アナログ信号は、先ず、アナログアンチエイリアシングフィルタ（図示せず）によって帯域が制限される。アナログフィルタリング阻止帯域に対する設計制約は、実質的に、Ａ／Ｄエイリアス信号が、最も高い間引きＦＩＲ停止帯域よりも下に現れる可能性がないということである。この場合、その周波数は、正確にＡ／Ｄナイキストとなる。
【００４６】
レート変換ソース構成３４０が図９に示されている。ソース構成は、レート変換ソース３００が、Ｆｕｓｅｒレートのユーザデータを取り込み、変調ソースレート、すなわちコンバータレートのデータを作成する、サンプル変換を指す。ソースリサンプラの理論及び実施態様は、レート変換デジタイザ３００（図８）のものと同様であるが、少なくとも３つの主な相違を有する。第１に、フィルタタップの個数が異なる場合がある。フィルタ係数値が異なる場合がある。リサンプラ出力周波数は、ＤＳＰクロックレートの整数約数とすることができる（例えば、ＦＤＳＰ＝ＮＦＲＳＯ）。この最後の相違によって、補間係数ｐが１未満の正の値、すなわち０≦ｐ＜１であるという点で、レート変換ソースアーキテクチャは簡単化される。
【００４７】
この例示の実施形態では、レートＦｕｓｅｒのユーザデータを示すデジタル値ｉ＿ｕｓｅｒ＿ｄａｔａ［２３：０］が受信される。このユーザデータは、図示するように、先読みパイプライン３４２において受信することができる。ソース構成３４０は、図８について上述した配置と同様のポリフェーズフィルタ３４４、デルタフィルタ３４６、線形補間器３４８、及び補間係数計算モジュール３５２も含む。補間係数は１未満であるため、先読みパイプライン３４２へ整数部を転送する必要はない。補間係数の上位ビット及び下位ビットは、図８に関連して上述したように、フィルタバンク３４４、３４６及び線形補間器３４８に分配される。リサンプリングされた出力デジタル信号は、線形補間器３４８の出力において利用可能であり、本明細書では、ｏ＿ｃｏｎｖｅｒｔｅｒ＿ｄａｔａ［２３：０］と呼ばれる。
【００４８】
補間係数計算モジュール３６０の一例示の実施形態の概略図が図１０に示されている。モジュール３６０は、入力アキュムレータ３６２ａ、出力アキュムレータ３６２ｂ、３入力加算器３６４、及び除算器３６６を含む。モジュール３６０は、入力サンプル周期ＴＲＳＩ及び出力サンプル周期ＴＲＳＯを示す別個のデジタル入力値を受信する。これらのサンプル周期値ＴＲＳＩ、ＴＲＳＯは、それぞれのレジスタ３６８ａ、３６８ｂに記憶することができる。モジュール３６０は、システム（すなわち、ＤＳＰ）クロックＴＤＳＰを示すデジタル入力も受信する。入力サンプル周期ＴＲＳＩは、制限として入力アキュムレータ３６２ａに入力される。アキュムレータ３６２ａは、処理クロックＴＤＳＰに従ってインクリメントされる。入力アキュムレータ３６２ａは、小数出力ＦＲＡＣＲＳＩを計算し、出力として小数出力ＦＲＡＣＲＳＩを加算器３６４の第１の入力に提供する。同様に、出力サンプル周期ＴＲＳＯも、制限として入力アキュムレータ３６２ｂに入力される。出力アキュムレータ３６２ｂも、処理クロックＴＤＳＰに従ってインクリメントされる。出力アキュムレータ３６２ｂは、小数出力ＦＲＡＣＲＳＯを計算し、出力として小数出力ＦＲＡＣＲＳＯを加算器３６４の第２の入力に提供する。加算器３６４のこの第２の入力は、当業者に知られている技法によって符号反転され、それによって、求められた合計からＦＲＡＣＲＳＯ値が減算される。入力値ＴＲＳＯは、加算器３６４の出力が値Ｔｘ（図３）を表すように、加算器３６４の第３の入力に入力される。いくつかの実施形態では、加算器３６４の出力は、除算器回路３６６の第１の被除数端子に入力される。入力値ＴＲＳＩは、乗算器回路の商の出力値が補間係数ｐを表すように、除算器回路３６６の第２の除数入力に入力することができる。
【００４９】
図１１は、図１０のアキュムレータ３６２ａ、３６２ｂのいずれにも適したアキュムレータ４００の一例示の実施形態を示す概略図である。第１のアキュムレータ４００（３６２ａ）は、制限値としてＴＲＳＩを受信し、インクリメント値としてＴＤＳＰを受信する。これらの入力値は、概略説明図に従って処理され、値ＦＲＡＣＲＳＩをもたらす。同様に、第２のアキュムレータ４００（３６２ｂ）は、制限値としてＴＲＳＯを受信し、インクリメント値としてＴＤＳＰを受信する。これらの入力値は、概略説明図に従って処理され、値ＦＲＡＣＲＳＯをもたらす。
【００５０】
【表１】
0005563469.tif 000005
【００５１】
補間係数ｐは、０〜１．５の範囲を有する（２進小数点の右に）２１ビット精度に計算することができる。ｐの計算は、
【００５２】
【数４】
0005563469.tif 000006
【００５３】
である。
除算演算を回避するために、ＴＲＳＩの逆数を事前に計算することができる。
ｐ＝（ＴＲＳＯ−ＦｒａｃＲＳＯ＋ＦｒａｃＲＳＩ）（ＦＲＳＩ）      （７）
入力周波数及び出力周波数の範囲が大きな範囲をカバーする用途では、補間係数計算精度は、図１３に示すように、補間係数の適切な２進スケーリングによって保存することができる。
【００５４】
いくつかの実施形態では、ＤＳＰクロック周波数とリサンプラ出力周波数との間の整数関係（ＦＤＳＰ＝ＮＦＲＳＯ）によって、補間係数の計算が簡単化される。ソースの場合、０≦ｐ＜１を保証することができ、したがって、先読みパイプラインは必要とされない。
【００５５】
以下の例では、ユーザは、２００ＭＨｚでサンプリングされた４０ＭＨｚ  ＢＷの信号を生成するものとする。ユーザデータは、１０２ＧＨｚ（５１２×２００ＭＨｚ）にサンプルレートを持ってくるためにゼロパッディングされる。２００ＭＨｚサンプルレートのイメージは、ポリフェーズＦＩＲフィルタによって減衰される。この信号は、内部の４倍（４×）補間フィルタを含むコンバータに印加される。補間された信号は、この時点で５３３ＭＨｚのサンプルレートであり、０次オーダホールド（ｓｉｎ  ｘ／ｘ）応答を有するアナログに変換される。最後に、アナログローパスフィルタは、コンバータレートサンプリングイメージを除去する。
【００５６】
図８に示すサンプルレートコンバータを参照すると、線形補間器３０８は、デルタフィルタ３０６の出力に、線形補間係数の下位ビット（例えば、図４に示す下位ビット２１８）を乗算する。この例示の１４ビット線形補間係数は、［０，１）の範囲を有する。この例示の実施形態では、線形補間器３０８の出力は、例えば７ビットといった複数ビット分、右にシフトされる（且つ符号拡張される）。これは、デルタフィルタ係数が、ＲＯＭ３１８ｂに記憶される前に同じ量だけ（例えば、２７倍）スケールアップされた状況を補償するために行われる。このブロックの出力データは、次に、メインポリフェーズフィルタ３０４の出力に加えられる。
【００５７】
いくつかの実施形態では、サンプルレートコンバータは、迂回モードを含む。迂回モードが設定されているとき、ポリフェーズＦＩＲフィルタ及び間引きＦＩＲフィルタを含むサンプルレートコンバータの少なくともかなりの部分が迂回される。データは、ＦＡ／Ｄレートでリサンプラに入力し、次に、リサンプラの処理が何ら行われることなく、その同じレートでリサンプラから去る。このモードは、生のＡＤＣサンプルへのユーザアクセスを提供する。このようなアクセスは、ユーザが、キャプチャされたデータに対してＦＦＴを実行する予定である場合に有用であり、ユーザは、最大でコンバータのナイキスト（ＦＡ／Ｄ／２）までの周波数成分を見ることになる。迂回モードによって、アナログフロントエンドがこの状況を許容するならば、ユーザは、アンダーサンプリング形式でデータレートコンバータを用いることも可能になる。コンバータのナイキストよりも大きなＡＤＣ入力におけるトーンは、エイリアシングされて、ＤＣとＦＡ／Ｄ／２との間の帯域に戻る。この時点で、迂回モードのデータレートコンバータは、このキャプチャされたデータに対して処理を何ら実行しない。
【００５８】
いくつかの実施形態では、リサンプラ低周波数入力パイプライン、データ先読み、デルタフィルタ、線形補間、及びポリフェーズフィルタは、マルチサイクル状態マシンで実施される。例えば、１つのマルチサイクル状態マシンは、信号のすべてを処理することができる１つの３６×３６ビット乗算器を利用する。このようなハードウェア効率は、必要とされる出力データレートがＦＰＧＡ  ＤＳＰクロックレートよりもはるかに低いため可能である。
【００５９】
図１２を参照すると、ブロック図は、アキュムレータ／補間計算機回路６００の代替的な一実施形態を示す。位相アキュムレータ６００は、リアルタイムコンバータクロックの状態、仮想ユーザクロックの状態、及びこれらのクロック間の相対位相の経過を追跡する。この状態及び相対位相の情報は、コンバータクロックドメインとユーザクロックドメインとの間でユーザの信号を変換するために、サンプルレートコンバータ３００、３４０（図８、図９）が使用することができる。リサンプラ３００は、先読みを有する入力データパイプライン３０２、ポリフェーズＦＩＲフィルタ３０４、及び線形補間器３０８から成り（図８）、リサンプラ３４０は、先読みを有する入力データパイプライン３４２、ポリフェーズＦＩＲフィルタ３４４、及び線形補間器３４８から成る（図９）。ソースチャネル（例えば、図９）上のリサンプラ３４０は、仮想ユーザレートのデータを取り込み、固定コンバータレートのデータを作成して出力する。キャプチャチャネル（例えば、図８）上のリサンプラ３００は、Ａ／Ｄコンバータから固定コンバータレートのデータを取り込み、仮想ユーザレートでデータを作成して出力する。
【００６０】
アキュムレータは、ＤＳＰクロックと同期したリサンプラ入力データを適格とすることができる。例えば、ＤＳＰクロックごとに適格とされる入力データポイントが０個、１個、又は２個存在することができる。ＤＳＰクロックごとに適格とされる出力データポイントが０個又は１個存在することができる。アキュムレータ６００は、リアルタイムコンバータクロックの状態も追跡する。例えば、アキュムレータ６００は、各コンバータクロックの状態を追跡する。コンバータクロックリセットイベントは、コンバータクロックアキュムレータ及びコンバータクロックが同期するようにこれらの２つをリセットする。このリセットイベントはｔ０も定義する。コンバータクロックリセットイベントは、通常、電源再投入後又は他の破局的なイベントの後に発生する。位相アキュムレータは、コンバータクロック周波数を正確に照合しなければならない。
【００６１】
アキュムレータ６００は、仮想ユーザクロックの状態を追跡する。このユーザクロックは、時刻ｔ０に対応してリセットすることができる。正確なランツーランタイミング反復可能性（run to run timing repeatability）を保証できるように、ユーザクロックのリセットによって、ユーザクロックアキュムレータがリセットされる。このようなユーザクロックリセットは、テスタの用途におけるテストシーケンスの開始時等、通常のオペレーション中の固有のブレイクポイントで生じる場合がある。ユーザクロックは、高分解能又はその整数分数（integer fraction）の点から追跡することができる。好ましくは、ユーザクロック周波数は、２進小数の周期に基づいてプログラミング可能である。一例示の実施形態では、ユーザクロック周期は、少なくとも１０ｎｓ／２４４分解能を有し、ユーザクロック範囲は、５ｋＨｚ〜４００ＭＨｚである。
【００６２】
いくつかの実施形態では、遅延値又はスキュー値ＴＤＥＬＡＹを追加することができる。このような遅延値又はスキュー値は、デジタルサブシステムを基準としてアナログ波形を時間において効果的にシフトする。有利なことには、このような遅延値は、ユーザクロック又はコンバータクロックのいずれもその後リセットする必要なく、変更することができる。いくつかの実施形態では、スキュー値は、４ｎｓの範囲及び少なくとも約１０ｎｓ／２３２（すなわち、０．００２３ｆｓ）の分解能を有する。いくつかの実施形態では、ＴＤＥＬＡＹの値を０に設定することができる。すなわち完全に無視することができる。各リサンプラ出力データポイントについて、リサンプラ補間係数
ｐ＝（Ｔｘ＋ＴＤＥＬＡＹ）／ＴＲＳＩ    （８）
を計算する。ここで、ＴＲＳＩは、リサンプラ入力クロック周期であり、Ｔｘは、現在のＤＳＰクロックに先行する最も近時のリサンプラ入力クロックから現在のＤＳＰクロックサイクルにおける最も近時のリサンプラ出力クロックまでの時間である。
【００６３】
ユーザクロックの追跡が高分解能値の点から必要とされる用途の場合、正確な基本クロックドメイン（underlying clock domain）で動作する正確な時間アキュムレータを有することが必要である。したがって、ユーザクロックは、一定の周期分解能と合成される。基本イベントをＤＳＰクロックドメインに変換する方法が必要とされる。１つのこのような実施態様は、ＤＳＰクロックドメインと基本システムクロックドメインとの間の一致点において基本システムクロックドメインに同期されたＤＳＰクロックドメインで動作する（正確な）位相アキュムレータ６０２の第２のセットを提供するものである。第２の実施態様は、３つごとの基本システムクロックドメインユーザクロック状態を８つのＤＳＰドメインユーザクロック状態に直接マッピングすることである。
【００６４】
２つの時間アキュムレータの状態から補間係数を計算しなければならないという複雑さは、ＤＳＰクロック周波数、リサンプラ入力周波数、及びリサンプラ出力周波数がすべて異なることに由来する。この状況は、リサンプラ出力クロックがＤＳＰクロックと同じであるか又はＤＳＰクロックの或る単純倍数である実施形態については簡単化される。
【００６５】
基本システムクロックドメインユーザクロック時間アキュムレータの機能は、基本システムクロックサイクルの点からユーザクロックの状態の経過を追跡することである（ｔ０は、基本システムクロックイベントの値に、ユーザクロックリセットイベント時の高精度なシステムクロック位相値を加えたものに従って定義される）。任意の所与の基本システムクロックイベント時において、ユーザクロックサイクルを確定的に選択して基本システムクロックイベントに一致させることを可能にするには、ｔ０以降の高分解能カウントの総数を知る必要がある。リサンプラ補間係数計算への入力として、ユーザクロックを基準とした時間も知る必要がある。これらの必要性の双方について、ｔ０から現在の基本システムクロックイベントまでの時間が実際に測定される。
【００６６】
ｔＮ＝ＮＴｒｅｆ                      （９）
ここで、ｔＮは、Ｎ番目の基本システムクロックイベント時におけるｔ０以降の時間であり、Ｎは、ｔ０以降の基本システムクロックサイクル数であり、Ｔｒｅｆは、基本システムクロックであるシステムクロックの周期、すなわち１０ｎｓである。
【００６７】
ユーザクロック周期の点からｔＮを表すことによって、小数値ＦＲＡＣは、最後のユーザクロック以降の時間（次のユーザクロックまでの時間である残差ではない）を求めることができる。これは、数学的には、
【００６８】
【数５】
0005563469.tif 000007
【００６９】
によって表すことができる。ここで、ＦＲＡＣｕｓｅｒは、最後のユーザクロックからの時間であり、Ｔｕｓｅｒは、ユーザクロック周期であり、
【００７０】
【数６】
0005563469.tif 000008
【００７１】
は、モジュロ演算子である。基準クロック当たり複数の仮想クロックイベントが存在する状況のために、この最後のユーザクロックからの時間を測定する方法は、この用途の残差方法よりも好ましい。この場合、複数の剰余値を生成する必要があるのに対して、最後のユーザクロック（すなわちＦＲＡＣ）値からの時間は、単一の時間で十分である。
【００７２】
一般に、基準クロックから合成されたユーザクロックは、基準クロックの有理分数となる、すなわち、
【００７３】
【数７】
0005563469.tif 000009
【００７４】
又は時間の点からは、
【００７５】
【数８】
0005563469.tif 000010
【００７６】
となる。Ａ項は、ＴｒｅｆをＡ  Ｔｒｅｓｏｌｕｔｉｏｎとして表すことができるように固定とすることができ、したがって、式（９）、（１０）、及び（１２）を組み合わせることによって
【００７７】
【数９】
0005563469.tif 000011
【００７８】
が与えられる。関数
【００７９】
【数１０】
0005563469.tif 000012
【００８０】
は、モジュロＢアキュムレータとしてハードウェアにおいて実施される。このモジュロＢアキュムレータでは、値Ａ＝Ｔｒｅｆ／Ｔｒｅｓｏｌｕｔｉｏｎが事前に計算され、次に、各基本システムクロックサイクルに累算される。
【００８１】
リサンプラオペレーションは、システムクロックサイクル、すなわちＤＳＰクロックサイクルで行われるため、基本システムクロックドメイン時間アキュムレータ値は、ＤＰＳクロックドメインにマッピングされる。このマッピングが、長期のフィードバックなしで行われる場合、導入されたいずれの誤差も累算せず、したがって、マッピングは近似とすることができる。以下に示す値は、リサンプラ器具の例示のクロック周波数についてのものである。
【００８２】
【数１１】
0005563469.tif 000013
【００８３】
コンバータクロック時間アキュムレータは、コンバータクロックアキュムレータが、ユーザクロックリセットイベントによってではなく、コンバータクロックリセットイベントによってリセットされることを除いて、ユーザクロック時間アキュムレータと同じである。コンバータクロック周波数は、ユーザクロック周波数よりもはるか多く制限され、したがって、低分解能アキュムレータが許容可能となる。
【００８４】
リサンプラ出力クロックがＤＳＰクロックと一致する場合は、ＤＳＰクロックの「後」に生じる仮想リサンプラクロックとして扱われ、その結果、ＦＲＡＣ値が常に０よりも大きいことを暗に意味する。
【００８５】
一例示の実施形態では、ユーザクロックの範囲の要件は、３４０ＭＨｚから、下は５ｋＨｚまでである。ユーザクロック時間アキュムレータは、したがって、
【００８６】
【数１２】
0005563469.tif 000014
【００８７】
をカウントできなければならず、したがって、この範囲をカバーするには、１４ビットが必要とされる。
いくつかの実施形態では、ユーザクロックは、周期を整数インクリメントしたものに基づいている。一般に、アナログクロックとデジタルクロックとの間のコヒーレンシを達成することはできないが、本発明者の用途に十分近づけることはできる。関心のある領域は、（１）ＦＦＴ出力が「漏れ」を有し、したがって、誤りのある結果を与えること、及び（２）時間の経過に伴いアナログ信号とデジタル信号との間にゆっくりとした位相ドリフトがあるということである。
【００８８】
正弦波信号対雑音比に対する周波数精度の影響は、長方形ウィンドウＦＦＴ解析によって測定され、近似であることが知られている。これについては、例えば、Rosenfield及びMaxの「When ‘Almost’ is Good Enough: a Fresh Look at DSP Clock Rates」, International Test Conference, 1988を参照されたい。この文献は、参照によりその全体が本明細書に援用される。
【００８９】
【数１３】
0005563469.tif 000015
【００９０】
ここで、Ｔは、キャプチャされて解析された信号の継続時間であり、ω１は、実際の正弦波周波数であり、ω２は、理想的な正弦波周波数である。このＳＮＲは、
【００９１】
【数１４】
0005563469.tif 000016
【００９２】
と表すことができる。ここで、Ｍは、解析された正弦波サイクルの個数であり、ｅは、相対周波数誤差である。
シミュレーションソフトウェアアプリケーションを使用して行われたテストは、相関が０．１ｄＢよりも良好であることを示した。ナイキスト周波数については、雑音電力の約２分の１が、Ｍ−１ビンに集中し、したがって、ＳＮＲ＋３ｄＢのＳＦＤＲ制限がある。大規模ＦＦＴ（６４ｋの実用上の制限を考慮）及び低雑音器具では、非コヒーレントクロックに起因したＳＦＤＲ制限は、１６０ｄＢよりも良好であるはずである。
【００９３】
１５７ｄＢのＳＮＲを達成するには、１０ｎｓ／２４４（５．６  Ｅ−２２秒）のユーザクロック分解能が必要とされる。５．６  Ｅ−２２秒のユーザクロック周期分解要件を使用すると、最悪の場合の位相ドリフトは、
【００９４】
【数１５】
0005563469.tif 000017
【００９５】
となる。すなわち、６．８ｐｓ／分；４００ｐｓ／時間となる。
ｐの範囲は、その寄与係数の極値から導出される。ＴＤＥＬＡＹを無視すると、最小のｐの値は、
【００９６】
【数１６】
0005563469.tif 000018
【００９７】
から得られる。ＦＲＡＣ値は（０，Ｔ］の範囲を有し、したがって、ｐＭＩＮはほぼ０である。ｐの最大値は、Ｔｘの最大値から得られ、その結果、ＦＲＡＣＲＳＯの最小値から得られる。つまり、
【００９８】
【数１７】
0005563469.tif 000019
【００９９】
となる。
ＦＲＡＣＲＳＯの最小値は、リサンプラ出力クロックがＤＳＰクロックの直前に発生したときに生じ、このとき、ＦＲＡＣＲＳＯ＝ＴＲＳＯ−ＴＤＳＰである。したがって、
【０１００】
【数１８】
0005563469.tif 000020
【０１０１】
である。Ｋが整数であるとし、リサンプラ入力クロックＴＲＳＯとＤＳＰクロックＴＤＳＰとが同相に位置合わせされている状況で、ＴＲＳＯ＝ＫＴＤＳＰである以下に示す特殊な場合には、ＦＲＡＣＲＳＯは常にＴＲＳＯに等しいことに留意されたい。このような場合には、
【０１０２】
【数１９】
0005563469.tif 000021
【０１０３】
である。
補間係数ｐは、リサンプラ出力クロックとリサンプラ入力クロックとの相対位相を表す。リサンプラは、全パスポリフェーズサブフィルタ（理想的な相対位相を一まとめに扱うインクリメンタル遅延値を有する）の２つを適用し、次に、２つの結果の間を線形補間することによって出力値を補間する。このようなリサンプラのＳＮＲは、
【０１０４】
【数２０】
0005563469.tif 000022
【０１０５】
であることが知られている。ここで、Ｉｆｉｌｔｅｒは、ポリフェーズサブフィルタの個数であり、ωｘは、相対帯域幅２πＢＷｕｓｅｒ／ＦＲＳＩである。これについては、例えば、J. G. Proakis及びD. K. ManolakisによるIntroduction to Digital Signal Processingの（第２版１９９２年）に説明されているものを参照されたい。さらに、線形補間器自体が、実際には、
【０１０６】
【数２１】
0005563469.tif 000023
【０１０７】
のＳＮＲを有するポリフェーズフィルタである。
どの自動化された試験機器、器具類、又は通信システムも、波形デジタイザ、任意波形ジェネレータ、変調システム、及び復調システムの設計及び実施が簡単化されるため、本発明から利益を受ける。
【０１０８】
本明細書では、本発明の好ましい実施形態及びさまざまな代替的な実施形態を開示し、詳細に説明してきたが、本発明の趣旨及び範囲から逸脱することなく、形式及び細部におけるさまざまな変更をそれらの実施形態において行えることが当業者には明らかであり得る。
【０１０９】
本明細書に示した例は、本発明の精神及び範囲を多少なりとも限定するものと決して解釈されるべきでないことに留意すべきである。具体的な例及び実施態様は、本明細書では、例証のためにのみ示されている。また、好ましい実施形態では、フィルタの状態数は、サンプルレート変換を実行するために変更されたときに不変のままとすることができるが、代替的な実施形態では、本発明の精神及び範囲から逸脱することなく、付加的な状態を追加することができる。
【図４】
0005563469.tif 000024
【図５】
0005563469.tif 000025
【図６】
0005563469.tif 000026
【図１３】
0005563469.tif 000027
【図１】
0005563469.tif 000028
【図２】
0005563469.tif 000029
【図３】
0005563469.tif 000030
【図７】
0005563469.tif 000031
【図８】
0005563469.tif 000032
【図９】
0005563469.tif 000033
【図１０】
0005563469.tif 000034
【図１１】
0005563469.tif 000035
【図１２】
0005563469.tif 000036