ヒストリカル相関データを使用して信号相関を実行する方法及び装置
衛星測位システム受信機において衛星信号パラメータを推定する方法及び装置が記載されている。一実施形態では、衛星信号と基準信号との間の複数の相関結果がプロセッサからのコマンドに応答して生成される。少なくとも1個の衛星信号パラメータが衛星測位システム受信機に統合されたコプロセッサを使用して複数の相関結果から推定される。少なくとも1個の衛星信号パラメータはその後プロセッサへ供給される。
【発明の詳細な説明】
【発明の分野】
【0001】
[0001]本発明は、デジタル信号受信機の信号相関器に関し、特に、本発明は、例えば、全地球測位システム(GPS)受信機においてヒストリカル相関データを使用して信号相関を実行する方法及び装置に関係する。
【背景技術の説明】
【0002】
[0002]全地球測位システム(GPS)信号を測定するプロセスは、既知の擬似雑音(PRN)符号に対する着信信号の一連の相関を試みることにより、雑音中でGPS信号を探索するための手順で始まる。信号の正確な周波数と到着時刻遅延の両方が未知であるため、探索プロセスは非常に長くなり得る。信号を検出するため、受信機は、従来、2次元探索を実行し、あらゆる可能性のある周波数で各遅延可能性をチェックする。特定の周波数及び遅延の信号の存在を調べるため、受信機はその周波数に合わせられ、着信信号は、到着時刻に対応する量によって遅延された既知のPRN符号と相関させられる。信号が検出されないならば、探索は次の遅延可能性へ進み、すべての遅延可能性がチェックされた後、次の周波数可能性へ進む。個々の相関は、雑音から信号を識別するために十分な信号平均化を可能にするため1ミリ秒以上に亘って行われる。数千個の周波数可能性及び遅延可能性がチェックされるので、全体的な捕捉プロセスは何十秒をも要する。
【0003】
[0003]近年、ワイヤレス装置へのGPSテクノロジーの新しいアプリケーション、例えば、緊急時位置通報能力を提供するために携帯電話機にGPSを使用することが出現している。これらのアプリケーションでは、ほんの数秒間の即時信号捕捉が要求される。さらに、これらのアプリケーションは、GPS受信機が、GPS信号レベルが非常に弱められる過酷な信号環境及び屋内で動作することを要求する。弱められた信号の検出は、各相関が比較的長い期間に亘って実行されることを要求する。例えば、積分は、従来のGPS受信機で使用される1〜10ミリ秒の期間に対して数秒間に亘って実行される。従来の受信機によって利用される2次元逐次探索プロセスは、このような長い積分時間では、全探索時間が100倍以上に増加するので実施不能になる。
【0004】
[0004]探索プロセスを加速するため、GPS設計者は、複数の到達時刻可能性が同時にチェックできるように付加的な相関器を受信機に追加する。典型的に、追加される各相関器は、別個の符号混合器及び信号積算器を必要とする。所定の感度レベルでは、これは相関器の台数に比例して探索時間を短縮する。携帯電話機アプリケーションで要求される感度及び捕捉時間を達成するため、この設計は数千台の相関器を統合する必要がある。この追加は、典型的に、民生クラスの装置には非常に複雑であり、かつ、高価である。
【0005】
[0005]例えば、1999年5月4日に発行された米国特許第5,901,171号は、単一の時分割方式処理ブロックが12チャンネルのそれぞれにおいて最大で20個の同時相関を実行するため使用できるようにする3重化技術について記載する。これは、20個の遅延可能性のブロックが同時にチェックされるので、単一の相関器設計に対する性能の改善を提案する。遅延不確定の全範囲に亘る完全な信号探索は、2046個の遅延をチェックするために継続して約100回に亘り20台の相関器のブロックを使用することを要求する。よって、捕捉が数秒間で行われるべきであるならば、積分時間は数十ミリ秒に制限される。これは、屋内GPSアプリケーションに必要とされる感度を達成するためには不十分である。
【0006】
[0006]探索プロセスをさらに改善するため、他のGPS受信機アーキテクチャは、着信信号と既知のPRN符号との間の畳み込みを生成する能力をもつ処理を含む。これは完全なC/A符号エポック(1023チップ)に亘るすべての時間遅延可能性を測る相関器の完全な組を提供することと等価であり、1997年9月2日に発行された米国特許第5,663,734号は、ソフトウェアアルゴリズムを使用して必要な相関結果を効率的に生成するためにソフトウェア技術に基づく高速フーリエ変換(FFT)について記載する。このアプローチは、プログラマブルデジタル信号プロセッサ(DSP)がソフトウェアFFTを実行するために必要とされ、大規模メモリが処理されていない信号サンプルを記憶するために必要とされるので、すべてのアプリケーションに対して適切であるということはない。さらに、このアプローチは、ソフトウェア計算、及びソフトウェア処理が信号の完全なスナップショットが記憶された後に限り開始するという事実に起因して、大きい処理遅延がある。多数のアプリケーションにおいて、リアルタイム処理解決策が、好ましくは、大規模なソフトウェア処理を含まないリアルタイム処理解決策が好ましい。Lyusinら、“Fast Acquisition by Matched Filter Technique for GPS/GLONASS Receivers”、pp307−315は、1023タップをもつ整合フィルタを使用してリアルタイムで畳み込みを実行するハードウェアアプローチについて記載する。整合フィルタは、完全なC/A符号エポックを保持するために十分な大きさのシフトレジスタと、信号とC/A符号の完全なエポックの間の内積を生成する幅1023のベクトル乗算器及び加算器ユニットとにより構成される。
【0007】
[0007]この回路は、携帯電話機のような低コスト民生装置の制約よりも複雑である。P符号捕捉のため軍事クラス受信機で利用されるようなその他の整合フィルタアプローチは、同様に大規模ベクトル乗算器を組み込む。
【0008】
[0008]したがって、信号及びC/A符号の全エポックを処理する能力をもつ改善された、簡単かつ低コストのGPS処理ブロックが必要とされる。このような装置は、比較的簡単であるが、好ましくは、大規模ベクトル乗算器を用いることなく、完全な畳み込み、すなわち、多数の並列相関を生成する能力を備えたハードウェアで構築されるべきである。
【発明の概要】
【0009】
[0009]本発明は、入力信号(例えば、GPS信号)と擬似ランダム雑音(PRN)符号基準との間の完全な畳み込みを、処理されていない信号サンプルを記憶することなく、かつ、大規模なソフトウェア処理なしに、リアルタイムでコンボリューションを生成することにより計算する方法及び装置を提供する。この装置は、エポック全体を処理するためのサイズのベクトル乗算器と同じ結果を獲得するため高速で動作するベクトル乗算器を備える。本発明は、携帯電話機のような民生クラス装置の複雑性の制約に適合する集積積回路に組み入れられる。その設計は、高感度を保証するため畳み込み結果の長期平均化を可能にさせるために必要なロジックを含む。本発明は、屋内で受信された信号をはじめ、非常に弱められた信号からの測位の導出に用いる信号を相関させる能力をもつ。
【0010】
[0010]完全な装置は、従来のGPSチューナー、デシメーション回路、畳み込みプロセッサ、及び畳み込み結果を蓄積するRAMブロックにより構成される。畳み込みプロセッサは、100MHz以上のオーダーの高クロックレートで動作し、小さい回路のブロックの繰り返し使用によって完全な畳み込みの計算を可能にする。特に、畳み込みの各点は一連の部分相関に分解され、各部分相関は、エポックの一部分だけを処理するためのサイズのベクトル乗算器を使用して生成される。この装置は、C/A符号を重なりのない符号セグメントの組に細分することにより部分相関を体系化する。各部分相関は、同時には1個の符号セグメントだけを使用し、簡単なルックアップテーブルを用いて、C/A符号が効率的に保存され、取り出されることを可能にする。
【0011】
[0011]プロセッサは、着信信号のタイミングに正確に適合させられた所望のサンプルレートで信号ストリームを作成するため入力IFサンプルのデシメーションを行うことから始まる。所望のサンプルレートがPfo(C/Aチップ当たりPサンプル)であるならば、サンプリングレートは、正確に1023×P個のサンプルが各信号エポックで取得されるようにセットされる。プロセッサは、Kが1023の因数であり、P×K個の入力サンプルを保持するようなサイズのシフトレジスタを通る信号クロッキング信号を相関させる。各信号シフトで、M×K=1023となるように選択されたMを用いて、一連のM回の部分相関演算が実行される。各部分相関は、C/A符号の長さKのセグメントをP×K個のサンプルに拡張することにより作成された基準サンプルのブロックとの信号シフトレジスタの内容の内積を取ることで構成される。部分相関結果はメモリ内で積算される。部分相関結果を積算することにより、プロセッサは、完全な畳み込みに達するまで、多数の相関点の完全な相関結果を生成する。
【0012】
[0012]相関処理を向上させるため、本発明の付加的な実施形態は、相関ヒストリーモードを使用して相関器を動かす。本実施形態では、RAMは相関ヒストリーを形成する所定の期間に亘って相関結果を記憶するため使用される。相関ヒストリーモードは、部分相関処理を実行する前に1台以上の衛星のドップラー周波数誤差とナビゲーションデータビットのタイミングを分離するために調節される受信機パラメータを推定するため使用される。推定された受信機パラメータは、受信機発振器の周波数及び/又は受信機タイミング誤差を含む。
【0013】
[0013]別の実施形態では、衛星測位システム受信機はプロセッサに連結される。例えば、衛星測位システム受信機は、中央処理ユニットを含む携帯電話機のようなモバイル装置内に組み込まれる。本実施形態では、衛星信号と基準信号との間の複数の相関結果がプロセッサからのコマンドに応答して生成される。少なくとも1個の衛星信号パラメータは、衛星測位システム受信機内に統合されたコプロセッサを使用して複数の相関結果から推定される。少なくとも1個の衛星信号パラメータはその後プロセッサに供給される。
【0014】
[0014]上記の本発明の特長が詳細に理解されるように、上述の簡単に要約された発明のより特有の説明が実施形態を参照することにより与えられ、実施形態の一部は添付図面に示されている。しかし、添付図面は本発明の典型的な実施形態だけを示し、発明が他の同様に効果的な実施形態を認めるので、本発明の範囲を限定しているとみなされるべきでないことに注意する必要がある。
【発明の詳細な説明】
【0015】
[0036]図1は本発明を組み込む全地球測位システム(GPS)受信機100のブロック図を描いている。本発明を組み込むプラットフォームとしてのGPS受信機の使用は本発明の一つのアプリケーションを形成する。信号相関を必要とするその他のプラットフォームは本発明の用途が見出される。
【0016】
[0037](GPS信号のような)信号はアンテナ101によって受信される。無線周波数から中間周波数への変換器(RF/IF変換器)102は、アナログ・デジタル変換器(A/D)103によるデジタル化のため信号をフィルタ処理し、増幅し、周波数偏移する。要素101、102及び103は従来のGPS受信機で使用される要素と実質的に類似している。
【0017】
[0038]A/D103の出力は、デジタルロジックで実施された処理チャンネル1041、1042、...、104n(ここでnは整数である)に結合される。各処理チャンネル104nは特定のGPS衛星からの信号を処理するため使用される。特定のチャンネル内の信号はチューナー105によってデジタル的にチューニングされ、数値制御発振器(NCO)106によって駆動される。チューナー105は二つの目的のため機能する。第一に、RF/IF変換後に残るIF周波数成分は除去される。第二に、衛星運動、ユーザ運動、及び基準周波数誤差から生じる衛星ドップラー周波数偏移が除去される。チューナーからの出力は、同相成分(I)及び直交成分(Q)により構成されるベースバンド信号である。105及び106のステップは従来のGPS受信機設計で使用されるステップと実質的に類似している。
【0018】
[0039]デシメーション回路107は105の出力を処理する。デシメーション回路107の出力は、I成分及びQ成分をもつ複素信号サンプルの系列であり、入力信号のタイミングに適合するように正確に時間同期させられたレートで出力される。本発明の一実施形態では、デシメーション演算は、出力サンプルの期間に亘ってすべての着信信号サンプルを加算する簡単な事前加算である。数値制御発振器(NCO)108はサンプリングプロセスを時間同期させるため使用される。例えば、P=2であるならば、符号NCO108は、(2×fs)の周波数を発生するようにセットされ、ここで、fsは、ドップラー偏移のため調整されたfo(GPS信号のC/A符号チップレート)である。NCOは、ファームウェアコマンドからの外部入力に基づいてドップラー偏移に調整される。ドップラー偏移は衛星毎に異なるので、別個の符号NCO108及びデシメーション回路107がチャンネル104n毎に必要とされる。符号NCO108は任意の周波数を発生する能力を備えているので、着信サンプルレートはfsの整数倍であるという要求がないことに注意すべきである。デシメーション回路107が事前加算器であるならば、加算されるサンプルの個数は、典型的に、2個の値の間でトグル切り替えされるので、長期間にわたって、正確なサンプルタイミングが維持される。例えば、着信サンプルレートが10MHzであり、所望のサンプルレートが2.046MHzであるならば、事前加算器は4又は5個のサンプルを加算するので、所望のサンプルレートは平均的に維持される。
【0019】
[0040]デシメーション回路107は、さらなる処理の前に信号成分のビット数を削減するためにその出力に量子化器(図示せず)を含むこともある。本発明の一実施形態では、2ビット量子化が使用される。
【0020】
[0041]デシメーション回路107からの信号サンプルは畳み込みプロセッサ109に結合される。畳み込みプロセッサ109は、信号ランダムアクセスメモリ(RAM)110a及び110bに記憶される結果を生成する。特に、これらのRAM110a及び110bは、入力信号と基準PN符号(例えば、GPS C/A符号)との間の完全な畳み込みの全部又は一部を構築する複素ベクトルを保持する。畳み込み結果は、信号と基準(PN符号)との間の高い相関に対応する点でピークをもつ。以下で詳述されるように、種々の衛星信号に関するこれらのピークの相対的な位置は位置情報を最終的に計算するために使用される。
【0021】
[0042]畳み込みプロセッサ109と、信号RAM110a及び110bはGPS信号の複数のエポックに対する畳み込み結果を積算し、これは公称1ミリ区間で繰り返す。例えば、信号のうちの10ミリ秒が処理されるならば、RAM110a及び110bの値は、それぞれが1個のエポックの間に生成された10個の相関結果の合計である。デシメーション演算のタイミングはサンプルが各エポック内の同じ相対運動で取得されることを保証するので、すべての個々の相関は同じ特性をもつべきである。個々の相関からの類似した結果を積算することは、信号対雑音比を改善し、受信機が弱い信号を検出する能力を高める。この処理は、コヒーレント積分と呼ばれ、後述のように、数秒までの時間に亘って平均化された相関結果を生ずるため、絶対値積分と組み合わされる。
【0022】
[0043]コヒーレント積分区間が実行される時間の長さは、補償されていないドップラー偏移、GPS信号ナビゲーションデータビット、及び受信機100の運動によって生じる位相偏移を含む数個の要因によって制限される。これらの要因は、ゆっくりとした、しかし、一見ランダムな位相変動を信号に誘起する。数十秒に亘って、これらの位相変動は、コヒーレント積分の目的を無効にする破壊的な妨害の原因になる。したがって、長い平均化区間を達成するため、受信機100は、絶対値積算という二次的なステップを実行する。特に、信号RAM110a及び110bに記憶された信号は、複素畳み込みベクトルの複素絶対値を生成する複素正規化器111へ周期的に出力される。複素絶対値は加算器112によって積算され、絶対値RAM113に記憶される。信号の複素絶対値が計算されるたびに、信号RAM110a及び110bは、別のコヒーレント積分が行われることを可能にするためクリアされる。このプロセスは、所望の個数の絶対値積算が終了するまで継続する。例えば、コヒーレント平均化区間が10ミリ秒であり、200回の絶対値積算が望まれるならば、全プロセスは2秒間に亘って行われる。
【0023】
[0044]畳み込み処理の後、絶対値RAM113は、信号対雑音比を改善するため積分された、畳み込み結果の複素絶対値を含むベクトルを格納する。後述されるように、このベクトルは、受信機の位置を出すため使用される擬似距離データを生成するためにCPU114によって実行されるソフトウェアアルゴリズムによってさらに処理される。これらのステップのためのCPU計算負荷は、従来のGPS受信機又はFFTベースの相関器と比較すると非常に適度であることに注意すべきである。本実施において、相関及び積分の計算集約的なタスクはソフトウェア処理の前に完了される。
【0024】
[0045]図2は、図1のコンポーネントによって生成された波形201I、201Q及び202を描いている。波形201I、201Q及び202は、信号強度(軸208)対符号チップ(軸210)のプロットである。波形は、コヒーレント積分及び絶対値積分の間の畳み込みプロセッサ109の出力を描いている。明瞭さのため、一つずつが3回のコヒーレント積分に基づく3個の絶対値積算により構成される、9ミリ秒の信号処理時間だけが表される。本実施形態では、P=2であるので、1回のコヒーレント積分当たり2046個の信号サンプルが存在する。波形201I及び201Qは畳み込みプロセッサ109からの出力であり、ここで、201Iは出力のI成分であり、201QはQ成分である。2046個のサンプルの各ブロックは、その区間中に処理された2046個の信号サンプルから畳み込みプロセッサ109によってリアルタイムで生成された、完全な畳み込み結果である。畳み込み結果は、信号の時間遅延に対応する(参照番号206I及び206Qによって指定されるような)信号ピークの付近を除いて雑音を含む。信号はエポック毎に繰り返されるので、そのピークは2046個のサンプル毎に再び現れる。最初の3サイクルの間に、相関結果は各エポックからの対応する遅延で値を加算することにより、RAM110a及び110bに積算される。(例えば、出力時刻4における値は、出力時刻2050及び4096における値と加算される)。相関ピークは常に同じ遅延オフセットで現れ、ピークのサイズは積算の間に増加し、3エポックの間におおよそ3倍になる。雑音のレベルも同様に増加するが、雑音相関はエポックとエポックの間で無相関であるため、3の平方根しか増加しない。信号対雑音比は積算プロセスを通して向上し、およそ3の平方根だけ増加する。波形201Qは、直交チャンネルで行われる同じ信号積算プロセスを描いている。
【0025】
[0046]信号の4番目のサイクルから始めて、信号RAM110a及び110bは零にクリアされ、信号積算プロセスは再開する。波形201I及び201Qは9個の信号エコーの間に3回積算及び放出を行う相関を表す。
【0026】
[0047]コヒーレント平均化区間の最後に、積算された信号の絶対値が計算され、絶対値RAM113へ加算される。絶対値RAM113内の信号は波形202として示される。本実施形態では、波形202は、各コヒーレント積分の完了に対応して3回更新する。ピークは参照番号2121、2122、2123によって識別され、雑音は参照番号214によって識別される。以上のように、信号対雑音比は絶対値積算毎に増加し、到達時刻に対応するピークを識別するためにシステムの能力をさらに高める。
【0027】
[0048]本実施形態では、信号の複素位相が9エポックの間に変動したことに注意すべきである。特に、信号は、初期的にIチャンネルとQチャンネルの両方に存在するが、最後のエポックによって、信号はIチャンネルで強く、Qチャンネルでほとんど存在しないように回転させられる。上記のように、不完全なドップラー偏移チューニング及びその他の効果がこの回転の原因になる。多数のエポックの間に、位相は多数のサイクルによって回転し、積算されたときに信号の取り消しという結果になる。この理由のため、発明の受信機は、長期間平均化のための絶対値(非コヒーレント)に依存して短い区間だけに亘ってコヒーレントに積算する。絶対値は位相とは独立であり、数秒間に亘ってうまく積分される。
【0028】
[0049]図3は積算絶対値波形202をより詳細に図示する。プロット300は信号の時間遅延に対応するピーク2123の付近での畳み込みの絶対値を表す。符号チップ軸210上の点は、Pが信号サンプリングレートのC/A符号化チップレートfoに対する比である場合に、C/A符号チップ長さをPによって分割した区間と等しい区間で間隔が空けられる。本実施形態では、P=2であるので、点は半チップ区間、すなわち、約500nsだけ離される。(この時間的な間隔は150メートルの距離差に対応する)。10メートル又はそれよりも良いオーダーで擬似距離測定値を得るために、畳み込み結果は、位置情報を生成するため、典型的にCPU114において、さらに処理される。畳み込みプロセスによって提供される離散相関値を使用して、真の時間遅延を推定するために使用できる数多くの補間技術がある。一実施形態は、雑音を含む測定データに最も良く適合する信号のパラメータを特定するために少なくとも自乗推定技術を使用する。信号の理想的な応答は信号の自己相関の絶対値である。この波形は、上昇三角形302の形式で簡単に表すことができる。三角形底辺の幅303は、正確に2個のC/A符号チップ、すなわち、畳み込み結果上の4点(P=2のケース)である。三角形の底辺の高さ304は、信号に対応しない時間遅延の畳み込みにおける雑音の絶対値である。この雑音の絶対値は、データから推定されるか、又は、増幅器雑音指数と、ケーブル及びフィルタ損失と、システム温度のような設計パラメータに基づいて予め計算される。三角形のピーク305及び三角形の中心306は、信号絶対値及び時間遅延に対応する未知数である。最小自乗法が雑音を含むデータ点を所定のピーク及び中心をもつ三角形に当てはめるようにこれらの2個のパラメータを推定するため使用される。図4は、(畳み込み結果処理回路400と共に)畳み込みプロセッサ109の詳細ブロック図、特に、完全な畳み込みが小さい回路ブロックの繰り返し使用によって生成される方法を示す細部を描いている。回路の動作は、図4と、図4のプロセッサ109の動作を表現する図5のフローチャートとを同時に参照し、図6と図7の簡単な実施形態を比較することによって最も良く理解される。
【0029】
[0050]デシメーション回路107からの信号は、I成分及びQ成分をそれぞれ取り扱うシフトレジスタ401a及び401bに結合される。各シフトレジスタ401a及び401bは、長さがP×Kであり、ここで、Pは1個のC/A符号チップ当たりの所望のサンプル個数であり、Kは設計パラメータとして選択される。後述のように、Kは1023の因数である。説明を簡略化するため、残りの説明は、P=2(サンプルは半チップ間隔で離される)かつK=33である一つの特定の実施形態に重点を置く。シフトレジスタの中で信号を進めるこの手段は、回路が信号のダブルバッファを行う必要性を除去し、実施のコスト及び複雑さを軽減する。
【0030】
[0051]信号はシフトレジスタ401a及び401bの中を、符号NCO107によってタイミングを調節された2foのレートで進む。信号は多数のクロックサイクルの間にシフトレジスタ内の適当な位置に留まるので、一連の部分相関演算が実行される。特に、合計でM回の部分相関が実行され、本実施形態では、M=1023/K、すなわち、31である。各部分相関は、各信号シフトレジスタの内容と、P×K(例えば、66)個の符号サンプルを含む符号のセグメントとの間の高速ベクトル乗算及び加算演算により構成される。高速ベクトル乗算及び加算は回路402a及び402bで行われる。回路402a及び402bはそれぞれ、乗算器410a及び410bと加算器412a及び412bとを備える。演算は、シフトレジスタ401a又は401b内の66個の信号サンプルのそれぞれに、(33個の符号サンプルを符号拡張器409で拡張することにより形成された)66個の符号サンプルを乗算することと、その結果を加算器412a及び412bで加算することからなる。演算はIチャンネルとQチャンネルで別個に、かつ、同時に行われる。数学的に、この演算は、
【数1】
として定義され、内積と呼ばれる。ベクトル乗算及び加算の出力は、RAM404a及び404bをオーバーフローさせないように、数を小さい範囲に保つために再量子化してもよい。簡単にするため、量子化器は図示されない。一実施形態では、再量子化は2ビットの分解能になる。
【0031】
[0052]ベクトル乗算及び加算の結果は、加算器403a及び403bによって積算され、畳み込み結果処理回路400によって処理される。回路400は、信号RAM110a、110bと、複素正規化器111と、加算器112と、絶対値RAM113とを備える。信号RAM111a及び404bに格納される。積算プロセスは、RAM110a及び110bからの特定の時間遅延に対する現在値の読み出しと、ちょうど計算された部分相関の加算と、RAM110a及び110bへの和の書き戻しとからなる。特定の時間遅延に対応する部分相関を適切に組み合わせることにより、その遅延の完全相関が計算される。上述のように、このプロセスは、信号対雑音比を改善するため必要に応じて信号の多数のエポックに対して継続する。よって、加算器403a及び403bは、エポック内の部分相関の組み合わせと、複数個のエポック全体の相関の積算との二つの目的のため機能する。
【0032】
[0053]信号RAM110a及び110bからの出力は、信号の絶対値を形成するため複素正規化器405で組み合わされる。これらのRAM110a及び110bにおけるI波形及びQ波形は、複素波形の実部及び虚部として考えられる。絶対値の形成は、各成分の平方化と、結果の加算と、その結果の平方根の取得とからなる。絶対値への複数の近似が回路を簡単化するため使用される。一実施形態では、複素絶対値は、IとQのスカラー絶対値を独立に取得し、大きい方を決定することによって近似される。絶対値は、大きい方の絶対値を取り、それを小さい方の絶対値の半分に加算することによって近似される。
【0033】
[0054]絶対値演算の結果は、RAM113のオーバーフローを回避するように値を小さい範囲に保つために縮尺される。簡単にするため、スカラーは示されていない。一実施形態では、スケーリングは、結果を3ビットシフトすること(すなわち、8で除算すること)からなる。
【0034】
[0055]信号絶対値ではなく信号電力を積算することも可能である。この場合、405における演算は電力推定であり、典型的に、IとQの平方の和を取ることにより計算される。この場合、図3を参照して説明された擬似距離決定アルゴリズムは、絶対値波形ではなく、電力波形に対する当てはめを実行するために僅かに修正されるべきである。代替的に、付加的な非線形演算がI及びQの絶対値又は電力を表す値を生成するため使用される。
【0035】
[0056]複素正規化器111からの出力は、加算器112によって絶対値RAM113に積算される。積算プロセスは、RAM113からの特定の時間遅延に対する現在絶対値の読み出しと、ちょうど計算された絶対値結果の算入と、RAM113への和の書き戻しとからなる。上述のように、絶対値積算は、信号対雑音比の改善を実現するため必要に応じて多数のサイクルに亘って継続する。
【0036】
[0057]ベクトル乗算器402a及び402bは、信号のシフト毎にM回の部分相関を実行する。符号ルックアップ回路408は各部分相関の基準符号サンプルを生成する。ルックアップは2個のルックアップインデックスによって制御される。第一に、符号は32個の符号のうちの一つから選択されなければならない。この選択は畳み込みプロセスの間中一貫性があり、処理チャンネルが特定の衛星信号のための相関を取るように構成されるときに確定される。第2のインデックスは、1とMとの間のセグメントインデックスである。各C/A符号は、それぞれがK個の隣接した符号チップからなるM個の重なりのないセグメントに分割された、1023個のチップにより構成される。ルックアップインデックスは必要とされる符号セグメントを特定する。符号ルックアップ回路からの出力はセグメントを構成するK個のチップである。選択プロセスは、制御/アドレスロジック414によって制御される。
【0037】
[0058]符号拡張器409は、その入力として、セグメントのK個のチップを取得し、そのセグメントをK×P個の符号サンプルに拡張する。拡張演算は、各符号チップをP個の同一の符号サンプルに変換することからなる。符号拡張器409からの出力はベクトル乗算器402a−bへ入力される基準符号を形成する。本実施形態では、符号拡張器からの出力は、33個の一意の値で構成され、各値が2回ずつ反復される66個のサンプルである。
【0038】
[0059]図4に示されたアーキテクチャは、C/A符号レートfoより実質的に速いクロックを必要とする。例えば、C/A符号チップ1個当たり2個のサンプルが使用されるならば(P=2)、K及びMはそれぞれ33及び31であり、完全な畳み込みの実現は、2×foのレートで進む信号シフトレジスタのシフト毎に31回の部分相関を必要とする。典型的に、RAM110a及び110bの読み出しと書き込みを行うために少なくとも2クロックサイクルが必要とされる。2クロックサイクルを仮定すると、完全な畳み込みを実現するために必要とされる最小クロックレートは、
fclk=2×31×2×fo=2×31×2×1.023MHz≒127MHz
である。このレートは最新集積回路ロジックにおいて簡単に達成可能である。
【0039】
[0060]本発明は完全な畳み込みの部分集合を計算するためにも使用できることに注意すべきである。この場合、M回より少ない相関が信号シフトレジスタのシフト毎に実行される。この場合、遅延の全範囲は、完全な畳み込みを構成するP×1023より少ない。特に、M2回の部分相関が実行されるならば、M2×K×P個の遅延値が生成される。プロセッサへのクロックレートはM2対Mの比によって削減される。さらに、RAMのサイズは同様にこの比によって縮小される。よって、この代替案は、完全な畳み込みを処理する計算リソース又はメモリリソースを持たないシステムにおいて役に立つ。
【0040】
[0061]K及びMの結果のその他の選択は、さらなる設計トレードオフが行われることを可能にするが、1023の素因数は3、11及び31であるので、K及びMの選択は制限される。Kを減少させることは、シフトレジスタ401a及び401bのサイズを縮小し、ベクトル乗算器402a及び402bの複雑さを軽減するので望ましいが、より大きいM、したがって、大きいクロックレートを必要とする。Kの選択の範囲は3、11、31、33及び93である。これらの選択の範囲は、1.39GHz、380MHz、135MHz、127MHz及び45MHzそれぞれのクロックレートを必要とする(常にP=2かつ部分相関毎に2クロックサイクルを仮定する)。実証の時点で利用可能なテクノロジーに基づいて、K=33の選択が一実施形態のため行われた。将来のテクノロジーでは、K=11の選択と380MHzのクロックレートが実行可能になり、ロジック複雑さのさらなる低減という結果になる。よって、このアーキテクチャは、速度とロジック複雑さとの間で最適化されたトレードオフをサポートする望ましい属性を有する。
【0041】
[0062]符号セグメントの順序付けは制御ロジック414によって制御される。この制御ロジックはさらにRAM110a、110b及び113の正確なアドレスを特定する。後述するように、部分相関は非連続的な順序で生成されるので、RAMアドレスの生成は重要である。
【0042】
[0063]図4の回路の動作は図5のフローチャートを参照しても理解される。動作は、信号シフトレジスタ401a及び401bをプレロードしてステップ501から始まる。この時点で、畳み込み処理が始まる。ステップ502で、符号セグメントが特定の部分相関のためアクセスされる。ステップ503で、符号セグメントはC/Aチップ1個当たりにP個のサンプルにするため符号拡張器によって拡張される。次に、ステップ504で、遅延指標及び対応するRAMアドレスが計算される。遅延指標は、完全な畳み込みのうち部分相関によって更新される点を指定する。図7と共に説明される実施形態からわかるように、遅延指標は非線形であるが、しかし、決定論的な形で動き回る。アドレス計算は信号シフトの回数と符号セグメントの関数である。
【0043】
[0064]ステップ505で、部分相関がベクトル乗算器402a及び402bを使用して計算される。ステップ506で、その結果が遅延指標によって指定されたロケーションで信号RAMに積算される。次にステップ507で、処理がコヒーレント積分区間の最後に到達したかどうかを決定するためにチェックされる。到達していないならば、この方法はステップ502aへ戻り、次の符号セグメントに対して上記のステップを繰り返す。
【0044】
[0065]ステップ507で、そのチェックがすべての符号セグメントの部分相関(例えば、31回の部分相関)が完了したことを示すならば、この方法はステップ508へ進む。ステップ508で、信号レジスタ401a及び401bは1サンプルずつシフトされる。
【0045】
[0066]このプロセスは次にステップ509へ進み、そこで直前のシフトがコヒーレント積分区間の最後に達したかどうかを調べるためにチェックが行われる。最後に達していないならば、プロセスはステップ502のスタートへ戻る。そのチェックがコヒーレント積分区間の最後を示すならば、この方法はステップ510へ続き、そこで信号絶対値が複素正規化器111によって計算される。その結果は加算器112によって加算され、絶対値RAM113に格納される。次に、ステップ511で、すべての絶対値積算が実行されたかどうかを決定するためにチェックが行われる。実行されているならば、この方法はステップ512で終了する。実行されていないならば、処理はステップ501で次の部分相関を実行することにより継続する。
【0046】
[0067]図6及び図7は、簡略化された実施形態によって、本発明が完全な畳み込み結果を積算するために部分相関を利用する方法を示す。明確にするために、これらの図は、GPS信号の長さ1023のC/A符号ではなく、非常に短い長さ6の符号の畳み込みを図示する。実施形態をさらに簡略化するため、符号チップ毎に1個のサンプルが使用され、すなわち、P=1である。図6は標準的な整合フィルタリング法による畳み込みを図示し、図7は部分相関を組み合わせる方法による同じ畳み込みを図示する。図7の細部は本発明の全体的な動作を理解する際に役立つ。両方の方法は同じ畳み込み結果を生成する。
【0047】
[0068]図6は長さ6の信号に対する従来の整合フィルタの動作を示す。動作はシフト0として示された時点で始まる。この時点で、信号のサイクル全体を構成する6個の連続する信号サンプルが信号シフトレジスタ601にある。個々のサンプルは大文字の添字A、B、C、D、E及びFでラベル付けされる。長さ6の符号全体の符号サンプルは基準レジスタ602に保持され、小文字の添字a,b,c,d,e及びfでラベル付けされる。シフト0の時点で、シフト0の相関結果を生成するためベクトル乗算及び加算が実行される。各信号サンプルは対応する符号サンプルによって乗算され、その結果が加算され相関結果603を生ずる。
【0048】
[0069]次に、信号シフトレジスタ604は、シフト1によって示されるように、1サンプルずつ進められる。信号は周期的であるため、レジスタの左側に取り入れられる新しいサンプルは右へシフトして出されたサンプルと一致する。レジスタ604のシフトされた内容は、今度は、添字F、A、B、C、D及びEをもつサンプルである。符号はシフトされない。ベクトル乗算及び加算は、今度は、シフト1に対する相関結果605を生ずる。このシフトプロセスは5回のさらなるシフトに対して継続し、その点において、完全な畳み込みを構成する全部で6個の相関結果が利用可能である。
【0049】
[0070]図7は同じ畳み込み結果が部分相関の方法によって得られる方法を図示する。上記のように、本発明は、符号が長さKのM個のセグメントに分解されることを要求する。図7の簡略化された実施形態では、長さ6の符号が長さ2の3個のセグメントに分解され、すなわち、K=2かつM=3であった。動作はシフト0に示される時点から始まる。この時点で、2個の信号サンプルが信号シフトレジスタ701に保持される。信号サンプルは大文字の添字A及びBでラベル付けされる。符号の6個のサンプルはそれぞれ長さ2の3個のセグメントに格納される。第1の符号セグメント702は小文字の添字a及びbでラベル付けされた2個の符号サンプルを格納する。信号は3回の部分相関演算の間に所定の位置に保持され、部分相関結果703a、703b及び703cをもたらす。第1の部分相関結果は、信号レジスタの内容と第1の符号セグメント(セグメント1)の内容との間のベクトル乗算及び加算によって作成される。第2の結果及び第3の結果は、それぞれ、第2の符号セグメント及び第3の符号セグメントと信号セグメントのベクトル乗算によって作成される。信号レジスタは全部で3回のベクトル乗算が実行されるのに十分な時間に亘って所定の位置に保持され、符号はこの時間中にシフトされるのでなく、異なる符号セグメントが選択されることに注意すべきである。
【0050】
[0071]部分相関結果は信号パス705によってメモリに積算される。例えば、シフト0で、第1の符号セグメントからの部分相関は相関結果704に算入される。第2のセグメントからの部分相関はシフト2の相関結果706に算入される。第3のセグメントからの部分相関はシフト4の相関結果708に寄与する。
【0051】
[0072]3回の部分相関の後、信号はシフトされる。シフト1として示されたこの段階で、信号レジスタはサンプルF及びAを格納する。この場合も、3回の部分相関が前と同じ3個の符号セグメントを用いて生成される。これらの部分相関からの結果は、シフト1、3及び5のそれぞれの相関結果710、712及び714に寄与する。この処理は4回のさらなる信号シフトに対して継続し、その時点で完全な畳み込み結果が利用可能である。以上のように、この動作は、畳み込みを構成する6個の完全な結果に寄与する全部で18個の部分相関を生成することが必要である。
【0052】
[0073]図7によって説明されたアーキテクチャは本発明の二つの重要な特性を図示する。第一に、完全な畳み込みは、長さ2のシフトレジスタとベクトル乗算及び加算ユニットとだけを使用して、長さ6の符号に対して生成されたことが明らかである。このことは3個の要素の長さが6である図6より小さい回路を必要とする。第二に、図7では、符号サンプルは各シフトに対して同一のある固定したセグメント内でアクセスされ、各セグメントは符号の別個の重なり合いのないセクションである。よって、簡単なルックアップ又はレジスタスキームが、図8及び図9を参照してさらに説明されるように、符号をベクトル乗算器へ供給するために使用される。これらのスキームは、例えば、符号ビットの大規模ブロックがより複雑な置換の組において利用可能にされることを必要とする他のアーキテクチャより小さい回路を必要とする。本発明は符号発生回路を設ける必要性も取り除く。
【0053】
[0074]図8は本発明に適した符号ルックアップ回路408の一実施形態のブロック図を示す。テーブル801は、32個の符号のそれぞれの全部で1023ビットの格納値を、例えば、読み出し専用メモリ(ROM)又はハードワイヤドロジックに収容する。テーブル801は、符号毎に1個ずつの32個のサブテーブルとして編成される。各サブテーブルは、長さKのM個のセグメントとしてさらに編成され、ここで、K×M=1023であり、K及びMは上述のように選択される。マルチプレクサ802は選択値に基づいて特定の符号を選択する。マルチプレクサ802の出力は目的に応じた特定のサブテーブルである。マルチプレクサ803は、1とMとの間のセグメント選択値に基づいて特定のセグメントを選択する。803の出力は、符号拡張器409へ供給される符号ビットを格納する長さKの特定の符号セグメント804である。
【0054】
[0075]マルチプレクサ803は、符号セグメントが部分相関毎に、すなわち、2サイクル毎に変更可能であるように高速でなければならない。この理由のため、すべての符号ビットは、従来の符号発生器の方法では進行中に生成されるのに反して、テーブル801に予め記憶される必要がある。
【0055】
[0076]図8の回路は、実例となることが意図されている。実際には、機能的に同等の多くの異なった回路設計がある。特に、最新ASIC設計で使用される論理合成のプロセスは、上記の振る舞いと等価的な振る舞いを実現するが、必ずしも上記の方法でマルチプレクサを使用しないある種のゲートの特定のパターンを生み出す。
【0056】
[0077]図9は本発明に適した符号ルックアップ回路408の代替的な実施形態のブロック図を示す。特定の符号に対応する1023個の符号ビットは、長さKのM行として編成された1023台の双方向シフトレジスタ901に保持される。このシフトレジスタは、ランニングモードとローディングモードの2モードで動作する。
【0057】
[0078]ランニングモードでは、各レジスタ901は、最下行のレジスタへシフトする最上行のレジスタを除いて、そのサンプルを次の行内でそのレジスタの上にあるレジスタへシフトするように設定される。ランニングモードのシフト方向は901内に実線矢印で指し示される。すべてのレジスタをクロッキングすることにより、どの時点においても最上行が長さKのM個の符号セグメントのうちの一つを格納するように、符号ビットの行が巡回する。このビットの最上行は符号拡張器409へ供給される。レジスタは高速に巡回するので、異なる符号セグメントが部分相関毎に利用可能にされる。
【0058】
[0079]ローディングモードでは、各レジスタは、上の行内の最初の列のレジスタへシフトするレジスタの最後の列を除いて、そのサンプルをその行内の次のレジスタへシフトするように設定される。ローディングモードのシフト方向は901内に点線矢印で示されている。左下のシフトレジスタ904は符号発生器902に接続される。符号発生器は、選択値に基づいて特定の符号の1023個の符号ビットを順次に作成する能力を備えた従来の符号発生器である。符号ルックアップ回路がある特定のことのため設定されるとき、レジスタはローディングモードに入れられ、発生器は符号のビットを発生するため使用され、レジスタの中をクロックスルーする。すべてのビットがクロックスルーされた後、符号は長さKのM個のセグメントとしてレジスタ内にある。回路は次にランニングモードで使用される準備が完了する。
【0059】
[0080]図10はGPS受信機1000の別の実施形態のブロック図を描いている。受信機1000は、標準相関モードだけでなく相関ヒストリーモードで動作する複数の処理チャンネル104を備える。標準相関モードの機能は図1〜9に関して上述した通りである。相関ヒストリーモードにおける受信機1000のコンポーネントの動作は、信号RAM110a及び110bと絶対値/ヒストリーRAM1002に通じるすべてのブロックに関して標準モードと実質的に同じである。さらに、本発明の方法の説明を支援するため、CPU114は、メモリ1010及びサポート回路1012によって従来の方法でサポートされているものとして図10に示されている。サポート回路1012は、クロック、バス、キャッシュ、電源、I/O回路などのような周知のサポート回路を備える。メモリ1010は、ランダムアクセスメモリ、読み出し専用メモリ、リムーバブルメモリなどのうちの一つ以上を備える。メモリ1010は、CPU114によって実行されるときに、受信機1000を後述の方法にしたがって動作させるソフトウェア1014を記憶するコンピュータ読み取り可能な媒体を形成する。CPU114、メモリ、及びサポート回路の組み合わせは処理ユニット1016を形成する。
【0060】
[0081]畳み込みプロセッサ109の標準動作の場合のように、信号RAM110a及び110bは、完全な変換を備える相関遅延の全部のためのコヒーレント平均化区間に亘って部分相関結果を積算するため使用される。相関ヒストリーモードは、相関ピークの付近における遅延に対応するこれらの結果の小さい部分集合だけを使用する。相関ヒストリーモードでは、プログラミングパラメータは僅かな数の所定の遅延を確定する。これらの遅延に対し、すべてのコヒーレント平均化結果の完全なヒストリーは絶対値/ヒストリーRAM1002に記憶される。相関ヒストリーモードの間、絶対値積算は畳み込みプロセッサにおいて実行されない。その代わり、このモードでは、RAM1002は、相関ヒストリーモードの間に相関ヒストリーを記憶するメモリ(ヒストリーメモリ)として使用され、畳み込みプロセッサ109の標準動作の間に絶対値のためのメモリ(絶対値メモリ)として使用される。別のプログラミングパラメータは、RAM1002に記憶されるべき連続的なコヒーレント積算結果の個数を規定する。畳み込みプロセッサ109は、遅延及びエポックによって索引付けされた結果の2次元テーブルで絶対値/ヒストリーRAMを埋める(図11を参照されたい)。記憶可能なエポックの個数は、RAMサイズと選択された遅延の個数とによってセットされる。例えば、RAMが2048ワードのサイズにされるならば、メモリは、1個だけの遅延に対する2048サイクル、2個の遅延に対する1024サイクル、又は、4個の遅延に対する512サイクルなどのいずれかを記憶するため使用される。12ビットのワード幅は、コヒーレント平均化結果のI部分及びQ部分が6ビット分解能で個別に記憶されることを可能にする。
【0061】
[0082]図12は典型的な相関ヒストリーのグラフの実施形態1200を示す。上側のグラフ1202及び下側のグラフ1204は、それぞれ、I成分波形及びQ成分波形を示す。グラフの各点は単一のコヒーレント積分を示す。本実施形態では、コヒーレント積分区間は1エポックにセットされたので、各点は公称1ミリ秒の積分を表現する。
【0062】
[0083]図12の波形は、相関後の信号の二つの局面を図示する。第一に、信号をIチャンネルとQチャンネルを越えて回転させる残留ドップラー周波数が存在する。第二に、ナビゲーションデータビットが存在し、時々の180°の位相遷移を作成する。遷移の間の最小区間は20エポック、すなわち、データビット期間である。相関ヒストリーの開始に対するデータビットのタイミングもまた波形から明白である。
【0063】
[0084]相関ヒストリーモードは、発振器周波数及び受信機クロックタイミングのようなある種の受信機パラメータを推定する目的で衛星信号ドップラー及び/又はナビゲーションビットタイミングを決定するため呼び出される。初期的に、このモードは残留ドップラーと、相関ヒストリーの開始に対するナビゲーションデータビットのタイミングとを推定するためソフトウェアアルゴリズムによって使用されるデータを提供する。続いて、必要に応じて、このモードはナビゲーションデータビットの値の復号化のヒストリーを提供するためにも使用される。
【0064】
[0085]特に、ソフトウェアアルゴリズムは、GPS受信機のその固有の発振器周波数及び/又は内部クロックタイミングの推定値を発生又は更新するために、1台以上の衛星のドップラー及びビットタイミングを決定する。特に、より精密な相関が図10の搬送波NCO106及び符号NCO108を「訂正」し、畳み込みプロセッサ109のタイミングを調節するために発振器周波数及びクロックタイミング推定値を使用して実行される。特に、受信機発振器周波数の改善された推定値は、相関プロセッサ109がNCO105によってより正確に合わせられることを可能にし、より良い信号検出とより長いコヒーレント積分区間を利用する能力とを提供する。その上、受信機クロックタイミングの改善された推定値は、衛星毎にナビゲーションデータビットタイミングと同期したコヒーレント積分を実行するように畳み込みプロセッサ109の開始時刻を制御するために使用され、信号検出を改善する。
【0065】
[0086](2001年3月27日に発行された米国特許第6,208,291号に開示されているような)従来技術は、衛星信号のPNエポック及び搬送波が追跡される追跡プロセスのための相関器出力を記憶するためレジスタバンクを使用する。追跡プロセスは高い信号対雑音比を要求する。従来技術とは異なり、本発明の相関ヒストリーモードは、特定の衛星信号を追跡する目的のため単にデータを一時的に記憶するのではない。それどころか、相関ヒストリーモードは、視野内にある全衛星の検出に役立つ受信機パラメータを推定するため使用される。さらに、相関ヒストリーモードは、従来の追跡プロセスのスレッショルドを下回る非常に低い信号対雑音比でさえ、衛星信号情報を抽出するソフトウェア推定アルゴリズムと共に動作する。複数の衛星からの信号の相関ヒストリーモード処理は、受信機パラメータ推定の性能を高めるために使用されるが、このような付加的な信号は本発明を実施するために不可欠ではない。
【0066】
[0087]相関結果のヒストリーからビットタイミング及び周波数を推定するため利用される多数のアルゴリズムが存在する。一実施形態は図13のブロック図に図示されている。本実施形態では、プロセス1300は、特定の機能を行うステップのシーケンスを実行するソフトウェアプログラムに組み込まれる。プロセス1300は、特定の周波数及びビットタイミングを仮定して信号絶対値の推定値(絶対値推定値)を決定するため実行され、推定値は実現可能な周波数及びビットタイミングの範囲に亘って最適化される。仮説毎に、I及びQの相関ヒストリーは、周波数変調の共役に対応する複素周波数項による乗算を実行することにより最初に位相訂正される(ステップ1302)。次に、ステップ1304で、信号は、ナビゲーションビット期間までスパンするコヒーレント積分に亘って積分される。例えば、相関ヒストリーが1エポックの間隔で離されたサンプルにより構成されるならば、I及びQヒストリーの20個の連続したサンプルがナビゲーションデータビットに亘る信号絶対値の推定値を作成するため加算される。各ビット加算が完了すると、ステップ1306で、絶対値計算演算が電力値を形成するため実行される。連続的な絶対値計算からの結果はその後、信号対雑音比を改善するためステップ1308でさらに加算される。例えば、1秒のデータは、加算で使用されるビット期間の積分された電力を形成するために加算される50個のビット期間を提供する。より一般的に、計算は信号レベル、例えば、信号絶対値又は信号電力を決定するため実行される。本明細書で説明される本発明の実施形態は信号絶対値を使用するが、当業者は、信号電力又はその他の信号レベルの指標が本発明を実施するため使用されることを認識する。
【0067】
[0088]電力推定値は実現可能な周波数及びビットタイミング値の範囲に亘って収集される。結果は、図14に示されるように、2次元グリッド1400上で観察できる。一方の軸1402は仮定された周波数誤差であり、本例では、−40から80Hzまで変化する。もう一方の軸1404は、ビットタイミング仮説であり、0エポックと19エポックの間で変化する。この値は、ビットタイミングと受信機クロックにしたがって特定の時刻に取得された相関ヒストリーの開始との間の仮定されたオフセットを表現する。グリッドの各点における垂直軸1406は、ドップラー及びタイミング仮説に対応する相関関係がある信号絶対値である。周波数及びタイミングの最良推定値はグリッド上の最大点1408に対応する。これは、コヒーレント平均化区間がデータビットとずれる場合に生じる信号対雑音比(SNR)損失を最小限に抑える。
【0068】
[0089]図15は周波数軸1402による図14の断面のグラフ1500を示す。図からわかるように、応答は正確な周波数でピーク(点1502)になる。同様に、図16はビットタイミング仮説軸1404による図14の断面のグラフ1600を示す。この場合も、最大絶対値は正確なビットタイミングに対応する三角形の最高点(点1602)で見られる。
【0069】
[0090]周波数及びビットタイミングにおける点の配置は、意図された推定値の精度だけでなく、周波数及びビットタイミングにおける初期の不確定性の関数である。通常はGPS時刻に対する受信機タイミングは未知であるので、全部で20個のタイミング仮説がチェックされる。
【0070】
[0091]本明細書で説明されているプロセスは、最大値が探索される2次元の点の集合を提供することに注意すべきである。最大値に到達する方法は他にもある。例えば、周波数の粗い推定は、表面のピークに近い周波数を取得するため任意のビットタイミングで実行される。任意のビットタイミングが使用されるならば、コヒーレント平均化区間をビット期間、例えば、19エポックのコヒーレント平均化区間と非同期になるようにセットする方が有利である。任意のビットタイミングによる解析の後に、すべてのビットタイミングにおける(そして、好ましくは、20エポックのコヒーレント平均化区間を用いる)その周波数の応答の推定が続き、ビットタイミングが推定されることを可能にする。必要に応じて、これは付加的な周波数の推定が後に続けられる。これは、図14の2次元表面の全体を通じて最大値を探し出すために利用できる周知の数学的技術の多数の実施形態のうちの一つである。テストされ、有利であることが判明した別の方法は、Numerical Recipes in C,Cambridge University Pressに記載された滑降シンプレックス法である。
【0071】
[0092]別の実施形態では、逐次推定アルゴリズムがソフトウェアで実施される。アルゴリズムの各ステップにおいて、周波数弁別器が周波数誤差の推定値を形成する。その後の反復において、周波数誤差が加えられ、弁別器は周波数誤差の別の改善された推定値を提供する。このプロセスは、残りの周波数誤差が小さくなるまで継続する。追跡ループとは異なり、このアルゴリズムは、NCO106にフィードバックを使用することなく、かつ、付加的な相関を実行することなく、記憶された相関ヒストリー上で完全に動作する。周波数が推定されると、ビット遷移が180°位相遷移のタイミングから識別される。周波数誤差は大部分が除去されているので、位相遷移は容易に観測可能である。
【0072】
[0093]図17はGPS受信機の動作と関連付けて相関ヒストリーモードを使用する方法1700を示す。初期的に、ステップ1702で、遅延の範囲に亘って信号をスキャンし、必要に応じて周波数域で探索して、相関が標準モードで実行される。エネルギーが検出されたとき、ステップ1704で、1台以上の衛星からの信号が相関ヒストリーモード処理のため選択される。ステップ1706で、受信機の処理チャンネル又は複数のチャンネルが相関ヒストリーモードのため再設定され、相関ヒストリーが積算される。通常は、遅延の推定値は初期信号捕捉から利用可能であるため、相関ヒストリーは単一の遅延で積算するだけでよい。ステップ1708で、一つ又は複数の相関ヒストリーが相関ヒストリーモードで動作されるチャンネル毎に信号周波数及びビットタイミングの推定値を生じるため上記のように処理される。
【0073】
[0094]ステップ1710で、これらの推定値はそれから受信機の発振器周波数及びクロックタイミングのモデルを更新するために使用される情報を決定すべく衛星レンジ及びレンジレートモデルと組み合わされる。これらの推定値は、次に、視野内にある最大ですべての衛星の予想されるビットタイミング及びドップラーを計算し、NCO106及び108の改善されたプログラミング値を計算し、畳み込みプロセッサ109のコヒーレント積分開始タイミングをセットするためにすべての衛星の衛星レンジ及びレンジレートモデルと共に使用される。受信機は、その後、図1〜9に関して説明されたように、受信機の視野内にあるすべての衛星からの信号を相関させるため標準動作モードに切り替わる。ステップ1712で、受信機は、GPS信号上で標準的な相関を実行するために、改善された周波数及びクロックタイミング推定値を使用する。上記のプロセスは、受信機パラメータ推定値を完全にするため、必要に応じて、繰り返される。
【0074】
[0095]特に、ステップ1710において、特定の衛星のための相関ヒストリーモードで決定された周波数は、静止受信機モデルに基づいて、受信機クロックの周波数の誤差の原因とされる可能性がある差の値を決定するために、その衛星の予想されたレンジレートと比較される。代替的に、周波数測定値が3台以上の衛星から利用可能であるならば、誤差は、受信機クロック周波数と、その上に受信機速度を推定するために使用される。推定された受信機発振器周波数は、衛星を検出するNCO106の改善されたチューニング周波数を決定するため、衛星の予想されたレンジレートと組み合わされる。
【0075】
[0096]さらに、受信機タイミング誤差の推定値はビットタイミング測定値から生成される。信号ヒストリーは受信機の内部クロックと相対的な特定の基準時間で捕捉される。一実施形態では、このクロックはミリ秒カウンタである。このカウンタのタイミングは、一般に、GPS時刻に対して任意である。しかし、ビットタイミングが特定の衛星に関して推定されると、時間関係がミリ秒カウンタとGPS時刻との間に確立される。このことを説明するために、データビットは同時にすべての衛星から出ることを指摘することが適当である。ビット遷移時に、GPS時刻のモジュロ20の値は零である。これらの衛星からの信号は何ミリ秒も後に受信機に到達する。遷移の時刻と受信の時刻との間の遅延は、受信機位置の推定値、おおよその時刻、及び衛星軌道情報から容易に決定される。よって、受信機におけるデータビット遷移の絶対的なタイミングは、GPS時刻という形で推定される。これらの同じトランザクションのタイミングが受信機のミリ秒クロックと相対的に測定されると、受信機クロックとGPS時刻との間に関係が確立される。この関係は、ナビゲーションデータビットフレームのタイミングではなくナビゲーションデータビット遷移だけが確立されるので、絶対的な関係ではないことに注意すべきである。むしろ、モジュロ20による受信機クロックのミリ秒値は、モジュロ20によるGPS時刻のミリ秒値に関連付けられる。
【0076】
[0097]その後のコヒーレント積分区間を揃えるために、受信機は最初に、(擬似距離に基づいて)GPS時刻と相対的にナビゲーションデータビットのタイミングを推定する。畳み込みプロセッサ109によって実行される相関は、受信機ミリ秒クロックに基づいてある都合のよい将来の時刻に始まるようにプログラムされる。モジュロ20によるこの開始時刻のミリ秒値は、コヒーレント積分のデータビットとの整列を保証するために、GPS時刻及びナビゲーションデータビットのタイミングと相対的に選択される。
【0077】
[0098]相関ヒストリーモードはナビゲーションデータビットを収集するためにも使用される。通常は、このモードはナビゲーションデータビットタイミングが確立された後に呼び出される。相関プロセッサは、データビットと揃えられた区間を用いて、20エポックのコヒーレント積分区間用にプログラムされ、相関ヒストリーが記憶される。相関ヒストリーの各点は完全なビット期間に亘る積分の結果である。あるビットから次のビットへの位相遷移の有無は情報データビットを提供する。相関ヒストリーはRAMのサイズまでビットを記憶するため使用される。より多くのビットが必要であるならば、複数の相関ヒストリーが次から次へと記憶される。
【0078】
[0100]図18は外部処理ユニット1801に連結されたGPS受信機1800の別の実施形態を描いているブロック図である。例えば、GPS受信機1800は、外部処理ユニット1801を含む携帯電話機のようなモバイル装置1899内に組み込まれる。図1及び10の要素と同一又は類似する図18の要素は同じ参照番号を用いて指定され、詳細に上述されている。上記のように、GPS受信機1800は複数の処理チャンネル104を含む。明確さの目的のため、単一の処理チャンネル1041だけが示されている。しかし、当業者は、複数の処理チャンネル104が使用されることを理解するであろう。処理チャンネル104のそれぞれは、図1〜17に関して上述したように相関ヒストリーモードと標準相関モードの両方で動作する能力を備えている。
【0079】
[0101]本実施形態では、GPS受信機1800は、コプロセッサ1804及び受信機インターフェイスロジック1802を備え、その各々が処理チャンネル1041に連結される。CPU114、メモリ1010、及びサポート回路1012は外部処理ユニット1801を形成する。外部処理ユニット1801はモバイル装置1899内にあり、種々のその他のモバイル装置回路1805と協働する。
【0080】
[0102]コプロセッサ1804は、受信機インターフェイスロジック1802に連結されたバスを含む。受信機インターフェイスロジック1802はCPU114の外部バス1803に連結される。受信機インターフェイスロジック1802はGPS受信機1800と外部処理ユニット1801との間の通信を容易化する。コプロセッサ1804はメモリ1810にさらに連結される。メモリ1810は、GPS受信機1800によって格納された相関結果を解析し、そこから衛星信号パラメータを導き出すためにコプロセッサ1804によって実行されるソフトウェア1812を格納する。
【0081】
[0103]処理チャンネル1041はチャンネルインターフェイス1806及びチャンネル制御ロジック1808を備える。チャンネルインターフェイス1806はコプロセッサ1804のバスに連結される。場合によって、チャンネルインターフェイス1806は受信機インターフェイスロジック1802にさらに連結される。チャンネルインターフェイス1806は、絶対値/ヒストリーRAM1002に連結されたバスとチャンネル制御ロジック1808に連結されたバスを含む。チャンネルインターフェイス1806は、コプロセッサ1804と受信機インターフェイスロジック1802と処理チャンネル1041との間の通信を容易化する。チャンネル制御ロジック1808は、制御信号を搬送波NCO106、符号NCO108、及び畳み込みプロセッサ109に供給するため連結される。制御信号は、畳み込みプロセッサ109の動作モード及びタイミングだけでなく、搬送波NCO106及び符号NCO108の周波数を調節するため使用される。GPS受信機1800が複数の処理チャンネル104を含むならば、各処理チャンネル104のチャンネルインターフェイス1806はコプロセッサ1804に連結され、受信機インターフェイスロジック1802に連結される。
【0082】
[0104]動作中に、CPU114は、1個以上の衛星信号パラメータを獲得するためにコマンドをGPS受信機1800へ供給するためメモリ1010に格納された制御ソフトウェア1850を実行する。例示的な衛星信号パラメータは図19に関して後述される。各コマンドは、所望の衛星信号パラメータが獲得されるようにGPS受信機1800を設定するプログラミングパラメータを含む。このようなプログラミングパラメータは、1個以上の処理チャンネル104のための搬送波NCO106の周波数と、符号NCO108の周波数と、畳み込みプロセッサ109のタイミング及び動作とを含む。設定されると、GPS受信機1800は、標準動作モード又は相関ヒストリーモードのいずれかで衛星信号を処理する。いずれのモードでも、GPS受信機1800は、絶対値/ヒストリーRAM1002内に記憶される相関結果を生成するように動作する。
【0083】
[0105]しかし、上記の実施形態とは異なり、絶対値/ヒストリーRAM1002内に記憶された相関結果は外部処理ユニット1801のCPU114を使用して解析されない。正確に言えば、コプロセッサ1804は、所望の(複数の)衛星信号パラメータを供給するためCPU114によって発行されたコマンドに従って相関結果を解析する。相関結果を解析した後、コプロセッサ1804は解析によって生成された(複数の)衛星信号パラメータを、受信機インターフェイスロジック1802を用いて、CPU114へ供給する。(複数の)衛星信号パラメータが与えられると、CPU114は次に衛星信号パラメータを使用して1個以上の受信機パラメータを決定する。上記のように、このような受信機パラメータは発振器周波数及び受信機クロックタイミングを含む。
【0084】
[0106]このようにして、本発明は、相関結果のより高速な解析を提供し、外部処理回路1801のCPU114に負担をかけない。その上、本発明は、絶対値/ヒストリーRAM1002内に記憶されたすべての相関結果を解析のためCPU114へ供給する必要性を除去する。さらに、所望の(複数の)衛星信号パラメータからなる少量のデータだけがCPU114へ送信される。よって、一実施形態では、受信機インターフェイスロジック1802及びバス1803はシリアルインターフェイスを備える。
【0085】
[0107]図19は本発明による衛星信号パラメータ推定プロセス1900の例示的な実施形態を示すフローチャートである。本実施形態では、GPS受信機は、図18に関して上述したように、コプロセッサを含み、外部プロセッサに連結される。プロセス1900はステップ1902から始まり、そこで、コマンドが1個以上の衛星信号パラメータを獲得するため外部プロセッサからGPS受信機へ発行される。ステップ1904で、GPS受信機内の1個以上のチャンネルがそのコマンドに関連付けられたプログラミングパラメータに従って設定される。ステップ1906で、衛星信号は設定されたチャンネルを用いて処理され、相関結果はメモリ内に記憶される。ステップ1908で、コプロセッサは要求された衛星信号パラメータを生成するため相関結果を解析する。ステップ1910で、要求された衛星信号パラメータは外部プロセッサに供給される。任意のステップ1912は、衛星信号パラメータが1個以上の受信機パラメータを生成するため使用され、その衛星パラメータが次にGPS受信機を設定するため使用される。
【0086】
[0108]図20はコプロセッサ1804の例示的な実施形態を描いているブロック図である。コプロセッサ1804は、一例として、I/Oインターフェイス2002、メモリ2004、複素変調器2008、サポート回路2010、複素電力ユニット2012、複素外積ユニット2014、複素内積ユニット2016、コヒーレント積分ユニット2018、非コヒーレント積分ユニット2020、及び雑音統計ユニット2022に連結されたバス2001を備える。I/Oインターフェイス2002は、外部処理ユニットからのコマンド及びコンフィギュレーションデータだけでなく、GPS受信機の処理チャンネルからI/Q相関結果及び直交相関結果を受信するように設定される。I/Q相関結果はメモリ2004のバッファ2006内に記憶される。コマンド及びコンフィギュレーションデータはコプロセッサのコンポーネントを制御するため使用される。
【0087】
[0109]複素変調器2008は、ドップラーを補償するためI/Q相関結果を周波数調整するため使用される。複素電力ユニット2012は所与のI/Q相関サンプルの平均電力を計算するため使用される。複素外積ユニット2014は第1のI/Q相関結果と第2のI/Q相関結果との間の複素外積を計算するため使用される。複素内積ユニット2016は第1のI/Q相関結果と第2のI/Q相関結果との間の複素内積を計算するため使用される。コヒーレント積分ユニット2018は複数のI/Q相関結果を予め加算するため使用される。非コヒーレント積分ユニット2020は、I/Q相関結果を使用して計算された複数の絶対値結果を加算するため使用される。雑音統計ユニット2022は種々の雑音統計量(例えば、I/Q相関結果の平均値及びシグマ)を計算するため使用される。サポート回路2010は、コプロセッサ1804及び上記のコンポーネントの動作を支援するバッファ、レジスタ、量子化器、カウンタ、及び類似したタイプのロジック回路を備える。
【0088】
[0110]プロセス1900の例示的な実施形態は、図18及び20を参照して理解される。特に、プロセス1900は、CPU114によって発行された種々のコマンドのため必要に応じて繰り返される。このようなコマンドは、例えば、距離測定、高分解能距離測定、ドップラー測定、ナビゲーションデータ測定、又は、ビットタイミング測定の要求を含む。一般に、CPU114は、1個以上の衛星信号パラメータを要求するためコマンドを発行し、GPS受信機1800はコプロセッサ1804を使用して要求された衛星信号パラメータを計算し、GPS受信機1800は要求された衛星信号パラメータをCPU114へ返送する。
【0089】
[0111]例えば、CPU114は距離測定コマンドをGPS受信機1800へ送信する。畳み込みプロセッサ109は、上記のように、標準モードで動作し、複数の相関結果を計算する。距離測定コマンドは、衛星信号と調べるべき基準C/A符号との間の相対的な遅延の範囲を指定する。コプロセッサ1804は最大相関応答(すなわち、相関ピーク)の点を見つけ、そのピークの周辺の範囲の遅延測定量を返送する。コプロセッサ1804は、相関応答の平均値又はシグマのような種々の雑音統計量を決定するために雑音統計ユニット2022を使用して相関結果をさらに解析する。これらの雑音統計量は、相関ピークの信号対雑音比を決定することができる。雑音統計量だけでなく、遅延測定量がその後にCPU114へ供給される。
【0090】
[0112]別の実施形態では、CPU114はドップラー測定コマンドをGPS受信機1800へ送信する。一実施形態では、衛星信号とC/A基準符号との間の1個以上の相対的な符号遅延に対する相関応答は、相関ヒストリーとして絶対値/ヒストリーRAM1002に記憶される。上記のように、相関ヒストリーは、畳み込みプロセッサ109のコヒーレント加算区間毎のIサンプル及びQサンプルを含む。例えば、畳み込みプロセッサ109内のコヒーレント加算区間は1エポックから10エポックまで変化する。相関ヒストリーが所望の期間(例えば、1〜10秒)に亘って記憶された後、コプロセッサ1804は、絶対値ヒストリーRAM1002に記憶された、相関ヒストリーを構成するI相関結果及びQ相関結果を取り出す。コプロセッサ1804は、サンプルからサンプルまでの位相変化を追跡することにより周波数を解析する。特に、周波数は、複素外積ユニット2014によって計算された複素外積を平均化することにより検出される。特に、平均化プロセスは、線形平均化、加重平均化、積分、又は、当分野において既知であるその他の計算技術を備える。複素外積は、I(n−1)Q(n)−Q(n−1)I(n)として定義され、ここで、nはサンプル番号を表し、Iはサンプルの同相値を表し、Qはサンプルの直交値を表す。結果として生じる周波数値はその後にCPU114へ返送される。
【0091】
[0113]上記の周波数解析は所与のドップラー測定コマンドの間に数回実行される。複素外積演算によって提供される周波数推定値は真の周波数と非線形的な関係を有するので、複数回の反復が必要とされる。初期推定が行われた後、周波数誤差は、複素変調器2008を使用して相関ヒストリーのI相関結果及びQ層間結果から除去される。相関ヒストリーはその後に再処理され、新しい周波数値が複素外積演算を用いて決定される。数回反復することにより、周波数推定プロセスは収束する。
【0092】
[0114]別の実施形態では、CPU114はナビゲーションデータ測定コマンドをGPS受信機1800へ送信する。一実施形態では、衛星信号とC/A基準符号との間の1個以上の相対的な符号遅延に対する相関応答は、相関ヒストリーとして絶対値/ヒストリーRAM1002に記憶される。相関ヒストリーは、5又は10エポックのコヒーレント加算区間のような畳み込みプロセッサ109のコヒーレント加算区間毎にIサンプル及びQサンプルを含む。相関ヒストリーが記憶された後、コプロセッサ1804は、50bpsのナビゲーションデータストリームにより構成される180度の位相偏移を見つけるためサンプルからサンプルまでの位相変化を解析する。ビット遷移は、複素内積回路2016を使用して計算された複素内積を閾値化することにより見つけられる。複素内積は、I(n−1)I(n)+Q(n−1)Q(n)として定義され、ここで、nはサンプル番号を表し、Iはサンプルの同相値を表し、Qはサンプルの直交値を表す。ナビゲーションデータビットはビット遷移の有無によって検出される。サインの曖昧さは、初期的にナビゲーションデータに存在し、データ内の既知のプレアンブルシーケンスを検出することによって除かれる。このあいまいさの解明は、データビットが受信された後にCPU114によって実行される。ナビゲーションデータビットはその後にCPU114へ返送される。本発明の一実施形態において、所与のナビゲーションデータ測定コマンドに対し、ドップラー測定コマンドのための上記の周波数推定プロセスは、ナビゲーションデータビットを検出する前に実行される。ドップラー周波数が推定されると、周波数誤差は複素変調器2008を使用して相関ヒストリーから除去され、複素内積演算がナビゲーションデータビットを検出するため実行される。
【0093】
[0115]さらに別の実施形態では、CPU114はビットタイミング測定コマンドをGPS受信機1800へ送信する。一実施形態では、図14に関して説明したビットタイミング測定プロセスはコプロセッサ1804によって実行され、得られたビットタイミング値がCPU114へ返送される。特に、第1のコマンドはCPU114によってGPS受信機1800へ送信され、相関ヒストリーを獲得させ、電力を特定のビット時間/周波数仮説で決定させる。電力は複素電力ユニット2012を用いて決定される。複素電力は、数秒までの長い積分時間を提供するため、図14に関して説明したように、コヒーレント積分と非コヒーレント積分の組み合わせの結果である。付加的なコマンドがその後に、最大電力をもたらす仮説が突き止められるまで、異なるビット時間/周波数仮説で相関ヒストリーを再解析するため送信される。特に、コプロセッサ1804は、図14に関して説明したように、2次元表面上で最大値を探索する。本実施形態は低い信号対雑音比でビットタイミングを決定するために適する。
【0094】
[0116]別の実施形態では、単一のビットタイミング測定コマンドが畳み込みプロセッサ109に相関ヒストリーを生成させる。相関ヒストリーは、およそ1秒の間にエポック毎に記憶されたIデータ及びQデータを含む。コプロセッサ1804はIサンプル及びQサンプルの複素内積を計算する。その結果は、ビット遷移ヒストグラムを形成するため20個の起こり得るビットタイミングオフセットのそれぞれについて加算される。正確なビットタイミングは、大半のビット遷移が起こったビットタイミングオフセットを特定することにより決定される。ヒストグラム値はCPU114へ返送される。本実施形態は高い信号対雑音比でビットタイミングを決定するために適する。
【0095】
[0117]図21はビット測定コマンドに応答して生成されたビットヒストグラムの実施形態を描いている。グラフ2100は相関データ2102を図示し、軸2104は時間を表し、軸2106は絶対値を表す。一例として明確さの目的のため、グラフ2100は相関データ2102の80msセグメントを図示する。しかし、実際には、ビットタイミング測定プロセスは相関データのより長いセグメント(例えば、1〜2秒)上で実行されることが理解されるべきである。複素内積は、上記のように、2値系列2108を生じるため計算され閾値化される。2値系列2108において、‘1’は、閾値化された内積によって検出されたとおりの相関データ2102の位相の遷移の存在を指し示す。逆に、2値系列2108内の‘0’は、相関データ2102中の位相遷移の不存在を指し示す。上記のように、位相遷移は20ms毎に相関データ2102内で起こるはずである。したがって、2値系列2108は、20ms毎(例えば、0ms、20ms、40ms、60ms及び80ms)に‘1’を含む。しかし、雑音を考えると、相関データ2102が位相遷移を含まない場合でも、内積の値はスレッショルドを超えることが時々ある。よって、2値系列2108は、1個以上の偽の場所(例えば、6ms、34ms、57ms、及び72ms)に1を含む。
【0096】
[0118]ヒストグラム2101は、20個の起こり得るビット位相のそれぞれで出現する1の個数を記録するために形成される。ヒストグラム2101は、ビンを表す軸2110と、ビット遷移の回数を表す軸2111を含む。本実施形態では、ヒストグラム2101の例21011〜21014は、それぞれ、相関データ2102の20ms、40ms、60ms及び80ms後に示されている。上記のように、20個の起こり得るビットタイミングオフセットがある。よって、ヒストグラム2102は20個の別個のビン2110を含む。本実施形態では、ビン2110の零番目に増加するヒストグラム値2112によって示されるように、真のビット位相は零である。相関データ2102内の雑音が原因となって、ヒストグラム2101は他のビン2110に値2114を含む。この理由のため、ヒストグラム2101は、真のビット位相を確実に決定するため、相関データ2102の多数の20ミリ秒サイクルに亘って使用される。その上、検出プロセスは基礎となる相関データ2102内のビット遷移の存在に依拠するので、最小限の量の相関データ2102が、ビット位相の確実な決定のため適切な個数の位相遷移を保証するために、獲得されるべきである。4回の20ミリ秒サイクルの後に明白であるように、値2112は雑音によって誘起された値2114より速く増大する。実際には、ヒストグラム2101は相関データ2102のはるかに多数の20ミリ秒サイクルに亘って計算される。
【0097】
[0119]上記の演算のいずれかを実行する前に、コプロセッサ1804は、コヒーレント積分ユニット2018を使用して事前加算演算を実行する。例えば、1ミリ秒区間で生成された相関ヒストリーから、相関ヒストリーのI相関結果及びQ相関結果のグループが、上記の信号パラメータ(例えば、周波数、ナビゲーションデータ、ビットタイミング)を決定する前に、コプロセッサ1804においてコヒーレントに加算される。このコヒーレント加算は信号対雑音比を改善する。例えば、ビットタイミング及び周波数が既知であるならば、ナビゲーションデータビットを測定する前に20msに亘って事前加算する方が望ましい。
【0098】
[0120]当業者は、コプロセッサ1804が畳み込みプロセッサ109によって生成された相関結果の集合に、一部の演算が既に説明されている、任意の回数の演算を実行できることを理解する。その上、上記の演算(例えば、周波数、ナビゲーションデータ測定、ビットタイミング)は、1個以上の衛星信号パラメータを決定するため、単独で、又は、組み合わせて実行される。さらに、当業者は、複素外積演算及び複素内積演算が、周波数及びビット遷移測定を行うために使用される唯一の演算ではないということを理解するであろう。例えば、GPS追跡ループのため開発された種々のその他の周波数弁別器及びビットタイミング識別器が本発明との関連で適用される。例えば、Kaplan,D Elliott,“Understanding GPS Princpals and Applications”,Artech House Inc,1996(特に、第5章、セクション5.1.2.3 周波数ロックループ、 表5.4)を参照されたい。本発明では、これらのアルゴリズムは、リアルタイム反復アルゴリズムとして本来の公式で実施されるのではなく、コプロセッサによって相関ヒストリーに実行される後処理演算として実施される。
【0099】
[0121]本発明の教示を組み込む種々の実施形態が示され、本明細書において詳細に説明されているが、当業者はこれらの教示を依然として組み込む多数のその他の変形された実施形態に容易に想到する。
【図面の簡単な説明】
【0100】
【図1】本発明を構成するGPS受信機のブロック図を示す。
【図2】本発明によって生成される波形の一実施形態を示す。
【図3】図2の積算絶対値波形の細部を示す。
【図4】畳み込みプロセッサ及び畳み込み結果処理回路の詳細なブロック図を示す。
【図5】本発明の動作の方法のフローチャートを描いている。
【図6】従来の形で完全な畳み込みを計算する簡略化された実施形態を図式的に図示する。
【図7】本発明を使用して図6の完全な畳み込みが実行される方法を図式的に図示する。
【図8】本発明で使用するのに適した符号ルックアップ装置の実施形態を図示する。
【図9】本発明の代替的な実施形態で使用するのに適した2次元符号シフトレジスタの実施形態を図示する。
【図10】相関ヒストリーモードで動作する能力を備えた相関器のブロック図を描いている。
【図11】RAMの長さを描いている。
【図12】図10の相関器によって処理されるI信号及びQ信号を描いている。
【図13】相関ヒストリーモードを使用して信号処理を実行する方法のフローチャートである。
【図14】周波数及びビットタイミング推定値対電力推定値の3次元グラフである。
【図15】周波数軸に沿った図14のグラフの断面図である。
【図16】ビットタイミング軸に沿った図15のグラフの断面図である。
【図17】相関ヒストリーモードを使用する相関プロセスのフローチャートである。
【図18】外部処理ユニットに連結されたGPS受信機の別の実施形態を示すブロック図である。
【図19】本発明による衛星信号パラメータ推定プロセスの例示的な実施形態を描いているフローチャートである。
【図20】図18のGPS受信機内のコプロセッサの例示的な実施形態を示すブロック図である。
【図21】ビットタイミング測定コマンドに応答して生成されるビットヒストグラムの一実施形態を描いている。
【発明の分野】
【0001】
[0001]本発明は、デジタル信号受信機の信号相関器に関し、特に、本発明は、例えば、全地球測位システム(GPS)受信機においてヒストリカル相関データを使用して信号相関を実行する方法及び装置に関係する。
【背景技術の説明】
【0002】
[0002]全地球測位システム(GPS)信号を測定するプロセスは、既知の擬似雑音(PRN)符号に対する着信信号の一連の相関を試みることにより、雑音中でGPS信号を探索するための手順で始まる。信号の正確な周波数と到着時刻遅延の両方が未知であるため、探索プロセスは非常に長くなり得る。信号を検出するため、受信機は、従来、2次元探索を実行し、あらゆる可能性のある周波数で各遅延可能性をチェックする。特定の周波数及び遅延の信号の存在を調べるため、受信機はその周波数に合わせられ、着信信号は、到着時刻に対応する量によって遅延された既知のPRN符号と相関させられる。信号が検出されないならば、探索は次の遅延可能性へ進み、すべての遅延可能性がチェックされた後、次の周波数可能性へ進む。個々の相関は、雑音から信号を識別するために十分な信号平均化を可能にするため1ミリ秒以上に亘って行われる。数千個の周波数可能性及び遅延可能性がチェックされるので、全体的な捕捉プロセスは何十秒をも要する。
【0003】
[0003]近年、ワイヤレス装置へのGPSテクノロジーの新しいアプリケーション、例えば、緊急時位置通報能力を提供するために携帯電話機にGPSを使用することが出現している。これらのアプリケーションでは、ほんの数秒間の即時信号捕捉が要求される。さらに、これらのアプリケーションは、GPS受信機が、GPS信号レベルが非常に弱められる過酷な信号環境及び屋内で動作することを要求する。弱められた信号の検出は、各相関が比較的長い期間に亘って実行されることを要求する。例えば、積分は、従来のGPS受信機で使用される1〜10ミリ秒の期間に対して数秒間に亘って実行される。従来の受信機によって利用される2次元逐次探索プロセスは、このような長い積分時間では、全探索時間が100倍以上に増加するので実施不能になる。
【0004】
[0004]探索プロセスを加速するため、GPS設計者は、複数の到達時刻可能性が同時にチェックできるように付加的な相関器を受信機に追加する。典型的に、追加される各相関器は、別個の符号混合器及び信号積算器を必要とする。所定の感度レベルでは、これは相関器の台数に比例して探索時間を短縮する。携帯電話機アプリケーションで要求される感度及び捕捉時間を達成するため、この設計は数千台の相関器を統合する必要がある。この追加は、典型的に、民生クラスの装置には非常に複雑であり、かつ、高価である。
【0005】
[0005]例えば、1999年5月4日に発行された米国特許第5,901,171号は、単一の時分割方式処理ブロックが12チャンネルのそれぞれにおいて最大で20個の同時相関を実行するため使用できるようにする3重化技術について記載する。これは、20個の遅延可能性のブロックが同時にチェックされるので、単一の相関器設計に対する性能の改善を提案する。遅延不確定の全範囲に亘る完全な信号探索は、2046個の遅延をチェックするために継続して約100回に亘り20台の相関器のブロックを使用することを要求する。よって、捕捉が数秒間で行われるべきであるならば、積分時間は数十ミリ秒に制限される。これは、屋内GPSアプリケーションに必要とされる感度を達成するためには不十分である。
【0006】
[0006]探索プロセスをさらに改善するため、他のGPS受信機アーキテクチャは、着信信号と既知のPRN符号との間の畳み込みを生成する能力をもつ処理を含む。これは完全なC/A符号エポック(1023チップ)に亘るすべての時間遅延可能性を測る相関器の完全な組を提供することと等価であり、1997年9月2日に発行された米国特許第5,663,734号は、ソフトウェアアルゴリズムを使用して必要な相関結果を効率的に生成するためにソフトウェア技術に基づく高速フーリエ変換(FFT)について記載する。このアプローチは、プログラマブルデジタル信号プロセッサ(DSP)がソフトウェアFFTを実行するために必要とされ、大規模メモリが処理されていない信号サンプルを記憶するために必要とされるので、すべてのアプリケーションに対して適切であるということはない。さらに、このアプローチは、ソフトウェア計算、及びソフトウェア処理が信号の完全なスナップショットが記憶された後に限り開始するという事実に起因して、大きい処理遅延がある。多数のアプリケーションにおいて、リアルタイム処理解決策が、好ましくは、大規模なソフトウェア処理を含まないリアルタイム処理解決策が好ましい。Lyusinら、“Fast Acquisition by Matched Filter Technique for GPS/GLONASS Receivers”、pp307−315は、1023タップをもつ整合フィルタを使用してリアルタイムで畳み込みを実行するハードウェアアプローチについて記載する。整合フィルタは、完全なC/A符号エポックを保持するために十分な大きさのシフトレジスタと、信号とC/A符号の完全なエポックの間の内積を生成する幅1023のベクトル乗算器及び加算器ユニットとにより構成される。
【0007】
[0007]この回路は、携帯電話機のような低コスト民生装置の制約よりも複雑である。P符号捕捉のため軍事クラス受信機で利用されるようなその他の整合フィルタアプローチは、同様に大規模ベクトル乗算器を組み込む。
【0008】
[0008]したがって、信号及びC/A符号の全エポックを処理する能力をもつ改善された、簡単かつ低コストのGPS処理ブロックが必要とされる。このような装置は、比較的簡単であるが、好ましくは、大規模ベクトル乗算器を用いることなく、完全な畳み込み、すなわち、多数の並列相関を生成する能力を備えたハードウェアで構築されるべきである。
【発明の概要】
【0009】
[0009]本発明は、入力信号(例えば、GPS信号)と擬似ランダム雑音(PRN)符号基準との間の完全な畳み込みを、処理されていない信号サンプルを記憶することなく、かつ、大規模なソフトウェア処理なしに、リアルタイムでコンボリューションを生成することにより計算する方法及び装置を提供する。この装置は、エポック全体を処理するためのサイズのベクトル乗算器と同じ結果を獲得するため高速で動作するベクトル乗算器を備える。本発明は、携帯電話機のような民生クラス装置の複雑性の制約に適合する集積積回路に組み入れられる。その設計は、高感度を保証するため畳み込み結果の長期平均化を可能にさせるために必要なロジックを含む。本発明は、屋内で受信された信号をはじめ、非常に弱められた信号からの測位の導出に用いる信号を相関させる能力をもつ。
【0010】
[0010]完全な装置は、従来のGPSチューナー、デシメーション回路、畳み込みプロセッサ、及び畳み込み結果を蓄積するRAMブロックにより構成される。畳み込みプロセッサは、100MHz以上のオーダーの高クロックレートで動作し、小さい回路のブロックの繰り返し使用によって完全な畳み込みの計算を可能にする。特に、畳み込みの各点は一連の部分相関に分解され、各部分相関は、エポックの一部分だけを処理するためのサイズのベクトル乗算器を使用して生成される。この装置は、C/A符号を重なりのない符号セグメントの組に細分することにより部分相関を体系化する。各部分相関は、同時には1個の符号セグメントだけを使用し、簡単なルックアップテーブルを用いて、C/A符号が効率的に保存され、取り出されることを可能にする。
【0011】
[0011]プロセッサは、着信信号のタイミングに正確に適合させられた所望のサンプルレートで信号ストリームを作成するため入力IFサンプルのデシメーションを行うことから始まる。所望のサンプルレートがPfo(C/Aチップ当たりPサンプル)であるならば、サンプリングレートは、正確に1023×P個のサンプルが各信号エポックで取得されるようにセットされる。プロセッサは、Kが1023の因数であり、P×K個の入力サンプルを保持するようなサイズのシフトレジスタを通る信号クロッキング信号を相関させる。各信号シフトで、M×K=1023となるように選択されたMを用いて、一連のM回の部分相関演算が実行される。各部分相関は、C/A符号の長さKのセグメントをP×K個のサンプルに拡張することにより作成された基準サンプルのブロックとの信号シフトレジスタの内容の内積を取ることで構成される。部分相関結果はメモリ内で積算される。部分相関結果を積算することにより、プロセッサは、完全な畳み込みに達するまで、多数の相関点の完全な相関結果を生成する。
【0012】
[0012]相関処理を向上させるため、本発明の付加的な実施形態は、相関ヒストリーモードを使用して相関器を動かす。本実施形態では、RAMは相関ヒストリーを形成する所定の期間に亘って相関結果を記憶するため使用される。相関ヒストリーモードは、部分相関処理を実行する前に1台以上の衛星のドップラー周波数誤差とナビゲーションデータビットのタイミングを分離するために調節される受信機パラメータを推定するため使用される。推定された受信機パラメータは、受信機発振器の周波数及び/又は受信機タイミング誤差を含む。
【0013】
[0013]別の実施形態では、衛星測位システム受信機はプロセッサに連結される。例えば、衛星測位システム受信機は、中央処理ユニットを含む携帯電話機のようなモバイル装置内に組み込まれる。本実施形態では、衛星信号と基準信号との間の複数の相関結果がプロセッサからのコマンドに応答して生成される。少なくとも1個の衛星信号パラメータは、衛星測位システム受信機内に統合されたコプロセッサを使用して複数の相関結果から推定される。少なくとも1個の衛星信号パラメータはその後プロセッサに供給される。
【0014】
[0014]上記の本発明の特長が詳細に理解されるように、上述の簡単に要約された発明のより特有の説明が実施形態を参照することにより与えられ、実施形態の一部は添付図面に示されている。しかし、添付図面は本発明の典型的な実施形態だけを示し、発明が他の同様に効果的な実施形態を認めるので、本発明の範囲を限定しているとみなされるべきでないことに注意する必要がある。
【発明の詳細な説明】
【0015】
[0036]図1は本発明を組み込む全地球測位システム(GPS)受信機100のブロック図を描いている。本発明を組み込むプラットフォームとしてのGPS受信機の使用は本発明の一つのアプリケーションを形成する。信号相関を必要とするその他のプラットフォームは本発明の用途が見出される。
【0016】
[0037](GPS信号のような)信号はアンテナ101によって受信される。無線周波数から中間周波数への変換器(RF/IF変換器)102は、アナログ・デジタル変換器(A/D)103によるデジタル化のため信号をフィルタ処理し、増幅し、周波数偏移する。要素101、102及び103は従来のGPS受信機で使用される要素と実質的に類似している。
【0017】
[0038]A/D103の出力は、デジタルロジックで実施された処理チャンネル1041、1042、...、104n(ここでnは整数である)に結合される。各処理チャンネル104nは特定のGPS衛星からの信号を処理するため使用される。特定のチャンネル内の信号はチューナー105によってデジタル的にチューニングされ、数値制御発振器(NCO)106によって駆動される。チューナー105は二つの目的のため機能する。第一に、RF/IF変換後に残るIF周波数成分は除去される。第二に、衛星運動、ユーザ運動、及び基準周波数誤差から生じる衛星ドップラー周波数偏移が除去される。チューナーからの出力は、同相成分(I)及び直交成分(Q)により構成されるベースバンド信号である。105及び106のステップは従来のGPS受信機設計で使用されるステップと実質的に類似している。
【0018】
[0039]デシメーション回路107は105の出力を処理する。デシメーション回路107の出力は、I成分及びQ成分をもつ複素信号サンプルの系列であり、入力信号のタイミングに適合するように正確に時間同期させられたレートで出力される。本発明の一実施形態では、デシメーション演算は、出力サンプルの期間に亘ってすべての着信信号サンプルを加算する簡単な事前加算である。数値制御発振器(NCO)108はサンプリングプロセスを時間同期させるため使用される。例えば、P=2であるならば、符号NCO108は、(2×fs)の周波数を発生するようにセットされ、ここで、fsは、ドップラー偏移のため調整されたfo(GPS信号のC/A符号チップレート)である。NCOは、ファームウェアコマンドからの外部入力に基づいてドップラー偏移に調整される。ドップラー偏移は衛星毎に異なるので、別個の符号NCO108及びデシメーション回路107がチャンネル104n毎に必要とされる。符号NCO108は任意の周波数を発生する能力を備えているので、着信サンプルレートはfsの整数倍であるという要求がないことに注意すべきである。デシメーション回路107が事前加算器であるならば、加算されるサンプルの個数は、典型的に、2個の値の間でトグル切り替えされるので、長期間にわたって、正確なサンプルタイミングが維持される。例えば、着信サンプルレートが10MHzであり、所望のサンプルレートが2.046MHzであるならば、事前加算器は4又は5個のサンプルを加算するので、所望のサンプルレートは平均的に維持される。
【0019】
[0040]デシメーション回路107は、さらなる処理の前に信号成分のビット数を削減するためにその出力に量子化器(図示せず)を含むこともある。本発明の一実施形態では、2ビット量子化が使用される。
【0020】
[0041]デシメーション回路107からの信号サンプルは畳み込みプロセッサ109に結合される。畳み込みプロセッサ109は、信号ランダムアクセスメモリ(RAM)110a及び110bに記憶される結果を生成する。特に、これらのRAM110a及び110bは、入力信号と基準PN符号(例えば、GPS C/A符号)との間の完全な畳み込みの全部又は一部を構築する複素ベクトルを保持する。畳み込み結果は、信号と基準(PN符号)との間の高い相関に対応する点でピークをもつ。以下で詳述されるように、種々の衛星信号に関するこれらのピークの相対的な位置は位置情報を最終的に計算するために使用される。
【0021】
[0042]畳み込みプロセッサ109と、信号RAM110a及び110bはGPS信号の複数のエポックに対する畳み込み結果を積算し、これは公称1ミリ区間で繰り返す。例えば、信号のうちの10ミリ秒が処理されるならば、RAM110a及び110bの値は、それぞれが1個のエポックの間に生成された10個の相関結果の合計である。デシメーション演算のタイミングはサンプルが各エポック内の同じ相対運動で取得されることを保証するので、すべての個々の相関は同じ特性をもつべきである。個々の相関からの類似した結果を積算することは、信号対雑音比を改善し、受信機が弱い信号を検出する能力を高める。この処理は、コヒーレント積分と呼ばれ、後述のように、数秒までの時間に亘って平均化された相関結果を生ずるため、絶対値積分と組み合わされる。
【0022】
[0043]コヒーレント積分区間が実行される時間の長さは、補償されていないドップラー偏移、GPS信号ナビゲーションデータビット、及び受信機100の運動によって生じる位相偏移を含む数個の要因によって制限される。これらの要因は、ゆっくりとした、しかし、一見ランダムな位相変動を信号に誘起する。数十秒に亘って、これらの位相変動は、コヒーレント積分の目的を無効にする破壊的な妨害の原因になる。したがって、長い平均化区間を達成するため、受信機100は、絶対値積算という二次的なステップを実行する。特に、信号RAM110a及び110bに記憶された信号は、複素畳み込みベクトルの複素絶対値を生成する複素正規化器111へ周期的に出力される。複素絶対値は加算器112によって積算され、絶対値RAM113に記憶される。信号の複素絶対値が計算されるたびに、信号RAM110a及び110bは、別のコヒーレント積分が行われることを可能にするためクリアされる。このプロセスは、所望の個数の絶対値積算が終了するまで継続する。例えば、コヒーレント平均化区間が10ミリ秒であり、200回の絶対値積算が望まれるならば、全プロセスは2秒間に亘って行われる。
【0023】
[0044]畳み込み処理の後、絶対値RAM113は、信号対雑音比を改善するため積分された、畳み込み結果の複素絶対値を含むベクトルを格納する。後述されるように、このベクトルは、受信機の位置を出すため使用される擬似距離データを生成するためにCPU114によって実行されるソフトウェアアルゴリズムによってさらに処理される。これらのステップのためのCPU計算負荷は、従来のGPS受信機又はFFTベースの相関器と比較すると非常に適度であることに注意すべきである。本実施において、相関及び積分の計算集約的なタスクはソフトウェア処理の前に完了される。
【0024】
[0045]図2は、図1のコンポーネントによって生成された波形201I、201Q及び202を描いている。波形201I、201Q及び202は、信号強度(軸208)対符号チップ(軸210)のプロットである。波形は、コヒーレント積分及び絶対値積分の間の畳み込みプロセッサ109の出力を描いている。明瞭さのため、一つずつが3回のコヒーレント積分に基づく3個の絶対値積算により構成される、9ミリ秒の信号処理時間だけが表される。本実施形態では、P=2であるので、1回のコヒーレント積分当たり2046個の信号サンプルが存在する。波形201I及び201Qは畳み込みプロセッサ109からの出力であり、ここで、201Iは出力のI成分であり、201QはQ成分である。2046個のサンプルの各ブロックは、その区間中に処理された2046個の信号サンプルから畳み込みプロセッサ109によってリアルタイムで生成された、完全な畳み込み結果である。畳み込み結果は、信号の時間遅延に対応する(参照番号206I及び206Qによって指定されるような)信号ピークの付近を除いて雑音を含む。信号はエポック毎に繰り返されるので、そのピークは2046個のサンプル毎に再び現れる。最初の3サイクルの間に、相関結果は各エポックからの対応する遅延で値を加算することにより、RAM110a及び110bに積算される。(例えば、出力時刻4における値は、出力時刻2050及び4096における値と加算される)。相関ピークは常に同じ遅延オフセットで現れ、ピークのサイズは積算の間に増加し、3エポックの間におおよそ3倍になる。雑音のレベルも同様に増加するが、雑音相関はエポックとエポックの間で無相関であるため、3の平方根しか増加しない。信号対雑音比は積算プロセスを通して向上し、およそ3の平方根だけ増加する。波形201Qは、直交チャンネルで行われる同じ信号積算プロセスを描いている。
【0025】
[0046]信号の4番目のサイクルから始めて、信号RAM110a及び110bは零にクリアされ、信号積算プロセスは再開する。波形201I及び201Qは9個の信号エコーの間に3回積算及び放出を行う相関を表す。
【0026】
[0047]コヒーレント平均化区間の最後に、積算された信号の絶対値が計算され、絶対値RAM113へ加算される。絶対値RAM113内の信号は波形202として示される。本実施形態では、波形202は、各コヒーレント積分の完了に対応して3回更新する。ピークは参照番号2121、2122、2123によって識別され、雑音は参照番号214によって識別される。以上のように、信号対雑音比は絶対値積算毎に増加し、到達時刻に対応するピークを識別するためにシステムの能力をさらに高める。
【0027】
[0048]本実施形態では、信号の複素位相が9エポックの間に変動したことに注意すべきである。特に、信号は、初期的にIチャンネルとQチャンネルの両方に存在するが、最後のエポックによって、信号はIチャンネルで強く、Qチャンネルでほとんど存在しないように回転させられる。上記のように、不完全なドップラー偏移チューニング及びその他の効果がこの回転の原因になる。多数のエポックの間に、位相は多数のサイクルによって回転し、積算されたときに信号の取り消しという結果になる。この理由のため、発明の受信機は、長期間平均化のための絶対値(非コヒーレント)に依存して短い区間だけに亘ってコヒーレントに積算する。絶対値は位相とは独立であり、数秒間に亘ってうまく積分される。
【0028】
[0049]図3は積算絶対値波形202をより詳細に図示する。プロット300は信号の時間遅延に対応するピーク2123の付近での畳み込みの絶対値を表す。符号チップ軸210上の点は、Pが信号サンプリングレートのC/A符号化チップレートfoに対する比である場合に、C/A符号チップ長さをPによって分割した区間と等しい区間で間隔が空けられる。本実施形態では、P=2であるので、点は半チップ区間、すなわち、約500nsだけ離される。(この時間的な間隔は150メートルの距離差に対応する)。10メートル又はそれよりも良いオーダーで擬似距離測定値を得るために、畳み込み結果は、位置情報を生成するため、典型的にCPU114において、さらに処理される。畳み込みプロセスによって提供される離散相関値を使用して、真の時間遅延を推定するために使用できる数多くの補間技術がある。一実施形態は、雑音を含む測定データに最も良く適合する信号のパラメータを特定するために少なくとも自乗推定技術を使用する。信号の理想的な応答は信号の自己相関の絶対値である。この波形は、上昇三角形302の形式で簡単に表すことができる。三角形底辺の幅303は、正確に2個のC/A符号チップ、すなわち、畳み込み結果上の4点(P=2のケース)である。三角形の底辺の高さ304は、信号に対応しない時間遅延の畳み込みにおける雑音の絶対値である。この雑音の絶対値は、データから推定されるか、又は、増幅器雑音指数と、ケーブル及びフィルタ損失と、システム温度のような設計パラメータに基づいて予め計算される。三角形のピーク305及び三角形の中心306は、信号絶対値及び時間遅延に対応する未知数である。最小自乗法が雑音を含むデータ点を所定のピーク及び中心をもつ三角形に当てはめるようにこれらの2個のパラメータを推定するため使用される。図4は、(畳み込み結果処理回路400と共に)畳み込みプロセッサ109の詳細ブロック図、特に、完全な畳み込みが小さい回路ブロックの繰り返し使用によって生成される方法を示す細部を描いている。回路の動作は、図4と、図4のプロセッサ109の動作を表現する図5のフローチャートとを同時に参照し、図6と図7の簡単な実施形態を比較することによって最も良く理解される。
【0029】
[0050]デシメーション回路107からの信号は、I成分及びQ成分をそれぞれ取り扱うシフトレジスタ401a及び401bに結合される。各シフトレジスタ401a及び401bは、長さがP×Kであり、ここで、Pは1個のC/A符号チップ当たりの所望のサンプル個数であり、Kは設計パラメータとして選択される。後述のように、Kは1023の因数である。説明を簡略化するため、残りの説明は、P=2(サンプルは半チップ間隔で離される)かつK=33である一つの特定の実施形態に重点を置く。シフトレジスタの中で信号を進めるこの手段は、回路が信号のダブルバッファを行う必要性を除去し、実施のコスト及び複雑さを軽減する。
【0030】
[0051]信号はシフトレジスタ401a及び401bの中を、符号NCO107によってタイミングを調節された2foのレートで進む。信号は多数のクロックサイクルの間にシフトレジスタ内の適当な位置に留まるので、一連の部分相関演算が実行される。特に、合計でM回の部分相関が実行され、本実施形態では、M=1023/K、すなわち、31である。各部分相関は、各信号シフトレジスタの内容と、P×K(例えば、66)個の符号サンプルを含む符号のセグメントとの間の高速ベクトル乗算及び加算演算により構成される。高速ベクトル乗算及び加算は回路402a及び402bで行われる。回路402a及び402bはそれぞれ、乗算器410a及び410bと加算器412a及び412bとを備える。演算は、シフトレジスタ401a又は401b内の66個の信号サンプルのそれぞれに、(33個の符号サンプルを符号拡張器409で拡張することにより形成された)66個の符号サンプルを乗算することと、その結果を加算器412a及び412bで加算することからなる。演算はIチャンネルとQチャンネルで別個に、かつ、同時に行われる。数学的に、この演算は、
【数1】
として定義され、内積と呼ばれる。ベクトル乗算及び加算の出力は、RAM404a及び404bをオーバーフローさせないように、数を小さい範囲に保つために再量子化してもよい。簡単にするため、量子化器は図示されない。一実施形態では、再量子化は2ビットの分解能になる。
【0031】
[0052]ベクトル乗算及び加算の結果は、加算器403a及び403bによって積算され、畳み込み結果処理回路400によって処理される。回路400は、信号RAM110a、110bと、複素正規化器111と、加算器112と、絶対値RAM113とを備える。信号RAM111a及び404bに格納される。積算プロセスは、RAM110a及び110bからの特定の時間遅延に対する現在値の読み出しと、ちょうど計算された部分相関の加算と、RAM110a及び110bへの和の書き戻しとからなる。特定の時間遅延に対応する部分相関を適切に組み合わせることにより、その遅延の完全相関が計算される。上述のように、このプロセスは、信号対雑音比を改善するため必要に応じて信号の多数のエポックに対して継続する。よって、加算器403a及び403bは、エポック内の部分相関の組み合わせと、複数個のエポック全体の相関の積算との二つの目的のため機能する。
【0032】
[0053]信号RAM110a及び110bからの出力は、信号の絶対値を形成するため複素正規化器405で組み合わされる。これらのRAM110a及び110bにおけるI波形及びQ波形は、複素波形の実部及び虚部として考えられる。絶対値の形成は、各成分の平方化と、結果の加算と、その結果の平方根の取得とからなる。絶対値への複数の近似が回路を簡単化するため使用される。一実施形態では、複素絶対値は、IとQのスカラー絶対値を独立に取得し、大きい方を決定することによって近似される。絶対値は、大きい方の絶対値を取り、それを小さい方の絶対値の半分に加算することによって近似される。
【0033】
[0054]絶対値演算の結果は、RAM113のオーバーフローを回避するように値を小さい範囲に保つために縮尺される。簡単にするため、スカラーは示されていない。一実施形態では、スケーリングは、結果を3ビットシフトすること(すなわち、8で除算すること)からなる。
【0034】
[0055]信号絶対値ではなく信号電力を積算することも可能である。この場合、405における演算は電力推定であり、典型的に、IとQの平方の和を取ることにより計算される。この場合、図3を参照して説明された擬似距離決定アルゴリズムは、絶対値波形ではなく、電力波形に対する当てはめを実行するために僅かに修正されるべきである。代替的に、付加的な非線形演算がI及びQの絶対値又は電力を表す値を生成するため使用される。
【0035】
[0056]複素正規化器111からの出力は、加算器112によって絶対値RAM113に積算される。積算プロセスは、RAM113からの特定の時間遅延に対する現在絶対値の読み出しと、ちょうど計算された絶対値結果の算入と、RAM113への和の書き戻しとからなる。上述のように、絶対値積算は、信号対雑音比の改善を実現するため必要に応じて多数のサイクルに亘って継続する。
【0036】
[0057]ベクトル乗算器402a及び402bは、信号のシフト毎にM回の部分相関を実行する。符号ルックアップ回路408は各部分相関の基準符号サンプルを生成する。ルックアップは2個のルックアップインデックスによって制御される。第一に、符号は32個の符号のうちの一つから選択されなければならない。この選択は畳み込みプロセスの間中一貫性があり、処理チャンネルが特定の衛星信号のための相関を取るように構成されるときに確定される。第2のインデックスは、1とMとの間のセグメントインデックスである。各C/A符号は、それぞれがK個の隣接した符号チップからなるM個の重なりのないセグメントに分割された、1023個のチップにより構成される。ルックアップインデックスは必要とされる符号セグメントを特定する。符号ルックアップ回路からの出力はセグメントを構成するK個のチップである。選択プロセスは、制御/アドレスロジック414によって制御される。
【0037】
[0058]符号拡張器409は、その入力として、セグメントのK個のチップを取得し、そのセグメントをK×P個の符号サンプルに拡張する。拡張演算は、各符号チップをP個の同一の符号サンプルに変換することからなる。符号拡張器409からの出力はベクトル乗算器402a−bへ入力される基準符号を形成する。本実施形態では、符号拡張器からの出力は、33個の一意の値で構成され、各値が2回ずつ反復される66個のサンプルである。
【0038】
[0059]図4に示されたアーキテクチャは、C/A符号レートfoより実質的に速いクロックを必要とする。例えば、C/A符号チップ1個当たり2個のサンプルが使用されるならば(P=2)、K及びMはそれぞれ33及び31であり、完全な畳み込みの実現は、2×foのレートで進む信号シフトレジスタのシフト毎に31回の部分相関を必要とする。典型的に、RAM110a及び110bの読み出しと書き込みを行うために少なくとも2クロックサイクルが必要とされる。2クロックサイクルを仮定すると、完全な畳み込みを実現するために必要とされる最小クロックレートは、
fclk=2×31×2×fo=2×31×2×1.023MHz≒127MHz
である。このレートは最新集積回路ロジックにおいて簡単に達成可能である。
【0039】
[0060]本発明は完全な畳み込みの部分集合を計算するためにも使用できることに注意すべきである。この場合、M回より少ない相関が信号シフトレジスタのシフト毎に実行される。この場合、遅延の全範囲は、完全な畳み込みを構成するP×1023より少ない。特に、M2回の部分相関が実行されるならば、M2×K×P個の遅延値が生成される。プロセッサへのクロックレートはM2対Mの比によって削減される。さらに、RAMのサイズは同様にこの比によって縮小される。よって、この代替案は、完全な畳み込みを処理する計算リソース又はメモリリソースを持たないシステムにおいて役に立つ。
【0040】
[0061]K及びMの結果のその他の選択は、さらなる設計トレードオフが行われることを可能にするが、1023の素因数は3、11及び31であるので、K及びMの選択は制限される。Kを減少させることは、シフトレジスタ401a及び401bのサイズを縮小し、ベクトル乗算器402a及び402bの複雑さを軽減するので望ましいが、より大きいM、したがって、大きいクロックレートを必要とする。Kの選択の範囲は3、11、31、33及び93である。これらの選択の範囲は、1.39GHz、380MHz、135MHz、127MHz及び45MHzそれぞれのクロックレートを必要とする(常にP=2かつ部分相関毎に2クロックサイクルを仮定する)。実証の時点で利用可能なテクノロジーに基づいて、K=33の選択が一実施形態のため行われた。将来のテクノロジーでは、K=11の選択と380MHzのクロックレートが実行可能になり、ロジック複雑さのさらなる低減という結果になる。よって、このアーキテクチャは、速度とロジック複雑さとの間で最適化されたトレードオフをサポートする望ましい属性を有する。
【0041】
[0062]符号セグメントの順序付けは制御ロジック414によって制御される。この制御ロジックはさらにRAM110a、110b及び113の正確なアドレスを特定する。後述するように、部分相関は非連続的な順序で生成されるので、RAMアドレスの生成は重要である。
【0042】
[0063]図4の回路の動作は図5のフローチャートを参照しても理解される。動作は、信号シフトレジスタ401a及び401bをプレロードしてステップ501から始まる。この時点で、畳み込み処理が始まる。ステップ502で、符号セグメントが特定の部分相関のためアクセスされる。ステップ503で、符号セグメントはC/Aチップ1個当たりにP個のサンプルにするため符号拡張器によって拡張される。次に、ステップ504で、遅延指標及び対応するRAMアドレスが計算される。遅延指標は、完全な畳み込みのうち部分相関によって更新される点を指定する。図7と共に説明される実施形態からわかるように、遅延指標は非線形であるが、しかし、決定論的な形で動き回る。アドレス計算は信号シフトの回数と符号セグメントの関数である。
【0043】
[0064]ステップ505で、部分相関がベクトル乗算器402a及び402bを使用して計算される。ステップ506で、その結果が遅延指標によって指定されたロケーションで信号RAMに積算される。次にステップ507で、処理がコヒーレント積分区間の最後に到達したかどうかを決定するためにチェックされる。到達していないならば、この方法はステップ502aへ戻り、次の符号セグメントに対して上記のステップを繰り返す。
【0044】
[0065]ステップ507で、そのチェックがすべての符号セグメントの部分相関(例えば、31回の部分相関)が完了したことを示すならば、この方法はステップ508へ進む。ステップ508で、信号レジスタ401a及び401bは1サンプルずつシフトされる。
【0045】
[0066]このプロセスは次にステップ509へ進み、そこで直前のシフトがコヒーレント積分区間の最後に達したかどうかを調べるためにチェックが行われる。最後に達していないならば、プロセスはステップ502のスタートへ戻る。そのチェックがコヒーレント積分区間の最後を示すならば、この方法はステップ510へ続き、そこで信号絶対値が複素正規化器111によって計算される。その結果は加算器112によって加算され、絶対値RAM113に格納される。次に、ステップ511で、すべての絶対値積算が実行されたかどうかを決定するためにチェックが行われる。実行されているならば、この方法はステップ512で終了する。実行されていないならば、処理はステップ501で次の部分相関を実行することにより継続する。
【0046】
[0067]図6及び図7は、簡略化された実施形態によって、本発明が完全な畳み込み結果を積算するために部分相関を利用する方法を示す。明確にするために、これらの図は、GPS信号の長さ1023のC/A符号ではなく、非常に短い長さ6の符号の畳み込みを図示する。実施形態をさらに簡略化するため、符号チップ毎に1個のサンプルが使用され、すなわち、P=1である。図6は標準的な整合フィルタリング法による畳み込みを図示し、図7は部分相関を組み合わせる方法による同じ畳み込みを図示する。図7の細部は本発明の全体的な動作を理解する際に役立つ。両方の方法は同じ畳み込み結果を生成する。
【0047】
[0068]図6は長さ6の信号に対する従来の整合フィルタの動作を示す。動作はシフト0として示された時点で始まる。この時点で、信号のサイクル全体を構成する6個の連続する信号サンプルが信号シフトレジスタ601にある。個々のサンプルは大文字の添字A、B、C、D、E及びFでラベル付けされる。長さ6の符号全体の符号サンプルは基準レジスタ602に保持され、小文字の添字a,b,c,d,e及びfでラベル付けされる。シフト0の時点で、シフト0の相関結果を生成するためベクトル乗算及び加算が実行される。各信号サンプルは対応する符号サンプルによって乗算され、その結果が加算され相関結果603を生ずる。
【0048】
[0069]次に、信号シフトレジスタ604は、シフト1によって示されるように、1サンプルずつ進められる。信号は周期的であるため、レジスタの左側に取り入れられる新しいサンプルは右へシフトして出されたサンプルと一致する。レジスタ604のシフトされた内容は、今度は、添字F、A、B、C、D及びEをもつサンプルである。符号はシフトされない。ベクトル乗算及び加算は、今度は、シフト1に対する相関結果605を生ずる。このシフトプロセスは5回のさらなるシフトに対して継続し、その点において、完全な畳み込みを構成する全部で6個の相関結果が利用可能である。
【0049】
[0070]図7は同じ畳み込み結果が部分相関の方法によって得られる方法を図示する。上記のように、本発明は、符号が長さKのM個のセグメントに分解されることを要求する。図7の簡略化された実施形態では、長さ6の符号が長さ2の3個のセグメントに分解され、すなわち、K=2かつM=3であった。動作はシフト0に示される時点から始まる。この時点で、2個の信号サンプルが信号シフトレジスタ701に保持される。信号サンプルは大文字の添字A及びBでラベル付けされる。符号の6個のサンプルはそれぞれ長さ2の3個のセグメントに格納される。第1の符号セグメント702は小文字の添字a及びbでラベル付けされた2個の符号サンプルを格納する。信号は3回の部分相関演算の間に所定の位置に保持され、部分相関結果703a、703b及び703cをもたらす。第1の部分相関結果は、信号レジスタの内容と第1の符号セグメント(セグメント1)の内容との間のベクトル乗算及び加算によって作成される。第2の結果及び第3の結果は、それぞれ、第2の符号セグメント及び第3の符号セグメントと信号セグメントのベクトル乗算によって作成される。信号レジスタは全部で3回のベクトル乗算が実行されるのに十分な時間に亘って所定の位置に保持され、符号はこの時間中にシフトされるのでなく、異なる符号セグメントが選択されることに注意すべきである。
【0050】
[0071]部分相関結果は信号パス705によってメモリに積算される。例えば、シフト0で、第1の符号セグメントからの部分相関は相関結果704に算入される。第2のセグメントからの部分相関はシフト2の相関結果706に算入される。第3のセグメントからの部分相関はシフト4の相関結果708に寄与する。
【0051】
[0072]3回の部分相関の後、信号はシフトされる。シフト1として示されたこの段階で、信号レジスタはサンプルF及びAを格納する。この場合も、3回の部分相関が前と同じ3個の符号セグメントを用いて生成される。これらの部分相関からの結果は、シフト1、3及び5のそれぞれの相関結果710、712及び714に寄与する。この処理は4回のさらなる信号シフトに対して継続し、その時点で完全な畳み込み結果が利用可能である。以上のように、この動作は、畳み込みを構成する6個の完全な結果に寄与する全部で18個の部分相関を生成することが必要である。
【0052】
[0073]図7によって説明されたアーキテクチャは本発明の二つの重要な特性を図示する。第一に、完全な畳み込みは、長さ2のシフトレジスタとベクトル乗算及び加算ユニットとだけを使用して、長さ6の符号に対して生成されたことが明らかである。このことは3個の要素の長さが6である図6より小さい回路を必要とする。第二に、図7では、符号サンプルは各シフトに対して同一のある固定したセグメント内でアクセスされ、各セグメントは符号の別個の重なり合いのないセクションである。よって、簡単なルックアップ又はレジスタスキームが、図8及び図9を参照してさらに説明されるように、符号をベクトル乗算器へ供給するために使用される。これらのスキームは、例えば、符号ビットの大規模ブロックがより複雑な置換の組において利用可能にされることを必要とする他のアーキテクチャより小さい回路を必要とする。本発明は符号発生回路を設ける必要性も取り除く。
【0053】
[0074]図8は本発明に適した符号ルックアップ回路408の一実施形態のブロック図を示す。テーブル801は、32個の符号のそれぞれの全部で1023ビットの格納値を、例えば、読み出し専用メモリ(ROM)又はハードワイヤドロジックに収容する。テーブル801は、符号毎に1個ずつの32個のサブテーブルとして編成される。各サブテーブルは、長さKのM個のセグメントとしてさらに編成され、ここで、K×M=1023であり、K及びMは上述のように選択される。マルチプレクサ802は選択値に基づいて特定の符号を選択する。マルチプレクサ802の出力は目的に応じた特定のサブテーブルである。マルチプレクサ803は、1とMとの間のセグメント選択値に基づいて特定のセグメントを選択する。803の出力は、符号拡張器409へ供給される符号ビットを格納する長さKの特定の符号セグメント804である。
【0054】
[0075]マルチプレクサ803は、符号セグメントが部分相関毎に、すなわち、2サイクル毎に変更可能であるように高速でなければならない。この理由のため、すべての符号ビットは、従来の符号発生器の方法では進行中に生成されるのに反して、テーブル801に予め記憶される必要がある。
【0055】
[0076]図8の回路は、実例となることが意図されている。実際には、機能的に同等の多くの異なった回路設計がある。特に、最新ASIC設計で使用される論理合成のプロセスは、上記の振る舞いと等価的な振る舞いを実現するが、必ずしも上記の方法でマルチプレクサを使用しないある種のゲートの特定のパターンを生み出す。
【0056】
[0077]図9は本発明に適した符号ルックアップ回路408の代替的な実施形態のブロック図を示す。特定の符号に対応する1023個の符号ビットは、長さKのM行として編成された1023台の双方向シフトレジスタ901に保持される。このシフトレジスタは、ランニングモードとローディングモードの2モードで動作する。
【0057】
[0078]ランニングモードでは、各レジスタ901は、最下行のレジスタへシフトする最上行のレジスタを除いて、そのサンプルを次の行内でそのレジスタの上にあるレジスタへシフトするように設定される。ランニングモードのシフト方向は901内に実線矢印で指し示される。すべてのレジスタをクロッキングすることにより、どの時点においても最上行が長さKのM個の符号セグメントのうちの一つを格納するように、符号ビットの行が巡回する。このビットの最上行は符号拡張器409へ供給される。レジスタは高速に巡回するので、異なる符号セグメントが部分相関毎に利用可能にされる。
【0058】
[0079]ローディングモードでは、各レジスタは、上の行内の最初の列のレジスタへシフトするレジスタの最後の列を除いて、そのサンプルをその行内の次のレジスタへシフトするように設定される。ローディングモードのシフト方向は901内に点線矢印で示されている。左下のシフトレジスタ904は符号発生器902に接続される。符号発生器は、選択値に基づいて特定の符号の1023個の符号ビットを順次に作成する能力を備えた従来の符号発生器である。符号ルックアップ回路がある特定のことのため設定されるとき、レジスタはローディングモードに入れられ、発生器は符号のビットを発生するため使用され、レジスタの中をクロックスルーする。すべてのビットがクロックスルーされた後、符号は長さKのM個のセグメントとしてレジスタ内にある。回路は次にランニングモードで使用される準備が完了する。
【0059】
[0080]図10はGPS受信機1000の別の実施形態のブロック図を描いている。受信機1000は、標準相関モードだけでなく相関ヒストリーモードで動作する複数の処理チャンネル104を備える。標準相関モードの機能は図1〜9に関して上述した通りである。相関ヒストリーモードにおける受信機1000のコンポーネントの動作は、信号RAM110a及び110bと絶対値/ヒストリーRAM1002に通じるすべてのブロックに関して標準モードと実質的に同じである。さらに、本発明の方法の説明を支援するため、CPU114は、メモリ1010及びサポート回路1012によって従来の方法でサポートされているものとして図10に示されている。サポート回路1012は、クロック、バス、キャッシュ、電源、I/O回路などのような周知のサポート回路を備える。メモリ1010は、ランダムアクセスメモリ、読み出し専用メモリ、リムーバブルメモリなどのうちの一つ以上を備える。メモリ1010は、CPU114によって実行されるときに、受信機1000を後述の方法にしたがって動作させるソフトウェア1014を記憶するコンピュータ読み取り可能な媒体を形成する。CPU114、メモリ、及びサポート回路の組み合わせは処理ユニット1016を形成する。
【0060】
[0081]畳み込みプロセッサ109の標準動作の場合のように、信号RAM110a及び110bは、完全な変換を備える相関遅延の全部のためのコヒーレント平均化区間に亘って部分相関結果を積算するため使用される。相関ヒストリーモードは、相関ピークの付近における遅延に対応するこれらの結果の小さい部分集合だけを使用する。相関ヒストリーモードでは、プログラミングパラメータは僅かな数の所定の遅延を確定する。これらの遅延に対し、すべてのコヒーレント平均化結果の完全なヒストリーは絶対値/ヒストリーRAM1002に記憶される。相関ヒストリーモードの間、絶対値積算は畳み込みプロセッサにおいて実行されない。その代わり、このモードでは、RAM1002は、相関ヒストリーモードの間に相関ヒストリーを記憶するメモリ(ヒストリーメモリ)として使用され、畳み込みプロセッサ109の標準動作の間に絶対値のためのメモリ(絶対値メモリ)として使用される。別のプログラミングパラメータは、RAM1002に記憶されるべき連続的なコヒーレント積算結果の個数を規定する。畳み込みプロセッサ109は、遅延及びエポックによって索引付けされた結果の2次元テーブルで絶対値/ヒストリーRAMを埋める(図11を参照されたい)。記憶可能なエポックの個数は、RAMサイズと選択された遅延の個数とによってセットされる。例えば、RAMが2048ワードのサイズにされるならば、メモリは、1個だけの遅延に対する2048サイクル、2個の遅延に対する1024サイクル、又は、4個の遅延に対する512サイクルなどのいずれかを記憶するため使用される。12ビットのワード幅は、コヒーレント平均化結果のI部分及びQ部分が6ビット分解能で個別に記憶されることを可能にする。
【0061】
[0082]図12は典型的な相関ヒストリーのグラフの実施形態1200を示す。上側のグラフ1202及び下側のグラフ1204は、それぞれ、I成分波形及びQ成分波形を示す。グラフの各点は単一のコヒーレント積分を示す。本実施形態では、コヒーレント積分区間は1エポックにセットされたので、各点は公称1ミリ秒の積分を表現する。
【0062】
[0083]図12の波形は、相関後の信号の二つの局面を図示する。第一に、信号をIチャンネルとQチャンネルを越えて回転させる残留ドップラー周波数が存在する。第二に、ナビゲーションデータビットが存在し、時々の180°の位相遷移を作成する。遷移の間の最小区間は20エポック、すなわち、データビット期間である。相関ヒストリーの開始に対するデータビットのタイミングもまた波形から明白である。
【0063】
[0084]相関ヒストリーモードは、発振器周波数及び受信機クロックタイミングのようなある種の受信機パラメータを推定する目的で衛星信号ドップラー及び/又はナビゲーションビットタイミングを決定するため呼び出される。初期的に、このモードは残留ドップラーと、相関ヒストリーの開始に対するナビゲーションデータビットのタイミングとを推定するためソフトウェアアルゴリズムによって使用されるデータを提供する。続いて、必要に応じて、このモードはナビゲーションデータビットの値の復号化のヒストリーを提供するためにも使用される。
【0064】
[0085]特に、ソフトウェアアルゴリズムは、GPS受信機のその固有の発振器周波数及び/又は内部クロックタイミングの推定値を発生又は更新するために、1台以上の衛星のドップラー及びビットタイミングを決定する。特に、より精密な相関が図10の搬送波NCO106及び符号NCO108を「訂正」し、畳み込みプロセッサ109のタイミングを調節するために発振器周波数及びクロックタイミング推定値を使用して実行される。特に、受信機発振器周波数の改善された推定値は、相関プロセッサ109がNCO105によってより正確に合わせられることを可能にし、より良い信号検出とより長いコヒーレント積分区間を利用する能力とを提供する。その上、受信機クロックタイミングの改善された推定値は、衛星毎にナビゲーションデータビットタイミングと同期したコヒーレント積分を実行するように畳み込みプロセッサ109の開始時刻を制御するために使用され、信号検出を改善する。
【0065】
[0086](2001年3月27日に発行された米国特許第6,208,291号に開示されているような)従来技術は、衛星信号のPNエポック及び搬送波が追跡される追跡プロセスのための相関器出力を記憶するためレジスタバンクを使用する。追跡プロセスは高い信号対雑音比を要求する。従来技術とは異なり、本発明の相関ヒストリーモードは、特定の衛星信号を追跡する目的のため単にデータを一時的に記憶するのではない。それどころか、相関ヒストリーモードは、視野内にある全衛星の検出に役立つ受信機パラメータを推定するため使用される。さらに、相関ヒストリーモードは、従来の追跡プロセスのスレッショルドを下回る非常に低い信号対雑音比でさえ、衛星信号情報を抽出するソフトウェア推定アルゴリズムと共に動作する。複数の衛星からの信号の相関ヒストリーモード処理は、受信機パラメータ推定の性能を高めるために使用されるが、このような付加的な信号は本発明を実施するために不可欠ではない。
【0066】
[0087]相関結果のヒストリーからビットタイミング及び周波数を推定するため利用される多数のアルゴリズムが存在する。一実施形態は図13のブロック図に図示されている。本実施形態では、プロセス1300は、特定の機能を行うステップのシーケンスを実行するソフトウェアプログラムに組み込まれる。プロセス1300は、特定の周波数及びビットタイミングを仮定して信号絶対値の推定値(絶対値推定値)を決定するため実行され、推定値は実現可能な周波数及びビットタイミングの範囲に亘って最適化される。仮説毎に、I及びQの相関ヒストリーは、周波数変調の共役に対応する複素周波数項による乗算を実行することにより最初に位相訂正される(ステップ1302)。次に、ステップ1304で、信号は、ナビゲーションビット期間までスパンするコヒーレント積分に亘って積分される。例えば、相関ヒストリーが1エポックの間隔で離されたサンプルにより構成されるならば、I及びQヒストリーの20個の連続したサンプルがナビゲーションデータビットに亘る信号絶対値の推定値を作成するため加算される。各ビット加算が完了すると、ステップ1306で、絶対値計算演算が電力値を形成するため実行される。連続的な絶対値計算からの結果はその後、信号対雑音比を改善するためステップ1308でさらに加算される。例えば、1秒のデータは、加算で使用されるビット期間の積分された電力を形成するために加算される50個のビット期間を提供する。より一般的に、計算は信号レベル、例えば、信号絶対値又は信号電力を決定するため実行される。本明細書で説明される本発明の実施形態は信号絶対値を使用するが、当業者は、信号電力又はその他の信号レベルの指標が本発明を実施するため使用されることを認識する。
【0067】
[0088]電力推定値は実現可能な周波数及びビットタイミング値の範囲に亘って収集される。結果は、図14に示されるように、2次元グリッド1400上で観察できる。一方の軸1402は仮定された周波数誤差であり、本例では、−40から80Hzまで変化する。もう一方の軸1404は、ビットタイミング仮説であり、0エポックと19エポックの間で変化する。この値は、ビットタイミングと受信機クロックにしたがって特定の時刻に取得された相関ヒストリーの開始との間の仮定されたオフセットを表現する。グリッドの各点における垂直軸1406は、ドップラー及びタイミング仮説に対応する相関関係がある信号絶対値である。周波数及びタイミングの最良推定値はグリッド上の最大点1408に対応する。これは、コヒーレント平均化区間がデータビットとずれる場合に生じる信号対雑音比(SNR)損失を最小限に抑える。
【0068】
[0089]図15は周波数軸1402による図14の断面のグラフ1500を示す。図からわかるように、応答は正確な周波数でピーク(点1502)になる。同様に、図16はビットタイミング仮説軸1404による図14の断面のグラフ1600を示す。この場合も、最大絶対値は正確なビットタイミングに対応する三角形の最高点(点1602)で見られる。
【0069】
[0090]周波数及びビットタイミングにおける点の配置は、意図された推定値の精度だけでなく、周波数及びビットタイミングにおける初期の不確定性の関数である。通常はGPS時刻に対する受信機タイミングは未知であるので、全部で20個のタイミング仮説がチェックされる。
【0070】
[0091]本明細書で説明されているプロセスは、最大値が探索される2次元の点の集合を提供することに注意すべきである。最大値に到達する方法は他にもある。例えば、周波数の粗い推定は、表面のピークに近い周波数を取得するため任意のビットタイミングで実行される。任意のビットタイミングが使用されるならば、コヒーレント平均化区間をビット期間、例えば、19エポックのコヒーレント平均化区間と非同期になるようにセットする方が有利である。任意のビットタイミングによる解析の後に、すべてのビットタイミングにおける(そして、好ましくは、20エポックのコヒーレント平均化区間を用いる)その周波数の応答の推定が続き、ビットタイミングが推定されることを可能にする。必要に応じて、これは付加的な周波数の推定が後に続けられる。これは、図14の2次元表面の全体を通じて最大値を探し出すために利用できる周知の数学的技術の多数の実施形態のうちの一つである。テストされ、有利であることが判明した別の方法は、Numerical Recipes in C,Cambridge University Pressに記載された滑降シンプレックス法である。
【0071】
[0092]別の実施形態では、逐次推定アルゴリズムがソフトウェアで実施される。アルゴリズムの各ステップにおいて、周波数弁別器が周波数誤差の推定値を形成する。その後の反復において、周波数誤差が加えられ、弁別器は周波数誤差の別の改善された推定値を提供する。このプロセスは、残りの周波数誤差が小さくなるまで継続する。追跡ループとは異なり、このアルゴリズムは、NCO106にフィードバックを使用することなく、かつ、付加的な相関を実行することなく、記憶された相関ヒストリー上で完全に動作する。周波数が推定されると、ビット遷移が180°位相遷移のタイミングから識別される。周波数誤差は大部分が除去されているので、位相遷移は容易に観測可能である。
【0072】
[0093]図17はGPS受信機の動作と関連付けて相関ヒストリーモードを使用する方法1700を示す。初期的に、ステップ1702で、遅延の範囲に亘って信号をスキャンし、必要に応じて周波数域で探索して、相関が標準モードで実行される。エネルギーが検出されたとき、ステップ1704で、1台以上の衛星からの信号が相関ヒストリーモード処理のため選択される。ステップ1706で、受信機の処理チャンネル又は複数のチャンネルが相関ヒストリーモードのため再設定され、相関ヒストリーが積算される。通常は、遅延の推定値は初期信号捕捉から利用可能であるため、相関ヒストリーは単一の遅延で積算するだけでよい。ステップ1708で、一つ又は複数の相関ヒストリーが相関ヒストリーモードで動作されるチャンネル毎に信号周波数及びビットタイミングの推定値を生じるため上記のように処理される。
【0073】
[0094]ステップ1710で、これらの推定値はそれから受信機の発振器周波数及びクロックタイミングのモデルを更新するために使用される情報を決定すべく衛星レンジ及びレンジレートモデルと組み合わされる。これらの推定値は、次に、視野内にある最大ですべての衛星の予想されるビットタイミング及びドップラーを計算し、NCO106及び108の改善されたプログラミング値を計算し、畳み込みプロセッサ109のコヒーレント積分開始タイミングをセットするためにすべての衛星の衛星レンジ及びレンジレートモデルと共に使用される。受信機は、その後、図1〜9に関して説明されたように、受信機の視野内にあるすべての衛星からの信号を相関させるため標準動作モードに切り替わる。ステップ1712で、受信機は、GPS信号上で標準的な相関を実行するために、改善された周波数及びクロックタイミング推定値を使用する。上記のプロセスは、受信機パラメータ推定値を完全にするため、必要に応じて、繰り返される。
【0074】
[0095]特に、ステップ1710において、特定の衛星のための相関ヒストリーモードで決定された周波数は、静止受信機モデルに基づいて、受信機クロックの周波数の誤差の原因とされる可能性がある差の値を決定するために、その衛星の予想されたレンジレートと比較される。代替的に、周波数測定値が3台以上の衛星から利用可能であるならば、誤差は、受信機クロック周波数と、その上に受信機速度を推定するために使用される。推定された受信機発振器周波数は、衛星を検出するNCO106の改善されたチューニング周波数を決定するため、衛星の予想されたレンジレートと組み合わされる。
【0075】
[0096]さらに、受信機タイミング誤差の推定値はビットタイミング測定値から生成される。信号ヒストリーは受信機の内部クロックと相対的な特定の基準時間で捕捉される。一実施形態では、このクロックはミリ秒カウンタである。このカウンタのタイミングは、一般に、GPS時刻に対して任意である。しかし、ビットタイミングが特定の衛星に関して推定されると、時間関係がミリ秒カウンタとGPS時刻との間に確立される。このことを説明するために、データビットは同時にすべての衛星から出ることを指摘することが適当である。ビット遷移時に、GPS時刻のモジュロ20の値は零である。これらの衛星からの信号は何ミリ秒も後に受信機に到達する。遷移の時刻と受信の時刻との間の遅延は、受信機位置の推定値、おおよその時刻、及び衛星軌道情報から容易に決定される。よって、受信機におけるデータビット遷移の絶対的なタイミングは、GPS時刻という形で推定される。これらの同じトランザクションのタイミングが受信機のミリ秒クロックと相対的に測定されると、受信機クロックとGPS時刻との間に関係が確立される。この関係は、ナビゲーションデータビットフレームのタイミングではなくナビゲーションデータビット遷移だけが確立されるので、絶対的な関係ではないことに注意すべきである。むしろ、モジュロ20による受信機クロックのミリ秒値は、モジュロ20によるGPS時刻のミリ秒値に関連付けられる。
【0076】
[0097]その後のコヒーレント積分区間を揃えるために、受信機は最初に、(擬似距離に基づいて)GPS時刻と相対的にナビゲーションデータビットのタイミングを推定する。畳み込みプロセッサ109によって実行される相関は、受信機ミリ秒クロックに基づいてある都合のよい将来の時刻に始まるようにプログラムされる。モジュロ20によるこの開始時刻のミリ秒値は、コヒーレント積分のデータビットとの整列を保証するために、GPS時刻及びナビゲーションデータビットのタイミングと相対的に選択される。
【0077】
[0098]相関ヒストリーモードはナビゲーションデータビットを収集するためにも使用される。通常は、このモードはナビゲーションデータビットタイミングが確立された後に呼び出される。相関プロセッサは、データビットと揃えられた区間を用いて、20エポックのコヒーレント積分区間用にプログラムされ、相関ヒストリーが記憶される。相関ヒストリーの各点は完全なビット期間に亘る積分の結果である。あるビットから次のビットへの位相遷移の有無は情報データビットを提供する。相関ヒストリーはRAMのサイズまでビットを記憶するため使用される。より多くのビットが必要であるならば、複数の相関ヒストリーが次から次へと記憶される。
【0078】
[0100]図18は外部処理ユニット1801に連結されたGPS受信機1800の別の実施形態を描いているブロック図である。例えば、GPS受信機1800は、外部処理ユニット1801を含む携帯電話機のようなモバイル装置1899内に組み込まれる。図1及び10の要素と同一又は類似する図18の要素は同じ参照番号を用いて指定され、詳細に上述されている。上記のように、GPS受信機1800は複数の処理チャンネル104を含む。明確さの目的のため、単一の処理チャンネル1041だけが示されている。しかし、当業者は、複数の処理チャンネル104が使用されることを理解するであろう。処理チャンネル104のそれぞれは、図1〜17に関して上述したように相関ヒストリーモードと標準相関モードの両方で動作する能力を備えている。
【0079】
[0101]本実施形態では、GPS受信機1800は、コプロセッサ1804及び受信機インターフェイスロジック1802を備え、その各々が処理チャンネル1041に連結される。CPU114、メモリ1010、及びサポート回路1012は外部処理ユニット1801を形成する。外部処理ユニット1801はモバイル装置1899内にあり、種々のその他のモバイル装置回路1805と協働する。
【0080】
[0102]コプロセッサ1804は、受信機インターフェイスロジック1802に連結されたバスを含む。受信機インターフェイスロジック1802はCPU114の外部バス1803に連結される。受信機インターフェイスロジック1802はGPS受信機1800と外部処理ユニット1801との間の通信を容易化する。コプロセッサ1804はメモリ1810にさらに連結される。メモリ1810は、GPS受信機1800によって格納された相関結果を解析し、そこから衛星信号パラメータを導き出すためにコプロセッサ1804によって実行されるソフトウェア1812を格納する。
【0081】
[0103]処理チャンネル1041はチャンネルインターフェイス1806及びチャンネル制御ロジック1808を備える。チャンネルインターフェイス1806はコプロセッサ1804のバスに連結される。場合によって、チャンネルインターフェイス1806は受信機インターフェイスロジック1802にさらに連結される。チャンネルインターフェイス1806は、絶対値/ヒストリーRAM1002に連結されたバスとチャンネル制御ロジック1808に連結されたバスを含む。チャンネルインターフェイス1806は、コプロセッサ1804と受信機インターフェイスロジック1802と処理チャンネル1041との間の通信を容易化する。チャンネル制御ロジック1808は、制御信号を搬送波NCO106、符号NCO108、及び畳み込みプロセッサ109に供給するため連結される。制御信号は、畳み込みプロセッサ109の動作モード及びタイミングだけでなく、搬送波NCO106及び符号NCO108の周波数を調節するため使用される。GPS受信機1800が複数の処理チャンネル104を含むならば、各処理チャンネル104のチャンネルインターフェイス1806はコプロセッサ1804に連結され、受信機インターフェイスロジック1802に連結される。
【0082】
[0104]動作中に、CPU114は、1個以上の衛星信号パラメータを獲得するためにコマンドをGPS受信機1800へ供給するためメモリ1010に格納された制御ソフトウェア1850を実行する。例示的な衛星信号パラメータは図19に関して後述される。各コマンドは、所望の衛星信号パラメータが獲得されるようにGPS受信機1800を設定するプログラミングパラメータを含む。このようなプログラミングパラメータは、1個以上の処理チャンネル104のための搬送波NCO106の周波数と、符号NCO108の周波数と、畳み込みプロセッサ109のタイミング及び動作とを含む。設定されると、GPS受信機1800は、標準動作モード又は相関ヒストリーモードのいずれかで衛星信号を処理する。いずれのモードでも、GPS受信機1800は、絶対値/ヒストリーRAM1002内に記憶される相関結果を生成するように動作する。
【0083】
[0105]しかし、上記の実施形態とは異なり、絶対値/ヒストリーRAM1002内に記憶された相関結果は外部処理ユニット1801のCPU114を使用して解析されない。正確に言えば、コプロセッサ1804は、所望の(複数の)衛星信号パラメータを供給するためCPU114によって発行されたコマンドに従って相関結果を解析する。相関結果を解析した後、コプロセッサ1804は解析によって生成された(複数の)衛星信号パラメータを、受信機インターフェイスロジック1802を用いて、CPU114へ供給する。(複数の)衛星信号パラメータが与えられると、CPU114は次に衛星信号パラメータを使用して1個以上の受信機パラメータを決定する。上記のように、このような受信機パラメータは発振器周波数及び受信機クロックタイミングを含む。
【0084】
[0106]このようにして、本発明は、相関結果のより高速な解析を提供し、外部処理回路1801のCPU114に負担をかけない。その上、本発明は、絶対値/ヒストリーRAM1002内に記憶されたすべての相関結果を解析のためCPU114へ供給する必要性を除去する。さらに、所望の(複数の)衛星信号パラメータからなる少量のデータだけがCPU114へ送信される。よって、一実施形態では、受信機インターフェイスロジック1802及びバス1803はシリアルインターフェイスを備える。
【0085】
[0107]図19は本発明による衛星信号パラメータ推定プロセス1900の例示的な実施形態を示すフローチャートである。本実施形態では、GPS受信機は、図18に関して上述したように、コプロセッサを含み、外部プロセッサに連結される。プロセス1900はステップ1902から始まり、そこで、コマンドが1個以上の衛星信号パラメータを獲得するため外部プロセッサからGPS受信機へ発行される。ステップ1904で、GPS受信機内の1個以上のチャンネルがそのコマンドに関連付けられたプログラミングパラメータに従って設定される。ステップ1906で、衛星信号は設定されたチャンネルを用いて処理され、相関結果はメモリ内に記憶される。ステップ1908で、コプロセッサは要求された衛星信号パラメータを生成するため相関結果を解析する。ステップ1910で、要求された衛星信号パラメータは外部プロセッサに供給される。任意のステップ1912は、衛星信号パラメータが1個以上の受信機パラメータを生成するため使用され、その衛星パラメータが次にGPS受信機を設定するため使用される。
【0086】
[0108]図20はコプロセッサ1804の例示的な実施形態を描いているブロック図である。コプロセッサ1804は、一例として、I/Oインターフェイス2002、メモリ2004、複素変調器2008、サポート回路2010、複素電力ユニット2012、複素外積ユニット2014、複素内積ユニット2016、コヒーレント積分ユニット2018、非コヒーレント積分ユニット2020、及び雑音統計ユニット2022に連結されたバス2001を備える。I/Oインターフェイス2002は、外部処理ユニットからのコマンド及びコンフィギュレーションデータだけでなく、GPS受信機の処理チャンネルからI/Q相関結果及び直交相関結果を受信するように設定される。I/Q相関結果はメモリ2004のバッファ2006内に記憶される。コマンド及びコンフィギュレーションデータはコプロセッサのコンポーネントを制御するため使用される。
【0087】
[0109]複素変調器2008は、ドップラーを補償するためI/Q相関結果を周波数調整するため使用される。複素電力ユニット2012は所与のI/Q相関サンプルの平均電力を計算するため使用される。複素外積ユニット2014は第1のI/Q相関結果と第2のI/Q相関結果との間の複素外積を計算するため使用される。複素内積ユニット2016は第1のI/Q相関結果と第2のI/Q相関結果との間の複素内積を計算するため使用される。コヒーレント積分ユニット2018は複数のI/Q相関結果を予め加算するため使用される。非コヒーレント積分ユニット2020は、I/Q相関結果を使用して計算された複数の絶対値結果を加算するため使用される。雑音統計ユニット2022は種々の雑音統計量(例えば、I/Q相関結果の平均値及びシグマ)を計算するため使用される。サポート回路2010は、コプロセッサ1804及び上記のコンポーネントの動作を支援するバッファ、レジスタ、量子化器、カウンタ、及び類似したタイプのロジック回路を備える。
【0088】
[0110]プロセス1900の例示的な実施形態は、図18及び20を参照して理解される。特に、プロセス1900は、CPU114によって発行された種々のコマンドのため必要に応じて繰り返される。このようなコマンドは、例えば、距離測定、高分解能距離測定、ドップラー測定、ナビゲーションデータ測定、又は、ビットタイミング測定の要求を含む。一般に、CPU114は、1個以上の衛星信号パラメータを要求するためコマンドを発行し、GPS受信機1800はコプロセッサ1804を使用して要求された衛星信号パラメータを計算し、GPS受信機1800は要求された衛星信号パラメータをCPU114へ返送する。
【0089】
[0111]例えば、CPU114は距離測定コマンドをGPS受信機1800へ送信する。畳み込みプロセッサ109は、上記のように、標準モードで動作し、複数の相関結果を計算する。距離測定コマンドは、衛星信号と調べるべき基準C/A符号との間の相対的な遅延の範囲を指定する。コプロセッサ1804は最大相関応答(すなわち、相関ピーク)の点を見つけ、そのピークの周辺の範囲の遅延測定量を返送する。コプロセッサ1804は、相関応答の平均値又はシグマのような種々の雑音統計量を決定するために雑音統計ユニット2022を使用して相関結果をさらに解析する。これらの雑音統計量は、相関ピークの信号対雑音比を決定することができる。雑音統計量だけでなく、遅延測定量がその後にCPU114へ供給される。
【0090】
[0112]別の実施形態では、CPU114はドップラー測定コマンドをGPS受信機1800へ送信する。一実施形態では、衛星信号とC/A基準符号との間の1個以上の相対的な符号遅延に対する相関応答は、相関ヒストリーとして絶対値/ヒストリーRAM1002に記憶される。上記のように、相関ヒストリーは、畳み込みプロセッサ109のコヒーレント加算区間毎のIサンプル及びQサンプルを含む。例えば、畳み込みプロセッサ109内のコヒーレント加算区間は1エポックから10エポックまで変化する。相関ヒストリーが所望の期間(例えば、1〜10秒)に亘って記憶された後、コプロセッサ1804は、絶対値ヒストリーRAM1002に記憶された、相関ヒストリーを構成するI相関結果及びQ相関結果を取り出す。コプロセッサ1804は、サンプルからサンプルまでの位相変化を追跡することにより周波数を解析する。特に、周波数は、複素外積ユニット2014によって計算された複素外積を平均化することにより検出される。特に、平均化プロセスは、線形平均化、加重平均化、積分、又は、当分野において既知であるその他の計算技術を備える。複素外積は、I(n−1)Q(n)−Q(n−1)I(n)として定義され、ここで、nはサンプル番号を表し、Iはサンプルの同相値を表し、Qはサンプルの直交値を表す。結果として生じる周波数値はその後にCPU114へ返送される。
【0091】
[0113]上記の周波数解析は所与のドップラー測定コマンドの間に数回実行される。複素外積演算によって提供される周波数推定値は真の周波数と非線形的な関係を有するので、複数回の反復が必要とされる。初期推定が行われた後、周波数誤差は、複素変調器2008を使用して相関ヒストリーのI相関結果及びQ層間結果から除去される。相関ヒストリーはその後に再処理され、新しい周波数値が複素外積演算を用いて決定される。数回反復することにより、周波数推定プロセスは収束する。
【0092】
[0114]別の実施形態では、CPU114はナビゲーションデータ測定コマンドをGPS受信機1800へ送信する。一実施形態では、衛星信号とC/A基準符号との間の1個以上の相対的な符号遅延に対する相関応答は、相関ヒストリーとして絶対値/ヒストリーRAM1002に記憶される。相関ヒストリーは、5又は10エポックのコヒーレント加算区間のような畳み込みプロセッサ109のコヒーレント加算区間毎にIサンプル及びQサンプルを含む。相関ヒストリーが記憶された後、コプロセッサ1804は、50bpsのナビゲーションデータストリームにより構成される180度の位相偏移を見つけるためサンプルからサンプルまでの位相変化を解析する。ビット遷移は、複素内積回路2016を使用して計算された複素内積を閾値化することにより見つけられる。複素内積は、I(n−1)I(n)+Q(n−1)Q(n)として定義され、ここで、nはサンプル番号を表し、Iはサンプルの同相値を表し、Qはサンプルの直交値を表す。ナビゲーションデータビットはビット遷移の有無によって検出される。サインの曖昧さは、初期的にナビゲーションデータに存在し、データ内の既知のプレアンブルシーケンスを検出することによって除かれる。このあいまいさの解明は、データビットが受信された後にCPU114によって実行される。ナビゲーションデータビットはその後にCPU114へ返送される。本発明の一実施形態において、所与のナビゲーションデータ測定コマンドに対し、ドップラー測定コマンドのための上記の周波数推定プロセスは、ナビゲーションデータビットを検出する前に実行される。ドップラー周波数が推定されると、周波数誤差は複素変調器2008を使用して相関ヒストリーから除去され、複素内積演算がナビゲーションデータビットを検出するため実行される。
【0093】
[0115]さらに別の実施形態では、CPU114はビットタイミング測定コマンドをGPS受信機1800へ送信する。一実施形態では、図14に関して説明したビットタイミング測定プロセスはコプロセッサ1804によって実行され、得られたビットタイミング値がCPU114へ返送される。特に、第1のコマンドはCPU114によってGPS受信機1800へ送信され、相関ヒストリーを獲得させ、電力を特定のビット時間/周波数仮説で決定させる。電力は複素電力ユニット2012を用いて決定される。複素電力は、数秒までの長い積分時間を提供するため、図14に関して説明したように、コヒーレント積分と非コヒーレント積分の組み合わせの結果である。付加的なコマンドがその後に、最大電力をもたらす仮説が突き止められるまで、異なるビット時間/周波数仮説で相関ヒストリーを再解析するため送信される。特に、コプロセッサ1804は、図14に関して説明したように、2次元表面上で最大値を探索する。本実施形態は低い信号対雑音比でビットタイミングを決定するために適する。
【0094】
[0116]別の実施形態では、単一のビットタイミング測定コマンドが畳み込みプロセッサ109に相関ヒストリーを生成させる。相関ヒストリーは、およそ1秒の間にエポック毎に記憶されたIデータ及びQデータを含む。コプロセッサ1804はIサンプル及びQサンプルの複素内積を計算する。その結果は、ビット遷移ヒストグラムを形成するため20個の起こり得るビットタイミングオフセットのそれぞれについて加算される。正確なビットタイミングは、大半のビット遷移が起こったビットタイミングオフセットを特定することにより決定される。ヒストグラム値はCPU114へ返送される。本実施形態は高い信号対雑音比でビットタイミングを決定するために適する。
【0095】
[0117]図21はビット測定コマンドに応答して生成されたビットヒストグラムの実施形態を描いている。グラフ2100は相関データ2102を図示し、軸2104は時間を表し、軸2106は絶対値を表す。一例として明確さの目的のため、グラフ2100は相関データ2102の80msセグメントを図示する。しかし、実際には、ビットタイミング測定プロセスは相関データのより長いセグメント(例えば、1〜2秒)上で実行されることが理解されるべきである。複素内積は、上記のように、2値系列2108を生じるため計算され閾値化される。2値系列2108において、‘1’は、閾値化された内積によって検出されたとおりの相関データ2102の位相の遷移の存在を指し示す。逆に、2値系列2108内の‘0’は、相関データ2102中の位相遷移の不存在を指し示す。上記のように、位相遷移は20ms毎に相関データ2102内で起こるはずである。したがって、2値系列2108は、20ms毎(例えば、0ms、20ms、40ms、60ms及び80ms)に‘1’を含む。しかし、雑音を考えると、相関データ2102が位相遷移を含まない場合でも、内積の値はスレッショルドを超えることが時々ある。よって、2値系列2108は、1個以上の偽の場所(例えば、6ms、34ms、57ms、及び72ms)に1を含む。
【0096】
[0118]ヒストグラム2101は、20個の起こり得るビット位相のそれぞれで出現する1の個数を記録するために形成される。ヒストグラム2101は、ビンを表す軸2110と、ビット遷移の回数を表す軸2111を含む。本実施形態では、ヒストグラム2101の例21011〜21014は、それぞれ、相関データ2102の20ms、40ms、60ms及び80ms後に示されている。上記のように、20個の起こり得るビットタイミングオフセットがある。よって、ヒストグラム2102は20個の別個のビン2110を含む。本実施形態では、ビン2110の零番目に増加するヒストグラム値2112によって示されるように、真のビット位相は零である。相関データ2102内の雑音が原因となって、ヒストグラム2101は他のビン2110に値2114を含む。この理由のため、ヒストグラム2101は、真のビット位相を確実に決定するため、相関データ2102の多数の20ミリ秒サイクルに亘って使用される。その上、検出プロセスは基礎となる相関データ2102内のビット遷移の存在に依拠するので、最小限の量の相関データ2102が、ビット位相の確実な決定のため適切な個数の位相遷移を保証するために、獲得されるべきである。4回の20ミリ秒サイクルの後に明白であるように、値2112は雑音によって誘起された値2114より速く増大する。実際には、ヒストグラム2101は相関データ2102のはるかに多数の20ミリ秒サイクルに亘って計算される。
【0097】
[0119]上記の演算のいずれかを実行する前に、コプロセッサ1804は、コヒーレント積分ユニット2018を使用して事前加算演算を実行する。例えば、1ミリ秒区間で生成された相関ヒストリーから、相関ヒストリーのI相関結果及びQ相関結果のグループが、上記の信号パラメータ(例えば、周波数、ナビゲーションデータ、ビットタイミング)を決定する前に、コプロセッサ1804においてコヒーレントに加算される。このコヒーレント加算は信号対雑音比を改善する。例えば、ビットタイミング及び周波数が既知であるならば、ナビゲーションデータビットを測定する前に20msに亘って事前加算する方が望ましい。
【0098】
[0120]当業者は、コプロセッサ1804が畳み込みプロセッサ109によって生成された相関結果の集合に、一部の演算が既に説明されている、任意の回数の演算を実行できることを理解する。その上、上記の演算(例えば、周波数、ナビゲーションデータ測定、ビットタイミング)は、1個以上の衛星信号パラメータを決定するため、単独で、又は、組み合わせて実行される。さらに、当業者は、複素外積演算及び複素内積演算が、周波数及びビット遷移測定を行うために使用される唯一の演算ではないということを理解するであろう。例えば、GPS追跡ループのため開発された種々のその他の周波数弁別器及びビットタイミング識別器が本発明との関連で適用される。例えば、Kaplan,D Elliott,“Understanding GPS Princpals and Applications”,Artech House Inc,1996(特に、第5章、セクション5.1.2.3 周波数ロックループ、 表5.4)を参照されたい。本発明では、これらのアルゴリズムは、リアルタイム反復アルゴリズムとして本来の公式で実施されるのではなく、コプロセッサによって相関ヒストリーに実行される後処理演算として実施される。
【0099】
[0121]本発明の教示を組み込む種々の実施形態が示され、本明細書において詳細に説明されているが、当業者はこれらの教示を依然として組み込む多数のその他の変形された実施形態に容易に想到する。
【図面の簡単な説明】
【0100】
【図1】本発明を構成するGPS受信機のブロック図を示す。
【図2】本発明によって生成される波形の一実施形態を示す。
【図3】図2の積算絶対値波形の細部を示す。
【図4】畳み込みプロセッサ及び畳み込み結果処理回路の詳細なブロック図を示す。
【図5】本発明の動作の方法のフローチャートを描いている。
【図6】従来の形で完全な畳み込みを計算する簡略化された実施形態を図式的に図示する。
【図7】本発明を使用して図6の完全な畳み込みが実行される方法を図式的に図示する。
【図8】本発明で使用するのに適した符号ルックアップ装置の実施形態を図示する。
【図9】本発明の代替的な実施形態で使用するのに適した2次元符号シフトレジスタの実施形態を図示する。
【図10】相関ヒストリーモードで動作する能力を備えた相関器のブロック図を描いている。
【図11】RAMの長さを描いている。
【図12】図10の相関器によって処理されるI信号及びQ信号を描いている。
【図13】相関ヒストリーモードを使用して信号処理を実行する方法のフローチャートである。
【図14】周波数及びビットタイミング推定値対電力推定値の3次元グラフである。
【図15】周波数軸に沿った図14のグラフの断面図である。
【図16】ビットタイミング軸に沿った図15のグラフの断面図である。
【図17】相関ヒストリーモードを使用する相関プロセスのフローチャートである。
【図18】外部処理ユニットに連結されたGPS受信機の別の実施形態を示すブロック図である。
【図19】本発明による衛星信号パラメータ推定プロセスの例示的な実施形態を描いているフローチャートである。
【図20】図18のGPS受信機内のコプロセッサの例示的な実施形態を示すブロック図である。
【図21】ビットタイミング測定コマンドに応答して生成されるビットヒストグラムの一実施形態を描いている。
【特許請求の範囲】
【請求項1】
衛星測位システム受信機において衛星信号パラメータを推定する方法であって、
プロセッサからのコマンドに応答して衛星信号と基準信号との間で複数の相関結果を生成するステップと、
前記衛星測位システム受信機内に統合されたコプロセッサを使用して前記複数の相関結果から少なくとも1個の衛星信号パラメータを推定するステップと、
前記少なくとも1個の衛星信号パラメータを前記プロセッサに供給するステップと、
を備える方法。
【請求項2】
前記少なくとも1個の衛星信号パラメータを使用して少なくとも1個の受信機パラメータを推定するステップをさらに備える、請求項1に記載の方法。
【請求項3】
前記複数の相関結果が前記衛星信号と前記基準信号との間の少なくとも1個の相対的な時間遅延の一つずつに対応する相関結果の少なくとも1個の系列によって定められる相関ヒストリーを備える、請求項1に記載の方法。
【請求項4】
前記少なくとも1個の衛星信号パラメータが前記衛星測位システム受信機と相対的な前記衛星信号のドップラーオフセットを備える、請求項3に記載の方法。
【請求項5】
前記推定するステップが、
前記相関ヒストリーを使用して複数の複素外積を計算するステップと、
前記ドップラーオフセットを計算するため前記複素外積を組み合わせるステップと、
を備える、請求項4に記載の方法。
【請求項6】
前記推定するステップが、
前記ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正する工程と、
前記ドップラーオフセットを再計算するため前記周波数訂正された相関ヒストリーを使用して前記計算するステップ及び平均化するステップを繰り返す工程と、
をさらに備える、請求項5に記載の方法。
【請求項7】
前記推定するステップが、所定の区間に亘って前記相関ヒストリーを積分する工程をさらに備える、請求項5に記載の方法。
【請求項8】
前記ドップラーオフセットに応じて前記衛星測位システム受信機内の発振器の周波数を推定するステップをさらに備える、請求項4に記載の方法。
【請求項9】
前記少なくとも1個の衛星信号パラメータがナビゲーションデータビットを含む、請求項3に記載の方法。
【請求項10】
前記推定するステップが、
前記相関ヒストリーを使用して複数の複素内積を計算する工程と、
前記相関ヒストリー内の位相遷移を識別するため前記複数の複素内積を閾値化する工程と、
を備える、請求項9に記載の方法。
【請求項11】
前記推定するステップが、ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正する工程をさらに備える、請求項10に記載の方法。
【請求項12】
前記推定するステップが、所定の区間に亘って前記相関ヒストリーを積分する工程をさらに備える、請求項10に記載の方法。
【請求項13】
前記少なくとも1個の衛星信号パラメータが前記衛星信号のナビゲーションビットタイミングを備える、請求項3に記載の方法。
【請求項14】
前記推定するステップが、前記相関ヒストリーに応じて、1個以上の受信機周波数及びビットタイミング仮説を使用して信号レベルの複数の推定値を決定する工程を備える、請求項13に記載の方法。
【請求項15】
前記推定するステップが、
前記相関ヒストリーを使用して複数の複素内積を計算する工程と、
ビットタイミングオフセットを選択する工程と、
前記選択されたビットタイミングオフセットに対応する前記複数の複素内積からの複素内積を加算する工程と、
ヒストグラムを形成するため複数のビットタイミングオフセットを前記選択するステップ及び前記加算するステップを繰り返す工程と、
を備える、請求項13に記載の方法。
【請求項16】
前記推定するステップが、ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正する工程をさらに備える、請求項15に記載の方法。
【請求項17】
前記推定するステップが、前記相関ヒストリーを所定の区間に亘って積分する工程をさらに備える、請求項15に記載の方法。
【請求項18】
前記ナビゲーションビットタイミングを使用して前記衛星測位システム受信機に関連付けられたタイミング誤差を推定する工程をさらに備える、請求項13に記載の方法。
【請求項19】
前記少なくとも1個の衛星信号パラメータが前記衛星信号に関連付けられた少なくとも1個の雑音統計測定量を備える、請求項1に記載の方法。
【請求項20】
さらなる相関を実行するときに前記衛星測位システム受信機を設定するために前記少なくとも1個の衛星信号パラメータを使用するステップをさらに備える、請求項1に記載の方法。
【請求項21】
前記生成するステップが前記複数の相関結果を前記衛星測位システム受信機内のメモリに格納する工程を備える、請求項1に記載の方法。
【請求項22】
衛星測位システム受信機において衛星信号パラメータを推定する装置であって、
プロセッサからのコマンドに応答して衛星信号と基準信号との間で複数の相関結果を生成する相関器と、
前記衛星測位システム受信機内に統合され、前記複数の相関結果から少なくとも1個の衛星信号パラメータを推定するコプロセッサと、
前記少なくとも1個の衛星信号パラメータを前記プロセッサに供給する手段と、
を備える装置。
【請求項23】
前記複数の相関結果を記憶するメモリをさらに備える、請求項22に記載の装置。
【請求項24】
前記コプロセッサが、
前記複数の相関結果を周波数訂正する複素変調器と、
前記複数の相関結果に応じて電力を計算する複素電力ユニットと、
前記複数の相関結果に応じて複素外積を計算する複素外積ユニットと、
前記複数の相関結果に応じて複素内積を計算する複素内積ユニットと、
前記複数の相関結果をコヒーレント積分するコヒーレント積分ユニットと、
前記複数の相関結果を非コヒーレント積分する非コヒーレント積分ユニットと、
前記複数の相関結果に応じて雑音統計量を決定する雑音統計ユニットと、
のうちの少なくとも一つを備える、請求項22に記載の装置。
【請求項25】
前記複数の相関結果が前記衛星信号と前記基準信号との間の少なくとも1個の相対的な時間遅延の一つずつに対応する相関結果の少なくとも1個の系列によって定められる相関ヒストリーを備える、請求項22に記載の装置。
【請求項26】
前記コプロセッサが、前記相関ヒストリーを使用して複数の複素外積を計算し、ドップラーオフセットを計算するため前記複素外積を組み合わせるように適合された、請求項25に記載の装置。
【請求項27】
前記コプロセッサが、前記ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正し、前記周波数訂正された相関ヒストリーに応じて前記ドップラーオフセットを再計算するようにさらに適合された、請求項26に記載の装置。
【請求項28】
前記コプロセッサが、前記相関ヒストリーを所定の区間に亘って積分するようにさらに適合された、請求項26に記載の装置。
【請求項29】
前記コプロセッサが、前記相関ヒストリーを使用して複数の複素内積を計算し、前記相関ヒストリー内の位相遷移を識別するため前記複数の複素内積を閾値化するように適合された、請求項25に記載の装置。
【請求項30】
前記コプロセッサが、ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正するようにさらに適合された、請求項29に記載の装置。
【請求項31】
前記コプロセッサが、前記相関ヒストリーを所定の区間に亘って積分するようにさらに適合された、請求項29に記載の装置。
【請求項32】
前記コプロセッサが、
前記相関ヒストリーを使用して複数の複素内積を計算し、
ビットタイミングオフセットを選択し、
前記選択されたビットタイミングオフセットに対応する前記複数の複素内積からの複素内積を加算し、
ヒストグラムを形成するため複数のビットタイミングオフセットの選択と加算を繰り返すように適合された、
請求項25に記載の装置。
【請求項33】
前記コプロセッサが、ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正するようにさらに適合された、請求項32に記載の装置。
【請求項34】
前記コプロセッサが、前記相関ヒストリーを所定の区間に亘って積分するようにさらに適合された、請求項32に記載の装置。
【請求項35】
前記コプロセッサが、前記複数の相関結果に応じて少なくとも1個の雑音統計量を計算するように適合された、請求項22に記載の装置。
【請求項1】
衛星測位システム受信機において衛星信号パラメータを推定する方法であって、
プロセッサからのコマンドに応答して衛星信号と基準信号との間で複数の相関結果を生成するステップと、
前記衛星測位システム受信機内に統合されたコプロセッサを使用して前記複数の相関結果から少なくとも1個の衛星信号パラメータを推定するステップと、
前記少なくとも1個の衛星信号パラメータを前記プロセッサに供給するステップと、
を備える方法。
【請求項2】
前記少なくとも1個の衛星信号パラメータを使用して少なくとも1個の受信機パラメータを推定するステップをさらに備える、請求項1に記載の方法。
【請求項3】
前記複数の相関結果が前記衛星信号と前記基準信号との間の少なくとも1個の相対的な時間遅延の一つずつに対応する相関結果の少なくとも1個の系列によって定められる相関ヒストリーを備える、請求項1に記載の方法。
【請求項4】
前記少なくとも1個の衛星信号パラメータが前記衛星測位システム受信機と相対的な前記衛星信号のドップラーオフセットを備える、請求項3に記載の方法。
【請求項5】
前記推定するステップが、
前記相関ヒストリーを使用して複数の複素外積を計算するステップと、
前記ドップラーオフセットを計算するため前記複素外積を組み合わせるステップと、
を備える、請求項4に記載の方法。
【請求項6】
前記推定するステップが、
前記ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正する工程と、
前記ドップラーオフセットを再計算するため前記周波数訂正された相関ヒストリーを使用して前記計算するステップ及び平均化するステップを繰り返す工程と、
をさらに備える、請求項5に記載の方法。
【請求項7】
前記推定するステップが、所定の区間に亘って前記相関ヒストリーを積分する工程をさらに備える、請求項5に記載の方法。
【請求項8】
前記ドップラーオフセットに応じて前記衛星測位システム受信機内の発振器の周波数を推定するステップをさらに備える、請求項4に記載の方法。
【請求項9】
前記少なくとも1個の衛星信号パラメータがナビゲーションデータビットを含む、請求項3に記載の方法。
【請求項10】
前記推定するステップが、
前記相関ヒストリーを使用して複数の複素内積を計算する工程と、
前記相関ヒストリー内の位相遷移を識別するため前記複数の複素内積を閾値化する工程と、
を備える、請求項9に記載の方法。
【請求項11】
前記推定するステップが、ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正する工程をさらに備える、請求項10に記載の方法。
【請求項12】
前記推定するステップが、所定の区間に亘って前記相関ヒストリーを積分する工程をさらに備える、請求項10に記載の方法。
【請求項13】
前記少なくとも1個の衛星信号パラメータが前記衛星信号のナビゲーションビットタイミングを備える、請求項3に記載の方法。
【請求項14】
前記推定するステップが、前記相関ヒストリーに応じて、1個以上の受信機周波数及びビットタイミング仮説を使用して信号レベルの複数の推定値を決定する工程を備える、請求項13に記載の方法。
【請求項15】
前記推定するステップが、
前記相関ヒストリーを使用して複数の複素内積を計算する工程と、
ビットタイミングオフセットを選択する工程と、
前記選択されたビットタイミングオフセットに対応する前記複数の複素内積からの複素内積を加算する工程と、
ヒストグラムを形成するため複数のビットタイミングオフセットを前記選択するステップ及び前記加算するステップを繰り返す工程と、
を備える、請求項13に記載の方法。
【請求項16】
前記推定するステップが、ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正する工程をさらに備える、請求項15に記載の方法。
【請求項17】
前記推定するステップが、前記相関ヒストリーを所定の区間に亘って積分する工程をさらに備える、請求項15に記載の方法。
【請求項18】
前記ナビゲーションビットタイミングを使用して前記衛星測位システム受信機に関連付けられたタイミング誤差を推定する工程をさらに備える、請求項13に記載の方法。
【請求項19】
前記少なくとも1個の衛星信号パラメータが前記衛星信号に関連付けられた少なくとも1個の雑音統計測定量を備える、請求項1に記載の方法。
【請求項20】
さらなる相関を実行するときに前記衛星測位システム受信機を設定するために前記少なくとも1個の衛星信号パラメータを使用するステップをさらに備える、請求項1に記載の方法。
【請求項21】
前記生成するステップが前記複数の相関結果を前記衛星測位システム受信機内のメモリに格納する工程を備える、請求項1に記載の方法。
【請求項22】
衛星測位システム受信機において衛星信号パラメータを推定する装置であって、
プロセッサからのコマンドに応答して衛星信号と基準信号との間で複数の相関結果を生成する相関器と、
前記衛星測位システム受信機内に統合され、前記複数の相関結果から少なくとも1個の衛星信号パラメータを推定するコプロセッサと、
前記少なくとも1個の衛星信号パラメータを前記プロセッサに供給する手段と、
を備える装置。
【請求項23】
前記複数の相関結果を記憶するメモリをさらに備える、請求項22に記載の装置。
【請求項24】
前記コプロセッサが、
前記複数の相関結果を周波数訂正する複素変調器と、
前記複数の相関結果に応じて電力を計算する複素電力ユニットと、
前記複数の相関結果に応じて複素外積を計算する複素外積ユニットと、
前記複数の相関結果に応じて複素内積を計算する複素内積ユニットと、
前記複数の相関結果をコヒーレント積分するコヒーレント積分ユニットと、
前記複数の相関結果を非コヒーレント積分する非コヒーレント積分ユニットと、
前記複数の相関結果に応じて雑音統計量を決定する雑音統計ユニットと、
のうちの少なくとも一つを備える、請求項22に記載の装置。
【請求項25】
前記複数の相関結果が前記衛星信号と前記基準信号との間の少なくとも1個の相対的な時間遅延の一つずつに対応する相関結果の少なくとも1個の系列によって定められる相関ヒストリーを備える、請求項22に記載の装置。
【請求項26】
前記コプロセッサが、前記相関ヒストリーを使用して複数の複素外積を計算し、ドップラーオフセットを計算するため前記複素外積を組み合わせるように適合された、請求項25に記載の装置。
【請求項27】
前記コプロセッサが、前記ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正し、前記周波数訂正された相関ヒストリーに応じて前記ドップラーオフセットを再計算するようにさらに適合された、請求項26に記載の装置。
【請求項28】
前記コプロセッサが、前記相関ヒストリーを所定の区間に亘って積分するようにさらに適合された、請求項26に記載の装置。
【請求項29】
前記コプロセッサが、前記相関ヒストリーを使用して複数の複素内積を計算し、前記相関ヒストリー内の位相遷移を識別するため前記複数の複素内積を閾値化するように適合された、請求項25に記載の装置。
【請求項30】
前記コプロセッサが、ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正するようにさらに適合された、請求項29に記載の装置。
【請求項31】
前記コプロセッサが、前記相関ヒストリーを所定の区間に亘って積分するようにさらに適合された、請求項29に記載の装置。
【請求項32】
前記コプロセッサが、
前記相関ヒストリーを使用して複数の複素内積を計算し、
ビットタイミングオフセットを選択し、
前記選択されたビットタイミングオフセットに対応する前記複数の複素内積からの複素内積を加算し、
ヒストグラムを形成するため複数のビットタイミングオフセットの選択と加算を繰り返すように適合された、
請求項25に記載の装置。
【請求項33】
前記コプロセッサが、ドップラーオフセットを使用して前記相関ヒストリーを周波数訂正するようにさらに適合された、請求項32に記載の装置。
【請求項34】
前記コプロセッサが、前記相関ヒストリーを所定の区間に亘って積分するようにさらに適合された、請求項32に記載の装置。
【請求項35】
前記コプロセッサが、前記複数の相関結果に応じて少なくとも1個の雑音統計量を計算するように適合された、請求項22に記載の装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公表番号】特表2007−510891(P2007−510891A)
【公表日】平成19年4月26日(2007.4.26)
【国際特許分類】
【出願番号】特願2006−536804(P2006−536804)
【出願日】平成16年10月21日(2004.10.21)
【国際出願番号】PCT/US2004/034954
【国際公開番号】WO2005/040845
【国際公開日】平成17年5月6日(2005.5.6)
【出願人】(504174973)グローバル ロケート, インコーポレイテッド (6)
【Fターム(参考)】
【公表日】平成19年4月26日(2007.4.26)
【国際特許分類】
【出願日】平成16年10月21日(2004.10.21)
【国際出願番号】PCT/US2004/034954
【国際公開番号】WO2005/040845
【国際公開日】平成17年5月6日(2005.5.6)
【出願人】(504174973)グローバル ロケート, インコーポレイテッド (6)
【Fターム(参考)】
[ Back to top ]