(57)【要約】  衛星測位システム受信機において衛星信号パラメータを推定する方法及び装置が記載されている。一実施形態では、衛星信号と基準信号との間の複数の相関結果がプロセッサからのコマンドに応答して生成される。少なくとも１個の衛星信号パラメータが衛星測位システム受信機に統合されたコプロセッサを使用して複数の相関結果から推定される。少なくとも１個の衛星信号パラメータはその後プロセッサへ供給される。【選択図】  図１８
2007510891.tif 000002
【特許請求の範囲】
【請求項１】
衛星測位システム受信機において衛星信号パラメータを推定する方法であって、
プロセッサからのコマンドに応答して衛星信号と基準信号との間で複数の相関結果を生成するステップと、
前記衛星測位システム受信機内に統合されたコプロセッサを使用して前記複数の相関結果から少なくとも１個の衛星信号パラメータを推定するステップと、
前記少なくとも１個の衛星信号パラメータを前記プロセッサに供給するステップと、
を備える方法。
【請求項２】
前記少なくとも１個の衛星信号パラメータを使用して少なくとも１個の受信機パラメータを推定するステップをさらに備える、請求項１に記載の方法。
【請求項３】
前記複数の相関結果が前記衛星信号と前記基準信号との間の少なくとも１個の相対的な時間遅延の一つずつに対応する相関結果の少なくとも１個の系列によって定められる相関ヒストリーを備える、請求項１に記載の方法。
【請求項４】
前記少なくとも１個の衛星信号パラメータが前記衛星測位システム受信機と相対的な前記衛星信号のドップラーオフセットを備える、請求項３に記載の方法。
【請求項５】
前記推定するステップが、
前記相関ヒストリーを使用して複数の複素外積を計算するステップと、
前記ドップラーオフセットを計算するため前記複素外積を組み合わせるステップと、
を備える、請求項４に記載の方法。
【請求項６】
前記推定するステップが、
前記ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正する工程と、
前記ドップラーオフセットを再計算するため前記周波数訂正された相関ヒストリーを使用して前記計算するステップ及び平均化するステップを繰り返す工程と、
をさらに備える、請求項５に記載の方法。
【請求項７】
前記推定するステップが、所定の区間に亘って前記相関ヒストリーを積分する工程をさらに備える、請求項５に記載の方法。
【請求項８】
前記ドップラーオフセットに応じて前記衛星測位システム受信機内の発振器の周波数を推定するステップをさらに備える、請求項４に記載の方法。
【請求項９】
前記少なくとも１個の衛星信号パラメータがナビゲーションデータビットを含む、請求項３に記載の方法。
【請求項１０】
前記推定するステップが、
前記相関ヒストリーを使用して複数の複素内積を計算する工程と、
前記相関ヒストリー内の位相遷移を識別するため前記複数の複素内積を閾値化する工程と、
を備える、請求項９に記載の方法。
【請求項１１】
前記推定するステップが、ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正する工程をさらに備える、請求項１０に記載の方法。
【請求項１２】
前記推定するステップが、所定の区間に亘って前記相関ヒストリーを積分する工程をさらに備える、請求項１０に記載の方法。
【請求項１３】
前記少なくとも１個の衛星信号パラメータが前記衛星信号のナビゲーションビットタイミングを備える、請求項３に記載の方法。
【請求項１４】
前記推定するステップが、前記相関ヒストリーに応じて、１個以上の受信機周波数及びビットタイミング仮説を使用して信号レベルの複数の推定値を決定する工程を備える、請求項１３に記載の方法。
【請求項１５】
前記推定するステップが、
前記相関ヒストリーを使用して複数の複素内積を計算する工程と、
ビットタイミングオフセットを選択する工程と、
前記選択されたビットタイミングオフセットに対応する前記複数の複素内積からの複素内積を加算する工程と、
ヒストグラムを形成するため複数のビットタイミングオフセットを前記選択するステップ及び前記加算するステップを繰り返す工程と、
を備える、請求項１３に記載の方法。
【請求項１６】
前記推定するステップが、ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正する工程をさらに備える、請求項１５に記載の方法。
【請求項１７】
前記推定するステップが、前記相関ヒストリーを所定の区間に亘って積分する工程をさらに備える、請求項１５に記載の方法。
【請求項１８】
前記ナビゲーションビットタイミングを使用して前記衛星測位システム受信機に関連付けられたタイミング誤差を推定する工程をさらに備える、請求項１３に記載の方法。
【請求項１９】
前記少なくとも１個の衛星信号パラメータが前記衛星信号に関連付けられた少なくとも１個の雑音統計測定量を備える、請求項１に記載の方法。
【請求項２０】
さらなる相関を実行するときに前記衛星測位システム受信機を設定するために前記少なくとも１個の衛星信号パラメータを使用するステップをさらに備える、請求項１に記載の方法。
【請求項２１】
前記生成するステップが前記複数の相関結果を前記衛星測位システム受信機内のメモリに格納する工程を備える、請求項１に記載の方法。
【請求項２２】
衛星測位システム受信機において衛星信号パラメータを推定する装置であって、
プロセッサからのコマンドに応答して衛星信号と基準信号との間で複数の相関結果を生成する相関器と、
前記衛星測位システム受信機内に統合され、前記複数の相関結果から少なくとも１個の衛星信号パラメータを推定するコプロセッサと、
前記少なくとも１個の衛星信号パラメータを前記プロセッサに供給する手段と、
を備える装置。
【請求項２３】
前記複数の相関結果を記憶するメモリをさらに備える、請求項２２に記載の装置。
【請求項２４】
前記コプロセッサが、
前記複数の相関結果を周波数訂正する複素変調器と、
前記複数の相関結果に応じて電力を計算する複素電力ユニットと、
前記複数の相関結果に応じて複素外積を計算する複素外積ユニットと、
前記複数の相関結果に応じて複素内積を計算する複素内積ユニットと、
前記複数の相関結果をコヒーレント積分するコヒーレント積分ユニットと、
前記複数の相関結果を非コヒーレント積分する非コヒーレント積分ユニットと、
前記複数の相関結果に応じて雑音統計量を決定する雑音統計ユニットと、
のうちの少なくとも一つを備える、請求項２２に記載の装置。
【請求項２５】
前記複数の相関結果が前記衛星信号と前記基準信号との間の少なくとも１個の相対的な時間遅延の一つずつに対応する相関結果の少なくとも１個の系列によって定められる相関ヒストリーを備える、請求項２２に記載の装置。
【請求項２６】
前記コプロセッサが、前記相関ヒストリーを使用して複数の複素外積を計算し、ドップラーオフセットを計算するため前記複素外積を組み合わせるように適合された、請求項２５に記載の装置。
【請求項２７】
前記コプロセッサが、前記ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正し、前記周波数訂正された相関ヒストリーに応じて前記ドップラーオフセットを再計算するようにさらに適合された、請求項２６に記載の装置。
【請求項２８】
前記コプロセッサが、前記相関ヒストリーを所定の区間に亘って積分するようにさらに適合された、請求項２６に記載の装置。
【請求項２９】
前記コプロセッサが、前記相関ヒストリーを使用して複数の複素内積を計算し、前記相関ヒストリー内の位相遷移を識別するため前記複数の複素内積を閾値化するように適合された、請求項２５に記載の装置。
【請求項３０】
前記コプロセッサが、ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正するようにさらに適合された、請求項２９に記載の装置。
【請求項３１】
前記コプロセッサが、前記相関ヒストリーを所定の区間に亘って積分するようにさらに適合された、請求項２９に記載の装置。
【請求項３２】
前記コプロセッサが、
前記相関ヒストリーを使用して複数の複素内積を計算し、
ビットタイミングオフセットを選択し、
前記選択されたビットタイミングオフセットに対応する前記複数の複素内積からの複素内積を加算し、
ヒストグラムを形成するため複数のビットタイミングオフセットの選択と加算を繰り返すように適合された、
請求項２５に記載の装置。
【請求項３３】
前記コプロセッサが、ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正するようにさらに適合された、請求項３２に記載の装置。
【請求項３４】
前記コプロセッサが、前記相関ヒストリーを所定の区間に亘って積分するようにさらに適合された、請求項３２に記載の装置。
【請求項３５】
前記コプロセッサが、前記複数の相関結果に応じて少なくとも１個の雑音統計量を計算するように適合された、請求項２２に記載の装置。
【発明の詳細な説明】
【発明の分野】
【０００１】
[0001]本発明は、デジタル信号受信機の信号相関器に関し、特に、本発明は、例えば、全地球測位システム（ＧＰＳ）受信機においてヒストリカル相関データを使用して信号相関を実行する方法及び装置に関係する。
【背景技術の説明】
【０００２】
[0002]全地球測位システム（ＧＰＳ）信号を測定するプロセスは、既知の擬似雑音（ＰＲＮ）符号に対する着信信号の一連の相関を試みることにより、雑音中でＧＰＳ信号を探索するための手順で始まる。信号の正確な周波数と到着時刻遅延の両方が未知であるため、探索プロセスは非常に長くなり得る。信号を検出するため、受信機は、従来、２次元探索を実行し、あらゆる可能性のある周波数で各遅延可能性をチェックする。特定の周波数及び遅延の信号の存在を調べるため、受信機はその周波数に合わせられ、着信信号は、到着時刻に対応する量によって遅延された既知のＰＲＮ符号と相関させられる。信号が検出されないならば、探索は次の遅延可能性へ進み、すべての遅延可能性がチェックされた後、次の周波数可能性へ進む。個々の相関は、雑音から信号を識別するために十分な信号平均化を可能にするため１ミリ秒以上に亘って行われる。数千個の周波数可能性及び遅延可能性がチェックされるので、全体的な捕捉プロセスは何十秒をも要する。
【０００３】
[0003]近年、ワイヤレス装置へのＧＰＳテクノロジーの新しいアプリケーション、例えば、緊急時位置通報能力を提供するために携帯電話機にＧＰＳを使用することが出現している。これらのアプリケーションでは、ほんの数秒間の即時信号捕捉が要求される。さらに、これらのアプリケーションは、ＧＰＳ受信機が、ＧＰＳ信号レベルが非常に弱められる過酷な信号環境及び屋内で動作することを要求する。弱められた信号の検出は、各相関が比較的長い期間に亘って実行されることを要求する。例えば、積分は、従来のＧＰＳ受信機で使用される１〜１０ミリ秒の期間に対して数秒間に亘って実行される。従来の受信機によって利用される２次元逐次探索プロセスは、このような長い積分時間では、全探索時間が１００倍以上に増加するので実施不能になる。
【０００４】
[0004]探索プロセスを加速するため、ＧＰＳ設計者は、複数の到達時刻可能性が同時にチェックできるように付加的な相関器を受信機に追加する。典型的に、追加される各相関器は、別個の符号混合器及び信号積算器を必要とする。所定の感度レベルでは、これは相関器の台数に比例して探索時間を短縮する。携帯電話機アプリケーションで要求される感度及び捕捉時間を達成するため、この設計は数千台の相関器を統合する必要がある。この追加は、典型的に、民生クラスの装置には非常に複雑であり、かつ、高価である。
【０００５】
[0005]例えば、１９９９年５月４日に発行された米国特許第５，９０１，１７１号は、単一の時分割方式処理ブロックが１２チャンネルのそれぞれにおいて最大で２０個の同時相関を実行するため使用できるようにする３重化技術について記載する。これは、２０個の遅延可能性のブロックが同時にチェックされるので、単一の相関器設計に対する性能の改善を提案する。遅延不確定の全範囲に亘る完全な信号探索は、２０４６個の遅延をチェックするために継続して約１００回に亘り２０台の相関器のブロックを使用することを要求する。よって、捕捉が数秒間で行われるべきであるならば、積分時間は数十ミリ秒に制限される。これは、屋内ＧＰＳアプリケーションに必要とされる感度を達成するためには不十分である。
【０００６】
[0006]探索プロセスをさらに改善するため、他のＧＰＳ受信機アーキテクチャは、着信信号と既知のＰＲＮ符号との間の畳み込みを生成する能力をもつ処理を含む。これは完全なＣ／Ａ符号エポック（１０２３チップ）に亘るすべての時間遅延可能性を測る相関器の完全な組を提供することと等価であり、１９９７年９月２日に発行された米国特許第５，６６３，７３４号は、ソフトウェアアルゴリズムを使用して必要な相関結果を効率的に生成するためにソフトウェア技術に基づく高速フーリエ変換（ＦＦＴ）について記載する。このアプローチは、プログラマブルデジタル信号プロセッサ（ＤＳＰ）がソフトウェアＦＦＴを実行するために必要とされ、大規模メモリが処理されていない信号サンプルを記憶するために必要とされるので、すべてのアプリケーションに対して適切であるということはない。さらに、このアプローチは、ソフトウェア計算、及びソフトウェア処理が信号の完全なスナップショットが記憶された後に限り開始するという事実に起因して、大きい処理遅延がある。多数のアプリケーションにおいて、リアルタイム処理解決策が、好ましくは、大規模なソフトウェア処理を含まないリアルタイム処理解決策が好ましい。Ｌｙｕｓｉｎら、“Ｆａｓｔ  Ａｃｑｕｉｓｉｔｉｏｎ  ｂｙ  Ｍａｔｃｈｅｄ  Ｆｉｌｔｅｒ  Ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  ＧＰＳ／ＧＬＯＮＡＳＳ  Ｒｅｃｅｉｖｅｒｓ”、ｐｐ３０７−３１５は、１０２３タップをもつ整合フィルタを使用してリアルタイムで畳み込みを実行するハードウェアアプローチについて記載する。整合フィルタは、完全なＣ／Ａ符号エポックを保持するために十分な大きさのシフトレジスタと、信号とＣ／Ａ符号の完全なエポックの間の内積を生成する幅１０２３のベクトル乗算器及び加算器ユニットとにより構成される。
【０００７】
[0007]この回路は、携帯電話機のような低コスト民生装置の制約よりも複雑である。Ｐ符号捕捉のため軍事クラス受信機で利用されるようなその他の整合フィルタアプローチは、同様に大規模ベクトル乗算器を組み込む。
【０００８】
[0008]したがって、信号及びＣ／Ａ符号の全エポックを処理する能力をもつ改善された、簡単かつ低コストのＧＰＳ処理ブロックが必要とされる。このような装置は、比較的簡単であるが、好ましくは、大規模ベクトル乗算器を用いることなく、完全な畳み込み、すなわち、多数の並列相関を生成する能力を備えたハードウェアで構築されるべきである。
【発明の概要】
【０００９】
[0009]本発明は、入力信号（例えば、ＧＰＳ信号）と擬似ランダム雑音（ＰＲＮ）符号基準との間の完全な畳み込みを、処理されていない信号サンプルを記憶することなく、かつ、大規模なソフトウェア処理なしに、リアルタイムでコンボリューションを生成することにより計算する方法及び装置を提供する。この装置は、エポック全体を処理するためのサイズのベクトル乗算器と同じ結果を獲得するため高速で動作するベクトル乗算器を備える。本発明は、携帯電話機のような民生クラス装置の複雑性の制約に適合する集積積回路に組み入れられる。その設計は、高感度を保証するため畳み込み結果の長期平均化を可能にさせるために必要なロジックを含む。本発明は、屋内で受信された信号をはじめ、非常に弱められた信号からの測位の導出に用いる信号を相関させる能力をもつ。
【００１０】
[0010]完全な装置は、従来のＧＰＳチューナー、デシメーション回路、畳み込みプロセッサ、及び畳み込み結果を蓄積するＲＡＭブロックにより構成される。畳み込みプロセッサは、１００ＭＨｚ以上のオーダーの高クロックレートで動作し、小さい回路のブロックの繰り返し使用によって完全な畳み込みの計算を可能にする。特に、畳み込みの各点は一連の部分相関に分解され、各部分相関は、エポックの一部分だけを処理するためのサイズのベクトル乗算器を使用して生成される。この装置は、Ｃ／Ａ符号を重なりのない符号セグメントの組に細分することにより部分相関を体系化する。各部分相関は、同時には１個の符号セグメントだけを使用し、簡単なルックアップテーブルを用いて、Ｃ／Ａ符号が効率的に保存され、取り出されることを可能にする。
【００１１】
[0011]プロセッサは、着信信号のタイミングに正確に適合させられた所望のサンプルレートで信号ストリームを作成するため入力ＩＦサンプルのデシメーションを行うことから始まる。所望のサンプルレートがＰｆｏ（Ｃ／Ａチップ当たりＰサンプル）であるならば、サンプリングレートは、正確に１０２３×Ｐ個のサンプルが各信号エポックで取得されるようにセットされる。プロセッサは、Ｋが１０２３の因数であり、Ｐ×Ｋ個の入力サンプルを保持するようなサイズのシフトレジスタを通る信号クロッキング信号を相関させる。各信号シフトで、Ｍ×Ｋ＝１０２３となるように選択されたＭを用いて、一連のＭ回の部分相関演算が実行される。各部分相関は、Ｃ／Ａ符号の長さＫのセグメントをＰ×Ｋ個のサンプルに拡張することにより作成された基準サンプルのブロックとの信号シフトレジスタの内容の内積を取ることで構成される。部分相関結果はメモリ内で積算される。部分相関結果を積算することにより、プロセッサは、完全な畳み込みに達するまで、多数の相関点の完全な相関結果を生成する。
【００１２】
[0012]相関処理を向上させるため、本発明の付加的な実施形態は、相関ヒストリーモードを使用して相関器を動かす。本実施形態では、ＲＡＭは相関ヒストリーを形成する所定の期間に亘って相関結果を記憶するため使用される。相関ヒストリーモードは、部分相関処理を実行する前に１台以上の衛星のドップラー周波数誤差とナビゲーションデータビットのタイミングを分離するために調節される受信機パラメータを推定するため使用される。推定された受信機パラメータは、受信機発振器の周波数及び／又は受信機タイミング誤差を含む。
【００１３】
[0013]別の実施形態では、衛星測位システム受信機はプロセッサに連結される。例えば、衛星測位システム受信機は、中央処理ユニットを含む携帯電話機のようなモバイル装置内に組み込まれる。本実施形態では、衛星信号と基準信号との間の複数の相関結果がプロセッサからのコマンドに応答して生成される。少なくとも１個の衛星信号パラメータは、衛星測位システム受信機内に統合されたコプロセッサを使用して複数の相関結果から推定される。少なくとも１個の衛星信号パラメータはその後プロセッサに供給される。
【００１４】
[0014]上記の本発明の特長が詳細に理解されるように、上述の簡単に要約された発明のより特有の説明が実施形態を参照することにより与えられ、実施形態の一部は添付図面に示されている。しかし、添付図面は本発明の典型的な実施形態だけを示し、発明が他の同様に効果的な実施形態を認めるので、本発明の範囲を限定しているとみなされるべきでないことに注意する必要がある。
【発明の詳細な説明】
【００１５】
[0036]図１は本発明を組み込む全地球測位システム（ＧＰＳ）受信機１００のブロック図を描いている。本発明を組み込むプラットフォームとしてのＧＰＳ受信機の使用は本発明の一つのアプリケーションを形成する。信号相関を必要とするその他のプラットフォームは本発明の用途が見出される。
【００１６】
[0037]（ＧＰＳ信号のような）信号はアンテナ１０１によって受信される。無線周波数から中間周波数への変換器（ＲＦ／ＩＦ変換器）１０２は、アナログ・デジタル変換器（Ａ／Ｄ）１０３によるデジタル化のため信号をフィルタ処理し、増幅し、周波数偏移する。要素１０１、１０２及び１０３は従来のＧＰＳ受信機で使用される要素と実質的に類似している。
【００１７】
[0038]Ａ／Ｄ１０３の出力は、デジタルロジックで実施された処理チャンネル１０４１、１０４２、．．．、１０４ｎ（ここでｎは整数である）に結合される。各処理チャンネル１０４ｎは特定のＧＰＳ衛星からの信号を処理するため使用される。特定のチャンネル内の信号はチューナー１０５によってデジタル的にチューニングされ、数値制御発振器（ＮＣＯ）１０６によって駆動される。チューナー１０５は二つの目的のため機能する。第一に、ＲＦ／ＩＦ変換後に残るＩＦ周波数成分は除去される。第二に、衛星運動、ユーザ運動、及び基準周波数誤差から生じる衛星ドップラー周波数偏移が除去される。チューナーからの出力は、同相成分（Ｉ）及び直交成分（Ｑ）により構成されるベースバンド信号である。１０５及び１０６のステップは従来のＧＰＳ受信機設計で使用されるステップと実質的に類似している。
【００１８】
[0039]デシメーション回路１０７は１０５の出力を処理する。デシメーション回路１０７の出力は、Ｉ成分及びＱ成分をもつ複素信号サンプルの系列であり、入力信号のタイミングに適合するように正確に時間同期させられたレートで出力される。本発明の一実施形態では、デシメーション演算は、出力サンプルの期間に亘ってすべての着信信号サンプルを加算する簡単な事前加算である。数値制御発振器（ＮＣＯ）１０８はサンプリングプロセスを時間同期させるため使用される。例えば、Ｐ＝２であるならば、符号ＮＣＯ１０８は、（２×ｆｓ）の周波数を発生するようにセットされ、ここで、ｆｓは、ドップラー偏移のため調整されたｆｏ（ＧＰＳ信号のＣ／Ａ符号チップレート）である。ＮＣＯは、ファームウェアコマンドからの外部入力に基づいてドップラー偏移に調整される。ドップラー偏移は衛星毎に異なるので、別個の符号ＮＣＯ１０８及びデシメーション回路１０７がチャンネル１０４ｎ毎に必要とされる。符号ＮＣＯ１０８は任意の周波数を発生する能力を備えているので、着信サンプルレートはｆｓの整数倍であるという要求がないことに注意すべきである。デシメーション回路１０７が事前加算器であるならば、加算されるサンプルの個数は、典型的に、２個の値の間でトグル切り替えされるので、長期間にわたって、正確なサンプルタイミングが維持される。例えば、着信サンプルレートが１０ＭＨｚであり、所望のサンプルレートが２．０４６ＭＨｚであるならば、事前加算器は４又は５個のサンプルを加算するので、所望のサンプルレートは平均的に維持される。
【００１９】
[0040]デシメーション回路１０７は、さらなる処理の前に信号成分のビット数を削減するためにその出力に量子化器（図示せず）を含むこともある。本発明の一実施形態では、２ビット量子化が使用される。
【００２０】
[0041]デシメーション回路１０７からの信号サンプルは畳み込みプロセッサ１０９に結合される。畳み込みプロセッサ１０９は、信号ランダムアクセスメモリ（ＲＡＭ）１１０ａ及び１１０ｂに記憶される結果を生成する。特に、これらのＲＡＭ１１０ａ及び１１０ｂは、入力信号と基準ＰＮ符号（例えば、ＧＰＳ  Ｃ／Ａ符号）との間の完全な畳み込みの全部又は一部を構築する複素ベクトルを保持する。畳み込み結果は、信号と基準（ＰＮ符号）との間の高い相関に対応する点でピークをもつ。以下で詳述されるように、種々の衛星信号に関するこれらのピークの相対的な位置は位置情報を最終的に計算するために使用される。
【００２１】
[0042]畳み込みプロセッサ１０９と、信号ＲＡＭ１１０ａ及び１１０ｂはＧＰＳ信号の複数のエポックに対する畳み込み結果を積算し、これは公称１ミリ区間で繰り返す。例えば、信号のうちの１０ミリ秒が処理されるならば、ＲＡＭ１１０ａ及び１１０ｂの値は、それぞれが１個のエポックの間に生成された１０個の相関結果の合計である。デシメーション演算のタイミングはサンプルが各エポック内の同じ相対運動で取得されることを保証するので、すべての個々の相関は同じ特性をもつべきである。個々の相関からの類似した結果を積算することは、信号対雑音比を改善し、受信機が弱い信号を検出する能力を高める。この処理は、コヒーレント積分と呼ばれ、後述のように、数秒までの時間に亘って平均化された相関結果を生ずるため、絶対値積分と組み合わされる。
【００２２】
[0043]コヒーレント積分区間が実行される時間の長さは、補償されていないドップラー偏移、ＧＰＳ信号ナビゲーションデータビット、及び受信機１００の運動によって生じる位相偏移を含む数個の要因によって制限される。これらの要因は、ゆっくりとした、しかし、一見ランダムな位相変動を信号に誘起する。数十秒に亘って、これらの位相変動は、コヒーレント積分の目的を無効にする破壊的な妨害の原因になる。したがって、長い平均化区間を達成するため、受信機１００は、絶対値積算という二次的なステップを実行する。特に、信号ＲＡＭ１１０ａ及び１１０ｂに記憶された信号は、複素畳み込みベクトルの複素絶対値を生成する複素正規化器１１１へ周期的に出力される。複素絶対値は加算器１１２によって積算され、絶対値ＲＡＭ１１３に記憶される。信号の複素絶対値が計算されるたびに、信号ＲＡＭ１１０ａ及び１１０ｂは、別のコヒーレント積分が行われることを可能にするためクリアされる。このプロセスは、所望の個数の絶対値積算が終了するまで継続する。例えば、コヒーレント平均化区間が１０ミリ秒であり、２００回の絶対値積算が望まれるならば、全プロセスは２秒間に亘って行われる。
【００２３】
[0044]畳み込み処理の後、絶対値ＲＡＭ１１３は、信号対雑音比を改善するため積分された、畳み込み結果の複素絶対値を含むベクトルを格納する。後述されるように、このベクトルは、受信機の位置を出すため使用される擬似距離データを生成するためにＣＰＵ１１４によって実行されるソフトウェアアルゴリズムによってさらに処理される。これらのステップのためのＣＰＵ計算負荷は、従来のＧＰＳ受信機又はＦＦＴベースの相関器と比較すると非常に適度であることに注意すべきである。本実施において、相関及び積分の計算集約的なタスクはソフトウェア処理の前に完了される。
【００２４】
[0045]図２は、図１のコンポーネントによって生成された波形２０１Ｉ、２０１Ｑ及び２０２を描いている。波形２０１Ｉ、２０１Ｑ及び２０２は、信号強度（軸２０８）対符号チップ（軸２１０）のプロットである。波形は、コヒーレント積分及び絶対値積分の間の畳み込みプロセッサ１０９の出力を描いている。明瞭さのため、一つずつが３回のコヒーレント積分に基づく３個の絶対値積算により構成される、９ミリ秒の信号処理時間だけが表される。本実施形態では、Ｐ＝２であるので、１回のコヒーレント積分当たり２０４６個の信号サンプルが存在する。波形２０１Ｉ及び２０１Ｑは畳み込みプロセッサ１０９からの出力であり、ここで、２０１Ｉは出力のＩ成分であり、２０１ＱはＱ成分である。２０４６個のサンプルの各ブロックは、その区間中に処理された２０４６個の信号サンプルから畳み込みプロセッサ１０９によってリアルタイムで生成された、完全な畳み込み結果である。畳み込み結果は、信号の時間遅延に対応する（参照番号２０６Ｉ及び２０６Ｑによって指定されるような）信号ピークの付近を除いて雑音を含む。信号はエポック毎に繰り返されるので、そのピークは２０４６個のサンプル毎に再び現れる。最初の３サイクルの間に、相関結果は各エポックからの対応する遅延で値を加算することにより、ＲＡＭ１１０ａ及び１１０ｂに積算される。（例えば、出力時刻４における値は、出力時刻２０５０及び４０９６における値と加算される）。相関ピークは常に同じ遅延オフセットで現れ、ピークのサイズは積算の間に増加し、３エポックの間におおよそ３倍になる。雑音のレベルも同様に増加するが、雑音相関はエポックとエポックの間で無相関であるため、３の平方根しか増加しない。信号対雑音比は積算プロセスを通して向上し、およそ３の平方根だけ増加する。波形２０１Ｑは、直交チャンネルで行われる同じ信号積算プロセスを描いている。
【００２５】
[0046]信号の４番目のサイクルから始めて、信号ＲＡＭ１１０ａ及び１１０ｂは零にクリアされ、信号積算プロセスは再開する。波形２０１Ｉ及び２０１Ｑは９個の信号エコーの間に３回積算及び放出を行う相関を表す。
【００２６】
[0047]コヒーレント平均化区間の最後に、積算された信号の絶対値が計算され、絶対値ＲＡＭ１１３へ加算される。絶対値ＲＡＭ１１３内の信号は波形２０２として示される。本実施形態では、波形２０２は、各コヒーレント積分の完了に対応して３回更新する。ピークは参照番号２１２１、２１２２、２１２３によって識別され、雑音は参照番号２１４によって識別される。以上のように、信号対雑音比は絶対値積算毎に増加し、到達時刻に対応するピークを識別するためにシステムの能力をさらに高める。
【００２７】
[0048]本実施形態では、信号の複素位相が９エポックの間に変動したことに注意すべきである。特に、信号は、初期的にＩチャンネルとＱチャンネルの両方に存在するが、最後のエポックによって、信号はＩチャンネルで強く、Ｑチャンネルでほとんど存在しないように回転させられる。上記のように、不完全なドップラー偏移チューニング及びその他の効果がこの回転の原因になる。多数のエポックの間に、位相は多数のサイクルによって回転し、積算されたときに信号の取り消しという結果になる。この理由のため、発明の受信機は、長期間平均化のための絶対値（非コヒーレント）に依存して短い区間だけに亘ってコヒーレントに積算する。絶対値は位相とは独立であり、数秒間に亘ってうまく積分される。
【００２８】
[0049]図３は積算絶対値波形２０２をより詳細に図示する。プロット３００は信号の時間遅延に対応するピーク２１２３の付近での畳み込みの絶対値を表す。符号チップ軸２１０上の点は、Ｐが信号サンプリングレートのＣ／Ａ符号化チップレートｆｏに対する比である場合に、Ｃ／Ａ符号チップ長さをＰによって分割した区間と等しい区間で間隔が空けられる。本実施形態では、Ｐ＝２であるので、点は半チップ区間、すなわち、約５００ｎｓだけ離される。（この時間的な間隔は１５０メートルの距離差に対応する）。１０メートル又はそれよりも良いオーダーで擬似距離測定値を得るために、畳み込み結果は、位置情報を生成するため、典型的にＣＰＵ１１４において、さらに処理される。畳み込みプロセスによって提供される離散相関値を使用して、真の時間遅延を推定するために使用できる数多くの補間技術がある。一実施形態は、雑音を含む測定データに最も良く適合する信号のパラメータを特定するために少なくとも自乗推定技術を使用する。信号の理想的な応答は信号の自己相関の絶対値である。この波形は、上昇三角形３０２の形式で簡単に表すことができる。三角形底辺の幅３０３は、正確に２個のＣ／Ａ符号チップ、すなわち、畳み込み結果上の４点（Ｐ＝２のケース）である。三角形の底辺の高さ３０４は、信号に対応しない時間遅延の畳み込みにおける雑音の絶対値である。この雑音の絶対値は、データから推定されるか、又は、増幅器雑音指数と、ケーブル及びフィルタ損失と、システム温度のような設計パラメータに基づいて予め計算される。三角形のピーク３０５及び三角形の中心３０６は、信号絶対値及び時間遅延に対応する未知数である。最小自乗法が雑音を含むデータ点を所定のピーク及び中心をもつ三角形に当てはめるようにこれらの２個のパラメータを推定するため使用される。図４は、（畳み込み結果処理回路４００と共に）畳み込みプロセッサ１０９の詳細ブロック図、特に、完全な畳み込みが小さい回路ブロックの繰り返し使用によって生成される方法を示す細部を描いている。回路の動作は、図４と、図４のプロセッサ１０９の動作を表現する図５のフローチャートとを同時に参照し、図６と図７の簡単な実施形態を比較することによって最も良く理解される。
【００２９】
[0050]デシメーション回路１０７からの信号は、Ｉ成分及びＱ成分をそれぞれ取り扱うシフトレジスタ４０１ａ及び４０１ｂに結合される。各シフトレジスタ４０１ａ及び４０１ｂは、長さがＰ×Ｋであり、ここで、Ｐは１個のＣ／Ａ符号チップ当たりの所望のサンプル個数であり、Ｋは設計パラメータとして選択される。後述のように、Ｋは１０２３の因数である。説明を簡略化するため、残りの説明は、Ｐ＝２（サンプルは半チップ間隔で離される）かつＫ＝３３である一つの特定の実施形態に重点を置く。シフトレジスタの中で信号を進めるこの手段は、回路が信号のダブルバッファを行う必要性を除去し、実施のコスト及び複雑さを軽減する。
【００３０】
[0051]信号はシフトレジスタ４０１ａ及び４０１ｂの中を、符号ＮＣＯ１０７によってタイミングを調節された２ｆｏのレートで進む。信号は多数のクロックサイクルの間にシフトレジスタ内の適当な位置に留まるので、一連の部分相関演算が実行される。特に、合計でＭ回の部分相関が実行され、本実施形態では、Ｍ＝１０２３／Ｋ、すなわち、３１である。各部分相関は、各信号シフトレジスタの内容と、Ｐ×Ｋ（例えば、６６）個の符号サンプルを含む符号のセグメントとの間の高速ベクトル乗算及び加算演算により構成される。高速ベクトル乗算及び加算は回路４０２ａ及び４０２ｂで行われる。回路４０２ａ及び４０２ｂはそれぞれ、乗算器４１０ａ及び４１０ｂと加算器４１２ａ及び４１２ｂとを備える。演算は、シフトレジスタ４０１ａ又は４０１ｂ内の６６個の信号サンプルのそれぞれに、（３３個の符号サンプルを符号拡張器４０９で拡張することにより形成された）６６個の符号サンプルを乗算することと、その結果を加算器４１２ａ及び４１２ｂで加算することからなる。演算はＩチャンネルとＱチャンネルで別個に、かつ、同時に行われる。数学的に、この演算は、
【数１】
2007510891.tif 000003
として定義され、内積と呼ばれる。ベクトル乗算及び加算の出力は、ＲＡＭ４０４ａ及び４０４ｂをオーバーフローさせないように、数を小さい範囲に保つために再量子化してもよい。簡単にするため、量子化器は図示されない。一実施形態では、再量子化は２ビットの分解能になる。
【００３１】
[0052]ベクトル乗算及び加算の結果は、加算器４０３ａ及び４０３ｂによって積算され、畳み込み結果処理回路４００によって処理される。回路４００は、信号ＲＡＭ１１０ａ、１１０ｂと、複素正規化器１１１と、加算器１１２と、絶対値ＲＡＭ１１３とを備える。信号ＲＡＭ１１１ａ及び４０４ｂに格納される。積算プロセスは、ＲＡＭ１１０ａ及び１１０ｂからの特定の時間遅延に対する現在値の読み出しと、ちょうど計算された部分相関の加算と、ＲＡＭ１１０ａ及び１１０ｂへの和の書き戻しとからなる。特定の時間遅延に対応する部分相関を適切に組み合わせることにより、その遅延の完全相関が計算される。上述のように、このプロセスは、信号対雑音比を改善するため必要に応じて信号の多数のエポックに対して継続する。よって、加算器４０３ａ及び４０３ｂは、エポック内の部分相関の組み合わせと、複数個のエポック全体の相関の積算との二つの目的のため機能する。
【００３２】
[0053]信号ＲＡＭ１１０ａ及び１１０ｂからの出力は、信号の絶対値を形成するため複素正規化器４０５で組み合わされる。これらのＲＡＭ１１０ａ及び１１０ｂにおけるＩ波形及びＱ波形は、複素波形の実部及び虚部として考えられる。絶対値の形成は、各成分の平方化と、結果の加算と、その結果の平方根の取得とからなる。絶対値への複数の近似が回路を簡単化するため使用される。一実施形態では、複素絶対値は、ＩとＱのスカラー絶対値を独立に取得し、大きい方を決定することによって近似される。絶対値は、大きい方の絶対値を取り、それを小さい方の絶対値の半分に加算することによって近似される。
【００３３】
[0054]絶対値演算の結果は、ＲＡＭ１１３のオーバーフローを回避するように値を小さい範囲に保つために縮尺される。簡単にするため、スカラーは示されていない。一実施形態では、スケーリングは、結果を３ビットシフトすること（すなわち、８で除算すること）からなる。
【００３４】
[0055]信号絶対値ではなく信号電力を積算することも可能である。この場合、４０５における演算は電力推定であり、典型的に、ＩとＱの平方の和を取ることにより計算される。この場合、図３を参照して説明された擬似距離決定アルゴリズムは、絶対値波形ではなく、電力波形に対する当てはめを実行するために僅かに修正されるべきである。代替的に、付加的な非線形演算がＩ及びＱの絶対値又は電力を表す値を生成するため使用される。
【００３５】
[0056]複素正規化器１１１からの出力は、加算器１１２によって絶対値ＲＡＭ１１３に積算される。積算プロセスは、ＲＡＭ１１３からの特定の時間遅延に対する現在絶対値の読み出しと、ちょうど計算された絶対値結果の算入と、ＲＡＭ１１３への和の書き戻しとからなる。上述のように、絶対値積算は、信号対雑音比の改善を実現するため必要に応じて多数のサイクルに亘って継続する。
【００３６】
[0057]ベクトル乗算器４０２ａ及び４０２ｂは、信号のシフト毎にＭ回の部分相関を実行する。符号ルックアップ回路４０８は各部分相関の基準符号サンプルを生成する。ルックアップは２個のルックアップインデックスによって制御される。第一に、符号は３２個の符号のうちの一つから選択されなければならない。この選択は畳み込みプロセスの間中一貫性があり、処理チャンネルが特定の衛星信号のための相関を取るように構成されるときに確定される。第２のインデックスは、１とＭとの間のセグメントインデックスである。各Ｃ／Ａ符号は、それぞれがＫ個の隣接した符号チップからなるＭ個の重なりのないセグメントに分割された、１０２３個のチップにより構成される。ルックアップインデックスは必要とされる符号セグメントを特定する。符号ルックアップ回路からの出力はセグメントを構成するＫ個のチップである。選択プロセスは、制御／アドレスロジック４１４によって制御される。
【００３７】
[0058]符号拡張器４０９は、その入力として、セグメントのＫ個のチップを取得し、そのセグメントをＫ×Ｐ個の符号サンプルに拡張する。拡張演算は、各符号チップをＰ個の同一の符号サンプルに変換することからなる。符号拡張器４０９からの出力はベクトル乗算器４０２ａ−ｂへ入力される基準符号を形成する。本実施形態では、符号拡張器からの出力は、３３個の一意の値で構成され、各値が２回ずつ反復される６６個のサンプルである。
【００３８】
[0059]図４に示されたアーキテクチャは、Ｃ／Ａ符号レートｆｏより実質的に速いクロックを必要とする。例えば、Ｃ／Ａ符号チップ１個当たり２個のサンプルが使用されるならば（Ｐ＝２）、Ｋ及びＭはそれぞれ３３及び３１であり、完全な畳み込みの実現は、２×ｆｏのレートで進む信号シフトレジスタのシフト毎に３１回の部分相関を必要とする。典型的に、ＲＡＭ１１０ａ及び１１０ｂの読み出しと書き込みを行うために少なくとも２クロックサイクルが必要とされる。２クロックサイクルを仮定すると、完全な畳み込みを実現するために必要とされる最小クロックレートは、
ｆｃｌｋ＝２×３１×２×ｆｏ＝２×３１×２×１．０２３ＭＨｚ≒１２７ＭＨｚ
である。このレートは最新集積回路ロジックにおいて簡単に達成可能である。
【００３９】
[0060]本発明は完全な畳み込みの部分集合を計算するためにも使用できることに注意すべきである。この場合、Ｍ回より少ない相関が信号シフトレジスタのシフト毎に実行される。この場合、遅延の全範囲は、完全な畳み込みを構成するＰ×１０２３より少ない。特に、Ｍ２回の部分相関が実行されるならば、Ｍ２×Ｋ×Ｐ個の遅延値が生成される。プロセッサへのクロックレートはＭ２対Ｍの比によって削減される。さらに、ＲＡＭのサイズは同様にこの比によって縮小される。よって、この代替案は、完全な畳み込みを処理する計算リソース又はメモリリソースを持たないシステムにおいて役に立つ。
【００４０】
[0061]Ｋ及びＭの結果のその他の選択は、さらなる設計トレードオフが行われることを可能にするが、１０２３の素因数は３、１１及び３１であるので、Ｋ及びＭの選択は制限される。Ｋを減少させることは、シフトレジスタ４０１ａ及び４０１ｂのサイズを縮小し、ベクトル乗算器４０２ａ及び４０２ｂの複雑さを軽減するので望ましいが、より大きいＭ、したがって、大きいクロックレートを必要とする。Ｋの選択の範囲は３、１１、３１、３３及び９３である。これらの選択の範囲は、１．３９ＧＨｚ、３８０ＭＨｚ、１３５ＭＨｚ、１２７ＭＨｚ及び４５ＭＨｚそれぞれのクロックレートを必要とする（常にＰ＝２かつ部分相関毎に２クロックサイクルを仮定する）。実証の時点で利用可能なテクノロジーに基づいて、Ｋ＝３３の選択が一実施形態のため行われた。将来のテクノロジーでは、Ｋ＝１１の選択と３８０ＭＨｚのクロックレートが実行可能になり、ロジック複雑さのさらなる低減という結果になる。よって、このアーキテクチャは、速度とロジック複雑さとの間で最適化されたトレードオフをサポートする望ましい属性を有する。
【００４１】
[0062]符号セグメントの順序付けは制御ロジック４１４によって制御される。この制御ロジックはさらにＲＡＭ１１０ａ、１１０ｂ及び１１３の正確なアドレスを特定する。後述するように、部分相関は非連続的な順序で生成されるので、ＲＡＭアドレスの生成は重要である。
【００４２】
[0063]図４の回路の動作は図５のフローチャートを参照しても理解される。動作は、信号シフトレジスタ４０１ａ及び４０１ｂをプレロードしてステップ５０１から始まる。この時点で、畳み込み処理が始まる。ステップ５０２で、符号セグメントが特定の部分相関のためアクセスされる。ステップ５０３で、符号セグメントはＣ／Ａチップ１個当たりにＰ個のサンプルにするため符号拡張器によって拡張される。次に、ステップ５０４で、遅延指標及び対応するＲＡＭアドレスが計算される。遅延指標は、完全な畳み込みのうち部分相関によって更新される点を指定する。図７と共に説明される実施形態からわかるように、遅延指標は非線形であるが、しかし、決定論的な形で動き回る。アドレス計算は信号シフトの回数と符号セグメントの関数である。
【００４３】
[0064]ステップ５０５で、部分相関がベクトル乗算器４０２ａ及び４０２ｂを使用して計算される。ステップ５０６で、その結果が遅延指標によって指定されたロケーションで信号ＲＡＭに積算される。次にステップ５０７で、処理がコヒーレント積分区間の最後に到達したかどうかを決定するためにチェックされる。到達していないならば、この方法はステップ５０２ａへ戻り、次の符号セグメントに対して上記のステップを繰り返す。
【００４４】
[0065]ステップ５０７で、そのチェックがすべての符号セグメントの部分相関（例えば、３１回の部分相関）が完了したことを示すならば、この方法はステップ５０８へ進む。ステップ５０８で、信号レジスタ４０１ａ及び４０１ｂは１サンプルずつシフトされる。
【００４５】
[0066]このプロセスは次にステップ５０９へ進み、そこで直前のシフトがコヒーレント積分区間の最後に達したかどうかを調べるためにチェックが行われる。最後に達していないならば、プロセスはステップ５０２のスタートへ戻る。そのチェックがコヒーレント積分区間の最後を示すならば、この方法はステップ５１０へ続き、そこで信号絶対値が複素正規化器１１１によって計算される。その結果は加算器１１２によって加算され、絶対値ＲＡＭ１１３に格納される。次に、ステップ５１１で、すべての絶対値積算が実行されたかどうかを決定するためにチェックが行われる。実行されているならば、この方法はステップ５１２で終了する。実行されていないならば、処理はステップ５０１で次の部分相関を実行することにより継続する。
【００４６】
[0067]図６及び図７は、簡略化された実施形態によって、本発明が完全な畳み込み結果を積算するために部分相関を利用する方法を示す。明確にするために、これらの図は、ＧＰＳ信号の長さ１０２３のＣ／Ａ符号ではなく、非常に短い長さ６の符号の畳み込みを図示する。実施形態をさらに簡略化するため、符号チップ毎に１個のサンプルが使用され、すなわち、Ｐ＝１である。図６は標準的な整合フィルタリング法による畳み込みを図示し、図７は部分相関を組み合わせる方法による同じ畳み込みを図示する。図７の細部は本発明の全体的な動作を理解する際に役立つ。両方の方法は同じ畳み込み結果を生成する。
【００４７】
[0068]図６は長さ６の信号に対する従来の整合フィルタの動作を示す。動作はシフト０として示された時点で始まる。この時点で、信号のサイクル全体を構成する６個の連続する信号サンプルが信号シフトレジスタ６０１にある。個々のサンプルは大文字の添字Ａ、Ｂ、Ｃ、Ｄ、Ｅ及びＦでラベル付けされる。長さ６の符号全体の符号サンプルは基準レジスタ６０２に保持され、小文字の添字ａ，ｂ，ｃ，ｄ，ｅ及びｆでラベル付けされる。シフト０の時点で、シフト０の相関結果を生成するためベクトル乗算及び加算が実行される。各信号サンプルは対応する符号サンプルによって乗算され、その結果が加算され相関結果６０３を生ずる。
【００４８】
[0069]次に、信号シフトレジスタ６０４は、シフト１によって示されるように、１サンプルずつ進められる。信号は周期的であるため、レジスタの左側に取り入れられる新しいサンプルは右へシフトして出されたサンプルと一致する。レジスタ６０４のシフトされた内容は、今度は、添字Ｆ、Ａ、Ｂ、Ｃ、Ｄ及びＥをもつサンプルである。符号はシフトされない。ベクトル乗算及び加算は、今度は、シフト１に対する相関結果６０５を生ずる。このシフトプロセスは５回のさらなるシフトに対して継続し、その点において、完全な畳み込みを構成する全部で６個の相関結果が利用可能である。
【００４９】
[0070]図７は同じ畳み込み結果が部分相関の方法によって得られる方法を図示する。上記のように、本発明は、符号が長さＫのＭ個のセグメントに分解されることを要求する。図７の簡略化された実施形態では、長さ６の符号が長さ２の３個のセグメントに分解され、すなわち、Ｋ＝２かつＭ＝３であった。動作はシフト０に示される時点から始まる。この時点で、２個の信号サンプルが信号シフトレジスタ７０１に保持される。信号サンプルは大文字の添字Ａ及びＢでラベル付けされる。符号の６個のサンプルはそれぞれ長さ２の３個のセグメントに格納される。第１の符号セグメント７０２は小文字の添字ａ及びｂでラベル付けされた２個の符号サンプルを格納する。信号は３回の部分相関演算の間に所定の位置に保持され、部分相関結果７０３ａ、７０３ｂ及び７０３ｃをもたらす。第１の部分相関結果は、信号レジスタの内容と第１の符号セグメント（セグメント１）の内容との間のベクトル乗算及び加算によって作成される。第２の結果及び第３の結果は、それぞれ、第２の符号セグメント及び第３の符号セグメントと信号セグメントのベクトル乗算によって作成される。信号レジスタは全部で３回のベクトル乗算が実行されるのに十分な時間に亘って所定の位置に保持され、符号はこの時間中にシフトされるのでなく、異なる符号セグメントが選択されることに注意すべきである。
【００５０】
[0071]部分相関結果は信号パス７０５によってメモリに積算される。例えば、シフト０で、第１の符号セグメントからの部分相関は相関結果７０４に算入される。第２のセグメントからの部分相関はシフト２の相関結果７０６に算入される。第３のセグメントからの部分相関はシフト４の相関結果７０８に寄与する。
【００５１】
[0072]３回の部分相関の後、信号はシフトされる。シフト１として示されたこの段階で、信号レジスタはサンプルＦ及びＡを格納する。この場合も、３回の部分相関が前と同じ３個の符号セグメントを用いて生成される。これらの部分相関からの結果は、シフト１、３及び５のそれぞれの相関結果７１０、７１２及び７１４に寄与する。この処理は４回のさらなる信号シフトに対して継続し、その時点で完全な畳み込み結果が利用可能である。以上のように、この動作は、畳み込みを構成する６個の完全な結果に寄与する全部で１８個の部分相関を生成することが必要である。
【００５２】
[0073]図７によって説明されたアーキテクチャは本発明の二つの重要な特性を図示する。第一に、完全な畳み込みは、長さ２のシフトレジスタとベクトル乗算及び加算ユニットとだけを使用して、長さ６の符号に対して生成されたことが明らかである。このことは３個の要素の長さが６である図６より小さい回路を必要とする。第二に、図７では、符号サンプルは各シフトに対して同一のある固定したセグメント内でアクセスされ、各セグメントは符号の別個の重なり合いのないセクションである。よって、簡単なルックアップ又はレジスタスキームが、図８及び図９を参照してさらに説明されるように、符号をベクトル乗算器へ供給するために使用される。これらのスキームは、例えば、符号ビットの大規模ブロックがより複雑な置換の組において利用可能にされることを必要とする他のアーキテクチャより小さい回路を必要とする。本発明は符号発生回路を設ける必要性も取り除く。
【００５３】
[0074]図８は本発明に適した符号ルックアップ回路４０８の一実施形態のブロック図を示す。テーブル８０１は、３２個の符号のそれぞれの全部で１０２３ビットの格納値を、例えば、読み出し専用メモリ（ＲＯＭ）又はハードワイヤドロジックに収容する。テーブル８０１は、符号毎に１個ずつの３２個のサブテーブルとして編成される。各サブテーブルは、長さＫのＭ個のセグメントとしてさらに編成され、ここで、Ｋ×Ｍ＝１０２３であり、Ｋ及びＭは上述のように選択される。マルチプレクサ８０２は選択値に基づいて特定の符号を選択する。マルチプレクサ８０２の出力は目的に応じた特定のサブテーブルである。マルチプレクサ８０３は、１とＭとの間のセグメント選択値に基づいて特定のセグメントを選択する。８０３の出力は、符号拡張器４０９へ供給される符号ビットを格納する長さＫの特定の符号セグメント８０４である。
【００５４】
[0075]マルチプレクサ８０３は、符号セグメントが部分相関毎に、すなわち、２サイクル毎に変更可能であるように高速でなければならない。この理由のため、すべての符号ビットは、従来の符号発生器の方法では進行中に生成されるのに反して、テーブル８０１に予め記憶される必要がある。
【００５５】
[0076]図８の回路は、実例となることが意図されている。実際には、機能的に同等の多くの異なった回路設計がある。特に、最新ＡＳＩＣ設計で使用される論理合成のプロセスは、上記の振る舞いと等価的な振る舞いを実現するが、必ずしも上記の方法でマルチプレクサを使用しないある種のゲートの特定のパターンを生み出す。
【００５６】
[0077]図９は本発明に適した符号ルックアップ回路４０８の代替的な実施形態のブロック図を示す。特定の符号に対応する１０２３個の符号ビットは、長さＫのＭ行として編成された１０２３台の双方向シフトレジスタ９０１に保持される。このシフトレジスタは、ランニングモードとローディングモードの２モードで動作する。
【００５７】
[0078]ランニングモードでは、各レジスタ９０１は、最下行のレジスタへシフトする最上行のレジスタを除いて、そのサンプルを次の行内でそのレジスタの上にあるレジスタへシフトするように設定される。ランニングモードのシフト方向は９０１内に実線矢印で指し示される。すべてのレジスタをクロッキングすることにより、どの時点においても最上行が長さＫのＭ個の符号セグメントのうちの一つを格納するように、符号ビットの行が巡回する。このビットの最上行は符号拡張器４０９へ供給される。レジスタは高速に巡回するので、異なる符号セグメントが部分相関毎に利用可能にされる。
【００５８】
[0079]ローディングモードでは、各レジスタは、上の行内の最初の列のレジスタへシフトするレジスタの最後の列を除いて、そのサンプルをその行内の次のレジスタへシフトするように設定される。ローディングモードのシフト方向は９０１内に点線矢印で示されている。左下のシフトレジスタ９０４は符号発生器９０２に接続される。符号発生器は、選択値に基づいて特定の符号の１０２３個の符号ビットを順次に作成する能力を備えた従来の符号発生器である。符号ルックアップ回路がある特定のことのため設定されるとき、レジスタはローディングモードに入れられ、発生器は符号のビットを発生するため使用され、レジスタの中をクロックスルーする。すべてのビットがクロックスルーされた後、符号は長さＫのＭ個のセグメントとしてレジスタ内にある。回路は次にランニングモードで使用される準備が完了する。
【００５９】
[0080]図１０はＧＰＳ受信機１０００の別の実施形態のブロック図を描いている。受信機１０００は、標準相関モードだけでなく相関ヒストリーモードで動作する複数の処理チャンネル１０４を備える。標準相関モードの機能は図１〜９に関して上述した通りである。相関ヒストリーモードにおける受信機１０００のコンポーネントの動作は、信号ＲＡＭ１１０ａ及び１１０ｂと絶対値／ヒストリーＲＡＭ１００２に通じるすべてのブロックに関して標準モードと実質的に同じである。さらに、本発明の方法の説明を支援するため、ＣＰＵ１１４は、メモリ１０１０及びサポート回路１０１２によって従来の方法でサポートされているものとして図１０に示されている。サポート回路１０１２は、クロック、バス、キャッシュ、電源、Ｉ／Ｏ回路などのような周知のサポート回路を備える。メモリ１０１０は、ランダムアクセスメモリ、読み出し専用メモリ、リムーバブルメモリなどのうちの一つ以上を備える。メモリ１０１０は、ＣＰＵ１１４によって実行されるときに、受信機１０００を後述の方法にしたがって動作させるソフトウェア１０１４を記憶するコンピュータ読み取り可能な媒体を形成する。ＣＰＵ１１４、メモリ、及びサポート回路の組み合わせは処理ユニット１０１６を形成する。
【００６０】
[0081]畳み込みプロセッサ１０９の標準動作の場合のように、信号ＲＡＭ１１０ａ及び１１０ｂは、完全な変換を備える相関遅延の全部のためのコヒーレント平均化区間に亘って部分相関結果を積算するため使用される。相関ヒストリーモードは、相関ピークの付近における遅延に対応するこれらの結果の小さい部分集合だけを使用する。相関ヒストリーモードでは、プログラミングパラメータは僅かな数の所定の遅延を確定する。これらの遅延に対し、すべてのコヒーレント平均化結果の完全なヒストリーは絶対値／ヒストリーＲＡＭ１００２に記憶される。相関ヒストリーモードの間、絶対値積算は畳み込みプロセッサにおいて実行されない。その代わり、このモードでは、ＲＡＭ１００２は、相関ヒストリーモードの間に相関ヒストリーを記憶するメモリ（ヒストリーメモリ）として使用され、畳み込みプロセッサ１０９の標準動作の間に絶対値のためのメモリ（絶対値メモリ）として使用される。別のプログラミングパラメータは、ＲＡＭ１００２に記憶されるべき連続的なコヒーレント積算結果の個数を規定する。畳み込みプロセッサ１０９は、遅延及びエポックによって索引付けされた結果の２次元テーブルで絶対値／ヒストリーＲＡＭを埋める（図１１を参照されたい）。記憶可能なエポックの個数は、ＲＡＭサイズと選択された遅延の個数とによってセットされる。例えば、ＲＡＭが２０４８ワードのサイズにされるならば、メモリは、１個だけの遅延に対する２０４８サイクル、２個の遅延に対する１０２４サイクル、又は、４個の遅延に対する５１２サイクルなどのいずれかを記憶するため使用される。１２ビットのワード幅は、コヒーレント平均化結果のＩ部分及びＱ部分が６ビット分解能で個別に記憶されることを可能にする。
【００６１】
[0082]図１２は典型的な相関ヒストリーのグラフの実施形態１２００を示す。上側のグラフ１２０２及び下側のグラフ１２０４は、それぞれ、Ｉ成分波形及びＱ成分波形を示す。グラフの各点は単一のコヒーレント積分を示す。本実施形態では、コヒーレント積分区間は１エポックにセットされたので、各点は公称１ミリ秒の積分を表現する。
【００６２】
[0083]図１２の波形は、相関後の信号の二つの局面を図示する。第一に、信号をＩチャンネルとＱチャンネルを越えて回転させる残留ドップラー周波数が存在する。第二に、ナビゲーションデータビットが存在し、時々の１８０°の位相遷移を作成する。遷移の間の最小区間は２０エポック、すなわち、データビット期間である。相関ヒストリーの開始に対するデータビットのタイミングもまた波形から明白である。
【００６３】
[0084]相関ヒストリーモードは、発振器周波数及び受信機クロックタイミングのようなある種の受信機パラメータを推定する目的で衛星信号ドップラー及び／又はナビゲーションビットタイミングを決定するため呼び出される。初期的に、このモードは残留ドップラーと、相関ヒストリーの開始に対するナビゲーションデータビットのタイミングとを推定するためソフトウェアアルゴリズムによって使用されるデータを提供する。続いて、必要に応じて、このモードはナビゲーションデータビットの値の復号化のヒストリーを提供するためにも使用される。
【００６４】
[0085]特に、ソフトウェアアルゴリズムは、ＧＰＳ受信機のその固有の発振器周波数及び／又は内部クロックタイミングの推定値を発生又は更新するために、１台以上の衛星のドップラー及びビットタイミングを決定する。特に、より精密な相関が図１０の搬送波ＮＣＯ１０６及び符号ＮＣＯ１０８を「訂正」し、畳み込みプロセッサ１０９のタイミングを調節するために発振器周波数及びクロックタイミング推定値を使用して実行される。特に、受信機発振器周波数の改善された推定値は、相関プロセッサ１０９がＮＣＯ１０５によってより正確に合わせられることを可能にし、より良い信号検出とより長いコヒーレント積分区間を利用する能力とを提供する。その上、受信機クロックタイミングの改善された推定値は、衛星毎にナビゲーションデータビットタイミングと同期したコヒーレント積分を実行するように畳み込みプロセッサ１０９の開始時刻を制御するために使用され、信号検出を改善する。
【００６５】
[0086]（２００１年３月２７日に発行された米国特許第６，２０８，２９１号に開示されているような）従来技術は、衛星信号のＰＮエポック及び搬送波が追跡される追跡プロセスのための相関器出力を記憶するためレジスタバンクを使用する。追跡プロセスは高い信号対雑音比を要求する。従来技術とは異なり、本発明の相関ヒストリーモードは、特定の衛星信号を追跡する目的のため単にデータを一時的に記憶するのではない。それどころか、相関ヒストリーモードは、視野内にある全衛星の検出に役立つ受信機パラメータを推定するため使用される。さらに、相関ヒストリーモードは、従来の追跡プロセスのスレッショルドを下回る非常に低い信号対雑音比でさえ、衛星信号情報を抽出するソフトウェア推定アルゴリズムと共に動作する。複数の衛星からの信号の相関ヒストリーモード処理は、受信機パラメータ推定の性能を高めるために使用されるが、このような付加的な信号は本発明を実施するために不可欠ではない。
【００６６】
[0087]相関結果のヒストリーからビットタイミング及び周波数を推定するため利用される多数のアルゴリズムが存在する。一実施形態は図１３のブロック図に図示されている。本実施形態では、プロセス１３００は、特定の機能を行うステップのシーケンスを実行するソフトウェアプログラムに組み込まれる。プロセス１３００は、特定の周波数及びビットタイミングを仮定して信号絶対値の推定値（絶対値推定値）を決定するため実行され、推定値は実現可能な周波数及びビットタイミングの範囲に亘って最適化される。仮説毎に、Ｉ及びＱの相関ヒストリーは、周波数変調の共役に対応する複素周波数項による乗算を実行することにより最初に位相訂正される（ステップ１３０２）。次に、ステップ１３０４で、信号は、ナビゲーションビット期間までスパンするコヒーレント積分に亘って積分される。例えば、相関ヒストリーが１エポックの間隔で離されたサンプルにより構成されるならば、Ｉ及びＱヒストリーの２０個の連続したサンプルがナビゲーションデータビットに亘る信号絶対値の推定値を作成するため加算される。各ビット加算が完了すると、ステップ１３０６で、絶対値計算演算が電力値を形成するため実行される。連続的な絶対値計算からの結果はその後、信号対雑音比を改善するためステップ１３０８でさらに加算される。例えば、１秒のデータは、加算で使用されるビット期間の積分された電力を形成するために加算される５０個のビット期間を提供する。より一般的に、計算は信号レベル、例えば、信号絶対値又は信号電力を決定するため実行される。本明細書で説明される本発明の実施形態は信号絶対値を使用するが、当業者は、信号電力又はその他の信号レベルの指標が本発明を実施するため使用されることを認識する。
【００６７】
[0088]電力推定値は実現可能な周波数及びビットタイミング値の範囲に亘って収集される。結果は、図１４に示されるように、２次元グリッド１４００上で観察できる。一方の軸１４０２は仮定された周波数誤差であり、本例では、−４０から８０Ｈｚまで変化する。もう一方の軸１４０４は、ビットタイミング仮説であり、０エポックと１９エポックの間で変化する。この値は、ビットタイミングと受信機クロックにしたがって特定の時刻に取得された相関ヒストリーの開始との間の仮定されたオフセットを表現する。グリッドの各点における垂直軸１４０６は、ドップラー及びタイミング仮説に対応する相関関係がある信号絶対値である。周波数及びタイミングの最良推定値はグリッド上の最大点１４０８に対応する。これは、コヒーレント平均化区間がデータビットとずれる場合に生じる信号対雑音比（ＳＮＲ）損失を最小限に抑える。
【００６８】
[0089]図１５は周波数軸１４０２による図１４の断面のグラフ１５００を示す。図からわかるように、応答は正確な周波数でピーク（点１５０２）になる。同様に、図１６はビットタイミング仮説軸１４０４による図１４の断面のグラフ１６００を示す。この場合も、最大絶対値は正確なビットタイミングに対応する三角形の最高点（点１６０２）で見られる。
【００６９】
[0090]周波数及びビットタイミングにおける点の配置は、意図された推定値の精度だけでなく、周波数及びビットタイミングにおける初期の不確定性の関数である。通常はＧＰＳ時刻に対する受信機タイミングは未知であるので、全部で２０個のタイミング仮説がチェックされる。
【００７０】
[0091]本明細書で説明されているプロセスは、最大値が探索される２次元の点の集合を提供することに注意すべきである。最大値に到達する方法は他にもある。例えば、周波数の粗い推定は、表面のピークに近い周波数を取得するため任意のビットタイミングで実行される。任意のビットタイミングが使用されるならば、コヒーレント平均化区間をビット期間、例えば、１９エポックのコヒーレント平均化区間と非同期になるようにセットする方が有利である。任意のビットタイミングによる解析の後に、すべてのビットタイミングにおける（そして、好ましくは、２０エポックのコヒーレント平均化区間を用いる）その周波数の応答の推定が続き、ビットタイミングが推定されることを可能にする。必要に応じて、これは付加的な周波数の推定が後に続けられる。これは、図１４の２次元表面の全体を通じて最大値を探し出すために利用できる周知の数学的技術の多数の実施形態のうちの一つである。テストされ、有利であることが判明した別の方法は、Ｎｕｍｅｒｉｃａｌ  Ｒｅｃｉｐｅｓ  ｉｎ  Ｃ，Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓに記載された滑降シンプレックス法である。
【００７１】
[0092]別の実施形態では、逐次推定アルゴリズムがソフトウェアで実施される。アルゴリズムの各ステップにおいて、周波数弁別器が周波数誤差の推定値を形成する。その後の反復において、周波数誤差が加えられ、弁別器は周波数誤差の別の改善された推定値を提供する。このプロセスは、残りの周波数誤差が小さくなるまで継続する。追跡ループとは異なり、このアルゴリズムは、ＮＣＯ１０６にフィードバックを使用することなく、かつ、付加的な相関を実行することなく、記憶された相関ヒストリー上で完全に動作する。周波数が推定されると、ビット遷移が１８０°位相遷移のタイミングから識別される。周波数誤差は大部分が除去されているので、位相遷移は容易に観測可能である。
【００７２】
[0093]図１７はＧＰＳ受信機の動作と関連付けて相関ヒストリーモードを使用する方法１７００を示す。初期的に、ステップ１７０２で、遅延の範囲に亘って信号をスキャンし、必要に応じて周波数域で探索して、相関が標準モードで実行される。エネルギーが検出されたとき、ステップ１７０４で、１台以上の衛星からの信号が相関ヒストリーモード処理のため選択される。ステップ１７０６で、受信機の処理チャンネル又は複数のチャンネルが相関ヒストリーモードのため再設定され、相関ヒストリーが積算される。通常は、遅延の推定値は初期信号捕捉から利用可能であるため、相関ヒストリーは単一の遅延で積算するだけでよい。ステップ１７０８で、一つ又は複数の相関ヒストリーが相関ヒストリーモードで動作されるチャンネル毎に信号周波数及びビットタイミングの推定値を生じるため上記のように処理される。
【００７３】
[0094]ステップ１７１０で、これらの推定値はそれから受信機の発振器周波数及びクロックタイミングのモデルを更新するために使用される情報を決定すべく衛星レンジ及びレンジレートモデルと組み合わされる。これらの推定値は、次に、視野内にある最大ですべての衛星の予想されるビットタイミング及びドップラーを計算し、ＮＣＯ１０６及び１０８の改善されたプログラミング値を計算し、畳み込みプロセッサ１０９のコヒーレント積分開始タイミングをセットするためにすべての衛星の衛星レンジ及びレンジレートモデルと共に使用される。受信機は、その後、図１〜９に関して説明されたように、受信機の視野内にあるすべての衛星からの信号を相関させるため標準動作モードに切り替わる。ステップ１７１２で、受信機は、ＧＰＳ信号上で標準的な相関を実行するために、改善された周波数及びクロックタイミング推定値を使用する。上記のプロセスは、受信機パラメータ推定値を完全にするため、必要に応じて、繰り返される。
【００７４】
[0095]特に、ステップ１７１０において、特定の衛星のための相関ヒストリーモードで決定された周波数は、静止受信機モデルに基づいて、受信機クロックの周波数の誤差の原因とされる可能性がある差の値を決定するために、その衛星の予想されたレンジレートと比較される。代替的に、周波数測定値が３台以上の衛星から利用可能であるならば、誤差は、受信機クロック周波数と、その上に受信機速度を推定するために使用される。推定された受信機発振器周波数は、衛星を検出するＮＣＯ１０６の改善されたチューニング周波数を決定するため、衛星の予想されたレンジレートと組み合わされる。
【００７５】
[0096]さらに、受信機タイミング誤差の推定値はビットタイミング測定値から生成される。信号ヒストリーは受信機の内部クロックと相対的な特定の基準時間で捕捉される。一実施形態では、このクロックはミリ秒カウンタである。このカウンタのタイミングは、一般に、ＧＰＳ時刻に対して任意である。しかし、ビットタイミングが特定の衛星に関して推定されると、時間関係がミリ秒カウンタとＧＰＳ時刻との間に確立される。このことを説明するために、データビットは同時にすべての衛星から出ることを指摘することが適当である。ビット遷移時に、ＧＰＳ時刻のモジュロ２０の値は零である。これらの衛星からの信号は何ミリ秒も後に受信機に到達する。遷移の時刻と受信の時刻との間の遅延は、受信機位置の推定値、おおよその時刻、及び衛星軌道情報から容易に決定される。よって、受信機におけるデータビット遷移の絶対的なタイミングは、ＧＰＳ時刻という形で推定される。これらの同じトランザクションのタイミングが受信機のミリ秒クロックと相対的に測定されると、受信機クロックとＧＰＳ時刻との間に関係が確立される。この関係は、ナビゲーションデータビットフレームのタイミングではなくナビゲーションデータビット遷移だけが確立されるので、絶対的な関係ではないことに注意すべきである。むしろ、モジュロ２０による受信機クロックのミリ秒値は、モジュロ２０によるＧＰＳ時刻のミリ秒値に関連付けられる。
【００７６】
[0097]その後のコヒーレント積分区間を揃えるために、受信機は最初に、（擬似距離に基づいて）ＧＰＳ時刻と相対的にナビゲーションデータビットのタイミングを推定する。畳み込みプロセッサ１０９によって実行される相関は、受信機ミリ秒クロックに基づいてある都合のよい将来の時刻に始まるようにプログラムされる。モジュロ２０によるこの開始時刻のミリ秒値は、コヒーレント積分のデータビットとの整列を保証するために、ＧＰＳ時刻及びナビゲーションデータビットのタイミングと相対的に選択される。
【００７７】
[0098]相関ヒストリーモードはナビゲーションデータビットを収集するためにも使用される。通常は、このモードはナビゲーションデータビットタイミングが確立された後に呼び出される。相関プロセッサは、データビットと揃えられた区間を用いて、２０エポックのコヒーレント積分区間用にプログラムされ、相関ヒストリーが記憶される。相関ヒストリーの各点は完全なビット期間に亘る積分の結果である。あるビットから次のビットへの位相遷移の有無は情報データビットを提供する。相関ヒストリーはＲＡＭのサイズまでビットを記憶するため使用される。より多くのビットが必要であるならば、複数の相関ヒストリーが次から次へと記憶される。
【００７８】
[0100]図１８は外部処理ユニット１８０１に連結されたＧＰＳ受信機１８００の別の実施形態を描いているブロック図である。例えば、ＧＰＳ受信機１８００は、外部処理ユニット１８０１を含む携帯電話機のようなモバイル装置１８９９内に組み込まれる。図１及び１０の要素と同一又は類似する図１８の要素は同じ参照番号を用いて指定され、詳細に上述されている。上記のように、ＧＰＳ受信機１８００は複数の処理チャンネル１０４を含む。明確さの目的のため、単一の処理チャンネル１０４１だけが示されている。しかし、当業者は、複数の処理チャンネル１０４が使用されることを理解するであろう。処理チャンネル１０４のそれぞれは、図１〜１７に関して上述したように相関ヒストリーモードと標準相関モードの両方で動作する能力を備えている。
【００７９】
[0101]本実施形態では、ＧＰＳ受信機１８００は、コプロセッサ１８０４及び受信機インターフェイスロジック１８０２を備え、その各々が処理チャンネル１０４１に連結される。ＣＰＵ１１４、メモリ１０１０、及びサポート回路１０１２は外部処理ユニット１８０１を形成する。外部処理ユニット１８０１はモバイル装置１８９９内にあり、種々のその他のモバイル装置回路１８０５と協働する。
【００８０】
[0102]コプロセッサ１８０４は、受信機インターフェイスロジック１８０２に連結されたバスを含む。受信機インターフェイスロジック１８０２はＣＰＵ１１４の外部バス１８０３に連結される。受信機インターフェイスロジック１８０２はＧＰＳ受信機１８００と外部処理ユニット１８０１との間の通信を容易化する。コプロセッサ１８０４はメモリ１８１０にさらに連結される。メモリ１８１０は、ＧＰＳ受信機１８００によって格納された相関結果を解析し、そこから衛星信号パラメータを導き出すためにコプロセッサ１８０４によって実行されるソフトウェア１８１２を格納する。
【００８１】
[0103]処理チャンネル１０４１はチャンネルインターフェイス１８０６及びチャンネル制御ロジック１８０８を備える。チャンネルインターフェイス１８０６はコプロセッサ１８０４のバスに連結される。場合によって、チャンネルインターフェイス１８０６は受信機インターフェイスロジック１８０２にさらに連結される。チャンネルインターフェイス１８０６は、絶対値／ヒストリーＲＡＭ１００２に連結されたバスとチャンネル制御ロジック１８０８に連結されたバスを含む。チャンネルインターフェイス１８０６は、コプロセッサ１８０４と受信機インターフェイスロジック１８０２と処理チャンネル１０４１との間の通信を容易化する。チャンネル制御ロジック１８０８は、制御信号を搬送波ＮＣＯ１０６、符号ＮＣＯ１０８、及び畳み込みプロセッサ１０９に供給するため連結される。制御信号は、畳み込みプロセッサ１０９の動作モード及びタイミングだけでなく、搬送波ＮＣＯ１０６及び符号ＮＣＯ１０８の周波数を調節するため使用される。ＧＰＳ受信機１８００が複数の処理チャンネル１０４を含むならば、各処理チャンネル１０４のチャンネルインターフェイス１８０６はコプロセッサ１８０４に連結され、受信機インターフェイスロジック１８０２に連結される。
【００８２】
[0104]動作中に、ＣＰＵ１１４は、１個以上の衛星信号パラメータを獲得するためにコマンドをＧＰＳ受信機１８００へ供給するためメモリ１０１０に格納された制御ソフトウェア１８５０を実行する。例示的な衛星信号パラメータは図１９に関して後述される。各コマンドは、所望の衛星信号パラメータが獲得されるようにＧＰＳ受信機１８００を設定するプログラミングパラメータを含む。このようなプログラミングパラメータは、１個以上の処理チャンネル１０４のための搬送波ＮＣＯ１０６の周波数と、符号ＮＣＯ１０８の周波数と、畳み込みプロセッサ１０９のタイミング及び動作とを含む。設定されると、ＧＰＳ受信機１８００は、標準動作モード又は相関ヒストリーモードのいずれかで衛星信号を処理する。いずれのモードでも、ＧＰＳ受信機１８００は、絶対値／ヒストリーＲＡＭ１００２内に記憶される相関結果を生成するように動作する。
【００８３】
[0105]しかし、上記の実施形態とは異なり、絶対値／ヒストリーＲＡＭ１００２内に記憶された相関結果は外部処理ユニット１８０１のＣＰＵ１１４を使用して解析されない。正確に言えば、コプロセッサ１８０４は、所望の（複数の）衛星信号パラメータを供給するためＣＰＵ１１４によって発行されたコマンドに従って相関結果を解析する。相関結果を解析した後、コプロセッサ１８０４は解析によって生成された（複数の）衛星信号パラメータを、受信機インターフェイスロジック１８０２を用いて、ＣＰＵ１１４へ供給する。（複数の）衛星信号パラメータが与えられると、ＣＰＵ１１４は次に衛星信号パラメータを使用して１個以上の受信機パラメータを決定する。上記のように、このような受信機パラメータは発振器周波数及び受信機クロックタイミングを含む。
【００８４】
[0106]このようにして、本発明は、相関結果のより高速な解析を提供し、外部処理回路１８０１のＣＰＵ１１４に負担をかけない。その上、本発明は、絶対値／ヒストリーＲＡＭ１００２内に記憶されたすべての相関結果を解析のためＣＰＵ１１４へ供給する必要性を除去する。さらに、所望の（複数の）衛星信号パラメータからなる少量のデータだけがＣＰＵ１１４へ送信される。よって、一実施形態では、受信機インターフェイスロジック１８０２及びバス１８０３はシリアルインターフェイスを備える。
【００８５】
[0107]図１９は本発明による衛星信号パラメータ推定プロセス１９００の例示的な実施形態を示すフローチャートである。本実施形態では、ＧＰＳ受信機は、図１８に関して上述したように、コプロセッサを含み、外部プロセッサに連結される。プロセス１９００はステップ１９０２から始まり、そこで、コマンドが１個以上の衛星信号パラメータを獲得するため外部プロセッサからＧＰＳ受信機へ発行される。ステップ１９０４で、ＧＰＳ受信機内の１個以上のチャンネルがそのコマンドに関連付けられたプログラミングパラメータに従って設定される。ステップ１９０６で、衛星信号は設定されたチャンネルを用いて処理され、相関結果はメモリ内に記憶される。ステップ１９０８で、コプロセッサは要求された衛星信号パラメータを生成するため相関結果を解析する。ステップ１９１０で、要求された衛星信号パラメータは外部プロセッサに供給される。任意のステップ１９１２は、衛星信号パラメータが１個以上の受信機パラメータを生成するため使用され、その衛星パラメータが次にＧＰＳ受信機を設定するため使用される。
【００８６】
[0108]図２０はコプロセッサ１８０４の例示的な実施形態を描いているブロック図である。コプロセッサ１８０４は、一例として、Ｉ／Ｏインターフェイス２００２、メモリ２００４、複素変調器２００８、サポート回路２０１０、複素電力ユニット２０１２、複素外積ユニット２０１４、複素内積ユニット２０１６、コヒーレント積分ユニット２０１８、非コヒーレント積分ユニット２０２０、及び雑音統計ユニット２０２２に連結されたバス２００１を備える。Ｉ／Ｏインターフェイス２００２は、外部処理ユニットからのコマンド及びコンフィギュレーションデータだけでなく、ＧＰＳ受信機の処理チャンネルからＩ／Ｑ相関結果及び直交相関結果を受信するように設定される。Ｉ／Ｑ相関結果はメモリ２００４のバッファ２００６内に記憶される。コマンド及びコンフィギュレーションデータはコプロセッサのコンポーネントを制御するため使用される。
【００８７】
[0109]複素変調器２００８は、ドップラーを補償するためＩ／Ｑ相関結果を周波数調整するため使用される。複素電力ユニット２０１２は所与のＩ／Ｑ相関サンプルの平均電力を計算するため使用される。複素外積ユニット２０１４は第１のＩ／Ｑ相関結果と第２のＩ／Ｑ相関結果との間の複素外積を計算するため使用される。複素内積ユニット２０１６は第１のＩ／Ｑ相関結果と第２のＩ／Ｑ相関結果との間の複素内積を計算するため使用される。コヒーレント積分ユニット２０１８は複数のＩ／Ｑ相関結果を予め加算するため使用される。非コヒーレント積分ユニット２０２０は、Ｉ／Ｑ相関結果を使用して計算された複数の絶対値結果を加算するため使用される。雑音統計ユニット２０２２は種々の雑音統計量（例えば、Ｉ／Ｑ相関結果の平均値及びシグマ）を計算するため使用される。サポート回路２０１０は、コプロセッサ１８０４及び上記のコンポーネントの動作を支援するバッファ、レジスタ、量子化器、カウンタ、及び類似したタイプのロジック回路を備える。
【００８８】
[0110]プロセス１９００の例示的な実施形態は、図１８及び２０を参照して理解される。特に、プロセス１９００は、ＣＰＵ１１４によって発行された種々のコマンドのため必要に応じて繰り返される。このようなコマンドは、例えば、距離測定、高分解能距離測定、ドップラー測定、ナビゲーションデータ測定、又は、ビットタイミング測定の要求を含む。一般に、ＣＰＵ１１４は、１個以上の衛星信号パラメータを要求するためコマンドを発行し、ＧＰＳ受信機１８００はコプロセッサ１８０４を使用して要求された衛星信号パラメータを計算し、ＧＰＳ受信機１８００は要求された衛星信号パラメータをＣＰＵ１１４へ返送する。
【００８９】
[0111]例えば、ＣＰＵ１１４は距離測定コマンドをＧＰＳ受信機１８００へ送信する。畳み込みプロセッサ１０９は、上記のように、標準モードで動作し、複数の相関結果を計算する。距離測定コマンドは、衛星信号と調べるべき基準Ｃ／Ａ符号との間の相対的な遅延の範囲を指定する。コプロセッサ１８０４は最大相関応答（すなわち、相関ピーク）の点を見つけ、そのピークの周辺の範囲の遅延測定量を返送する。コプロセッサ１８０４は、相関応答の平均値又はシグマのような種々の雑音統計量を決定するために雑音統計ユニット２０２２を使用して相関結果をさらに解析する。これらの雑音統計量は、相関ピークの信号対雑音比を決定することができる。雑音統計量だけでなく、遅延測定量がその後にＣＰＵ１１４へ供給される。
【００９０】
[0112]別の実施形態では、ＣＰＵ１１４はドップラー測定コマンドをＧＰＳ受信機１８００へ送信する。一実施形態では、衛星信号とＣ／Ａ基準符号との間の１個以上の相対的な符号遅延に対する相関応答は、相関ヒストリーとして絶対値／ヒストリーＲＡＭ１００２に記憶される。上記のように、相関ヒストリーは、畳み込みプロセッサ１０９のコヒーレント加算区間毎のＩサンプル及びＱサンプルを含む。例えば、畳み込みプロセッサ１０９内のコヒーレント加算区間は１エポックから１０エポックまで変化する。相関ヒストリーが所望の期間（例えば、１〜１０秒）に亘って記憶された後、コプロセッサ１８０４は、絶対値ヒストリーＲＡＭ１００２に記憶された、相関ヒストリーを構成するＩ相関結果及びＱ相関結果を取り出す。コプロセッサ１８０４は、サンプルからサンプルまでの位相変化を追跡することにより周波数を解析する。特に、周波数は、複素外積ユニット２０１４によって計算された複素外積を平均化することにより検出される。特に、平均化プロセスは、線形平均化、加重平均化、積分、又は、当分野において既知であるその他の計算技術を備える。複素外積は、Ｉ（ｎ−１）Ｑ（ｎ）−Ｑ（ｎ−１）Ｉ（ｎ）として定義され、ここで、ｎはサンプル番号を表し、Ｉはサンプルの同相値を表し、Ｑはサンプルの直交値を表す。結果として生じる周波数値はその後にＣＰＵ１１４へ返送される。
【００９１】
[0113]上記の周波数解析は所与のドップラー測定コマンドの間に数回実行される。複素外積演算によって提供される周波数推定値は真の周波数と非線形的な関係を有するので、複数回の反復が必要とされる。初期推定が行われた後、周波数誤差は、複素変調器２００８を使用して相関ヒストリーのＩ相関結果及びＱ層間結果から除去される。相関ヒストリーはその後に再処理され、新しい周波数値が複素外積演算を用いて決定される。数回反復することにより、周波数推定プロセスは収束する。
【００９２】
[0114]別の実施形態では、ＣＰＵ１１４はナビゲーションデータ測定コマンドをＧＰＳ受信機１８００へ送信する。一実施形態では、衛星信号とＣ／Ａ基準符号との間の１個以上の相対的な符号遅延に対する相関応答は、相関ヒストリーとして絶対値／ヒストリーＲＡＭ１００２に記憶される。相関ヒストリーは、５又は１０エポックのコヒーレント加算区間のような畳み込みプロセッサ１０９のコヒーレント加算区間毎にＩサンプル及びＱサンプルを含む。相関ヒストリーが記憶された後、コプロセッサ１８０４は、５０ｂｐｓのナビゲーションデータストリームにより構成される１８０度の位相偏移を見つけるためサンプルからサンプルまでの位相変化を解析する。ビット遷移は、複素内積回路２０１６を使用して計算された複素内積を閾値化することにより見つけられる。複素内積は、Ｉ（ｎ−１）Ｉ（ｎ）＋Ｑ（ｎ−１）Ｑ（ｎ）として定義され、ここで、ｎはサンプル番号を表し、Ｉはサンプルの同相値を表し、Ｑはサンプルの直交値を表す。ナビゲーションデータビットはビット遷移の有無によって検出される。サインの曖昧さは、初期的にナビゲーションデータに存在し、データ内の既知のプレアンブルシーケンスを検出することによって除かれる。このあいまいさの解明は、データビットが受信された後にＣＰＵ１１４によって実行される。ナビゲーションデータビットはその後にＣＰＵ１１４へ返送される。本発明の一実施形態において、所与のナビゲーションデータ測定コマンドに対し、ドップラー測定コマンドのための上記の周波数推定プロセスは、ナビゲーションデータビットを検出する前に実行される。ドップラー周波数が推定されると、周波数誤差は複素変調器２００８を使用して相関ヒストリーから除去され、複素内積演算がナビゲーションデータビットを検出するため実行される。
【００９３】
[0115]さらに別の実施形態では、ＣＰＵ１１４はビットタイミング測定コマンドをＧＰＳ受信機１８００へ送信する。一実施形態では、図１４に関して説明したビットタイミング測定プロセスはコプロセッサ１８０４によって実行され、得られたビットタイミング値がＣＰＵ１１４へ返送される。特に、第１のコマンドはＣＰＵ１１４によってＧＰＳ受信機１８００へ送信され、相関ヒストリーを獲得させ、電力を特定のビット時間／周波数仮説で決定させる。電力は複素電力ユニット２０１２を用いて決定される。複素電力は、数秒までの長い積分時間を提供するため、図１４に関して説明したように、コヒーレント積分と非コヒーレント積分の組み合わせの結果である。付加的なコマンドがその後に、最大電力をもたらす仮説が突き止められるまで、異なるビット時間／周波数仮説で相関ヒストリーを再解析するため送信される。特に、コプロセッサ１８０４は、図１４に関して説明したように、２次元表面上で最大値を探索する。本実施形態は低い信号対雑音比でビットタイミングを決定するために適する。
【００９４】
[0116]別の実施形態では、単一のビットタイミング測定コマンドが畳み込みプロセッサ１０９に相関ヒストリーを生成させる。相関ヒストリーは、およそ１秒の間にエポック毎に記憶されたＩデータ及びＱデータを含む。コプロセッサ１８０４はＩサンプル及びＱサンプルの複素内積を計算する。その結果は、ビット遷移ヒストグラムを形成するため２０個の起こり得るビットタイミングオフセットのそれぞれについて加算される。正確なビットタイミングは、大半のビット遷移が起こったビットタイミングオフセットを特定することにより決定される。ヒストグラム値はＣＰＵ１１４へ返送される。本実施形態は高い信号対雑音比でビットタイミングを決定するために適する。
【００９５】
[0117]図２１はビット測定コマンドに応答して生成されたビットヒストグラムの実施形態を描いている。グラフ２１００は相関データ２１０２を図示し、軸２１０４は時間を表し、軸２１０６は絶対値を表す。一例として明確さの目的のため、グラフ２１００は相関データ２１０２の８０ｍｓセグメントを図示する。しかし、実際には、ビットタイミング測定プロセスは相関データのより長いセグメント（例えば、１〜２秒）上で実行されることが理解されるべきである。複素内積は、上記のように、２値系列２１０８を生じるため計算され閾値化される。２値系列２１０８において、‘１’は、閾値化された内積によって検出されたとおりの相関データ２１０２の位相の遷移の存在を指し示す。逆に、２値系列２１０８内の‘０’は、相関データ２１０２中の位相遷移の不存在を指し示す。上記のように、位相遷移は２０ｍｓ毎に相関データ２１０２内で起こるはずである。したがって、２値系列２１０８は、２０ｍｓ毎（例えば、０ｍｓ、２０ｍｓ、４０ｍｓ、６０ｍｓ及び８０ｍｓ）に‘１’を含む。しかし、雑音を考えると、相関データ２１０２が位相遷移を含まない場合でも、内積の値はスレッショルドを超えることが時々ある。よって、２値系列２１０８は、１個以上の偽の場所（例えば、６ｍｓ、３４ｍｓ、５７ｍｓ、及び７２ｍｓ）に１を含む。
【００９６】
[0118]ヒストグラム２１０１は、２０個の起こり得るビット位相のそれぞれで出現する１の個数を記録するために形成される。ヒストグラム２１０１は、ビンを表す軸２１１０と、ビット遷移の回数を表す軸２１１１を含む。本実施形態では、ヒストグラム２１０１の例２１０１１〜２１０１４は、それぞれ、相関データ２１０２の２０ｍｓ、４０ｍｓ、６０ｍｓ及び８０ｍｓ後に示されている。上記のように、２０個の起こり得るビットタイミングオフセットがある。よって、ヒストグラム２１０２は２０個の別個のビン２１１０を含む。本実施形態では、ビン２１１０の零番目に増加するヒストグラム値２１１２によって示されるように、真のビット位相は零である。相関データ２１０２内の雑音が原因となって、ヒストグラム２１０１は他のビン２１１０に値２１１４を含む。この理由のため、ヒストグラム２１０１は、真のビット位相を確実に決定するため、相関データ２１０２の多数の２０ミリ秒サイクルに亘って使用される。その上、検出プロセスは基礎となる相関データ２１０２内のビット遷移の存在に依拠するので、最小限の量の相関データ２１０２が、ビット位相の確実な決定のため適切な個数の位相遷移を保証するために、獲得されるべきである。４回の２０ミリ秒サイクルの後に明白であるように、値２１１２は雑音によって誘起された値２１１４より速く増大する。実際には、ヒストグラム２１０１は相関データ２１０２のはるかに多数の２０ミリ秒サイクルに亘って計算される。
【００９７】
[0119]上記の演算のいずれかを実行する前に、コプロセッサ１８０４は、コヒーレント積分ユニット２０１８を使用して事前加算演算を実行する。例えば、１ミリ秒区間で生成された相関ヒストリーから、相関ヒストリーのＩ相関結果及びＱ相関結果のグループが、上記の信号パラメータ（例えば、周波数、ナビゲーションデータ、ビットタイミング）を決定する前に、コプロセッサ１８０４においてコヒーレントに加算される。このコヒーレント加算は信号対雑音比を改善する。例えば、ビットタイミング及び周波数が既知であるならば、ナビゲーションデータビットを測定する前に２０ｍｓに亘って事前加算する方が望ましい。
【００９８】
[0120]当業者は、コプロセッサ１８０４が畳み込みプロセッサ１０９によって生成された相関結果の集合に、一部の演算が既に説明されている、任意の回数の演算を実行できることを理解する。その上、上記の演算（例えば、周波数、ナビゲーションデータ測定、ビットタイミング）は、１個以上の衛星信号パラメータを決定するため、単独で、又は、組み合わせて実行される。さらに、当業者は、複素外積演算及び複素内積演算が、周波数及びビット遷移測定を行うために使用される唯一の演算ではないということを理解するであろう。例えば、ＧＰＳ追跡ループのため開発された種々のその他の周波数弁別器及びビットタイミング識別器が本発明との関連で適用される。例えば、Ｋａｐｌａｎ，Ｄ  Ｅｌｌｉｏｔｔ，“Ｕｎｄｅｒｓｔａｎｄｉｎｇ  ＧＰＳ  Ｐｒｉｎｃｐａｌｓ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ”，Ａｒｔｅｃｈ  Ｈｏｕｓｅ  Ｉｎｃ，１９９６（特に、第５章、セクション５．１．２．３  周波数ロックループ、  表５．４）を参照されたい。本発明では、これらのアルゴリズムは、リアルタイム反復アルゴリズムとして本来の公式で実施されるのではなく、コプロセッサによって相関ヒストリーに実行される後処理演算として実施される。
【００９９】
[0121]本発明の教示を組み込む種々の実施形態が示され、本明細書において詳細に説明されているが、当業者はこれらの教示を依然として組み込む多数のその他の変形された実施形態に容易に想到する。
【図面の簡単な説明】
【０１００】
【図１】本発明を構成するＧＰＳ受信機のブロック図を示す。
【図２】本発明によって生成される波形の一実施形態を示す。
【図３】図２の積算絶対値波形の細部を示す。
【図４】畳み込みプロセッサ及び畳み込み結果処理回路の詳細なブロック図を示す。
【図５】本発明の動作の方法のフローチャートを描いている。
【図６】従来の形で完全な畳み込みを計算する簡略化された実施形態を図式的に図示する。
【図７】本発明を使用して図６の完全な畳み込みが実行される方法を図式的に図示する。
【図８】本発明で使用するのに適した符号ルックアップ装置の実施形態を図示する。
【図９】本発明の代替的な実施形態で使用するのに適した２次元符号シフトレジスタの実施形態を図示する。
【図１０】相関ヒストリーモードで動作する能力を備えた相関器のブロック図を描いている。
【図１１】ＲＡＭの長さを描いている。
【図１２】図１０の相関器によって処理されるＩ信号及びＱ信号を描いている。
【図１３】相関ヒストリーモードを使用して信号処理を実行する方法のフローチャートである。
【図１４】周波数及びビットタイミング推定値対電力推定値の３次元グラフである。
【図１５】周波数軸に沿った図１４のグラフの断面図である。
【図１６】ビットタイミング軸に沿った図１５のグラフの断面図である。
【図１７】相関ヒストリーモードを使用する相関プロセスのフローチャートである。
【図１８】外部処理ユニットに連結されたＧＰＳ受信機の別の実施形態を示すブロック図である。
【図１９】本発明による衛星信号パラメータ推定プロセスの例示的な実施形態を描いているフローチャートである。
【図２０】図１８のＧＰＳ受信機内のコプロセッサの例示的な実施形態を示すブロック図である。
【図２１】ビットタイミング測定コマンドに応答して生成されるビットヒストグラムの一実施形態を描いている。
【図１】
2007510891.tif 000004
【図２】
2007510891.tif 000005
【図３】
2007510891.tif 000006
【図４】
2007510891.tif 000007
【図５】
2007510891.tif 000008
【図６】
2007510891.tif 000009
【図７】
2007510891.tif 000010
【図８】
2007510891.tif 000011
【図９】
2007510891.tif 000012
【図１０】
2007510891.tif 000013
【図１１】
2007510891.tif 000014
【図１２】
2007510891.tif 000015
【図１３】
2007510891.tif 000016
【図１４】
2007510891.tif 000017
【図１５】
2007510891.tif 000018
【図１６】
2007510891.tif 000019
【図１７】
2007510891.tif 000020
【図１８】
2007510891.tif 000021
【図１９】
2007510891.tif 000022
【図２０】
2007510891.tif 000023
【図２１】
2007510891.tif 000024
【国際調査報告】
2007510891.tif 000025
2007510891.tif 000026
2007510891.tif 000027