(57)【要約】未処理の信号サンプルを記憶せずに畳み込み結果をリアルタイムで発生することにより入力ＧＰＳ信号と基準コードとの間の畳み込み（１０９）を計算するための方法及び装置。この装置は、全エポックを処理するサイズのベクトル乗算器と同じ結果を得るように高速度で動作するベクトル乗算器（４０２ａ，４０２ｂ）を備えている。更に、履歴相関データ（１１３）を使用して周波数及びタイミングエラーを修正する。【選択図】図１
2005505759.tif 000002
【特許請求の範囲】
【請求項１】
衛星ポジショニング受信機において受信機パラメータを推定する方法であって、
ａ）少なくとも１つの衛星から受信した信号に対して一連の相関結果で構成される相関履歴を発生するステップと、
ｂ）上記相関履歴から少なくとも１つの受信機パラメータを推定するステップと、
を備えた方法。
【請求項２】
ｃ）更に別の相関を実行するときに上記少なくとも１つの受信機パラメータを使用するステップを更に備えた請求項１に記載の方法。
【請求項３】
上記更に別の相関は、上記少なくとも１つの衛星から受信した上記信号とは異なる衛星からの信号において実行される請求項２に記載の方法。
【請求項４】
上記少なくとも１つの受信機パラメータは、受信機の発振器の周波数を含む請求項１に記載の方法。
【請求項５】
上記少なくとも１つの受信機パラメータは、受信機のタイミングエラーを含む請求項１に記載の方法。
【請求項６】
上記受信機のタイミングエラーは、衛星の基準時間に対する受信機クロックのオフセットのモジュロ２０ミリ秒推定値である請求項５に記載の方法。
【請求項７】
上記少なくとも１つの受信機パラメータは、更に、受信機の発振器の周波数を含む請求項５に記載の方法。
【請求項８】
上記更に別の相関は、標準相関モードを使用して実行される請求項２に記載の方法。
【請求項９】
一連の相関結果を発生する上記ステップは、
（ａ１）擬似ランダム基準コードを複数のコードセグメントに分割する段階と、
（ａ２）コードセグメントを選択する段階と、
（ａ３）前記選択されたコードセグメントと１組のデジタル信号サンプルとの間の内積を形成して部分相関を発生する段階と、
（ａ４）上記段階（ａ１）及び（ａ３）を繰り返して複数の部分相関を発生する段階と、
（ａ５）各部分相関が発生されたときに上記複数の部分相関を加算して複数の相関を形成する段階と、
を備えた請求項１に記載の方法。
【請求項１０】
上記受信した信号を同相及び直角位相成分に分割すると共に、上記ステップａ）及びｂ）を上記同相及び直角位相成分に対して別々に実行するというステップを更に備えた請求項１に記載の方法。
【請求項１１】
上記相関履歴からナビゲーションデータビットを発生するステップを更に備えた請求項１に記載の方法。
【請求項１２】
上記ステップ（ｂ）は、
上記相関履歴を順次推定アルゴリズムに適用して、信号周波数及びビットタイミングの少なくとも１つを推定する段階を備えた請求項１に記載の方法。
【請求項１３】
衛星ポジショニング受信機において相関履歴から少なくとも１つの受信機パラメータを推定する方法であって、
ａ）上記相関履歴に応答して、受信機周波数及びビットタイミング仮説を使用して信号レベルの複数の推定値を決定するステップと、
ｂ）上記信号レベル推定値に応答して、信号レベルを実質的に最大にする受信機の周波数及びビットタイミングを与える少なくとも１つの受信機パラメータの推定値を決定するステップと、
を備えた方法。
【請求項１４】
ｃ）上記相関履歴を周波数修正するステップと、
ｄ）上記相関履歴をナビゲーションビット周期にわたって積分するステップと、
ｅ）上記ナビゲーションビット周期内の信号に対する信号レベルを計算するステップと、
ｆ）複数の次々の信号レベル値を加算して、積分された信号レベル値を、最大にされるべき信号レベルとして形成するステップと、
を更に備えた請求項１３に記載の方法。
【請求項１５】
上記信号レベルは、信号電力及び信号大きさの少なくとも１つである請求項１３に記載の方法。
【請求項１６】
上記信号レベルは、信号電力及び信号大きさの少なくとも１つである請求項１４に記載の方法。
【請求項１７】
周波数にわたってサーチして信号レベルの最大値を決定するステップを更に備えた請求項１３に記載の方法。
【請求項１８】
ビットタイミングにわたってサーチして信号レベルの最大値を決定するステップを更に備えた請求項１３に記載の方法。
【請求項１９】
周波数及びビットタイミングにわたってサーチして信号レベルの最大値を決定するステップを更に備えた請求項１３に記載の方法。
【請求項２０】
上記サーチは、ダウンヒル・シンプレックス方法を含む請求項１７に記載の方法。
【請求項２１】
衛星ポジショニング受信機において少なくとも１つの受信機パラメータを推定する装置であって、
ａ）少なくとも１つの衛星から受信した信号から、一連の相関結果で構成される相関履歴を発生する手段と、
ｂ）上記相関履歴から少なくとも１つの受信機パラメータを推定する手段と、
を備えた装置。
【請求項２２】
ｃ）更に別の相関を実行するときに上記受信機パラメータを使用する相関装置を更に備えた請求項２１に記載の装置。
【請求項２３】
上記更に別の相関は、上記少なくとも１つの衛星から受信した上記信号とは異なる衛星からの信号において実行される請求項２２に記載の装置。
【請求項２４】
上記少なくとも１つの受信機パラメータは、受信機の発振器の周波数を含む請求項２１に記載の装置。
【請求項２５】
上記少なくとも１つの受信機パラメータは、受信機のタイミングエラーを含む請求項２１に記載の装置。
【請求項２６】
上記受信機パラメータは、更に、受信機の発振器の周波数を含む請求項２５に記載の装置。
【請求項２７】
上記受信機のタイミングエラーは、衛星の基準時間に対する受信機クロックのオフセットのモジュロ２０ミリ秒推定値である請求項２５に記載の装置。
【請求項２８】
相関履歴を発生する上記手段は、
（ａ１）擬似ランダム基準コードを複数のコードセグメントに分割する手段と、
（ａ２）コードセグメントを選択する手段と、
（ａ３）前記選択されたコードセグメントと１組のデジタル信号サンプルとの間の内積を形成して部分相関を発生する手段と、
（ａ４）上記手段（ｃ１）及び（ｃ３）を繰り返し動作して複数の部分相関を発生する手段と、
（ａ５）各部分相関が発生されたときに上記複数の部分相関を加算して複数の相関を形成する手段と、
を更に備えた請求項２１に記載の装置。
【請求項２９】
上記受信した信号を同相及び直角位相成分に分割して、その同相及び直角位相成分を別々に処理する手段を更に備えた請求項２１に記載の装置。
【請求項３０】
上記相関履歴からナビゲーションデータビットを発生する手段を更に備えた請求項２１に記載の装置。
【請求項３１】
周波数及びビットタイミング仮説において信号レベルに関連した推定値を決定する手段を更に備えた請求項２１に記載の装置。
【請求項３２】
プロセッサにより実行されたときに、衛星ポジショニング受信機が、相関履歴から少なくとも１つの受信機パラメータを推定する方法を実行するようにさせるソフトウェアを記憶するコンピュータ読み取り可能な媒体において、上記方法が、
ａ）上記相関履歴に応答して、受信機周波数及びビットタイミング仮説を使用して信号レベルの複数の推定値を決定するステップと、
ｂ）上記信号レベル推定値に応答して、信号レベルを実質的に最大にする受信機の周波数及びビットタイミングを与える少なくとも１つの受信機パラメータの推定値を決定するステップと、
を備えた方法。
【請求項３３】
ｃ）上記相関履歴を周波数修正するステップと、
ｄ）上記相関履歴をナビゲーションビット周期にわたって積分するステップと、
ｅ）上記ナビゲーションビット周期内の信号に対する信号レベルを計算するステップと、
ｆ）複数の次々の信号レベル値を加算して、積分された信号レベル値を、最大にされるべき信号レベルとして形成するステップと、
を更に備えた請求項３２に記載の方法。
【請求項３４】
上記信号レベルは、信号電力及び信号大きさの少なくとも１つである請求項３２に記載の方法。
【請求項３５】
上記信号レベルは、信号電力及び信号大きさの少なくとも１つである請求項３３に記載の方法。
【請求項３６】
周波数にわたってサーチして信号レベルの最大値を決定するステップを更に備えた請求項３３に記載の方法。
【請求項３７】
ビットタイミングにわたってサーチして信号レベルの最大値を決定するステップを更に備えた請求項３３に記載の方法。
【請求項３８】
周波数及びビットタイミングにわたってサーチして信号レベルの最大値を決定するステップを更に備えた請求項３２に記載の方法。
【請求項３９】
上記サーチは、ダウンヒル・シンプレックス方法を含む請求項３８に記載の方法。
【発明の詳細な説明】
【関連技術】
【０００１】
本出願は、参考としてここに援用する２００１年５月１８日出願の米国特許出願第０９／８６１，０８６号の一部継続出願である。
【発明の分野】
【０００２】
本発明は、デジタル信号受信機のための信号相関装置に関し、より詳細には、例えば、グローバルポジショニングシステム（ＧＰＳ）受信機において履歴相関データを使用して信号相関を実行するための方法及び装置に関する。
【背景技術の説明】
【０００３】
グローバルポジショニングシステム（ＧＰＳ）信号の測定プロセスは、既知の擬似ランダムノイズ（ＰＲＮ）コードに対して到来信号の一連の相関を試みることによりノイズの存在中でＧＰＳ信号をサーチするという手順で開始される。このサーチ手順は、信号の厳密な周波数及び到着時間遅延の両方が未知であるので、長々しいものとなる。信号を見出すために、受信機は、慣習的に、二次元サーチを実行して、考えられる各周波数において各遅延の可能性をチェックする。特定の周波数における信号の存在と遅延をテストするために、受信機がその周波数に同調され、到来信号が、到着時間に対応する量だけ遅延された既知のＰＲＮコードと相関される。信号が検出されない場合には、サーチが、次の遅延可能性へと続けられ、全ての遅延可能性がチェックされた後に、次の周波数可能性へと続けられる。各個々の相関は、信号をノイズから区別するに充分な信号平均化を許すために１ミリ秒以上にわたって実行される。数千の周波数及び遅延の可能性がチェックされるために、収集プロセス全体では数十秒を要する。
【０００４】
近年、ワイヤレス装置におけるＧＰＳ技術の新規な用途が出現し、例えば、セルラー電話にＧＰＳを使用して非常位置決め機能を与えるものが出現した。これらの用途では、ほんの数秒といった迅速な信号収集が要求される。更に、これらの用途では、ＧＰＳ信号レベルが相当に減衰される苛酷な信号環境や屋内でＧＰＳ受信機を動作することが要求される。減衰した信号を検出するには、比較的長時間にわたって各相関を実行することが要求される。例えば、慣習的なＧＰＳ受信機では１−１０ミリ秒の周期であるのに対して、数秒間にわたって積分が行われる。このような長い積分時間では、全サーチ時間が１００倍以上に増加するので、慣習的な受信機に使用される二次元の逐次サーチプロセスは不可能である。
【０００５】
サーチプロセスを加速するために、ＧＰＳ設計者は、多数の到着時間可能性を同時にチェックできるように付加的な相関装置を受信機に追加している。追加される各相関装置は、通常、個別のコードミクサ及び信号アキュムレータを必要とする。これは、所定の感度レベルに対し、相関装置の数に比例してサーチ時間を減少する。セルラー電話の用途で要求される感度及び収集時間を達成するためには、数千の相関装置を組み込むように設計しなければならない。このような追加は、通常、消費者向け装置にとって甚だしく複雑で且つ経費のかかるものとなる。
【０００６】
例えば、１９９９年５月４日付の米国特許第５，９０１，１７１号は、単一の時分割処理ブロックを使用して、１２個の各チャンネルで２０個までの同時相関を実行できるようにするトリプルマルチプレクス技術を開示している。これは、２０個の遅延可能性のブロックが同時にチェックされるので、単一相関装置設計に比して性能の改善を与える。全範囲の遅延不確実性にわたって全信号サーチを行うには、２０個の相関装置のブロックを次々に約１００回使用して、２０４６個の遅延をチェックすることが必要である。従って、数秒で収集を行わねばならない場合には、積分時間が数十ミリ秒に制限される。これは、屋内ＧＰＳ用途に必要な感度を得るのに不充分である。
【０００７】
サーチプロセスを更に改善するために、他のＧＰＳ受信機アーキテクチャーは、到来信号と既知のＰＮＲコードとの間の畳み込みを発生することのできる処理を含む。これは、全Ｃ／Ａコードエポック（１０２３チップ）にわたり全時間遅延可能性に及ぶ完全な１組の相関装置を設けることと同等であり、１９９７年９月２日付の米国特許第５，６６３，７３４号は、ソフトウェアアルゴリズムを使用して必要な相関結果を効率的に発生するための高速フーリエ変換（ＦＦＴ）ベースのソフトウェア技術を開示している。この解決策は、全ての用途に適するものではない。というのは、ソフトウェアＦＦＴを実行するのにプログラム可能なデジタル信号プロセッサ（ＤＳＰ）が必要とされ、そして未処理の信号サンプルを記憶するのに大きなメモリが必要とされるからである。更に、この解決策は、ソフトウェア計算のために、且つ信号の完全なスナップショットが記憶された後でなければソフトウェア処理がスタートしないために、大きな処理遅延を伴う。多くの用途では、リアルタイム処理解決策が好ましく、即ち大規模なソフトウェア処理を伴わないものが好ましい。リュジン氏等の「Fast Acquisition by Matched Filter Technique for GPS/GLONASS Receivers」、第３０７−３１５ページには、１０２３個のタップをもつ整合フィルタを使用して畳み込みをリアルタイムで実行するためのハードウェア解決策が開示されている。整合フィルタは、全Ｃ／Ａコードエポックを保持するに充分な大きさのシフトレジスタと、信号の全エポックとＣ／Ａコードとの間の内積を発生する巾１０２３のベクトル乗算及び加算ユニットとで構成される。
【０００８】
この回路は、セルラー電話のような低コストの消費者向け装置の制約に対して複雑である。また、Ｐコード収集用の軍用受信機に使用されるような他の整合フィルタ解決策も、大きなベクトル乗算器を組み込んでいる。
【０００９】
従って、信号及びＣ／Ａコードの全エポックを処理することのできる改良された簡単且つ低コストのＧＰＳ処理ブロックが要望される。このような装置は、比較的簡単であるが全畳み込みを発生できるハードウェア、又は多数の並列の相関装置から、好ましくは、大きなベクトル乗算器を伴わずに形成されねばならない。
【発明の概要】
【００１０】
本発明は、未処理の信号サンプルを記憶せずに且つ広範囲なソフトウェア処理を伴わずに、畳み込み結果をリアルタイムで発生することにより、入力信号（例えば、ＧＰＳ信号）と擬似ランダムノイズ（ＰＲＮ）コード基準との間の全畳み込みを計算するための方法及び装置を提供する。この装置は、全エポックを処理するサイズのベクトル乗算器と同じ結果を得るために高速度で動作するベクトル乗算器を備えている。本発明は、セルラー電話のような消費者向け装置の複雑な制約に適合する集積回路において実施することができる。この設計は、畳み込み結果の長時間平均化を行って高い感度を確保できるようにするに必要なロジックを含む。本発明は、屋内で受信される信号を含む著しく減衰された信号から位置場所を導出するのに使用するために信号を相関することができる。
【００１１】
完全な装置は、従来型のＧＰＳチューナと、デシメーション回路と、畳み込みプロセッサと、畳み込み結果を累算するＲＡＭブロックとで構成される。畳み込みプロセッサは、ほぼ１００ＭＨｚ以上の高いクロックレートで動作して、小さな回路ブロックの繰返し使用により全畳み込みを計算することができる。より詳細には、畳み込みの各ポイントが一連の部分相関へと分割され、その各々は、エポックの一部分のみを処理するサイズのベクトル乗算器を使用して発生される。この装置は、Ｃ／Ａコードを、コードセグメントの非重畳セットに細分化することにより、部分相関を編成する。各部分相関は、一度に１つのコードセグメントしか使用せず、簡単なルックアップテーブルを使用してＣ／Ａコードを効率的に記憶及び検索することができる。
【００１２】
プロセッサは、入力ＩＦサンプルをデシメーションして希望のサンプルレートで信号流を生成することにより始動し、このレートは、到来信号のタイミングに正確に一致される。希望のサンプルレートをＰｆ０（Ｃ／Ａチップ当たりＰ個のサンプル）とすれば、サンプリングレートは、厳密に１０２３ｘＰ個のサンプルが各信号エポックに取り出されるようにセットされる。プロセッサは、Ｋを１０２３の因数とすれば、ＰｘＫ個の入力サンプルを保持するサイズのシフトレジスタを経て信号クロック信号を相関する。各信号シフト時に、一連のＭ回の部分相関演算が実行され、但し、Ｍは、ＭｘＫ＝１０２３であるように選択される。各部分相関は、信号シフトレジスタの内容と、Ｃ／Ａコードの長さＫのセグメントをＰｘＫ個のサンプルに拡張することにより生成された基準サンプルのブロックとの内積をとることより成る。部分相関結果は、メモリに累積される。部分相関結果を累算することにより、プロセッサは、全畳み込みまでの多数の相関ポイントに対して完全な相関結果を発生する。
【００１３】
相関処理を向上させるために、本発明の付加的な実施形態は、相関履歴モードを使用して相関装置を動作する。この実施形態では、ＲＡＭを使用して、相関履歴を形成する規定の周期にわたり相関結果を記憶する。相関履歴モードは、部分相関処理を実行する前に１つ以上の衛星に対するナビゲーションデータビットのドップラー周波数エラー及びタイミングを分析するように調整できる受信機パラメータを推定するのに使用される。この推定される受信機パラメータは、受信機の発振器の周波数及び／又は受信機のタイミングエラーを含む。
【００１４】
本発明は、添付図面を参照した以下の詳細な説明から容易に理解できよう。
【詳細な説明】
【００１５】
図１は、本発明によるグローバルポジショニングシステム（ＧＰＳ）受信機１００のブロック図である。本発明によるプラットホームとしてＧＰＳ受信機を使用することで、本発明の１つの用途が形成される。信号相関を必要とする他のプラットホームも、本発明を利用することができる。
【００１６】
信号（例えば、ＧＰＳ信号）は、アンテナ１０１により受信される。高周波／中間周波コンバータ（ＲＦ／ＩＦコンバータ）１０２は、信号をフィルタし、増幅し、且つ周波数シフトし、更に、信号は、アナログ／デジタルコンバータ（Ａ／Ｄ）１０３によりデジタル化される。これらの要素１０１、１０２及び１０３は、従来型ＧＰＳ受信機に使用された要素と実質的に同様である。
【００１７】
Ａ／Ｄ１０３の出力は、デジタルロジックで実施される１組の処理チャンネル１０４１、１０４２、・・１０４ｎ（ｎは整数）に接続される。各処理チャンネル１０４ｎは、特定のＧＰＳ衛星からの信号を処理するのに使用される。特定チャンネルの信号は、数値制御発振器（ＮＣＯ）１０６により駆動されるチューナ１０５によって同調される。このチューナ１０５は、２つの目的を果たす。第１に、ＲＦ／ＩＦ変換後に残っているＩＦ周波数成分が除去される。第２に、衛星の移動、ユーザの移動及び基準周波数エラーから生じる衛星ドップラー周波数シフトが除去される。チューナからの出力は、同相成分（Ｉ）及び直角位相成分（Ｑ）より成る基本帯域信号である。１０５及び１０６のステップは、従来型のＧＰＳ受信機設計に使用されたものと実質的に同様である。
【００１８】
デシメーション回路１０７は、１０５の出力を処理する。デシメーション回路１０７の出力は、入力信号のタイミングに合致するように正確にタイミング合わせされたレートで出力されるＩ及びＱ成分をもつ一連の複素数信号サンプルである。本発明の一実施形態では、デシメーション動作は、到来する全ての信号サンプルを出力サンプルの周期にわたって加算する簡単な前加算器である。数値制御される発振器（ＮＣＯ）１０８は、サンプリングプロセスのタイミングをとるのに使用される。例えば、Ｐ＝２の場合に、コードＮＣＯ１０８は、ドップラーシフトに対して調整された（２ｘｆｓ）の周波数を発生するようにセットされ、ここで、ｆｓは、ｆ０（ＧＰＳ信号のＣ／Ａコードチップレート）である。ＮＣＯは、ファームウェアコマンドからの外部入力に基づいてドップラーシフトを調整する。ドップラーシフトは衛星ごとに異なるので、チャンネル１０４ｎごとに個別のコードＮＣＯ１０８及びデシメーション回路１０７が必要となる。コードＮＣＯ１０８は任意の周波数を発生できるので、到来サンプルレートがｆｓの整数倍である必要はないことに注意されたい。デシメーション回路１０７が前加算器である場合には、加算されるサンプルの数が、通常、２つの値の間で切り換えられ、長時間にわたって正しいサンプルタイミングが維持されるようにする。例えば、到来サンプルレートが１０ＭＨｚであり、希望のサンプルレートが２．０４６ＭＨｚである場合には、前加算器は、４又は５のいずれかのサンプルを加算し、希望のサンプルレートが平均で維持されるようにする。
【００１９】
また、デシメーション回路１０７は、更なる処理の前に信号成分におけるビットの数を減少するために、その出力に量子化装置（図示せず）を含んでもよい。本発明の一実施形態では、２ビットの量子化が使用される。
【００２０】
デシメーション回路１０７からの信号サンプルは、畳み込みプロセッサ１０９に接続される。この畳み込みプロセッサ１０９により発生された結果は、信号ランダムアクセスメモリ（ＲＡＭ）１１０ａ及び１１０ｂに記憶される。
【００２１】
より詳細には、これらのＲＡＭ１１０ａ及び１１０ｂは、入力信号と基準ＰＮコード（例えば、ＧＰＳ  Ｃ／Ａコード）との間の全畳み込みの一部分又は全部を構成する複素数ベクトルを保持する。畳み込み結果は、信号と基準（ＰＮコード）との間の高い相関に対応するポイントにピークを有する。以下に詳細に述べるように、種々の衛星信号に対するこれらピークの相対的な位置は、最終的に位置情報を計算するのに使用される。
【００２２】
畳み込みプロセッサ１０９及び信号ＲＡＭ１１０ａ、１１０ｂは、公称１ミリ秒間隔で繰り返されるＧＰＳ信号の多数のエポックに対する畳み込み結果を累算する。例えば、１０ミリ秒の信号が処理される場合には、ＲＡＭ１１０ａ、１１０ｂの値は、各々１つのエポックにわたって発生された１０個の相関結果の和である。個々の相関は、全て、同様の特性をもたねばならない。というのは、デシメーション動作のタイミングが、各エポック内の同じ相対的瞬間にサンプルを取り出すよう確保するからである。個々の相関からの同様の結果を累算することで、信号対雑音比が改善され、弱い信号を検出するための受信機の能力が向上される。この処理は、コヒレントな積分と称され、以下に述べるように、これを大きさ積分と結合して、数秒までの時間周期にわたって平均化された相関結果を得ることができる。
【００２３】
コヒレントな積分が実行される時間間隔の長さは、未補償のドップラーシフト、ＧＰＳ信号ナビゲーションデータビット、及び受信機１００の移動により誘起される位相シフトを含む多数のファクタによって制限される。これらのファクタは、低速であるが見掛け上ランダムな位相変化を信号に導入する。数十ミリ秒にわたり、これらの位相変化は、コヒレントな積分の目的を阻止する破壊的干渉を生じさせる。それ故、長い平均化間隔を得るために、受信機１００は、大きさ累算の第２のステップを実行する。より詳細には、信号ＲＡＭ１１０ａ及び１１０ｂに記憶された信号は、複素数正規化装置１１１へ周期的に出力され、この正規化装置は、複素数畳み込みベクトルの複素数大きさ値を発生する。この複素数大きさ値は、加算器１１２により累算されて、大きさＲＡＭ１１３に記憶される。信号の複素数大きさが計算されるたびに、信号ＲＡＭ１１０ａ及び１１０ｂをクリアして、別のコヒレントな積分を実行できるようにする。このプロセスは、希望の回数の大きさ累算が完了するまで続けられる。例えば、コヒレントな平均化間隔が１０ミリ秒で、２００回の大きさ累算を希望する場合には、全プロセスはが秒にわたって実行される。
【００２４】
畳み込みプロセスの後に、大きさＲＡＭ１１３は、信号対雑音比を改善するために積分された畳み込み結果の複素数大きさを有するベクトルを含む。以下に述べるように、このベクトルは、ＣＰＵ１１４により実行されるソフトウェアアルゴリズムにより更に処理されて、受信機の位置を生じるのに使用される擬似レンジデータを発生する。これらのステップに対するＣＰＵ計算負荷は、従来型のＧＰＳ受信機又はＦＦＴベースの相関装置に比してかなり控え目であることに注意されたい。この実施形態では、相関及び積分の計算上過酷なタスクは、ソフトウェア処理の前に計算される。
【００２５】
図２は、図１の要素により発生される波形２０１Ｉ、２０１Ｑ及び２０２を示している。これらの波形２０１Ｉ、２０１Ｑ及び２０２は、信号強度（軸２０８）対コードチップ（軸２１０）のプロットである。これらの波形は、コヒレントな積分及び大きさ積分中の畳み込みプロセッサ１０９の出力を示す。明瞭化のために、各々３つのコヒレントな積分に基づく３つの大きさ累算で構成される９ミリ秒の信号処理時間のみ示されている。この例では、Ｐ＝２であり、従って、コヒレントな積分当たり２０４６個の信号サンプルが存在する。波形２０１Ｉ及び２０１Ｑは、畳み込みプロセッサ１０９からの出力であり、ここで、２０１Ｉは、出力のＩ成分であり、そして２０１Ｑは、Ｑ成分である。２０４６個のサンプルの各ブロックは、その時間間隔中に処理された２０４６個の信号サンプルから畳み込みプロセッサ１０９によりリアルタイムで発生された全畳み込み結果である。この畳み込み結果は、信号の時間遅延に対応する信号ピーク（参照番号２０６Ｉ及び２０６Ｑで示すような）の付近を除いてノイズを含む。信号は、エポックごとに繰り返され、従って、２０４６個のサンプルごとにピークが再び現われる。最初の３つのサイクルにわたり、各エポックからの対応遅延において値を加算することにより相関結果がＲＡＭ１１０ａ及び１１０ｂに累積される。（例えば、出力時間４における値は、出力時間２０５０及び４０９６における値と加算される。）相関ピークは、常に、同じ遅延オフセットで現われ、ピークのサイズは、累算にわたって増加し、３つのエポックにわたってほぼ３倍になる。ノイズのレベルも増加するが、ノイズの相関はエポックごとに非相関であるために３の平方根で上昇するに過ぎない。信号対雑音比は、累算プロセスにわたって改善され、ほぼ３の平方根で増加する。波形２０１Ｑは、直角位相チャンネルに生じる同じ信号累算プロセスを示す。
【００２６】
信号の第４サイクルで始めて、信号ＲＡＭ１１０ａ及び１１０ｂがゼロにクリアされると共に、信号累算プロセスが再開される。波形２０１Ｉ及び２０１Ｑは、相関が９個の信号エポックにわたって３回累積及び減衰することを示す。
【００２７】
コヒレントな平均化間隔の終りに、累積された信号の大きさが計算されて、大きさＲＡＭ１１３へ加算される。大きさＲＡＭ１１３の信号が波形２０２として示されている。この例では、波形２０２は、各コヒレントな積分の完了に対応して３回更新される。ピークは、参照番号２１２１、２１２２、２１２３で示されており、ノイズは、参照番号２１４で示されている。明らかなように、信号対雑音比は、各大きさ累積と共に増加され、到着時間に対応するピークを識別するシステムの能力を更に向上させる。
【００２８】
この例では、信号の複素数位相は、９個のエポックにわたって変化することに注意されたい。より詳細には、信号は、最初、Ｉ及びＱチャンネルの両方に存在するが、最終的なエポックまでに、Ｉチャンネルにおいて強力で且つＱチャンネルにおいてほぼ存在しないように回転する。上述したように、不完全なドップラーシフト同調及び他の作用によりこの回転が生じる。多数のエポックにわたり、位相が多数のサイクルを経て回転し、累積されたときに信号の打消しを生じさせる。このため、本発明の受信機は、短い間隔にわたってのみコヒレントに累積を行い、長時間平均化については大きさ（非コヒレントな）累積に依存する。大きさの値は、位相とは独立しており、数秒にわたって首尾良く積分される。
【００２９】
図３は、累積された大きさ波形２０２を詳細に示す。プロット３００は、信号の時間遅延に対応するピーク２１２３の付近に畳み込みの大きさを示す。コードチップ軸２１０上のポイントは、Ｃ／Ａコードチップ長さをＰで除算したものに等しい間隔で離間され、ここで、Ｐは、信号サンプリングレートと、ｆ０即ちＣ／Ａコードチップレートとの比である。この例では、Ｐ＝２であり、従って、ポイントは、半チップ間隔、即ちほぼ５００ｎｓで離間される。（この時間間隔は、１５０メーターのレンジ差に対応する。）約１０メーターより優れた擬似レンジ測定を達成するために、畳み込み結果が通常ＣＰＵ１１４において更に処理されて、位置情報を発生する。畳み込みプロセスにより与えられる個別の相関値を使用して真の時間遅延を推定するために、多数の補間技術を使用することができる。一実施形態では、最小２乗推定技術を使用して、ノイズ性の測定データに最良に適合する信号のパラメータが識別される。信号の理想的な応答は、信号の自己相関の大きさである。この波形は、立ち上がった三角形３０２の形状をもつように容易に示すことができる。三角形の底の巾３０３は、厳密に、２Ｃ／Ａコードチップであるか又は畳み込み結果の４つのポイントである（Ｐ＝２の場合）。三角形の底の高さ３０４は、信号に対応しない時間遅延に対する畳み込みにおけるノイズの大きさである。このノイズの大きさは、データから推定することもできるし、或いは増幅器のノイズ指数、ケーブル及びフィルタロス、並びにシステム温度のような設計パラメータに基づいて予め計算することもできる。三角形のピーク３０５及び三角形の中心３０６は、信号の大きさ及び時間遅延に対応して未知である。最小２乗方法を使用して、これらの２つのパラメータを推定し、ノイズ性データポイントを、所与のピーク及び中心をもつ三角形に適合させることができる。図４は、畳み込みプロセッサ１０９（及び畳み込み結果処理回路４００）の詳細なブロック図であり、特に、小さな回路ブロックの繰返し使用により全畳み込みがいかに発生されるかを詳細に示す。図４と、図４のプロセッサ１０９の動作を示す図５のフローチャートとを同時に参照すると共に、図６及び図７の簡単な例を比較することにより、回路の動作が最も良く理解できよう。
【００３０】
デシメーション回路１０７からの信号は、Ｉ及びＱ成分を各々取り扱うシフトレジスタ４０１ａ及び４０１ｂに接続される。各シフトレジスタ４０１ａ及び４０１ｂは、長さがＰｘＫであり、但し、Ｐは、Ｃ／Ａコードチップ当りの希望のサンプル数であり、Ｋは、設計パラメータとして選択される。以下に述べるように、Ｋは、１０２３の因数である。説明を簡略化するため、以下の説明は、Ｐ＝２（サンプルが半チップだけ離間される）及びＫ＝３３である１つの特定の実施形態に焦点を合わせる。シフトレジスタを経て信号を進めるこの手段は、回路が信号を二重にバッファする必要性を排除し、コスト及び実施の複雑さを低減させる。
【００３１】
信号は、コードＮＣＯ１０８によりタイミング合わせされて、２ｆ０のレートでシフトレジスタ４０１ａ及び４０１ｂを経て前進する。信号は、一連の部分相関演算を行えるように、多数のクロックサイクル中にシフトレジスタに位置保持される。特に、全部でＭ個の部分相関が実行され、但し、この例では、Ｍ＝１０２３／Ｋ即ち３１である。各部分相関は、各信号シフトレジスタの内容と、ＰｘＫ（例えば、６６）個のコードサンプルを含むコードのセグメントとの間で行われる高速ベクトル乗算及び加算演算より成る。高速ベクトル乗算及び加算は、回路４０２ａ及び４０２ｂにおいて行われる。回路４０２ａ及び４０２ｂは、各々、乗算器４１０ａ及び４１０ｂと、加算器４１２ａ及び４１２ｂとを含む。その演算は、信号レジスタ４０１ａ又は４０１ｂにおける６６個の信号サンプルの各々に６６個のコードサンプル（３３個のコードサンプルをコードエクステンダー４０９で拡張することにより形成された）を乗算し、次いで、その結果を加算器４１２ａ及び４１２ｂにおいて加算することより成る。この演算は、Ｉ及びＱチャンネルにおいて別々に且つ同時に行われる。数学的には、この演算は、内積と称され、次のように定義される。
【数１】
2005505759.tif 000003
ベクトル乗算及び加算の出力は、数字を小さな範囲に保持してＲＡＭ４０４ａ及び４０４ｂのオーバーフローを回避するために再量子化することができる。簡単化のために、量子化装置は図示されていない。一実施形態では、再量子化は、２ビットの分解能までである。
【００３２】
ベクトル乗算及び加算の結果は、加算器４０３ａ及び４０３ｂにより累算されて、畳み込み結果処理回路４００により処理される。回路４００は、信号ＲＡＭ１１０ａ、１１０ｂと、複素数正規化装置１１１と、加算器１１２と、大きさＲＡＭ１１３とを備えている。信号ＲＡＭ１１１ａ及び４０４ｂに記憶される。累算プロセスは、ＲＡＭ１１０ａ及び１１０ｂから特定時間遅延の現在値を読み取り、丁度計算された部分相関を加算し、その和をＲＡＭ１１０ａ及び１１０ｂに書き戻すことより成る。特定の時間遅延に対応する部分相関を適切に結合することにより、その遅延に対する全相関が計算される。上述したように、このプロセスは、信号対雑音比を向上させるために、希望する数の信号エポックに対して続けられる。従って、加算器４０３ａ及び４０３ｂは、２つの目的、即ち１つのエポック内の部分相関の結合と、多数のエポックにわたる相関の累算とを果たす。
【００３３】
信号ＲＡＭ１１０ａ及び１１０ｂからの出力は、複素数正規化装置４０５において合成されて、信号の大きさを形成する。これらのＲＡＭ１１０ａ及び１１０ｂにおけるＩ及びＱ波形は、複素数波形の実数部分及び虚数部分として見ることができる。大きさを形成することは、各成分を２乗し、その結果を加算し、その結果の平方根をとることより成る。大きさに対する近似であって、回路を簡単化するために使用できる近似は、多数ある。一実施形態では、Ｉ及びＱのスカラーの大きさを別々にとり、どちらが大きいか決定することにより、複素数の大きさが近似される。大きさが大きい方をとり、それを小さい方の大きさの半分に加算することにより、大きさを近似することができる。
【００３４】
大きさ演算の結果は、その値を小さな範囲に保持してＲＡＭ１１３のオーバーフローを回避するようにスケーリングされる。簡単化のため、スケーリング装置は図示されていない。一実施形態では、スケーリングは、結果を３ビットシフトする（即ち、８で除算する）ことより成る。
【００３５】
また、信号の大きさではなく、信号の電力を累算することもできる。この場合には、４０５における演算は、電力の推定であり、通常、Ｉ及びＱの平方の和をとることにより計算される。この場合に、図３を参照して説明した擬似レンジ決定アルゴリズムは、大きさ波形ではなく電力波形に対して適合を行うように若干変更されねばならない。或いはまた、Ｉ及びＱの大きさ又は電力を表わす値を発生するのに、付加的な非直線的演算を使用することもできる。
【００３６】
複素数正規化装置１１１からの出力は、加算器１１２により大きさＲＡＭ１１３へと累算される。この累算プロセスは、特定時間遅延の現在大きさ値をＲＡＭ１１３から読み取り、丁度計算された大きさ結果を加算し、その和をＲＡＭ１１３へ書き戻すことより成る。上述したように、大きさの累算は、信号対雑音比の向上を達成するために必要なサイクル数だけ続けられる。
【００３７】
ベクトル乗算器４０２ａ及び４０２ｂは、信号のシフトごとにＭ回の部分相関を実行する。コードルックアップ回路４０８は、部分相関ごとに基準コードサンプルを発生する。ルックアップは、２つのルックアップインデックスにより制御される。第１に、コードは、１・オブ・３２コードから選択しなければならない。この選択は、畳み込みプロセスを通して一定であり、処理チャンネルが特定の衛星信号に対して相関するように構成されたときに確立される。第２のインデックスは、１とＭとの間のセグメントインデックスである。各Ｃ／Ａコードは、１０２３個のチップより成り、これらは、各々Ｋ個の隣接コードチップより成るＭ個の非重畳セグメントに分割される。ルックアップインデックスは、どのコードセグメントが必要であるか識別する。コードルックアップ回路からの出力は、セグメントを構成するＫ個のチップである。選択プロセスは、制御／アドレスロジック４１４により制御される。
【００３８】
コードエクステンダー４０９は、セグメントのＫ個のチップを入力として取り上げ、そのセグメントをＫｘＰコードサンプルへと拡張する。この拡張動作は、各コードチップをＰ個の同じコードサンプルへと変換することより成る。コードエクステンダー４０９からの出力は、ベクトル乗算器４０２ａ−ｂへの基準コード入力を形成する。この例では、コードエクステンダーからの出力は、３３個の独特の値を各々２回複写することで作られた６６個のサンプルである。
【００３９】
図４に示すアーキテクチャーは、Ｃ／Ａコードレートｆ０より実質的に高速なクロックを必要とする。例えば、Ｃ／Ａコードチップ当たり２つのサンプルが使用され（Ｐ＝２）、Ｋ及びＭが各々３３及び３１である場合に、全畳み込みを達成するには、２ｘｆ０のレートで進行する信号シフトレジスタのシフトごとに３１回の部分相関を実行することが必要である。通常、ＲＡＭ１１０ａ及び１１０ｂを読み取り及び書き込むには、少なくとも２つのクロックサイクルが必要である。２つのクロックサイクルを仮定すると、全畳み込みを達成するのに必要な最小クロックレートは、次のようになる。
【数２】
2005505759.tif 000004
このレートは、近代的な集積回路ロジックでは容易に達成できる。
【００４０】
本発明は、全畳み込みのサブセットを計算するのにも使用できることに注意されたい。この場合に、信号シフトレジスタのシフトごとに、Ｍより少数の部分相関が実行される。この場合に、遅延の全範囲は、全畳み込みを形成するＰｘ１０２３より少ない。特に、Ｍ２回の部分相関が実行される場合には、Ｍ２ｘＫｘＰの遅延値が発生される。プロセッサに対するクロックレートは、Ｍ２とＭの比で減少される。更に、ＲＡＭのサイズもこの比で減少される。従って、この変形態様は、全畳み込みを処理する計算又はメモリリソースをもたないシステムにおいて有用である。
【００４１】
Ｋ及びＭの結果に対する他の選択は、更に別の設計上の妥協を許すが、１０２３の主要因数は、３、１１及び３１であるから、Ｋ及びＭの選択には限度がある。Ｋを減少することは、シフトレジスタ４０１ａ及び４０１ｂのサイズと、ベクトル乗算器４０２ａ及び４０２ｂの複雑さとを低減するので、望ましいが、大きなＭを必要とし、ひいては、高いクロックレートを必要とする。Ｋに対する選択は、３、１１、３１、３３及び９３である。これらの選択は、１．３９ＧＨｚ、３８０ＭＨｚ、１３５ＭＨｚ、１２７ＭＨｚ及び４５ＭＨｚのクロックレートを各々必要とする（常に、Ｐ＝２、及び部分相関当たり２個のクロックサイクルを仮定する）。立証時に利用できる技術に基づき、Ｋ＝３３という選択が１つの実施形態としてなされた。将来の技術では、Ｋ＝１１の選択と、３８０ＭＨｚのクロックレートとが重要となり、ロジックの複雑さを更に低減することになろう。従って、このアークテクチャーは、速度とロジックの複雑さとの間の最適な妥協をサポートする希望の属性を有する。
【００４２】
コードセグメントのシーケンスは、制御ロジック４１４により制御される。この制御ロジックは、ＲＡＭ１１０ａ、１１０ｂ及び１１３に対する正しいアドレスも識別する。以下に述べるように、部分相関は、非連続的順序で発生され、従って、ＲＡＭアドレスの発生は、些細なことではない。
【００４３】
図４の回路の動作は、図５のフローチャートを参照することによっても理解できる。動作は、ステップ５０１において、信号シフトレジスタ４０１ａ及び４０１ｂを前ロードすることで始まる。この点において、畳み込みプロセスを開始することができる。ステップ５０２では、特定の部分相関に対してコードセグメントがアクセスされる。ステップ５０３では、コードセグメントが、コードエクステンダーにより、Ｃ／Ａチップ当たりＰ個のサンプルをもつように拡張される。次いで、ステップ５０４では、遅延インデックス及びそれに対応するＲＡＭアドレスが計算される。遅延インデックスは、全畳み込みのどのポイントが部分相関により更新されるか指示する。図７を参照して説明する例から明らかなように、遅延インデックスは、非直線的であるが決定的な仕方でジャンプする。アドレスの計算は、信号シフトの回数及びコードセグメントに基づく。
【００４４】
ステップ５０５では、ベクトル乗算器４０２ａ及び４０２ｂを使用して部分相関が計算される。ステップ５０６では、その結果が、遅延インデックスで指示された信号ＲＡＭの位置に累積される。次いで、ステップ５０７では、処理がコヒレントな積分間隔の終りに到達したかどうか決定するためのチェックが行われる。もしそうでなければ、ステップ５０２ａへ戻り、次のコードセグメントに対して上記ステップを繰り返す。
【００４５】
ステップ５０７において、全てのコードセグメントに対して部分相関（例えば、３１個の部分相関）が完了したことがチェックで指示された場合には、ステップ５０８へ進む。ステップ５０８では、信号レジスタ４０１ａ及び４０１ｂが１サンプルだけシフトされる。
【００４６】
次いで、プロセスは、ステップ５０９へ進み、そこで、最後のシフトがコヒレントな積分間隔の終りに遭遇したかどうか調べるチェックが実行される。もしそうでなければ、プロセスはステップ５０２のスタートへ戻る。コヒレントな積分間隔の終りであることがチェックで指示された場合には、ステップ５１０へと続き、そこで、複素数正規化装置１１１により信号の大きさが計算される。その結果が加算器１１２を使用して加算され、大きさＲＡＭ１１３に記憶される。次いで、ステップ５１１において、全ての大きさ累算が実行されたかどうか決定するためのチェックが行われる。もしそうであれば、ステップ５１２において完了となる。もしそうでなければ、ステップ５０１において次の部分相関を実行することにより処理が継続される。
【００４７】
図６及び図７は、本発明で部分相関をいかに使用して全畳み込みの結果を累算するかを簡単な例により示している。明瞭化のため、これらの図は、ＧＰＳ信号の長さ１０２３のＣ／Ａコードではなくて、非常に短い長さ６のコードの畳み込みを示している。更に簡単な例とするために、コードチップ当たり１つのサンプルが使用され、即ちＰ＝１である。図６は、標準的な整合フィルタリング解決策による畳み込みを示し、一方、図７は、部分相関を結合する方法による同じ畳み込みを示す。図７の細部は、本発明の全体的な動作を理解する上で有用である。両方法とも、同じ畳み込み結果を発生する。
【００４８】
図６は、長さ６の信号に対する従来の整合フィルタの動作を示す。シフト０と示された時点で動作が開始する。この時点で、信号の全サイクルを構成する６個の連続する信号サンプルが信号シフトレジスタ６０１にある。個々のサンプルは、大文字のインデックスＡ、Ｂ、Ｃ、Ｄ、Ｅ及びＦで示されている。全長さ６のコードのコードサンプルが基準レジスタ６０２に保持され、小文字のインデックスａ、ｂ、ｃ、ｄ、ｅ及びｆで示されている。シフト０の時間にはベクトル乗算及び加算が実行されて、シフト０に対する相関結果を発生する。各信号サンプルは、それに対応するコードサンプルで乗算され、その結果が加算されて、相関結果６０３を生じる。
【００４９】
次いで、信号シフトレジスタ６０４は、シフト１に示されたように、１サンプルだけ進められる。信号は周期的であり、従って、レジスタの左側に導入される新たなサンプルは、右へシフトして出されたものと同じである。レジスタ６０４のシフトされた内容は、ここでは、インデックスＦ、Ａ、Ｂ、Ｃ、Ｄ及びＥをもつサンプルとなる。コードは、シフトされない。ベクトル乗算及び加算は、ここでは、シフト１に対する相関結果６０５を発生する。このシフトプロセスが５つの付加的なシフトに対して続けられ、その点において、全畳み込みを形成する全部で６個の相関結果が得られる。
【００５０】
図７は、部分相関方法により同じ畳み込み結果がいかに得られるかを示す。上述したように、本発明は、コードを長さＫのＭ個のセグメントに因数分解することを必要とする。図７の簡単な例では、長さ６のコードが、長さ２の３個のセグメントに因数分解され、即ちＫ＝２及びＭ＝３である。シフト０で示された時点に動作が始まる。この時点では、２つの信号サンプルが信号シフトレジスタ７０１に保持される。これらの信号サンプルは、大文字のインデックスＡ及びＢで示される。コードの６個のサンプルは、各々長さ２の３個のセグメントに含まれる。第１のコードセグメント７０２は、小文字のインデックスａ及びｂで示された２つのコードサンプルを含む。この信号は、３回の部分相関動作に対して位置保持され、部分相関結果７０３ａ、７０３ｂ及び７０３ｃを生じる。第１の部分相関結果は、信号レジスタの内容と、第１コードセグメント（セグメント１）との間のベクトル乗算及び加算により形成される。第２及び第３の結果は、信号レジスタと第２及び第３のコードセグメント各々とのベクトル乗算により形成される。信号レジスタは、全ての３ベクトル乗算を実行するに充分な時間、位置保持されると共に、この時間中にはコードがシフトされず、むしろ、異なるコードセグメントが選択されることに注意されたい。
【００５１】
部分相関結果は、信号経路７０５に基づいてメモリへ累積される。例えば、シフト０では、第１コードセグメントからの部分相関が相関結果７０４に加算される。第２セグメントからの部分相関は、シフト２に対して相関結果７０６に加算される。第３セグメントからの部分相関は、シフト４に対する相関結果７０８に貢献する。
【００５２】
３つの部分相関の後に、信号がシフトされる。この段階では、シフト１として示すように、信号レジスタは、サンプルＦ及びＡを含む。この場合にも、３つの部分相関が、以前と同じ３つのコードセグメントと共に発生される。これら部分相関からの結果は、シフト１、３及び５に対して各々相関結果７１０、７１２、７１４に貢献する。このプロセスは、４つの付加的な信号シフトに対して続けられ、そのとき、全畳み込み結果が得られる。明らかなように、この動作は、畳み込みを構成する６個の全結果に貢献する全部で１８個の部分相関を発生することを必要とする。
【００５３】
図７により述べたアーキテクチャーは、本発明の２つの重要な特徴を示している。第１に、長さ２のシフトレジスタ及びベクトル乗算・加算ユニットしか使用せずに、長さ６のコードに対する全畳み込みが発生されることが明らかである。これは、回路素子が長さ６である図６の回路未満のものしか必要としない。第２に、図７では、コードサンプルが、シフトごとに同じである固定セグメントにおいてアクセスされ、更に、各セグメントがコードの個別の非重畳区分である。従って、図８及び９を参照して以下に詳細に述べるように、簡単なルックアップ又はレジスタ機構を使用して、ベクトル乗算器にコードを供給することができる。これらの機構は、例えば、より複雑な１組の順列でコードビットの大きなブロックを使用できるようにしなければならない他のアーキテクチャーより回路を必要としない。また、本発明は、コード発生回路を設ける必要性も排除する。
【００５４】
図８は、本発明に適したコードルックアップ回路４０８の一実施形態を示すブロック図である。テーブル８０１は、３２個の各コードの全１０２３ビットに対する記憶値を、例えば、リードオンリメモリ（ＲＯＭ）又は固定布線ロジックに含んでいる。テーブル８０１は、各コードに対して１つづつ、３２個のサブテーブルとして編成される。更に、各サブテーブルは、長さＫのＭ個のセグメントとして編成され、但し、ＫｘＭ＝１０２３であり且つＫ及びＭは、上述したように選択される。マルチプレクサ８０２は、選択値に基づいて特定のコードを選択する。マルチプレクサ８０１の出力は、希望の特定のサブテーブルである。マルチプレクサ８０３は、１とＭとの間のセグメント選択値に基づいて特定のセグメントを選択する。８０３の出力は、長さＫの特定のコードセグメント８０４であり、これは、コードエクステンダー４０９に供給されるコードビットを含む。
【００５５】
マルチプレクサ８０３は、部分相関ごとに即ち２つのクロックサイクルごとにコードセグメントを変更できる高速のものでなければならないことに注意されたい。このため、全てのコードビットを、従来のコードジェネレータのようにオンザフライで発生するのではなく、テーブル８０１に予め記憶しておく必要がある。
【００５６】
図８の回路は、例示のためのものである。実際には、機能的に同等の多数の異なる回路設計がある。特に、近代的なＡＳＩＣ設計に使用される論理合成のプロセスは、上述したものと同等の振舞いを達成するが、必ずしも上述したようにマルチプレクサを使用しないあるゲートパターンを導く。
【００５７】
図９は、本発明に適したコードルックアップ回路４０８の別の実施形態のブロック図である。特定コードに対応する１０２３個のコードビットが、長さＫのＭ行として編成された１０２３個の両方向シフトレジスタ９０１に保持される。これらシフトレジスタは、２つのモード、即ちランニングモード及びロードモードで動作する。
【００５８】
ランニングモードでは、各レジスタ９０１は、次の行にあるその上のレジスタへサンプルをシフトするように構成されるが、最も上の行のレジスタは、最も下の行のレジスタへシフトする。ランニングモードに対するシフト方向は、９０１内に実線の矢印で指示されている。全てのレジスタをクロックすることにより、コードビットの行が循環し、いつでも、最上位の行が、長さＫのＭ個のコードセグメントの１つを含むことになる。この最上位の行のビットは、コードエクステンダー４０９へ供給される。これらのレジスタは、迅速に循環し、部分相関ごとに異なるコードセグメントが得られるようにされる。
【００５９】
ロードモードでは、各レジスタは、その行の次のレジスタへサンプルをシフトするように構成されるが、レジスタの最後の列は、その上の行のレジスタの最初の列へシフトする。ロードモードに対するシフト方向は、９０１内に点線矢印で示されている。左下のシフトレジスタ９０４は、コードジェネレータ９０２に接続される。このコードジェネレータは、選択値に基づいて特定コードの１０２３個のコードビットを順次発生することのできる慣習的なコードジェネレータである。コードルックアップ回路が特定の形態で構成されると、レジスタがロードモードに入れられ、ジェネレータを使用してコードのビットが発生され、これらのビットがレジスタを通してクロックする。全てのビットがクロックされた後に、コードは、長さＫのＭ個のセグメントとしてレジスタに存在する。次いで、回路は、ランニングモードで使用する準備ができる。
【００６０】
図１０は、ＧＰＳ受信機１０００の別の実施形態を示すブロック図である。この受信機１０００は、相関履歴モード及び標準相関モードで動作する複数の処理チャンネル１０４を備えている。標準相関モードの機能は、図１−９を参照して上述した。相関履歴モードにおける受信機１０００の各要素の動作は、信号ＲＡＭ１１０ａ、１１０ｂ及び大きさ／履歴ＲＡＭ１００２までの全てのブロックについては標準モードと実質的に同じである。更に、本発明の方法の説明を助けるために、ＣＰＵ１１４は、図１０では、従来のように、メモリ１０１０及びサポート回路１０１２によりサポートされて示されている。サポート回路１０１２は、クロック、バス、キャッシュ、電源、Ｉ／Ｏ回路等の良く知られたサポート回路である。メモリ１０１０は、ソフトウェア１０１４を記憶するためのコンピュータ読み取り可能な媒体を形成し、このソフトウェアは、ＣＰＵ１１４で実行されたときに、受信機１０００を、以下に述べる方法に基づいて動作させる。ＣＰＵ１１４、メモリ及びサポート回路を組み合わせることで、処理ユニット１０１６が形成される。
【００６１】
畳み込みプロセッサ１０９の標準動作の場合と同様に、信号ＲＡＭ１１０ａ、１１０ｂを使用して、全ての相関遅延に対するコヒレントな平均化間隔にわたり部分相関結果を累算して、全畳み込みを構成する。相関履歴モードは、相関ピーク付近の遅延に対応する結果の小さなサブセットのみを使用する。相関履歴モードでは、プログラミングパラメータが少数の当該遅延を確立する。これらの遅延に対して、全てのコヒレントな平均結果の完全な履歴が大きさ／履歴ＲＡＭ１００２に記憶される。相関履歴モード中に畳み込みプロセッサでは大きさ累算が実行されない。むしろ、このモードでは、ＲＡＭ１００２は、相関履歴モード中には相関履歴を記憶するためのメモリ（履歴メモリ）として、更に、畳み込みプロセッサ１０９の標準動作中には大きさを記憶するためのメモリ（大きさメモリ）として使用される。いかに多くの連続するコヒレントな累算結果をＲＡＭ１００２に記憶するかは、別のプログラミングパラメータで定義される。畳み込みプロセッサ１０９は、遅延及びエポックにより指示される結果の二次元テーブルで大きさ／履歴ＲＡＭを満たす（図１１を参照）。記憶できるエポックの数は、ＲＡＭサイズと、選択される遅延の数とでセットされる。例えば、ＲＡＭが２０４８ワードのサイズであれば、単一遅延の場合に２０４８サイクルを記憶し、２つの遅延の場合に１０２４サイクルを記憶し、４つの遅延の場合に５１２サイクルを記憶し、等々となるようにメモリを使用することができる。１２ビットのワード巾は、コヒレントな平均結果のＩ及びＱ部分を６ビットの分解能で個々に記憶できるようにする。
【００６２】
図１２は、典型的な相関履歴のグラフ例１２００を示す。上部及び下部グラフ１２０２及び１２０４は、Ｉ成分及びＱ成分の波形を各々示す。グラフの各ポイントは、単一のコヒレントな積分を表わす。この例では、コヒレントな積分間隔が１エポックにセットされ、従って、各ポイントは、公称１ミリ秒の積分を表わす。
【００６３】
図１２の波形は、相関後の信号の２つの特徴を表わす。第１に、Ｉ及びＱチャンネルを横切って信号を回転させる残留ドップラー周波数が存在する。第２に、時々１８０°の位相遷移を生じさせるナビゲーションデータビットが存在する。遷移間の最小間隔は、１２０エポック、即ちデータビット周期である。相関履歴のスタートに対するデータビットのタイミングも、波形から明らかである。
【００６４】
相関履歴モードは、衛星信号ドップラー及び／又はナビゲーションビットタイミングを決定して、発振周波数及び受信機クロックタイミングのような幾つかの受信機パラメータを推定するために呼び出される。最初に、このモードは、残留ドップラーと、相関履歴のスタートに対するナビゲーションデータビットのタイミングとを推定するためにソフトウェアアルゴリズムにより使用されるデータを与える。その後、必要に応じて、このモードは、ナビゲーションデータビットの値をデコードするための履歴を与えるのにも使用される。
【００６５】
特に、ソフトウェアアルゴリズムは、１つ以上の衛星に対してドップラー及びビットタイミングを決定して、ＧＰＳ受信機自身の発振周波数及び／又は内部クロックタイミングの推定値を発生又は更新する。より詳細には、発振周波数及びクロックタイミング推定値を使用して、図１０の搬送波及びコードＮＣＯ１０６及び１０８を「修正」すると共に、畳み込みプロセッサ１０９のタイミングを調整することにより、更に正確な相関が実行される。特に、受信機の発振周波数の改善された推定は、相関プロセッサ１０９を、ＮＣＯ１０５により更に正確に同調できるようにし、優れた信号検出を与えると共に、より長いコヒレントな積分間隔を使用できるようにする。更に、受信機のクロックタイミングの改善された推定を使用して、畳み込みプロセッサ１０９のスタート時間を制御し、各衛星のナビゲーションデータビットタイミングと同期したコヒレントな積分を実行し、信号検出を改善することができる。
【００６６】
公知技術（例えば、２００１年３月２７日付の米国特許第６，２０８，２９１号に開示された）では、レジスタバンクを使用し、衛星信号のＰＮエポック及び搬送波を追跡する追跡プロセスに対して相関装置の出力を記憶する。追跡プロセスでは、高い信号対雑音比が必要とされる。公知技術とは異なり、本発明の相関履歴モードは、単に特定の衛星信号を追跡する目的でデータをバッファするものではない。むしろ、相関履歴モードは、視野内の全衛星の検出を助ける受信機パラメータを推定するのに使用される。更に、相関履歴モードは、従来の追跡プロセスのスレッシュホールドより下がる非常に低い信号対雑音比でも衛星信号情報を抽出するソフトウェア推定アルゴリズムに関連して動作する。多数の衛星からの信号を処理する相関履歴モードは、受信機パラメータ推定の性能を向上させるのに使用されるが、このような付加的な信号は、本発明を実施するのに必要でない。
【００６７】
相関結果の履歴からビットタイミング及び周波数を推定するのに使用できるアルゴリズムは多数存在する。その一実施形態が図１３のブロック図に示されている。この実施形態では、プロセス１３００は、特定の機能を遂行する一連のステップを実行するソフトウェアプログラムにおいて実施される。プロセス１３００は、特定周波数及びビットタイミングの仮説において信号の大きさの推定値（大きさ推定値）を決定するように実行され、この推定値は、考えられる周波数及びビットタイミングの範囲にわたって最適化される。各仮説に対し、周波数変調の共役に対応する複素数の周波数項での乗算を実行することにより、Ｉ及びＱ相関履歴が最初に位相修正される（ステップ１３０２）。次いで、ステップ１３０４において、ナビゲーションビット周期にまで及ぶコヒレントな積分周期にわたって信号が積分される。例えば、相関履歴が、１エポック離間されたサンプルで構成される場合には、Ｉ及びＱ履歴の２０個の連続サンプルが加算されて、ナビゲーションデータビットに対する信号大きさの推定値が形成される。各ビット加算の終りに、ステップ１３０６において、大きさ計算動作が実行されて、電力値が形成される。次々の大きさ計算からの結果がステップ１３０８において更に加算されて、信号対雑音比を改善する。例えば、１秒のデータは、５０個のビット周期を与え、これらを加算して、加算に使用されたビット周期に対する積分電力を形成することができる。より一般的には、信号レベル、例えば、信号の大きさ又は信号の電力を決定するように計算を実行することができる。ここに述べる本発明の実施形態は、信号の大きさを使用するが、当業者であれば、信号の電力や信号レベルの他の尺度を使用しても本発明を実施できることが明らかであろう。
【００６８】
ある範囲の考えられる周波数及びビットタイミング値にわたって電力推定値が収集される。それらの結果は、図１４に示すように、二次元格子１４００において見ることができる。一方の軸１４０２は、仮定した周波数エラーであり、この場合には、−４０から８０Ｈｚまで変化する。他方の軸１４０４は、ビットタイミング仮説であり、０から１９エポックまで変化する。この値は、ビットタイミングと、受信機クロックに基づいて特定の時間に取り出された相関履歴の開始との間に仮定されるオフセットを表わす。格子の各点における垂直軸１４０６は、ドップラー及びタイミング仮説に対応する相関した信号の大きさである。周波数及びタイミングの最良の推定値は、格子の最大点１４０８に対応する。これは、コヒレントな平均化間隔がデータビットと不整列である場合に生じ得る信号対雑音比（ＳＮＲ）ロスを最小にする。
【００６９】
図１５は、周波数軸１４０２に沿った図１４の断面のグラフ１５００である。明らかなように、応答は、正しい周波数においてピーク（ポイント１５０２）となる。同様に、図１６は、ビットタイミング仮説軸１４０４に沿った図１４の断面のグラフ１６００である。この場合も、正しいビットタイミングに対応する三角形の頂点（ポイント１６０２）に最大の大きさが見られる。
【００７０】
周波数及びビットタイミングにおけるポイントの配置は、周波数及びビットタイミングにおける初期の不確実性と、意図される推定精度とに基づく。通常、ＧＰＳ時間に対する受信機のタイミングは未知であるから、全部で２０のビットタイミング仮説がチェックされる。
【００７１】
ここに述べるプロセスは、最大値をサーチすることのできるポイントの二次元セットを与えることに注意されたい。最大値に到達する方法は、他にもある。例えば、周波数のコース推定を任意のビットタイミングで行って、表面のピークに接近した周波数を得ることもできる。任意のビットタイミングを使用する場合には、コヒレントな平均化間隔をビット周期と非同期にセットするのが好都合であり、例えば、１９エポックのコヒレントな平均化間隔が好都合である。任意のビットタイミングでの分析に続いて、全てのビットタイミング（及び好ましくは２０エポックのコヒレントな平均化間隔）でその周波数における応答を推定して、ビットタイミングを推定できるようにする。必要に応じて、その後に、付加的な周波数推定を行うことができる。これは、図１４の二次元表面を横切って最大値をサーチするのに使用できる良く知られた数学的技術の多数の例の１つである。テストされて有益であると分かっている別の方法は、ケンブリッジ・ユニバーシティ・プレスの「Numerical Recipes in C」に掲載されたダウンヒル・シンプレックス方法である。
【００７２】
別の例では、順次推定アルゴリズムをソフトウェアで実施することができる。このアルゴリズムの各ステップでは、周波数弁別子が周波数エラーの推定を形成する。その後の繰り返しにおいて、周波数エラーが適用され、弁別子は、周波数エラーの別の改善された推定を与える。このプロセスは、残留周波数エラーが小さくなるまで続けられる。追跡ループとは異なり、このアルゴリズムは、ＮＣＯ１０６へフィードバックを適用せずに且つ付加的な相関を行わずに、記憶された相関履歴で全体的に動作する。周波数が推定されると、１８０°位相遷移のタイミングからビット遷移を識別することができる。周波数エラーがほぼ除去されるので、位相遷移が観察し易くなる。
【００７３】
図１７は、ＧＰＳ受信機の動作に関連して相関履歴モードを使用する方法１７００を示す。最初に、ステップ１７０２において、相関を標準モードで実行し、ある範囲の遅延にわたって信号を走査すると共に、必要に応じて周波数をサーチする。エネルギーが検出されると、ステップ１７０４において、１つ以上の衛星からの信号を相関履歴モード処理のために選択する。ステップ１７０６では、受信機の処理チャンネル又は多数のチャンネルを相関履歴モードに対して再構成し、相関履歴を累算する。通常、相関履歴は、単一の遅延で累算するだけでよい。というのは、最初の信号収集から遅延の推定値が得られるからである。ステップ１７０８では、上述したように、１つ又は複数の相関履歴を処理し、相関履歴モードで動作される各チャンネルに対して信号周波数及びビットタイミングの推定値を形成する。
【００７４】
ステップ１７１０では、これらの推定値を衛星レンジ及びレンジレートモデルと合成して、受信機の発振周波数及びクロックタイミングモデルを更新するのに使用される情報を決定する。次いで、これらの推定値を、全ての衛星に対する衛星レンジ及びレンジレートモデルと一緒に使用して、視野内の全衛星までの予想ビットタイミング及びドップラーを計算すると共に、ＮＣＯ１０６及び１０８に対する改善されたプログラミング値を計算し、更に、畳み込みプロセッサ１０９のコヒレントな積分スタートタイミングをセットする。次いで、受信機を標準動作モードに切り換え、図１−９を参照して述べたように受信機の視野内の全衛星からの信号を相関させる。ステップ１７１２では、受信機は、改善された周波数及びクロックタイミング推定値を使用して、ＧＰＳ信号に対する標準的な相関を実行する。以上のプロセスを必要に応じて繰返し、受信機のパラメータ推定値を完全なものにする。
【００７５】
特に、ステップ１７１０において、特定の衛星に対する相関履歴モードで決定された周波数を、その衛星に対する予想レンジレートと比較し、固定受信機モデルに基づいて、受信機クロックの周波数エラーに貢献し得る差の値を決定することができる。或いはまた、３つ以上の衛星から周波数測定値が得られる場合には、エラーを使用して、受信機のクロック周波数及び受信機の速度も推定することができる。推定された受信機発振周波数を、衛星の予想レンジレートと合成して、ＮＣＯ１０６に対する改善された同調周波数を決定し、衛星を検出することができる。
【００７６】
更に、ビットタイミング測定値から受信機タイミングエラーの推定値を発生することもできる。信号履歴は、受信機の内部クロックに対する特定の基準時間において捕えられる。一実施形態では、このクロックは、ミリ秒カウンタである。このカウンタのタイミングは、ＧＰＳ時間に対して一般的に任意である。しかしながら、特定の衛星に対してビットタイミングが推定されると、ミリ秒カウンタとＧＰＳ時間との間に時間関係を確立することができる。データビットが全衛星から同期して発せられることを指摘することに関連して、これを説明する。ビットの遷移において、ＧＰＳ時間のモジュロ２０値がゼロである。これら衛星からの信号は、何ミリ秒か後に受信機に到着する。遷移の時間と受信の時間との間の遅延は、受信機の位置、おおよその時間及び衛星の軌道情報の推定値から容易に決定することができる。従って、受信機におけるデータビット遷移の絶対的なタイミングを、ＧＰＳ時間に関して推定することができる。これらの同じトランザクションのタイミングが受信機のミリ秒クロックに対して測定されると、受信機クロックとＧＰＳ時間との間に関係を確立することができる。ナビゲーションデータビットフレームのタイミングではなく、ナビゲーションデータビット遷移しか確立されていないので、これは、絶対的な関係ではないことに注意されたい。むしろ、受信機クロックのモジュロ２０ミリ秒値を、ＧＰＳ時間のモジュロ２０ミリ秒値に関連付けることができる。
【００７７】
その後のコヒレントな積分間隔を整列するために、受信機は、先ず、ＧＰＳ時間に対して各衛星のナビゲーションデータビットのタイミングを推定する（擬似レンジに基づいて）。畳み込みプロセッサ１０９により実行される相関は、受信機のミリ秒クロックに基づいて、ある便利な将来の時間に開始するようにプログラムされる。このスタート時間のモジュロ２０ミリ秒値は、コヒレントな積分とデータビットとの整列を確保するためにＧＰＳ時間及びナビゲーションデータビットのタイミングに対して選択される。
【００７８】
また、相関履歴モードを使用して、ナビゲーションデータビットを収集することもできる。通常、このモードは、ナビゲーションデータビットタイミングが確立された後に呼び出される。相関プロセッサは、２０エポックのコヒレントな積分間隔に対し、それら間隔がデータビットと整列されるようにしてプログラムされると共に、相関履歴が記憶される。相関履歴の各ポイントは、全ビット周期にわたる積分の結果である。あるビットから次のビットへの位相遷移の有無が情報データビットを与える。相関履歴は、ＲＡＭのサイズまでビットを記憶するように使用できる。より多くのビットが要求される場合には、多数の相関履歴を次々に記憶することができる。
【００７９】
本発明の技術を組み込んだ種々の実施形態を図示して詳細に説明したが、当業者であれば、これらの技術を組み込んだ他の変形形態を容易に案出することができよう。
【図面の簡単な説明】
【００８０】
【図１】本発明によるＧＰＳ受信機のブロック図である。
【図２】本発明により発生される波形の例を示す図である。
【図３】図２の累算された大きさ波形を詳細に示す図である。
【図４】畳み込みプロセッサ及び畳み込み結果処理回路の詳細なブロック図である。
【図５】本発明の動作方法を示すフローチャートである。
【図６】慣習的なやり方で全畳み込みを計算する簡単な例のグラフィック表示である。
【図７】本発明を使用して図６の全畳み込みをいかに実行するかのグラフィック表示である。
【図８】本発明に使用するのに適したコードルックアップ装置の実施形態を示す図である。
【図９】本発明の別の実施形態に使用するのに適した二次元コードシフトレジスタの実施形態を示す図である。
【図１０】相関履歴モードで動作することのできる相関装置のブロック図である。
【図１１】ＲＡＭ長さ図である。
【図１２】図１０の相関装置により処理されるＩ及びＱ信号を示す図である。
【図１３】相関履歴モードを使用して信号処理を実行するための方法を示すフローチャートである。
【図１４】周波数及びビットタイミング推定対電力推定の三次元グラフである。
【図１５】周波数軸に沿って得た図１４のグラフの断面である。
【図１６】ビットタイミング軸に沿って得た図１５のグラフの断面である。
【図１７】相関履歴モードを使用する相関プロセスのフローチャートである。
【図１】
2005505759.tif 000005
【図２】
2005505759.tif 000006
【図３】
2005505759.tif 000007
【図４】
2005505759.tif 000008
【図５】
2005505759.tif 000009
【図６】
2005505759.tif 000010
【図７】
2005505759.tif 000011
【図８】
2005505759.tif 000012
【図９】
2005505759.tif 000013
【図１０】
2005505759.tif 000014
【図１１】
2005505759.tif 000015
【図１３】
2005505759.tif 000016
【図１４】
2005505759.tif 000017
【図１５】
2005505759.tif 000018
【図１６】
2005505759.tif 000019
【図１７】
2005505759.tif 000020
【国際公開パンフレット】
2005505759.tif 000021
2005505759.tif 000022
2005505759.tif 000023
2005505759.tif 000024
2005505759.tif 000025
2005505759.tif 000026
2005505759.tif 000027
2005505759.tif 000028
2005505759.tif 000029
2005505759.tif 000030
2005505759.tif 000031
2005505759.tif 000032
2005505759.tif 000033
2005505759.tif 000034
2005505759.tif 000035
2005505759.tif 000036
2005505759.tif 000037
2005505759.tif 000038
2005505759.tif 000039
2005505759.tif 000040
2005505759.tif 000041
2005505759.tif 000042
2005505759.tif 000043
2005505759.tif 000044
2005505759.tif 000045
2005505759.tif 000046
2005505759.tif 000047
2005505759.tif 000048
2005505759.tif 000049
2005505759.tif 000050
2005505759.tif 000051
2005505759.tif 000052
2005505759.tif 000053
2005505759.tif 000054
2005505759.tif 000055
2005505759.tif 000056
2005505759.tif 000057
2005505759.tif 000058
2005505759.tif 000059
2005505759.tif 000060
2005505759.tif 000061
2005505759.tif 000062
2005505759.tif 000063
2005505759.tif 000064
2005505759.tif 000065
2005505759.tif 000066
2005505759.tif 000067
2005505759.tif 000068
2005505759.tif 000069
2005505759.tif 000070
2005505759.tif 000071
【国際調査報告】
2005505759.tif 000072
2005505759.tif 000073