(57)【要約】  汎用プロセッサ上で実行するリアルタイム・ソフトウェア・レシーバ（１０）は、データ取得（１７）と、ハードウェア相互関係の代わりに、ビット単位並列処理を用いてベースバンド混合及びＰＲＮコードの相関関係を実行する相関モジュール（１９）とを含む。【選択図】図１
2007525039.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア・レシーバ（１０）であって、
無線信号を受信できるレシーバ（１１）と、
前記無線信号をディジタル化（１７）する手段と、
前記ディジタル化無線信号（２１）をビット単位並列処理を用いてベースバンド信号（２３）を形成すべく混合できるソフトウェア相関器（１９）と、
を備えるソフトウェア・レシーバ（１０）。
【請求項２】
前記ソフトウェア相関器（１９）が、
前記ベースバンド信号（２３）及び少なくとも１つの擬似乱数（ＰＲＮ）コード（２９）の間の相互関係を前記ビット単位並列処理を用いて計算する手段を備える、請求項１に記載のソフトウェア・レシーバ（１０）
【請求項３】
前記ソフトウェア相関器（１９）が、
前記相互関係から累積（４５）を前記ビット単位並列処理を用いて計算する手段を更に備える、請求項２に記載のソフトウェア・レシーバ（１０）。
【請求項４】
前記累積（４５）を用いてナビゲーション・データを計算できる用途特定コード（１５）を更に備える、請求項３に記載のソフトウェア・レシーバ（１０）。
【請求項５】
ディジタル化（１７）を為す前記手段が、
前記無線信号（１２）を中間周波数に逓減変換する手段と、
前記中間周波数をディジタル化できるディジタイザと、
を含む、請求項１乃至４の内の何れか一項に記載のソフトウェア・レシーバ（１０）。
【請求項６】
前記ディジタイザが少なくとも１つのビット  サンプルを作り出す、請求項５に記載のソフトウェア・レシーバ（１０）。
【請求項７】
前記ディジタイザがアナログ・ディジタル変換器である、請求項５に記載のソフトウェア・レシーバ（１０）。
【請求項８】
少なくとも１つの無線周波数（ＲＦ）信号（２１）を累積期間にわたって処理する方法であって、
少なくとも１つのＲＦ信号（２１）を受信する段階と、
前記少なくとも１つのＲＦ信号（２１）をビット単位並列処理を用いてベースバンド混合信号（２３）を形成すべく混合する段階と、
前記ベースバンド混合信号（２３）の関数として完全混合プロンプト被積分関数（３１）、事前選択擬似乱数（ＰＲＮ）コード（２９）及び（３５）を、前記ビット単位並列処理を用いて計算する段階と、
前記ベースバンド混合信号（２３）の関数として完全混合アーリー-マイナス-レイト被積分関数（３３）、事前選択ＰＲＮコード（２９）及び（３５）を、前記ビット単位並列処理を用いて計算する段階と、
同位相累積及び直角位相累積（４５），（４７）を累積期間にわたって計算する段階であり、前記同位相及び直角位相合計累積（４５），（４７）が完全混合プロンプト被積分関数（３１）及び完全混合アーリー-マイナス-レイト被積分関数（３３）の関数であることから成る段階と、
前記同位相及び直角位相累積（４５），（４７）を回転して、前記ベースバンド混合信号（２３）の周波数及び位相粒状度の効果を補正する段階と、
の諸段階を含む方法。
【請求項９】
複数のチャネルからの複数の信号に対するプロンプト及びアーリー-マイナス-レイトの同位相及び直角位相合計累積（４５），（４７）を計算する方法であって、
前記複数のチャネルの内の少なくとも１つのチャネルから、搬送波レプリカ符号（２５Ａ）及び搬送波レプリカ・マグニチュード（２５Ｂ）として、搬送波レプリカ信号（２５）を表現する段階と、
前記複数のチャネルの内の前記少なくとも１つのチャネルから、少なくとも１つの信号ワード（２１Ａ）として信号データ（２１）を表現する段階と、
前記搬送波レプリカ符号（２５Ａ）及び前記少なくとも１つの信号ワード（２１Ａ）の関数としてベースバンド混合符号（２３Ａ）を計算する段階と、
前記搬送波レプリカ・マグニチュード（２５Ｂ）の関数としてベースバンド混合マグニチュード（２３Ｂ），（２３Ｃ）を計算する段階と、
プロンプトＰＲＮコード（２９）及びアーリー-マイナス-レイトＰＲＮコード（３５）を有する擬似乱数（ＰＲＮ）コードを選択する段階と、
プロンプトＰＲＮコード符号（２９Ａ）として前記プロンプトＰＲＮコード（２９）を表現する段階と、
前記ベースバンド混合符号（２３Ａ）及び前記プロンプトＰＲＮコード符号（２９Ａ）の関数として完全混合プロンプト被積分関数符号（３１Ａ）を計算する段階と、
アーリー-マイナス-レイトＰＲＮコード符号（３５Ａ）及びアーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク（３５Ｂ）として前記アーリー-マイナス-レイトＰＲＮコード（３５）を表現する段階と、
前記ベースバンド混合符号（２３Ａ）及び前記アーリー-マイナス-レイトＰＲＮコード符号（３５Ａ）の関数として完全混合アーリー-マイナス-レイト被積分符号（３３Ａ）を計算する段階と、
前記完全混合プロンプト被積分関数符号（３１Ａ）及び前記ベースバンド混合マグニチュード（２３Ｂ），（２３Ｃ）の関数として、プロンプト被積分関数値ワード（２７）から成る少なくとも１つの集合を計算する段階と、
前記完全混合アーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク（３５Ｂ）、前記ベースバンド混合マグニチュード（２３Ｂ），（２３Ｃ）、並びに、アーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク（３５Ｂ）の関数として、アーリー-マイナス-レイト被積分値ワード（３７）から成る少なくとも１つの集合を計算する段階と、
プロンプト被積分関数値ワード（２７）から成る前記少なくとも１つの集合における有効ビットの数の関数として、且つ、プロンプト被積分関数値ワード（２７）から成る前記少なくとも１つの集合と関連された値の関数として、累積間隔のために、前記複数のチャネルに対するプロンプト同位相及び直角位相合計累積（４５）を計算する段階と、
アーリー-マイナス-レイト被積分値ワード（３７）から成る前記少なくとも１つの集合における重要なビットの数の関数として、且つ、アーリー-マイナス-レイト被積分値ワード（３７）から成る前記少なくとも１つの集合と関連された値の関数として、前記複数のチャネルに対するアーリー-マイナス-レイト同位相及び直角位相合計累積（４７）を計算する段階と、
の諸段階を含む方法。
【請求項１０】
ゼロ及び１から成るグループから前記有効ビットを選択する段階を更に含む、請求項９に記載の方法。
【請求項１１】
信号符号（２１Ａ）及び信号マグニチュード（２１Ｂ）として前記少なくとも１つのチャネルから前記信号ワードを表現する段階と、
前記搬送波レプリカ・マグニチュード（２５Ｂ）及び前記信号マグニチュード（２１Ｂ）の関数として、少なくとも１つのベースバンド混合マグニチュード（２３Ｂ），（２３Ｃ）を計算する段階と、
を更に含む、請求項９或は１０に記載の方法。
【請求項１２】
周波数の粗いグリッドを表現する搬送波レプリカ・テーブルから前記搬送波レプリカ信号（２５）を検索する段階を更に含む、請求項９乃至１１の内の何れか一項に記載の方法。
【請求項１３】
ソフトウェア・レシーバ（１０）であって、
無線信号（１２）を受信できるフロントエンド装置（１３）であり、前記無線信号（１２）を信号データ（２１）に変換できるフロントエンド装置（１３）と、
前記信号データ（２１）を受信できるデータ取得装置（１７）であり、前記信号データ（２１）をマイクロプロセッサ（１６）に提供できるデータ取得装置（１７）と、
前記信号データ（２１）を少なくとも１つのデータ・ワードに詰めることができる少なくとも１つのシフトレジスタと、
前記少なくとも１つのデータ・ワードの関数として、少なくとも１つのベースバンド混合信号（２３）をビット単位並列処理を用いることによって計算できるベースバンド・ミキサーと、
前記ベースバンド混合信号（２３）及び擬似乱数（ＰＲＮ）コード・レプリカ信号（２９），（３５）の間の相互関係を計算できる相関器と、
前記相互関係を累積することによって合計累積（４５），（４７）を計算できる累積器と、
を備えるソフトウェア・レシーバ（１０）。
【請求項１４】
前記信号データ（２１）が信号符号（２１Ａ）を更に含む、請求項１３に記載のソフトウェア・レシーバ（１０）。
【請求項１５】
前記信号データ（２１）が信号符号（２１Ａ）と少なくとも１つの信号マグニチュード（２１Ｂ）とを更に含む、請求項１３に記載のソフトウェア・レシーバ（１０）。
【請求項１６】
前記相関器が前記相互関係を計算するために前記ビット単位並列処理を用いる、請求項１３乃至１５の内の何れか一項に記載のソフトウェア・レシーバ（１０）。
【請求項１７】
前記累積器が電子機構によって前記相互関係を累積する、請求項１３乃至１６の内の何れか一項に記載のソフトウェア・レシーバ（１０）。
【請求項１８】
前記無線信号（１２）が全地球測位ソースから受信され得る、請求項１３乃至１７の内の何れか一項に記載のソフトウェア・レシーバ（１０）。
【請求項１９】
前記相関器が、任意周波数での前記無線信号（１２）を受け入れること、任意のＰＲＮコード（２９），（３５）を受け入れること、そして、無線信号（１２）を発生する任意の装置からの前記無線信号（１２）を受け入れることから成るグループから選択される機能を実行できる、請求項１３乃至１８の内の何れか一項に記載のソフトウェア・レシーバ（１０）。
【請求項２０】
過剰サンプリング・プロンプト及びアーリー-マイナス-レイト擬似乱数（ＰＲＮ）コード（２９），（３５）をビット単位並列フォーマットで発生する方法であって、
コード・チップ及びタイミング情報の過剰サンプリング・プロンプト及びアーリー-マイナス-レイトＰＲＮコード（２９），（３５）への前記ビット単位並列フォーマットでの変換用の表形式機能を公式化する段階と、
少なくとも１つのプロンプトＰＲＮコード（２９）をリアルタイムで発生する段階と、
前記少なくとも１つのＰＲＮコード（２９）から少なくとも１つのチップ値を選択する段階であり、該少なくとも１つのチップ値がデータ・ワードの少なくとも１つのサンプルを含む少なくとも１つのデータ間隔と対応すると共にその少なくとも１つのデータ間隔に対する既知のタイミングを有することから成る段階と、
前記相対的なタイミングを時間グリッド・インデックスに変換する段階と、
前記少なくとも１つのチップ値と前記少なくとも１つのデータ間隔中の前記時間グリッド・インデックスを、前記少なくとも１つのデータ間隔に対してビット単位並列フォーマットで、前記過剰サンプリング／プロンプト及びアーリー-マイナス-レイトＰＲＮコード（２９），（３５）に変換する段階であり、その変換が前記表形式機能の使用から生ずることからなる段階と、
の諸段階を含む方法。
【請求項２１】
時間オフセット・インデックスｋｖ及び補助テーブル・インデックスμｖの関数として前記時間グリッド・インデックスを計算する段階を更に含む、請求項２０に記載の方法  。
【請求項２２】
先行して計算された時間グリッド・インデックス、前記少なくとも１つのプロンプトＰＲＮコード（２９）、並びに、前記少なくとも１つのプロンプトＰＲＮコード（２９）と関連されたタイミング値の関数として、反復的に、前記時間グリッド・インデックスを計算する段階を更に含む、請求項２０或は２１に記載の方法。
【請求項２３】
ビット単位並列表現で事前計算テーブル内に記憶される過剰サンプリングプロンプト及びアーリー-マイナス-レイト擬似乱数（ＰＲＮ）コード（２９），（３５）データ／ワードを用いる方法であって、
ＲＦデータ・サンプル時間に対して測定された過剰サンプリング・プロンプト及びアーリー-マイナス-レイトＰＲＮコード（２９），（３５）始動時間に基づき前記過剰サンプリング・プロンプト及びアーリー-マイナス-レイトＰＲＮコード（２９），（３５）を選択する段階であり、前記過剰サンプリングプロンプト及びアーリー-マイナス-レイトＰＲＮコードの中間点を所望のＰＲＮコードの中間点と略符合させることを含む段階と、
前記過剰サンプリング・プロンプト及びアーリー-マイナス-レイトＰＲＮコード（２９），（３５）データ・ワードをビット・シフトする段階であり、前記過剰サンプリング・プロンプト及びアーリー-マイナス-レイトＰＲＮコード（２９），（３５）始動時間が事前選択サンプル間隔と対応していることを保証する段階と、
の諸段階を含む方法。
【請求項２４】
擬似乱数（ＰＲＮ）コード（２９），（３５）の位相を追跡してそのチップのタイミングを追跡する方法であって、
ＰＲＮコード位相、搬送波位相、エポック・カウンタ、並びに、事前特定化された時間の搬送波周波数をラッチする段階と、
前記ＰＲＮコード位相及び前記エポック・カウンタを用いて擬似範囲を計算する段階と、
コード・チッピング率及び搬送波ドップラー偏移入力を推定することによって前記ＰＲＮコード位相及び前記搬送波位相を追跡し更新する段階と、
前記更新されたコード・チッピング率及び前記事前特定化時間の関数として、前記事前特定化時間での前記ＰＲＮコード位相を計算する段階と、
の諸段階を含む方法。
【請求項２５】
請求項８に記載の方法を実行できるコンピュータ・ネットワークにおけるノード。
【請求項２６】
請求項８に記載の方法を実行する少なくとも１つのノードを含む通信ネットワーク。
【請求項２７】
ネットワークにおけるコンピュータ・システムに請求項８に記載の方法を実行させることができる情報を担持するコンピュータ・ネットワークにわたって移動する電磁信号において実施されるコンピュータ・データ信号。
【請求項２８】
請求項８に記載の方法の実行のため、実施されるべき指示を有するコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
政府所有権の陳述
この発明は、契約番号Ｎ０００１４−Ｊ−１８２２に基づく、海軍研究事務所（ＯＮＲ）と契約番号ＮＣＣ５−５６３、ＮＡＧ５−１１８１９、及び、ＮＡＧ５−１２０８９に基づく、航空宇宙局とからの合衆国政府支援で為された。合衆国政府はこの発明において特定の権利を有する。
【０００２】
発明の背景
この発明は、全般的には、ソフトウェア無線レシーバに関し、より詳細には測位システム用のソフトウェア・レシーバに関する。
【背景技術】
【０００３】
全地球測位システム（ＧＰＳ）に用いられているもの等の典型的な測位システム・レシーバは、アンテナ、無線周波数（ＲＦ）区分、相関器、信号追尾及び復調構成要素、並びに、ナビゲーション解決を計算する構成要素を含む。事前増幅器が後に続き得るアンテナはＬ帯域ＧＰＳ信号を受信する。ＲＦ区分はＧＨｚ ＧＰＳ信号をフィルタしてＭＨｚ範囲の中間周波数に周波数逓降変換する。またこのＲＦ区分はその信号をディジタル化する。相関器は逓降変換された信号を衛星に割り当てられた各種々のチャネル（現代のレシーバでは１０個或はそれ以上）に分離する。各衛星に対して、相関器はドップラー偏移中間周波数信号を搬送波レプリカ信号のローカルコピーと相関させることによってベースバンドに混合し、その信号を擬似乱数（ＰＲＮ）コードと相関させることによって特定の衛星を区別する。ソフトウェア・ルーチンは搬送波レプリカ及びＰＲＮレプリカの信号に実際に受信された信号を追跡させ、ナビゲーション・メッセージを抽出し、そして、そのナビゲーション解決を計算する。
【０００４】
ベースバンド混合は入力信号の複素数指数との乗算であり、その複素数指数の周波数はその入力信号の周波数と殆ど符合する。複素数信号は余弦成分及び正弦成分とに分解され得て、同位相成分及び直角位相成分で分離する。ベースバンド混合信号の周波数は、精密ナビゲーション・システム用のフェースロックロープの場合に数ミリヘルツ以内に制御され得て、そしてベースバンド混合信号は連続的に変動する位相を有しなければならない。ハードウェア相関器において、ローカル発振器は精密周波数制御及び連続位相を有する余弦信号成分及び正弦信号成分を発生する。正確な周波数及び位相を伴ってその場で余弦信号成分及び正弦信号成分を発生することは、ソフトウェア相関器に適するにはあまりにも時間がかかり過ぎる。代わりに、ソフトウェア相関器は周波数オフラインのグリッド上に余弦信号成分及び正弦信号成分を発生する。これら信号成分は、例えば１つの特定ＲＦフロントエンド・ハードウェア形態に対して５．７１４ＭＨｚ等のＲＦフロントエンド・サンプリング周波数でサンプリングされた点の時間グリッド上に記憶されなければならず、そうした信号は典型的な累積期間、例えば、ＧＰＳ Ｌ１民生信号で作動する際の０．００１秒粗捕捉（Ｃ／Ａ）ＰＲＮコード期間の間、継続しなければならない。それには、地上レシーバからＧＰＳ衛星を追跡する際に必要とされる全周波数範囲である−１０ＫＨｚから＋１０ＫＨｚまでにわたる１ｍＨｚグリッド上に全周波数をブルートフォースで又は強引に記憶するために、１０ギガバイト或はそれ以上のメモリが必要であり、追加記憶装置は各周波数点で可能性ある開始位相のグリッドの記憶が必要とされる。
【０００５】
ＰＲＮコード混合はベースバンド混合信号のプロンプト(prompt)＋１／−１ＰＲＮコードの乗算或は＋２／０／−２アーリー-マイナス-レイト(early-minus-late)ＰＲＮコードの乗算であり、コード・タイミング及び周波数は入力信号のものと略合致する。結果としての信号はプロンプトＰＲＮコード混合の場合には定数であり、アーリー-マイナス-レイト混合の場合にはコード・タイミング・エラーの略線形関数である。レシーバはこれら相関出力の双方を累積する。プロンプト累積のマグニチュードは信号強度を示す共に、信号が検出されたか否かを示し、同位相（実数）成分及び直角位相（虚数）成分が用いられて、搬送波位相及びドップラー偏移を測定する。アーリー-マイナス-レイト累積のマグニチュードはコード・タイミング・エラーを測定し、タイミング・エラーがゼロの場合にはそれはゼロとなる。
【０００６】
ベースバンド混合信号のコード位相は精密なナビゲーション・システム用のＰＲＮコード・チップのほん僅か或はそれほどでもない範囲以内で制御可能でなければならない。ハードウェア相関器において、ローカル発振器はプロンプト及びアーリー-マイナス-レイトＰＲＮコード・レプリカを発生する。ソフトウェア相関器はＰＲＮコード・レプリカを計算して記憶することができるか、或はそれらをリアルタイムで計算できる。
【０００７】
現行の全地球測位システムはＬ２周波数及び新Ｌ５周波数での新民生コード、そして、Ｌ２周波数での新コード（Ｍ-コード、ＣＬ及びＣＭコード）を含む拡張能力を実現するように計画されている。これらアップグレードの内の幾つかは１〜３年以内に始動する予定である。ハードウェア相関器はこれら新信号を用いるためにハードウェア変更を必要としている。近いうちにレシーバ設計者は、新ＧＰＳ衛星がより古いモデルと置き換わって、余分な複雑性で非常にゆっくりと生ずる改善性能の価値があるか否かを決定するために複雑な矛盾に直面するであろう。こうした複雑な矛盾を回避するための１つの方法は、新相関器チップセットの必要性無しに新信号を受信して処理できるソフトウェア・レシーバを用いることである。
【０００８】
ソフトウェア・レシーバは、そのソフトウェア構成要素が容易に変更できるため、柔軟性がある。ソフトウェア・レシーバの１つの適用例は、単一装置を形成すべく、無線ディジタル通信プロトコルを用いる数々の装置を一体的に合体することである。ＧＰＳレシーバ及びパーソナルデータアシスタント（ＰＤＡ）は３つ全ての役割を演ずる単一装置となり得る。ソフトウェア・レシーバの他の用途は、新無線装置のための開発時間及び市場投入時間を短縮することである。例えば、新周波数及びコードがＧＰＳに追加されると、ソフトウェア相関器を有するソフトウェア・レシーバは単に再プログラムされる必要があるが、ハードウェア・アプローチは特有の種類の新相関器チップ設計を要求する。新ＰＲＮコードは、単にソフトウェア変更を為すことによって使用可能となる。よってソフトウェア・レシーバ・テクノロジーは、新信号への遷移期間中、設計者に係わるリスクを減らす。更にはソフトウェア・レシーバは、ガリレオ・システム（欧州ＧＰＳ）或はＧＬＯＮＡＳＳ（ロシアＧＰＳ）を用いるべく、再プログラムされ得る。
【０００９】
最近において、ＧＰＳソフトウェア・レシーバは、記憶信号を事前処理するか或はリアルタイムで動作するかの何れかを為すように開発されてきている。先行するリアルタイム・ソフトウェア・レシーバは限定された数（４〜６）チャネルを伴って機能するか或は高性能コンピュータの速度、或は、非特許文献１及び２等のディジタル信号プロセッサ（ＤＳＰ）・チップを必要とする。これら２つの非特許文献は引用することでここに合体させる。
【非特許文献１】Real-Time GPS Software Radio Receiver, Akos et al., ION NIM 2001, 22-24, January 2001, Long Beach, CA pp.809-816 (Akos 2001a)
【非特許文献２】Global Positioning System Software Receiver (gpSrx) Implementation in Low Clost/Power Programmable Processors, Akos et al. ION GPS 2001, 11-14 September 2001, Salt Lake, UT, pp.2851-2858
【発明の開示】
【発明が解決しようとする課題】
【００１０】
それ故に、本発明の目的は、リアルタイムで動作し、且つ、厳格に限定された数のチャネル或は非常に高速なプロセッサに制限されないソフトウェア・レシーバを作成することである。
本発明の他の目的は、記憶されるべき正弦信号成分及び余弦信号成分の数を最少化することである。
本発明の別なる目的は、ビット単位並列を通じて入来する信号を処理することである。
本発明の更なる目的は、ビット単位並列の使用によって過剰サンプリングされた信号を処理することである。
本発明のまた更なる目的は、ビット単位並列化ソフトウェア・レシーバで非常に長い過剰サンプリングされたＰＲＮコードを効率的に処理することである。
【００１１】
先に詳述された目的は、更なる他の目的と共に、本発明によって対処される。本発明の解決策及び長所は以下に記載される例示的な実施例によって達成される。
【課題を解決するための手段】
【００１２】
本発明のソフトウェア・レシーバ・システム及び方法は複数のアルゴリズムから成る集合の効率的な実行をイネーブルし、汎用プロセッサ上で入力チャネルからサンプリングされたデータに対するソフトウェア相関を実行する。本発明のシステム及び方法は、ＰＲＮコード記憶或はリアルタイムでのＰＲＮコードの計算の何れかを提供する。ＰＲＮコード記憶は、１０２３チップ長であるＧＰＳ粗大／取得コード等の短い期間を有するＰＲＮコードに対して適切である。この場合、本発明のシステム及び方法は、全ＰＲＮコード期間の過剰にサンプリングされたレプリカを事前計算し、テーブル等内に組織だって効率的な検索のためにそれらを記憶する。このテーブルは、ＲＦデータがレシーバ・フロントエンドから有効であるサンプリング時間に対して測定されたコード始動時間の選択を含むことができる。各固有ＰＲＮコードに対して個別のテーブルがある。
【００１３】
本発明のシステム及び方法は、ここで記載される過剰サンプリング関数の使用を通じてリアルタイムでのプロンプト及びアーリー-マイナス-レイトＰＲＮコードの過剰サンプリング・バージョンをも発生し得る。この過剰サンプリング関数の値は、ＰＲＮコードにわたって包括的であり得る特別に設計されたテーブル内に配置され得る。この特別に設計されたテーブルの長さは、そのレプリカが所与の受信信号を処理すべく使用されるＰＲＮコードの長さとは独立し得る。本発明のシステム及び方法は、迅速且つリアルタイムでのテーブル検索を可能とする特別に設計されたテーブルにインデックスを効率的に算出するための技術を含む。
【００１４】
本発明のシステムは、受信信号をベースバンドと混合し、表形式ＰＲＮコード或はリアルタイム発生ＰＲＮコードの何れかを用いてビット単位並列及び検索テーブルを通じてベースバンド／ＰＲＮ相関を計算し、そしてビット単位並列及びプロセッサ指示若しくは検索テーブルを通じての累積を計算できるソフトウェア相関器を含む。ビット単位並列処理はコンピュータ・データの所与のワードの多数ビットと同時に多数データ・サンプルを処理することを可能としている。例えば、３２ビット・ワードに対して、ソフトウェア相関器は一時に３２サンプルまで処理できる。ビット単位並列処理は、論点の各信号が通常はナビゲーション信号のＲＦディジタル信号処理のようなほんの数ビットによって表現され得る場合、最適に動作できる。
【００１５】
本発明のビット単位並列演算は整数の数学的相関動作と比較して計算時間を節約できる。例えば、４つの累積がサンプル毎に必要であれば、整数数学は各サンプル毎に６つの乗算と４つの加算とを必要とする（最後のサンプルは例外）。例えば５．７１４ＭＨｚのサンプリング率で、これは各ＰＲＮコード期間毎に５７，１４０個の整数演算に転換する。例示的実施例において、３３，５００回のビット単位並列演算が、ＲＦ信号が２ビット表現を有する場合、ＰＲＮコード期間毎に必要である。この演算カウント数は、ＲＦ信号が１ビット表現を有する場合、ＰＲＮコード期間毎に略１６，７５０回のビット単位並列演算まで更に低減される。よって、演算カウント数に関して殆ど２倍から殆ど４倍の節約となる。
【００１６】
本発明のシステム及び方法は、事前計算されたベースバンド混合正弦波のテーブル、連続可変正弦波によって作り出されるものと同等である相関累積出力を作り出し得るアルゴリズム、並びに、それらテーブル及びアルゴリズムの使用方法をも含む。よって、本発明において、正弦波値の比較的小さな集合は事前計算されると共に節約される必要が有り、それはコンピュータ・メモリ及び処理時間を温存し得る。
【００１７】
本発明は、基本生データがＲＦフロントエンドから由来することとなるサンプリング時間の事前特定化された集合に対して測定されたＰＲＮコード・レプリカの任意の所与の「チップ」のタイミングを、追跡するために（チップはＰＲＮコードの要素）、ソフトウェア的にＰＲＮコード・レプリカの位相を追跡するシステム及び方法をも含む。ＰＲＮコード位相は各チャネルに対する変数を介しての追跡が保持され、それはＲＦサンプリング時間に対するＰＲＮコード始動時間を示す。本発明のシステム及び方法は、サンプリング時間に関しての各衛星に対する、ＰＲＮコード位相、搬送波位相、並びに、搬送波周波数の測定の同期化を可能とする。
【００１８】
各ＰＲＮコード・レプリカの位相と各搬送波レプリカの位相とを追跡するための方法は、全てのＣ／Ａコード位相、搬送波位相、エポック・カウンタ、並びに、事前特定化時間での各衛星に対する搬送波周波数をラッチするステップと、Ｃ／Ａコード位相及びエポック・カウンタを用いて各衛星への擬似範囲を計算するステップとを含む。この方法は、コード・チッピング率及び搬送波ドップラー偏移入力を推定することによってコード及び位相を追跡して更新するステップをも含む。この方法は、更新されたコード・チッピング率とその事前特定化時間の関数として、各衛星に対する事前特定化時間でのコード位相を計算するステップを更に含む。更にこの方法は、更新された搬送波位相、ドップラー偏移、並びに、事前特定化時間の関数として、その事前特定化時間での搬送波位相を計算するステップを含む。ＰＲＮコード位相（或はチップ箇所）のタイミングは、ナビゲーションデータ処理用のＧＰＳ測定に関する最も根本的なものである。これらの時間のモニタリングは精度の完全な制御をソフトウェア的に可能とし、それによってそれらの時間は測定可能であり、そして慣性計測ユニット等の他のセンサからのデータの測定時間で、それらの時間の精密な同期化を可能としている。この特徴は向上された能力を付与して、ＧＰＳデータを他のタイプのセンサ・システムからのデータと十分に結合され一体化しなければならないシステムとして知られるものを開発する。
【００１９】
本発明のソフトウェア相関器は、好都合にも、任意周波数の信号、新ＰＲＮコード、或は異なるタイプの装置に対する信号をも受け入れることが容易にできる。よって、同一の処理ハードウェアはソフトウェア相関器を用いて、ＧＰＳレシーバ、携帯電話、或は、それら双方の装置を具現化する。新コード、新周波数、並びに、新タイプの機能を許容すべく、小さな変更がソフトウェア相関器に為され得るか、或は、異なるバージョンのソフトウェア相関器が同一プロセッサ上で走らされることができる。先行技術のハードウェア相関器に基づくレシーバは、それらの設計でハードウェアに組み込まれた周波数及びＰＲＮコードだけを処理することができる。また、本発明のシステム及び方法は、ＧＬＯＮＡＳＳレシーバ、携帯電話及び携帯電話基地局、ポケットベル、無線イーサネット（例えば、８０２．１ｌｘ規格）、ブルートゥースＴＭ、ブラックベリー（登録商標）無線イーサネット装置、並びに、衛星ラジオ／電話（例えば、ＩＮＭＡＲＳＡＴ（登録商標））等のシステム内で具現化され得る。実際上、本発明のシステム及び方法は拡散スペクトル、情報伝送用のコード分割多重アクセス（ＣＤＭＡ）ＰＲＮコード、有線或は無線の何れか等の任意の種類の遠隔通信システム／装置に適用できる。
【００２０】
本発明のその他の目的や更なる目的と共に本発明のより良好な理解のため、添付図面及び詳細な説明が参照される。本発明の範囲は特許請求の範囲に指摘されている。
【発明を実施するための最良の形態】
【００２１】
本発明は、本発明の例示的実施例が示されている添付図面を参照して、以下より完全に説明される。以下の構成説明は例示的目的のみで提示されている。ここで記載される速度及びインターフェースの要件を満たしている任意のコンピュータ構成は、本発明のシステムを具現化するために適合し得る。ここでの数式は一般的な意味で述べられているが、例示的目的のみのためにＧＰＳ Ｌ１ Ｃ／Ａに固有のパラメータを有する。例えば、数新規の多くにおいて見られる０．００１秒累積間隔は公称Ｃ／Ａコード期間である。また、例示的実施例のＣ／Ａ ＰＲＮコードは他の任意のＣＤＭＡ信号伝達システムのＰＲＮコードによって置き換え可能である。
【００２２】
前置き説明として、ＲＦ信号処理式及び項がここに提供される。衛星から受信された時間領域Ｌ１ Ｃ／Ａ信号は、
2007525039.tif 000003
【００２３】
ここではtiはサンプリング時間であり、Ａｊは振幅であり、Ｄjkはナビゲーション・データ・ビットであり、Ｃｊ［ｔ］はＣ／Ａコードであり、τjk及びτjk+1は受信されたｋth及びｋ＋１stＣ／Ａコード期間の始動時間であり、ωIFはＬ１搬送波周波数と対応する中間周波数であり、φｊ（ti）は累積されたデルタ範囲による搬送波位相摂動であり、ｎｊはレシーバ・ノイズであり、並びに、添字ｊは特定のＧＰＳ衛星に言及する。φ（ti）の前方におけるマイナス符号は、例示的実施例で使用されたＲＦフロントエンドにおいて生ずる高側混合から由来している。数式（１）における信号は典型的なＲＦフロントエンドの出力である。
【００２４】
ＧＰＳレシーバは受信信号とそのレプリカとの間の相関で作動する。それら相関は信号を取得し追跡すべく使用される。レプリカは２つの部分、即ち、搬送波レプリカ及びＣ／Ａ ＰＲＮコード・レプリカから構成される。これら２つの搬送波レプリカ信号は、同位相信号及び直角位相信号として使用される。ＲＦフロントエンドからの受信信号との混合の際、それらは以下の数式２及び３で表される同位相及び直角位相のベースバンド混合信号を形成する
2007525039.tif 000004
2007525039.tif 000005
ここで、式（２）及び（３）はｋｔｈ Ｃ／Ａコード期間中に適用する。これらの式において、
2007525039.tif 000006
及び
2007525039.tif 000007
はｋｔｈ及びｋ＋１ｓｔコード期間の始動時間のレシーバ推定値であり、
2007525039.tif 000008
は時間
2007525039.tif 000009
での推定搬送波位相であり、並びに、
2007525039.tif 000010
はｋｔｈコード期間中の推定搬送波ドップラー偏移である。
【００２５】
典型的なレシーバは、引用することでここに合体させる非特許文献３等におけるＧＰＳレシーバに記載された様々な従来手段によって推定値
2007525039.tif 000011
、並びに、
2007525039.tif 000012
を計算する。これらは、
2007525039.tif 000013
及び
2007525039.tif 000014
を計算する遅延ロックド・ループや、
2007525039.tif 000015
及び
2007525039.tif 000016
を計算する位相ロックド・ループ或は周波数ロックド・ループ等のオープン・ループ取得方法及びクローズド・ループ信号追跡方法を含む。ここで開発されたソフトウェア・レシーバはこれら推定値を形成するための従来技術を用いる。
【非特許文献３】A. J. Van Dierendonck, Global Positioning System: Theory and Application, B. W. Parkinson and J. J. Spiker, Jr., Eds., vol. I, American Institute of Aeronautics and Astronautics, 1996, Chapter 8, pp. 329-406 (Direndonck)
【００２６】
プロンプト相関器及びアーリー-マイナス-レイト相関器の双方は、搬送波周波数、搬送波位相、並びに、ＧＰＳレシーバにおけるコード位相を追跡すべく必要とされている。典型的なレシーバはＰＲＮコード及び搬送波レプリカを用いて、以下の同位相及び直角位相の累積を計算する。
2007525039.tif 000017
2007525039.tif 000018
ここで、ikは
2007525039.tif 000019
に従う第１ＲＦフロントエンド・サンプル時間のインデックスであり、Ｎｋ＋１は
2007525039.tif 000020
に従うサンプルの合計数である。時間オフセットΔはレプリカＰＲＮコードがもしそれが正であれば早く再生させられ、そしてもしΔが負であれば遅く再生される。プロンプト相関器はΔ＝０を伴った数式（４）及び（５）によって規定される。アーリー-マイナス-レイト相関器はＩjk（Δeml／２）−Ｉjk（−Δeml／２）及びＱjk（Δeml／２）−Ｑjk（−Δeml／２）であり、Δemlは早いＰＲＮ搬送波レプリカ及び遅いＰＲＮ搬送波レプリカの間の間隔である。ここで記載される本発明はＩjk及びＱjkをソフトウェア的に累積するレシーバに対する効率的な技術である。
【００２７】
ここで図１で参照されるように、本発明のソフトウェア・レシーバ１０の動作プラットフォームは、アンテナ１１、従来のＲＦフロントエンド１３、データ取得（ＤＡＱ）システム１７、マイクロプロセッサ１６、ソフトウェア相関器１９、並びに、特定用途向けコード１５を含む。従来のＲＦフロントエンド１３はアンテナ１１及び（ＤＡＱ）システム１７とインターフェースしている。ＤＡＱシステム１７はシフトレジスタ及びデータ・バッファから成るシステムを含む。マイクロプロセッサ１６は、特別に開発されたビット単位並列アルゴリズムから成る集合や、ＧＰＳナビゲーション及び追跡機能等の特殊用途向けコード１５を含むソフトウェア相関器１９を実行する。例示的な実施例において、従来のＧＰＳソフトウェア機能（信号追跡、データ抽出、ナビゲーション解決策等々）は非特許文献４によって提供されるが、任意の同等構成によって提供され得る。
【非特許文献４】the MITEL GPS Architecture software ported to RTLINUX (A Coming of Age for GPS: A RTLINUX BASED GPS RECEIVER, Ledvina eta al., Proceedings of the Workshop on Real Time Operating Systems and Applications and Second Real Time Linux Workshop (in conjunction with IEEE RTSS2000) November 27-28, 2000)
【００２８】
続けて図１で参照されるように、従来のＲＦフロントエンド１３は、例えば、公称１．５７５４２ＧＨｚ ＧＰＳ信号１２を
2007525039.tif 000021
の中間周波数に逓降変換して、アナログ・ディジタル変換を実行するＭＴＴＥＬ（登録商標）ＧＰ２０１５ＲＦフロントエンドであり得る。結果としてのディジタル化された信号データ２１は、２つの二値ビット／サンプル、符号ビット及びマグニチュード・ビット、或は１つのビット／サンプル等のビット／サンプルの事前決定数を有する。ＤＡＱシステム１７におけるシフトレジスタはマグニチュード及び符号データ・ビット・ストリームを個別のワードに並列処理し、ＤＡＱシステム１７はそれらをＤＭＡを用いてマイクロプロセッサ１６のメモリ内に読み込む。マイクロプロセッサ１６内へのより効率的なデータ読み込みプロセスを為すべく且つ効率的な相関計算を準備すべく、ＤＡＱシステム１７は一時に３２ビット等のバッファされたサンプルの事前特定化されたビット数を読み取ることができる。この例示的な３２ビットは１６個の符号ビットと１６個のマグニチュード・ビットとを含む。
【００２９】
図１及び図２Ａで参照されるように、ＤＡＱシステム１７(図1)におけるシフトレジスタは信号データ２１（図１及び図２Ａ）をバッファし、信号符号２１Ａ（図２Ａ）及び信号マグニチュード２１Ｂ（図２Ａ）を個別のワードに詰め込むが、それらワードは表１に示されるように整数値±１及び±３を表す。１ビット信号の場合、複数サンプルを表しているビット・ストリームは連続的なワードに詰め込まれて、ビット単位並列処理用に信号を準備する。ＤＡＱシステム１７は、例えば信号符号２１Ａ及び信号マグニチュード２１Ｂを、例えば従来のＲＦフロントエンド１３（図１）からの第３出力であり得る
2007525039.tif 000022
クロック信号と同期化することによって、正確なタイミングをも提供する。ＤＡＱシステム１７は、例えば１６ビット・ワードに対する１６カウンタによる除算の使用によって、５．７１４２４ＭＨｚクロック信号を３５７．１４ＫＨｚまでに逓降変換でき、それはバッファが満杯の場合を示す信号を提供できる。ＤＡＱシステム１７はバッファ満杯指示を提供するために任意の方法を使用できる。
【００３０】
【表１】
2007525039.tif 000023
従来のＲＦフロントエンドのサンプルＲＦ出力の符号及びマグニチュードの組み合わせとそれらと対応する値
【００３１】
図１で更に参照されるように、例示的な実施例におけるＤＡＱシステム１７は、インターフェース・カードと、例えば、ＲＴＬＩＮＵＸ（登録商標）を走らす１．７３ＧＨｚ ＡＭＤ ＡＴＨＬＯＮ（登録商標）プロセッサと互換性があるドライバ・ソフトウェアとから構成され得るが、任意のオペレーティングシステムやリアルタイム動作に適応できる任意のプロセッサと互換性がある。インターフェース・カードは、例えば、ＮＡＴＩＯＮＡＬ ＩＮＳＴＲＵＭＥＮＴＳ（登録商標）ＰＣＩ-ＤＩＯ-３２ＨＳディジタルＩ／Ｏカードであり得る。このカードの関連特徴は、３２ディジタル入力ライン、ＤＭＡ、並びに、オープンソース・ドライバから成る一揃いや、ＣＯＭＥＤＩ（ＣＯｎｔｒｏｌ ＭＥａｓｕｒｅｍｅｎｔ ａｎｄ Ｄｅｖｉｃｅ Ｉｎｔｅｒｆａｃｅ）として知られるインターフェース・カードに対するアプリケーション・インターフェース・ソフトウェアからたぶん入手されるＲＴＬＩＮＵＸ（登録商標）用のドライバの有効性である。ＰＣＩ-ＤＩＯ-３２ＨＳカードに対する従来のＣＯＭＥＤＩドライバへの変更は、１６から３２までの入力ビット数の増大を含み、ＤＭＡをイネーブルし、連続的な割込駆動取得を支援すべくドライバを変更する。
【００３２】
また図１で更に参照されるように、マイクロプロセッサ１６は、例えば、ＲＴＬＩＮＵＸ（登録商標）オペレーティングシステムを走らす１．７３ＧＨｚ ＡＭＤ ＡＴＨＬＯＮＴＭプロセッサであり得るが、任意のオペレーティングシステムと、リアルタイム・オペレーションに適合できるプロセッサとが使用され得る。低いレイテンシー割込反応性、最低優先順位スレッドである可能性を有するカーネルによる標準間隔でのスレッド実行の能力、並びに、最優先コードの信頼性ある実行は、本発明のシステム性能を向上し得るオペレーティングシステムの種々の特徴の中に混ざっている。ＲＴＬＩＮＵＸ（登録商標）の使用は例示的目的のみでここに提示されている。
【００３３】
続けて図１で参照されるように、ＲＦフロントエンドからの逐次的且つ直接的な入力を取るハードウェア相関器と類似して、ソフトウェア相関器１９は該ソフトウェア相関器１９及びＤＡＱシステム１７の双方がアクセスできる共有メモリから読み込むものであり、前者はデータ読み込みであり、後者はデータ書き込みである。この共有メモリ・バッファはＤＭＡメモリ・スペース及び循環バッファとして具現化され得る。本発明のシステム及び方法がＧＰＳ（或は同類の）環境内で使用されている例示的実施例において、マイクロプロセッサ１６は循環バッファ内に最新の２１ミリ秒の信号データ２１（図１及び図２Ａ）を記憶できるが、それ以上でもそれ以下でも記憶できる。本発明は循環バッファのサイズを固定しないか、或は、そこに記憶され得るＲＦデータの量を固定しない。循環バッファは定期的に予定されたプログラム・スレッドの様々な繰り返しの中、様々な衛星に対する様々な時間に始動し停止するコード期間の処理を可能としている。ＤＭＡメモリ・スペースは、循環バッファを満たすＤＡＱソフトウェア・ドライバを用いてＤＡＱシステム１７によって直に書き込まれ得る。ソフトウェア相関器１９及び特定用途向けコード１５の間の通信はオペレーティングシステムが提供された共有メモリ能力を用いて実行され得る。例えば、ＲＴＬＩＮＵＸ（登録商標）に附属されたｍｂｕｆｆドライバが使用され得て、この共有メモリ・スペースを作成し管理する。リアルタイム処理に適合する任意のメモリ管理システムが使用可能である。もしｍｂｕｆｆドライバが使用されれば、カーネル・モジュールはメモリを共有し、カーネルはその共有メモリ・スペースを長期記憶にスワッピングすることが制限され得る。
【００３４】
ハードウェア相関器との類似性に関して続けると共に、主にハードウェア相関器における図１を参照すると、相関器は周波数及び位相情報をアプリケーション・コードの一部である追跡ループ及び取得ループから受信し、数値制御発振器（ＮＣＯｓ）は書き込まれた周波数及び位相と対応する信号を発生する。対照的に、ソフトウェア相関器１９は模擬搬送波と、特殊用途向けコード１５からのそれらの周波数コマンドを受信するコードＮＣＯｓを含む。ソフトウェア相関器１９はこれら周波数コマンドを用いて、搬送波レプリカ信号２５（図３Ａ）及びプロンプトＰＲＮコード２９及びアーリー-マイナス-レイトＰＲＮコード３５（図３Ａ）を再構築し、それを信号データ２１（図２Ａ）と混合して、完全混合プロンプト被積分関数３１及び完全混合アーリー-マイナス-レイト被積分関数３３（図３Ａ）を生ずる。
【００３５】
この類似性を更に続行すべく、ハードウェア相関器は、正しいドップラー偏移周波数及び位相で特定のＣ／Ａコード・レプリカをリアルタイムで発生する。対照的に、ソフトウェア相関器１９はＣ／Ａコード・オフラインを発生できると共に、それらをメモリ・テーブル、即ち事前計算された過剰サンプリングされたＰＲＮコード・テーブル２８（図３Ａ）に記憶できる。事前計算された過剰サンプリングされたＰＲＮコード・テーブル２８は、信号データ２１（図３Ａ）のサンプリング時間と正しいタイミング関係でＰＲＮコードを選択すべく用いられる。次いでコードは、ベースバンド混合信号２３（図３Ａ）と相関関係を形成すべく用いられ、規格同位相及び直角位相を作り出すべく合計されるもの、合計されたプロンプト累積４５（図３Ｂ）、並びに、連続可変的な正弦波によって作り出されるものと同等である合計されたアーリー-マイナス-レイト累積４７（図３Ｂ）からの結果である。これらは、信号追跡及びナビゲーション機能を実行する従来のＧＰＳソフトウェア等の特殊用途向けコード１５に提供される。第２のアプローチにおいて、ソフトウェア相関器１９はコード・チッピング率でオンライン中にＰＲＮ搬送波レプリカをを発生できると共に、表形式機能を用いることができて、累積算定の目的でＲＦフロントエンドのサンプリング率でコードを再サンプリングする。リアルタイム過剰サンプリングＰＲＮコード発生器３０Ａ（図３Ａ）は、この後者のアプローチにおける事前計算過剰サンプリングＰＲＮコード・テーブル２８（図３Ａ）の代わりに用いられる。この後者の方法は、新民生ＧＰＳ Ｌ２ ＣＬコード等のより長いＰＲＮコードで使用可能である。
【００３６】
また、図１で更に参照されるように、受信されたＬ１生信号１２は不確かな搬送波位相を有することができるので、ソフトウェア相関器１９は数式（４）及び（５）で規定されるように同位相（Ｉ）及び直角位相（Ｑ）の双方を計算する。ソフトウェア相関器１９は、記憶された搬送波レプリカ・テーブル３０（図３Ａ）から得る搬送波レプリカ信号２５（図３Ａ）を用いることで累積プロセスを始める。このテーブルにおける搬送波レプリカは粗い周波数グリッド上に降下し、それら全ては特定位相、例えばゼロの位相で始動する。ベースバンド混合プロセスは、「理想」に限りなく接近している周波数である搬送波レプリカ・テーブル３０（図３Ａ）から搬送波レプリカ信号２５（図３Ａ）を選択することを含む。１７５Ｈｚグリッド間隔の場合、ベースバンド混合プロセスは理想信号の最大限±８７．５Ｈｚ以内である信号を選択する。粗い周波数グリッドは例えば１７５Ｈｚの間隔を有し得るが、（ａ）例えば±１０ＫＨｚをカバーすべく必要とされる周波数範囲、（ｂ）事前計算された信号を記憶するために利用可能なスペース量、並びに、（ｃ）他の設計決定事項に依存して、より大きな或はより小さな間隔を有し得る。搬送波レプリカ・テーブル３０（図３Ａ）における事前計算された信号の各々は、１８０個の３２ビット・ワードを専有し得て、初期ワードの３２サンプル以内で、任意の可能なコード期間始動時間に対する１つのＰＲＮコード期間を専有する完全な５，７１４個のＲＦフロントエンド・サンプルをカバーすべく保証される。よって、１８０＊４＝７２０バイトは、テーブル内に記憶されている事前計算された搬送波レプリカ信号２５各々の各ビットに対して要求され得る。搬送波レプリカ信号２５（図３Ａ）各々の正弦波及び余弦波は２ビット表現を有し、それは所与のドップラー偏移で搬送波レプリカ信号２５に対して２８８０バイトの記憶用件と変換される。１７５Ｈｚグリッド間隔で−１０ＫＨｚから＋１０ＫＨｚ範囲をカバーするために記憶され得る１１５個のドップラー偏移がある。これは、搬送波レプリカ信号２５の全てに対して３２３Ｋバイトの記憶装置となる。このアプローチは、法外に多数の可能性ある周波数及び位相のオフセットを伴う正弦波を事前計算する必要性を回避すると共に、リアルタイムでの正弦波の計算の必要性を回避している。代わりに、事前に規定された正弦波レプリカを用いることで作り出されたエラーは、以下に記載されるように、事後処理算定によって補償される。
【００３７】
引き続き、そして続けて図１を参照すると、結果としての累積が、
2007525039.tif 000024
2007525039.tif 000025
となり、ここで、ωgjkは推定周波数
2007525039.tif 000026
と最も接近しているグリッド周波数であり、ｔ0gjkはこの搬送波レプリカ信号２５（図３Ａ）がゼロ搬送波位相を有する時間である。ソフトウェア相関器１９はこれら累積を回転し、計算され得るものの正確な近似値を作り出し、数式（４）及び（５）において推定搬送波位相時間履歴が使用された、即ち、
Ｉjk（Δ）＝Ｉgjk（Δ）cos（Δψavgjk）＋Ｑgjk（Δ）sin（Δψavgjk）（８）
Ｑjk（Δ）＝−Ｉgjk（Δ）sin（Δψavgjk）＋Ｑgjk（Δ）cos（Δψavgjk）（９）
【００３８】
ここで、Δψavgjkはグリッド搬送波位相と累積間隔にわたって平均された推定搬送波位相との間の平均位相差であり、即ち、
2007525039.tif 000027
である。
【００３９】
数式（８）、（９）、並びに、（１０）はソフトウェア相関器（１９）がどのようにしてそのＩ及びＱ累積を回転できるかの例示であり、事前計算された搬送波レプリカ信号のテーブルにおける位相及び周波数のエラーに対する矯正を為す。同等の結果を生ずる他の式も存在し、この特許出願はそうした技術の全てを包含する。
【００４０】
数式（８）及び（９）の有効性は以下の仮定に依存する。即ち、
2007525039.tif 000028
である。
【００４１】
例えば、１７５Ｈｚグリッド間隔及び公称０．００１秒のＣ／Ａ ＰＲＮコード期間は０．０４の不等式である数式（１１）の左側の項における値を生じ、それは仮定された限界に関係する。
【００４２】
数式（８）及び（９）は以下の如くに数式（４）及び（５）から誘導され得る。第１として、数式（６）及び（７）の余弦項及び正弦項の独立変数においてグリッド信号の搬送波位相は数式（４）及び（５）に加算され、それら数式から減算される。次に、三角関数恒等式が用いられて、結果としての余弦項及び正弦項が余弦関数及び正弦関数の積の合計にそれぞれ分割される。各積において、それら項の内の１つは数式（６）及び（７）における三角関数項での独立変数と同じような独立変数を含む。次いで他の三角関数項はｃｏｓ（Δψavjk）或はｓｉｎ（Δψavjk）によって近似される。これらの近似値は、数式（１１）の不等式のため且つ累積間隔にわたる
2007525039.tif 000029
の平均値がゼロであるために有効である。
【００４３】
レシーバ感度を特徴付ける搬送波対ノイズの比Ｃ／Ｎｏにおける減少は、正確ではないベースバンド混合周波数の使用によって生ずる。最悪の場合の減少は周波数グリッド間隔Δｆの関数として表現されて、
ΔＳＮＲ＝２０log10（ｓｉｎ（πΔｆＴ）／πΔｆＴ）                （１２）
で与えられ、ここで、ΔｆはＨｚの単位であり、Ｔは積分期間である。よって、１７５ＨｚのΔｆは、Ｔ＝０．００１秒に対して０．１１ｄＢの最悪のＣ／Ｎｏ損失を生ずる。
【００４４】
次に図２Ａ、図２Ｂ、並びに、図３Ａを参照すると、（プロンプトＰＲＮコード２９（図３Ａ）及びアーリー-マイナス-レイトＰＲＮコード３５（図３Ａ）から構成される）ＰＲＮコードが、事前計算されるか、或は、リアルタイムで生成されるかの何れかである。事前計算は、各衛星に対して、全ＰＲＮコードの計算、容易な検索のためのＰＲＮコードの適切な記憶、そして、可能であれば、例えば入来ＲＦ信号データ２１（図２Ａ及び図３Ａ）に基づき計算されるインデックスによってのＰＲＮコードの参照を含む。事前計算はＰＲＮコードが非常に長くない場合に最も有益に使用され得る。リアルタイムでＰＲＮコードを生成することは、ＰＲＮコードが非常に長い場合（そしてそれ故に受け入れがたい量の記憶装置を要求する場合）、たぶん過剰に多数のＰＲＮコードが利用可能な記憶装置量を要求する場合、或は、他の任意の理由にためにより適切な解決策であり得るが、リアルタイムＰＲＮコード生成は追加計算コストを課し得る。ＰＲＮコードの事前計算及びリアルタイム決定の双方は、ビット単位並列処理具現化例に関してここで記載される。
【００４５】
続いて図２Ａ、図２Ｂ、並びに、図３Ａで主に参照されるように、ビット単位並列動作を実行するために、ソフトウェア相関器１９（図１）は事前計算搬送波レプリカ符号２５Ａ（図２Ｂ及び図３Ａ）及び搬送波レプリカ・マグニチュード２５Ｂ（図２Ｂ及び図３Ａ）をデータ・ワード内に記憶する。信号データ２１（図２Ａ及び図３Ａ）及び搬送波レプリカ信号２５（図２Ｂ及び図３Ａ）の１ビット、２ビット、或は、それ以上のビットの観点での単純表現は、ここに記載された算定を実行すべくビット単位並列処理を用いるために適切である。ビット単位並列動作は、ワードの連続ビットの形態で連続的サンプルを記憶するデータの表現で作動する。例えばＲＦフロントエンド出力の３２個のサンプル（ビット）は、もし信号データ２１が単一データ・ビットで構成されていれば、２つのＮ＝３２ビットのワード、信号符号２１Ａ（図２Ａ及び図３Ａ）、並びに、信号マグニチュード２１Ｂ（図２Ａ及び図３Ａ）、或は、単純な単一の３２ビット・ワードに記憶される。搬送波レプリカ符号２５Ａ（図２Ｂ及び図３Ａ）及び搬送波レプリカ・マグニチュード２５Ｂ（図２Ｂ及び図３Ａ）が例えばテーブル内に個別のワードで記憶され、各３２ビット・ワードが、対応する余弦波或は正弦波の３２個の連続的なサンプルに対して表形式される３２個の符号或はマグニチュードのビットを記憶している。同様にして、テーブルは、プロンプトＰＲＮコード２９（図３Ａ）及びアーリー-マイナス-レイトＰＲＮコード３５（図３Ａ）を記憶でき、それらはプロンプトＰＲＮコード符号２９Ａ（図３Ａ）、アーリー-マイナス-レイトＰＲＮコード符号３５Ａ（図３Ａ）、並びに、アーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂ（図３Ａ）で構成される。これら３つの信号タイプのビット単位並列表現を含むデータ・ワード、オリジナルのＲＦ信号データ２１（図２Ａ及び図３Ａ）、搬送波レプリカ信号２５（図２Ｂ及び図３Ａ）、拡散解除プロンプトＰＲＮコード２９（図３Ａ）、並びに、アーリー-マイナス-レイトＰＲＮコード３５（図３Ａ）はソフトウェア相関器１９（図１）の算定への入力である。
【００４６】
更に図２Ａ、図２Ｂ、並びに、図３Ａで参照されるように、数多くの中間算定量と少なくとも３つのタイプの中間信号もビット単位並列フォーマットで記憶される。先ず、同位相及び直角位相のベースバンド混合信号２３（図３Ａ）があり、例示的実施例に対するその３ビット表現は、ベースバンド混合符号２３Ａ（図３Ａ）、ベースバンド混合高マグニチュード２３Ｂ（図３Ａ）、並びに、ベースバンド混合低マグニチュード２３Ｃ（ 図３Ａ）として記憶される。第２ビット単位並列信号タイプは完全混合被積分関数３１（図３Ａ）があり、その中には４つの信号、即ち、同位相及び直角位相完全混合プロンプト被積分関数３１（図３Ａ）と、同位相及び直角完全混合アーリー-マイナス-レイト被積分関数３３（図３Ａ）とがある。前者は例示実施例において、完全混合プロンプト被積分関数符号３１Ａ（図３Ａ）、完全混合プロンプト被積分関数高マグニチュード３１Ｂ（図３Ａ）、並びに、完全混合プロンプト被積分関数低マグニチュード３１Ｃ（図３Ａ）として、３ビット表現で記憶される。後者は例示実施例において、完全混合アーリー-マイナス-レイト被積分関数符号３３Ａ（図３Ａ）、完全混合アーリー-マイナス-レイト被積分関数高マグニチュード３３Ｂ（図３Ａ）、完全混合アーリー-マイナス-レイト被積分関数低マグニチュード３３Ｃ（図３Ａ）、並びに、完全混合アーリー-マイナス-レイト被積分関数ゼロ・マスク３３Ｄ（図３Ａ）として、３．５ビット表現で記憶される。この表現は、対応するゼロ・マスク・ビットが値ゼロを有すれば、符号、高マグニチュード、並びに、低マグニチュードのビットが無視されるので、３．５ビット表現と呼称される。第３ビット単位並列信号タイプが値ワード２７（図３Ｂ）であり、アーリー-マイナス-レイト被積分関数は値ワード３７（図３Ｂ）である。各完全混合被積分関数は値ワード、即ち、整数被積分関数が採用することができる各可能な値に対する１つのワードを構築すべく使用される。例示的実施例の被積分関数に対して８個の可能性ある値があり、即ち、同位相及び直角位相完全混合プロンプト被積分関数３１（図３Ａ）に対して、−１、−２、−３、−６、１、２、３、並びに、６であり、同位相及び直角位相完全混合アーリー-マイナス-レイト被積分関数３３（図３Ａ）に対して、−２、−４、−６、−１２、２、４、６、並びに、１２がある。各ビット並列値ワードは、もし被積分関数値が値ワードの値と同等である場合に各サンプル時間に対して１ビットを含む、が、他の全てのサンプル時間に対してゼロ・ビットを含む。生データ及び中間結果のビット単位並列フォーマットでの記憶は、もしマイクロプロセッサ１６（図１）がビット単位排他的論理和コマンドを有すれば、一時に３２サンプルに対して動作すべく混合に含まれる排他的論理和演算を可能とする。他のビット単位コマンドは２つの３２サンプルから成る集合に並列して追加のソフトウェア相関演算を実行すべく使用される。
【００４７】
この時点で、過剰サンプリングの問題が導入される。図２Ｃ及び図２Ｄを参照すると、過剰サンプリングの問題は以下のようにビット単位並列に関して例示されている。通常、ＰＲＮコード・チップ毎に２つ以上のＲＦデータ・サンプルがある。ｔ１からｔ３までのサンプリング時間での３つの連続的−１値７３（図２Ｃ）は、ｔ４からｔ７までの時間での４つの連続的＋１値７５（図２Ｃ）が行うように、同一ＰＲＮコード・チップ中に全て生ずる。２つのコード・チップに対するサンプル数に関する差は、ＰＲＮコード・チップ期間がサンプル期間の整数倍ではないために生ずる。類似して、図２Ｄを参照すると、サンプル間隔Δｔｓ６３が実際のＰＲＮコード・チップ長Δｔｃ６５よりも小さく、ＲＦサンプリング周波数ｆｓ＝１／ΔｔｓがＰＲＮコード・チッピング周波数ｆｃ＝１／Δｔｃよりも大きいために過剰サンプリングが示されている。ＣＤＭＡシグナリングに対するＰＲＮコードは＋１及び−１値のシーケンスであり、その要素がチップである。対象となる時間間隔にわたって、搬送波レプリカはｆｃ＝１／Δｔｃチップ／秒の一定のチッピング率でそのチップを通じて進行する。時間間隔Δｔｃは実際のＰＲＮコード・チップ長６５（図２Ｄ）である。ソフトウェア相関器１９（図１）は通常ＰＲＮコードを受信し、それをそのコード、即ちプロンプトＰＲＮコード２９（図２Ｄ）のプロンプト・レプリカ・バージョンと整列させるように試みる。それは、信号のプロンプトＰＲＮコード２９（図２Ｄ）とアーリー-マイナス-レイトＰＲＮコード３５（図２Ｄ）との相関を利用して、プロンプトＰＲＮコード２９（図２Ｄ）が所望されるように整列する傾向があるチッピング率ｆｃを決定する。ｆｃを決定する従来の方法は当業界において周知である。アーリー・コード６９Ｂ（図２Ｄ）プロンプトＰＲＮコード２９（図２Ｄ）の対応するチップ前の０．５Δｔｅｍｌで始動し停止し、そしてレイト・コード６９Ｃ（図２Ｄ）のチップはプロンプトＰＲＮコード２９（図２Ｄ）後の０．５Δｅｍｌで始動し停止する。アーリー-マイナス-レイトＰＲＮコード３５（図２Ｄ）は、アーリー・コード６９Ｂ（図２Ｄ）とレイト・コード６９Ｃ（図２Ｄ）との間の差である。これら４つのタイプのレプリカ・コードの例証部分は図２Ｄに示されている。
【００４８】
図１、図２Ａ、図２Ｃ、並びに、図２Ｄで参照されるように、ソフトウェア相関器１９（図１）は、従来のＲＦフロントエンド１３及びＤＡＱシステム１７を通じて、信号データ２１（図１）、ソースがｆｓ＝１／ΔｔｓＨｚでサンプリングされる生データ１２（図１）を受信する。結果としてのＲＦ信号データ２１を処理するために、ソフトウェア相関器１９（図１）は、生信号１２（図１）と同時にサンプリングされたプロンプトＰＲコード２９（図２Ｄ）及びアーリー-マイナス-レイトＰＲＮコード３５（図２Ｄ）のレプリカが必要である。図２Ｄは、垂直一点破線として１６個のサンプル時間を示している。図２Ｄを参照すると、プロンプトＰＲＮコード２９（図２Ｄ）はサンプル時間にそのプロンプトＰＲＮコード符号２９Ａ（図２Ｄ）によって表現され得る。ビット値１は＋１を表し、ビット値ゼロは−１を表す。３個の１で始動し、１０個の０で続行し、そして別の３個の１で終了する１６個のサンプル時間で示されるプロンプトＰＲＮコード符号２９Ａ（図２Ｄ）は、整数２１５＋２１４＋２１３＋２２＋２１＋２０＝５７３５１として記憶された１６ビット・ワードである。アーリー-マイナス-レイトＰＲＮコード３５（図２Ｄ）は１．５ビット表現を要求する。ゼロ・マスク・ビットは、もしアーリー-マイナス-レイトＰＲＮコード３５が値ゼロを採用すれば、ゼロに設定され、そしてそれはアーリー-マイナス-レイトＰＲＮコード３５が＋２或は−２と同等であれば、１に設定される。図２Ｄに示される１６個のサンプル時間でのアーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂ（図２Ｄ）は２１３＋２１２＋２２＝１２２９２と同等である。２の符号ビットは、もしアーリー-マイナス-レイトＰＲＮコード３５（図２Ｄ）がサンプル時間に＋２と同等であれば１に設定され、もしそのコードが−２と同等であればゼロに設定される。もし対応するアーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂ（図２Ｄ）ビットがゼロと等しければ、２の符号ビットは無関係である。１６個のサンプル時間に対するアーリー-マイナス-レイト３５Ａ（図２Ｄ）は、対応するアーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂ（図２Ｄ）ビットがゼロであるために、その値が無関係であるところのビットを示すＸ値を含む。例示的実施例において、全Ｘ値はゼロとなり、よってアーリー-マイナス-レイトコード符号３５Ａ（図２Ｄ）に対する同等整数が２２＝４である。
【００４９】
引き続き、図３Ａで参照されるように、事前計算過剰サンプリングＰＲＮコード・テーブル２８からプロンプトＰＲＮコード２９及びアーリー-マイナス-レイトＰＲＮコード３５を取る代替としては、リアルタイム過剰サンプリングＰＲＮコード発生器３０Ａ（図３Ａ）を用いて、プロンプトＰＲＮコード符号２９Ａ、アーリー-マイナス-レイトＰＲＮコード符号３５Ａ、並びに、アーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂを発生することである。図３Ａに示されているものは、２つの円と四半円ポインタを伴うルーズ矢印である。これらはスイッチに対する記号であり、ＰＲＮコードの可能性ある交互的なソースを選択するためのシステムの能力を示す。リアルタイム過剰サンプリングＰＲＮコード発生器３０Ａを用いることは、従来手段によってＰＲＮコード・チップをリアルタイムで発生するステップを含む。例えば、ＧＰＳ民生Ｌ２ ＣＬ及びＣＭコードは非特許文献５で参照される２７ビット・フィードバック・シフトレジスタによって発生される。この方法はＰＲＮコードからチップ値を選択するステップを更に含み、そのチップ値はデータ・ワードのサンプルを含むデータ間隔と対応し、チップはデータ間隔に対して既知のタイミングを有し、その相対タイミングを時間グリッド・インデックスに変換し、そしてＰＲＮコード・チップ値とデータ間隔に対する時間グリッド・インデックスとをＰＲＮコードの過剰サンプリング・ビット単位並列フォーマットに変換する。これら後者のステップはテーブル検索機能を用いることによって効率的に実行され得る。プロンプトＰＲＮコード符号２９Ａ、アーリー-マイナス-レイトＰＲＮコード符号３５Ａ、並びに、アーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂに対してそれぞれ１つずつのテーブルは、問題となっているデータ・ワードと関連されたサンプル時間に対するＰＲＮコードのビット単位並列表現を構成する整数値を含み得る。それぞれが１次元テーブルとなるインデックスは、（ａ）第１ＰＲＮコード・チップと所与のデータ・ワードの第１サンプル時間との間の時間オフセットと、（ｂ）データ・ワードのサンプル時間を跨ぐＰＲＮコード・チップのビット・パターンとの関数である。これらテーブルのサイズは過剰サンプリングされるＰＲＮコードの期間とは独立している。これらテーブルは多重チャネル／レシーバにおいて多重ＰＲＮコードに対して再使用され得る。計算及びテーブル使用は後でより詳細に議論される。
【非特許文献５】The New L2 Civil Signal, R.D. Fontana el al., Proceedings of the ION GPS 2001, September 11-14, 2001, Salt Lake City, UT. pp.617-631  引き続き、ソフトウェア相関器１９（図１）の動作に対するビット単位並列処理の説明をすると共に、図３Ａを参照すると、ここに記載された特別に開発されたアルゴリズムはビット単位並列処理を利用して、Ｃコード・コマンド等の単一プログラミング言語ステートメントは一時に３２サンプルまで部分的に処理できる。先行して言及した余弦信号及び正弦信号の形態での搬送波レプリカ信号２５は、二値搬送波レプリカ符号２５Ａ及び搬送波レプリカ・マグニチュード２５Ｂとして記憶される。この表現のフォーマットは表２に規定され、図３Ｃに図示され、それは最小２乗誤差を有する最適２ビット表現５３（図３Ｃ） に示される代表的な正弦信号５１（図３Ｃ）の形態での再構築された搬送波及び搬送波レプリカである。表２のフォーマットは、余弦信号及び正弦信号が役２．４の振幅を有することを仮定している。留意することは、例えば２ビット表現を超える他の表現は可能である。一般に、より大きなビットはより良好なＳＮＲを生ずるが、相関関係演算に対するより多数の計算をも要求し得る。
【００５０】
【表２】
2007525039.tif 000030
記憶された中間周波数ベースバンド混合搬送波正弦波レプリカ及びそれらが表す値の符号及びマグニチュード組み合わせ
【００５１】
引き続き、図３Ａで参照されるように、ＲＦフロントエンド出力表現の乗算、表１の信号符号２１Ａ及び信号マグニチュード２１Ｂの、正弦波表現、表２の搬送波レプリカ符号２５Ａ及び搬送波レプリカ・マグニチュード２５Ｂによる乗算は、ベースバンド混合信号２３を生じ、それは、ベースバンド混合符号２３Ａ、ベースバンド混合高マグニチュード２３Ｂ、並びに、ベースバンド混合低マグニチュード２３Ｃから構成され、それらが、表３に示された−６、−３、−２、−１、＋１、＋２、＋３、＋６の値を採用することができる。ベースバンド混合高マグニチュード２３Ｂは単純な信号マグニチュード２１Ｂであり、そしてベースバンド混合低マグニチュード２３Ｃは搬送波レプリカ・マグニチュード２５Ｂである。よって、これら２つのマグニチュード・ビットは計算の必要性無しで利用可能である。ベースバンド混合符号２３Ａは信号符号２１Ａ及び搬送波レプリカ符号２５Ａの間の排他的論理和の結果である。留意すべきことは、実際の符号との符号ビット値の関係がどのようにして表１及び２のものから逆進されるかである。
【００５２】
【表３】
2007525039.tif 000031
ベースバンド混合信号及びそれらの対応信号値から成る符号・高マグニチュード・低マグニチュード組み合わせ
【００５３】
引き続き、図３Ａの参照と共に、ビット単位並列アルゴリズムを説明すると、事前計算プロンプトＰＲＮコード２９及びアーリー-マイナス-レイトＰＲＮコード３５のテーブルに対する記憶が必要とされる量は２つの単純化を為すことによって大きく低減される。第１として、プロンプトＰＲＮコード２９はプロンプトＰＲＮコード符号２９Ａとして記憶される。この表現は表４に示されている。他方、アーリー-マイナス-レイトＰＲＮコード３５は２ビット表現（実際には１．５ビット表現）で記憶され、即ち、表５で示されるように、アーリー-マイナス-レイトＰＲＮコード符号３５Ａ及びアーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂである。留意すべきことは、表５の第１列におけるＸは、ゼロ或は１が対応するコード値に影響すること無しにこの箇所に配置され得ることである。このＸは、ゼロ・マスク・ビットがゼロと等しい場合、コード値に対する符号ビットの効果の欠如を示す。これは、アーリー-マイナス-レイトＰＲＮコード３５表現が１．５ビット表現として言及される理由である。このＸ値は対応する完全混合アーリー-マイナス-レイト被積分関数符号３３Ａに影響するが、対応するゼロ・マスク箇所がアーリー-マイナス-レイト値ワードの対応するビットをゼロにするためにアーリー-マイナス-レイト値ワードの何れにも影響しない。
【００５４】
【表４】
2007525039.tif 000032
プロンプトＣ／Ａコード及び対応するプロンプト信号値の符号ビット
【００５５】
【表５】
2007525039.tif 000033
アーリー-マイナス-レイトＰＲＮコード３５及び対応信号値から成る、符号及びゼロ・マスク・ビットの組み合わせ
【００５６】
引き続き、図３Ａで参照されるように、事前計算過剰サンプリングＰＲＮコード・テーブル２８における別の単純化はコード・ドップラー偏移変動を無視することができる。テーブルにおける全信号はゼロ・ドップラー偏移を有するべく仮定され、即ち、テーブルにおける全Ｃ／Ａコードは
2007525039.tif 000034
を仮定する。留意すべきことは、０．００１の周期がＣ／Ａコードの完全１０２３チップだけを用いる累積に適用できることである。他の任意のタイプのコード或は累積間隔は異なる周期を有し得る。この仮定によるコード位相エラーは中間点が所望の中間点時間
2007525039.tif 000035
で生ずる中間点を有する事前計算過剰サンプリングＰＲＮコード・テーブル２８からレプリカ・コードを選択することによって削減し得る。この仮定の唯一の他の効果は小さな相関関係パワーロスであり、それはもしドップラー偏移のマグニチュードが１０ＫＨｚ未満であれば、ほんの０．０１４ｄＢにすぎない。事前計算過剰サンプリングＰＲＮコード・テーブル２８は、例えば１７５ナノ秒の信号サンプル間隔に対して測定されるように、例えば１４の種々の位相の内からの選択を含むことになる。これは、例えば１２．５ナノ秒のコード位相間隔に変形し、それは３．８ｍの擬似範囲測定ディジタル化レベル、或は、１．９ｍの最大測定エラーと等しい。事前計算過剰サンプリングＰＲＮコード・テーブル２８における位相数はシステムの設計に依存し、位相の集合数は本発明では要求されない。図６で参照されるように、事前計算過剰サンプリングＰＲＮコード・テーブル２８がＣ（１）からＣ（Ｍ）のチップの過剰サンプリングされたビット単位並列表現を記憶する。テーブルは、累積間隔Ｗ１９５（図６）における全体的な第１データ・サンプル・ワードを跨ぐコード・チップＣ（１）の始動時間の範囲に対して、過剰サンプリングされたビット単位並列コード・レプリカの検索を可能としている。このテーブルはコード・レプリカを含み得て、その種々の位相は、始動時間の必要数のほんの１／ｎであるデータ・ワードＷ１９５（図６）の単一サンプル間隔だけを跨ぐ始動時間を生ずる。この場合、ソフトウェア相関器はビット・シフト演算をそのサンプル間隔から表形式にされたＰＲＮコード・レプリカに適用し得て、チップＣ（１）がデータ・ワードＷ１９５（図６）の種々のサンプル間隔で始動する際に適用される、過剰サンプリングビット単位並列ＰＲＮコード・レプリカを発生する。
【００５７】
引き続き,図３Ａの参照と共に、ビット単位並列アルゴリズムを説明すると、プロンプトＰＲＮコード２９及びアーリー-マイナス-レイトＰＲＮコード３５のレプリカはベースバンド混合信号２３と混合され得て、排他的論理和演算及びビット再定義によって完全混合プロンプト被積分関数３１を形成する。プロンプトＰＲＮコード符号２９Ａとベースバンド混合符号２３Ａとの間での排他的論理和は、表６に付与された完全混合プロンプト被積分関数符号３１Ａを作り出す。完全混合プロンプト被積分関数高マグニチュード３１Ｂ及び完全混合プロンプト被積分関数低マグニチュード３１Ｃは、これもまた表６に付与された、ベースバンド混合高マグニチュード２３Ｂ及びベースバンド混合低マグニチュード２３Ｃである。留意すべきことは、表６の表現は、符号ビットの意味合いの転換を除いて、表３のものと同等であることである。マグニチュード・ビットの数はシステムの設計に依存し、そしてマグニチュード・ビットの集合数は本発明によって必要とされない。マグニチュード・ビットの数に関する変化は表６の等価物のエントリーの数に関する変化を引き起こし、それは被積分関数の可能性ある値に影響する。
【００５８】
【表６】
2007525039.tif 000036
完全混合プロンプト被積分関数３１及びその対応値から成る、符号、高マグニチュード、低マグニチュード・ビット組み合わせ
【００５９】
更に図３Ａで参照されるように、アーリー-マイナス-レイトＰＲＮコード３５のベースバンド混合信号２３との混合は、完全混合アーリー-マイナス-レイト被積分関数３３を形成する。完全混合アーリー-マイナス-レイト被積分関数符号３３Ａは、アーリー-マイナス-レイトＰＲＮコード符号３５Ａ及びベースバンド混合符号２３Ａの間の排他的論理和である。完全混合アーリー-マイナス-レイト被積分関数高マグニチュード３３Ｂ及び完全混合アーリー-マイナス-レイト被積分関数低マグニチュード３３Ｃは、先のように、ベースバンド混合高マグニチュード２３Ｂ及びベースバンド混合低マグニチュード２３Ｃである。完全混合アーリー-マイナス-レイト被積分関数ゼロ・マスク３３Ｄはアーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂである。結果としての表現は表７に付与されている。表５におけるように、表における各Ｘエントリーは、対応するビットが対応する被積分関数値に影響すること無しにゼロか或は１であり得ることを示す。
【００６０】
【表７】
2007525039.tif 000037
完全混合アーリー-マイナス-レイト被積分関数３３及びそれらの対応する値から成る、符号、高マグニチュード、低マグニチュード、並びに、ゼロ・マスクの組み合わせ
【００６１】
図３Ａ、図３Ｂ、図４Ａ、並びに、図４Ｂで参照されるように、ビット単位並列処理を用いて、例えばＧＰＳ Ｃ／Ａコードに対するミリ秒毎である累積期間毎の同位相及び直角位相を計算する方法は、その周波数の所望周波数への接近性に従って搬送波レプリカ信号２５（図３Ａ）を選択するステップ、信号符号２１Ａ（図３Ａ）におけるビットとして少なくとも１つのチャネルからサンプル信号データ２１（図３Ａ）及び搬送波レプリカ信号２５（図３Ａ）、そしてもし存在すれば、信号マグニチュード２１Ｂ（図３Ａ）、搬送波レプリカ符号２５Ａ（図３Ａ）、並びに、搬送波レプリカ・マグニチュード２５Ｂ（図３Ａ）を表現するステップとを含む（方法ステップ１０１、図４Ａ）。
【００６２】
留意すべきことは、搬送波レプリカ信号２５（図３Ａ）の周波数が正しい信号周波数と密接するように該搬送波レプリカ信号が選択される。
【００６３】
この方法は、同位相及び直角位相ベースバンド混合符号２３Ａ（図３Ａ）と同位相及び直角位相ベースバンド混合高低マグニチュード２３Ｂ／Ｃ（図３Ａ）とを計算することによって信号データ２１（図３Ａ）をベースバンドと混合するステップをも含む（方法ステップ１０３、図４Ａ）。
【００６４】
この方法は、事前計算過剰サンプリングＰＲＮコード・テーブル２８（図３Ａ）からＰＲＮコードを選択するか、或は、それをリアルタイム過剰サンプリングＰＲＮコード発生器３０Ａ（図３Ａ）を用いて計算し、プロンプトコード符号２９Ａ（図３Ａ）としてプロンプトＰＲＮコード２９（図３Ａ）を表現し、アーリー-マイナス-レイトＰＲＮコード符号３５Ａ（図３Ａ）及びアーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂ（図３Ａ）としてアーリー-マイナス-レイトＰＲＮコード３５（図３Ａ）を表現するステップを更に含む（方法ステップ１０５、図４Ａ）。
【００６５】
この方法は、同位相及び直角ベースバンド混合信号２３（図３Ａ）をプロンプトＰＲＮコード２９（図３Ａ）及びアーリー-マイナス-レイトＰＲＮコード３５（図３Ａ）と混合することによってその同位相及び直角ベースバンド混合信号を拡散解除するステップを更に含んで、同位相及び直角位相完全混合プロンプト被積分関数３１（図３Ａ）と完全混合アーリー-マイナス-レイト被積分関数３３（図３Ａ）を生ずる（方法ステップ１０７、図４Ａ）。
【００６６】
この方法は、プロンプト値ワード・ロジック２７Ａ（図３Ｂ）を用いるステップを更に含んで、プロンプト被積分関数値ワード２７（図３Ｂ）を同位相及び直角位相完全混合プロンプト被積分関数３１（図３Ａ）から計算する。
【００６７】
この方法は、アーリー-マイナス-レイト値ワード・ロジック３７Ａ（図３Ｂ）を用いるステップを更に含んで、アーリー-マイナス-レイト被積分関数値ワード３７（図３Ｂ）を完全混合アーリー-マイナス-レイト被積分関数３３（図３Ｂ）から計算する（方法ステップ１０９、図４Ａ）。
【００６８】
この方法は、各プロンプト被積分関数値ワード２７及びアーリー-マイナス-レイト被積分関数値ワード３７（図３Ｂ）にわたって、１ビットの合計テーブル３８或はもし有効であればプロセッサ・コマンドを用いて、１ビット（或はゼロ・ビット）の数を合計するステップ（方法ステップ１１１、図４Ｂ）と、プロンプト累積４１（図３Ｂ）及びアーリー-マイナス-レイト累積４９（図３Ｂ）を作り出すべく累積間隔にわたって、各プロンプト累積４１（図３Ｂ）における１ビット（或はゼロ・ビット）の数を合計するステップを更に含む（方法ステップ１１３、図４Ｂ）。
【００６９】
この方法は、プロンプト累積４１（図３Ｂ）及びアーリー-マイナス-レイト累積４９（図３Ｂ）を対応する値４１Ａによって乗算するステップと、その結果を全累積間隔に対する各信号の値ワードにわたって合計するステップとを更に含み（方法ステップ１１５、図４Ｂ）、同位相及び直角位相合計プロンプト累積４５（図３Ｂ）と、取得技術或は追跡ループによる使用のため記憶される合計アーリー-マイナス-レイト累積４７（図３Ｂ）とを生み出す。
【００７０】
この方法は、同位相及び直角位相号駅プロンプト累積４５（図３Ｂ）及び合計アーリー-マイナス-レイト累積４７（図３Ｂ）を回転するステップを更に含み（方法ステップ１１７、図４Ｂ）、ベースバンド混合が正しい周波数及び位相を伴う余弦信号レプリカ及び正弦信号レプリカを用いて実行された状態をシミュレートする。
【００７１】
もし処理すべきより多くのチャネルが存在すれば（決定ステップ１１９、図４Ｂ）、この方法は、方法ステップ１０１、図４Ａで始まる先行する諸ステップを繰り返すステップを含む。
【００７２】
もし処理すべきこれ以上のチャネルがなければ（決定ステップ１１９、図４Ｂ）、この方法は、次の累積期間に対するパラメータを設定するステップを含み、現行Ｃ／Ａコード位相、エポック・カウンタ、搬送波位相、並びに、搬送波ドップラー偏移を記憶することを含む（方法ステップ１２１、図４Ｂ）。もし次の累積が計算の必要性がでるまで待機する時間期間が満了しなければ（決定ステップ１２３、図４Ｂ）、この方法はその時間期間の満了までスリープするステップを含む（方法ステップ１２５、図４Ｂ）。もし時間期間が満了すれば（決定ステップ１２３、図４Ｂ）、この方法は方法ステップ１０１、図４Ａで始まる先行する諸ステップを繰り返すステップを含む。時間期間の長さは公称累積期間に依存する。それはこの期間より小さくすべきであり、通常、この期間の５０％から９０％の間であり、累積が任意のチャネルに対して欠如する可能性を低減する。
【００７３】
再度、図３Ｂ及び図４Ａで参照されるように、方法ステップ１０９（図４Ａ）は値ワードを計算することを必要とする。この計算は、表６におけるプロンプト被積分関数表現の右側列における可能性ある値の各々に対するビット単位並列ブール論理を実行することで始動する。３２ビット・プロンプト被積分関数値ワード２７（図３Ｂ）は各３２サンプルと表６の各行に対して計算される。プロンプト被積分関数値ワード２７（図３Ｂ）は、実際の被積分関数が表６の右側列における対応する値と等しい場合、サンプル時間に対する１を含み、そして実際の被積分関数がこの値と等しくない場合、残りの時間に対するゼロを含む。可能性ある表６値と対応するプロンプト被積分関数ワード２７（図３Ｂ）  は方法ステップ１０９（図４Ａ）によって以下の通りに形成される：
マイナス１＝NOT（符号）AND［NOT（高マグ）AND NOT（低マグ）］         （１３）
マイナス２＝NOT（符号）AND(NOT（高マグ）AND 低マグ）                 （１４）
マイナス３＝NOT（符号）AND［高マグAND NOT（低マグ）］                （１５）
マイナス６＝NOT（符号）AND［高マグAND低マグ］                        （１６）
プラス１＝符号AND［NOT（高マグ）AND NOT（低マグ）］                  （１７）
プラス２＝符号AND［NOT（高マグ）AND（低マグ）］                      （１８）
プラス３＝符号AND［（高マグ）AND NOT（低マグ）］                     （１９）
プラス６＝符号AND［（高マグ）AND低マグ］                             （２０）
【００７４】
引き続き、図３Ａ、図３Ｂ、図４Ａ、並びに、図４Ｂで参照されるように、方法ステップ１０９（図４Ａ）、１１１（図４Ｂ）、並びに、１１３（図４Ｂ）は、完全混合プロンプト被積分関数３１（図３Ａ）に対するものと同様である完全混合アーリー-マイナス-レイト被積分関数３３（図３Ａ）に対する演算を必要とする。アーリー-マイナス-レイト被積分関数値ワード３７（図３Ｂ）はプロンプト被積分関数ワード２７（図３Ｂ）の２倍である値と対応し、即ち、マイナス６ワードはマイナス１２ワードとなる。また、追加のアンド演算は表７のゼロ・マスク・ビットによって実行されなければならず、アーリー及びレイトＰＲＮコードが相互にキャンセルする場合、サンプル時間をマスクする。これらのアーリー-マイナス-レイト被積分関数値ワード３７（図３Ｂ）の方法ステップ１０９（図４Ａ）計算に対する可能性ある公式は以下の通りである：
マイナス２＝［ゼロ・マスク AND NOT（符号）］AND［NOT（高マグ）AND NOT（低マグ）］                                                                  （２１）
マイナス４＝［ゼロ・マスクAND NOT（符号）］AND［NOT（高マグ）AND低マグ］
（２２）
マイナス６＝［ゼロ・マスクAND NOT（符号）］AND［高マグAND NOT（低マグ）］
（２３）
マイナス１２＝［ゼロ・マスクAND NOT（符号）］AND［高マグAND低マグ］   （２４）
プラス２＝［ゼロ・マスクAND符号］AND［NOT（高マグ）AND NOT（低マグ）］（２５）
プラス４＝［ゼロ・マスクAND符号］AND［NOT（高マグ）AND低マグ］        （２６）
プラス６＝［ゼロ・マスクAND符号］AND［高マグAND NOT（低マグ）］       （２７）
プラス１２＝［ゼロ・マスクAND符号］AND［高マグAND低マグ］             （２８）
【００７５】
追加のゼロ・マスキングは累積間隔の第１ワード及び最終ワードにおいて生じ得る。これは、累積間隔の始動及び停止時間が、通常、データ・ワードの境界で降下しないために真である。それ故に、累積間隔に優先する第１ワードにおけるビットは、累積間隔の最後の後で来る最終ワードにおけるビットのようにマスクされるゼロを得る必要性があり得る。
【００７６】
主に図３Ｂ及び図４Ｂで参照されるように、方法ステップ１１１（図４Ｂ）の１ビット・カウンティング演算は８値ワードの各々における１ビット数のカウント数を形成する。もしマイクロプロセッサ１６（図１）の指示集合におけるそうしたカウンティング演算が全く無ければ、そのカウンティングはテーブル検索を用いて達成され得る。テーブル検索の場合、プロンプト被積分関数値ワード２７及びアーリー-マイナス-レイト被積分関数値ワード３７（図３Ｂ）は１ビット合計テーブル３８（図３Ｂ）におけるアドレスとして使用され得て、１ビット合計テーブル３８（図３Ｂ）はそのアドレスにおいて１値（或はゼロ）の数を出力し得る。例えば、もしテーブル検索演算がＢＩＴＳＵＭと呼称されれば、以下の計算が実行され得て、１ビット・カウント数を計算する：
１カウント数＝ＢＩＴＳＵＭ（値ワード）                                （２９）
ここで、テーブル１カウント数の出力はワード値ワードにおける１ビットの数である。この演算は、プロンプト被積分関数ワード２７（図３Ｂ）及びアーリー-マイナス-レイト被積分関数値ワード３７（図３Ｂ）の各々に対して繰り返されて、方法ステップ１１１（図４Ｂ）を達成する。テーブル幅、例えば１６ビット或は３２ビットの選択は利用可能なメモリ量や他の設計決定に依存する。もしテーブル幅が値ワードにおけるビット数より小さければ、テーブルの多重呼び出しが使用されて、所与の値ワードにおける１値の合計数を計算する。各呼び出しはその値ワードにおけるビットの一部だけを入力として取る。
【００７７】
引き続き、主に図３Ｂ及び図４Ｂで参照されるように、方法ステップ１１３（図４Ｂ）及び１１５（図４Ｂ）の累積演算は各プロンプト被積分関数値ワード２７（図３Ｂ）及び各アーリー-マイナス-レイト被積分関数値ワード３７（図３Ｂ）に対する１ビット・カウント数を全累積間隔にわたって合計し、各結果をその値ワードと関連された値４１Ａ（図３Ｂ）で乗算し、これら基準化された値累積の全てを合計して数式（６）及び（７）の累積、合計プロンプト累積４５（図３Ｂ）、並びに、合計アーリー-マイナス-レイト累積４７（図３Ｂ）を形成する。例えば、以下の計算が実行されて、数式（６）において同位相合計プロンプト累積４５を計算する：
2007525039.tif 000038
【００７８】
ここで、ｌは累積間隔における連続的なビット単位並列データ・ワードのインデックスであり、NＷはその間隔におけるデータ・ワードの合計数であり、１カウント数（ｋ）Iplはｌ番目のデータ・ワード間隔に対する値ｋ４１Ａ（図３Ｂ）と同位相合計プロンプト累積４５（図３Ｂ）との双方に関連された対応する値ワード４１（図３Ｂ）に対する１カウント数である。直角位相合計プロンプト累積４５（図３Ｂ）と同位相及び直角合計アーリー-マイナス-レイト累積４７（図３Ｂ）は同じようにして計算される。唯一の差は使用された実際の１カウント数値内であり、そしてアーリー-マイナス-レイト信号の場合に対してｋ値４１Ａ（図３Ｂ）の集合である。
【００７９】
引き続き、主図４Ａ及び図４Ｂで参照されるように、本発明の方法はＲＦフロントエンド出力の表現におけるビットと、ベースバンド混合信号との異なる数との作動に適合できる。２ビット以上の増大はロジックをより複雑に為し得て、一直線の整数算術にわたる時間節約を減少し得る。１ビット表現までの減少は逆効果を有し得る。例えばもし、ＲＦフロントエンドが、搬送波レプリカ信号２５（図２Ｂ）がその２ビット・ディジタル化を保持する一方で２ビット・ディジタル化よりも１ビット・ディジタル化を用いれば、演算カウント数は１ビット方法に対して殆ど１／２に減少でき、それは一直線整数算術より約４．２倍速くロジックを実行させることができる。
【００８０】
ＰＲＮコードを決定する議論に戻ると共に、再度図２Ｃ、２Ｄ、並びに、図３Ａで参照されるように、ビット単位並列過剰サンプリング・プロンプトＰＲＮコード符号２９Ａ（図２Ｄ及び図３Ａ）、アーリー-マイナス-レイトＰＲＮコード符号３５Ａ（図２Ｄ及び図３Ａ）、並びに、アーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂ（図２Ｄ及び図３Ａ）のリアルタイム発生はリアルタイム過剰サンプリングＰＲＮコード発生器３０Ａ（図３Ａ）によって実行され得る。この計算への入力は、実際のＰＲＮコード・チップ長６５（図２Ｄ）、Δｔｃ、サンプル間隔６３（図２Ｄ）、Δｔｓ、公称アーリー-マイナス-レイト・コード遅延６１（図２Ｄ）、Δｔeml、第１サンプル時間に対する第１コード・チップの最終時間或は言い換えれば時間差Δｔ０、第１ＲＦサンプル時間から第１プロンプトＰＲＮコード・チップの最終時間までの６７（図２Ｄ）、並びに、プロンプト・コード・チップ９１（図２Ｄ及び図６）である。出力は、全てビット単位並列フォーマットであるプロンプトＰＲＮコード符号２９Ａ（図２Ｄ及び図３Ａ）、アーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂ（図２Ｄ及び図３Ａ）、並びに、アーリー-マイナス-レイトＰＲＮコード符号３５Ａ（図２Ｄ及び図３Ａ）を記憶する３つの整数である。
【００８１】
再度図２Ｃ及び図２Ｄで参照されるように、テーブル検索が使用され、ＰＲＮコード及びそのタイミング情報がその過剰サンプリング・プロンプト及びアーリー-マイナス-レイト・バージョンのビット単位並列表現に変形する。必要とされているテーブル検索は、この計算の目的のために以下のパラメータが実質的に一定であることを認識することによって簡略化され得る：サンプリング間隔６３（図２Ｄ）、Δｔｓ、公称チップ長、Δｔcnom、ソフトウェア相関器１９（図１）によって使用されるアーリー-マイナス-レイト・コード遅延６１（図２Ｄ）、Δｔeml、並びに、マイクロプロセッサ１６（図１）のデータ・ワードを跨ぐチップの最大数。先の簡略化のために使用される、実際のチッピング率Δｆｃ（Δｔｃの逆数）と公称チッピング率Δｆcnom（Δｔcnomの逆数）との差は、以降に議論される手続きであるドップラー偏移の平均効果に対する、時間差６７（図２Ｄ）、Δｔ０を矯正することによって適合され得る。この簡略化を用いて、各検索テーブルが２つの変数入力を有し：プロンプト・コード・チップ９１（図２Ｄ及び図６）と時間差６７（図２Ｄ）、Δｔ0から成る実際の集合。各信号成分に対するテーブル検索手続きは、プロンプトＰＲＮコード符号２９Ａ（図２Ｄ及び図３Ａ）に対する単一整数結果、アーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂ（図２Ｄ及び図３Ａ）に対する別の単一整数結果、並びに、アーリー-マイナス-レイトＰＲＮコード符号３５Ａ（図２Ｄ及び図３Ａ）に対する更に別の単一整数結果を生ずる。
【００８２】
時間差６７（図２Ｄ）、Δt0
は連続的範囲： 
2007525039.tif 000039
における値の無限数を採用し得る。この範囲の下限は、第１レイト・チップの最終時間が第１サンプル時間よりは速くは生じないことを補償する。下方の時間差６７（図２Ｄ）Δt0値は、サンプル時間の全てで、プロンプトＰＲＮコード２９（図２Ｄ）、アーリー・コード６９Ｂ（図２Ｄ）、並びに、レイト・コード６９Ｃ（図２Ｄ）とは関連のない第１チップを作る。式（３１）における上限は、第１レイト・チップの始動時間が第１サンプルよりは遅くならないことを補償する。Δt0のより大きな値は、有効コード・チップに基づき未定義である第１サンプル時間でレイト・コード６９Ｃ（図２Ｄ）を残す。
【００８３】
図５で参照されるように、電子処理可能なテーブルを作り出すべく、Δt0値の連続的範囲はサンプル間隔６３（図２Ｄ）、Δｔｓ毎にｍ個の同等離間された点を有する個別のグリッドで置換され得る。整数ｍは、粒状度Δｔｓ／ｍが十分なＰＲＮコード・タイミング分解能を付与するように充分大きいよう選択される。ＧＰＳ用途においてｍは、通常、（ｃΔｔｓ／ｍ）が数メートル或はそれ以下のオーダーであるように十分に大きく、ｃは光の速度であるが、テーブル・サイズが通常ではｍと比例しているために理想的にサイズ決めされる。ｍの選択が与えられたとすれば、第１プロンプト・コード期間の相対的終了時間のグリッドは：
Δt0k＝ｋΔｔｓ／ｍ    ｋ＝ｋmin，…，ｋmax                        （３２）
ここで限界：
ｋmin＝ｆｌｏｏｒ（−ｍΔｔeml／２Δｔｓ）−２                   （３３ａ）
ｋmax＝ｆｌｏｏｒ（ｍ［Δｔｃ−１／２Δｔeml］／Δｔｓ）          （３３ｂ）
【００８４】
上記の式は式（３１）で規定された間隔の全適用範囲を提供する。ｆｌｏｏｒ（）関数は−∞の方向において最も近い整数に向けて切り上げされる。このｋmin値は最小Δｔ0kを式（３１）における下限を僅かに下回るように降下させ、メモリを非効率的に為すが、この値は幾つかの更なる計算を簡素化するので有益である。
【００８５】
各テーブルのサイズは、データ／ワードのサンプル範囲内に入る可能性があるコード・チップの最大数の関数であり得る。Δt0が与えられたならば、コード・チップの以下の数に対するビット情報が、プロンプトＰＲＮコード２９（図２Ｄ）、アーリー・コード６９Ｂ（図２Ｄ）、並びに、レイト・コード６９Ｃ（図２Ｄ）が以下のデータ・ワードのサンプル時間の全てで完全に特定化されるように要求される。
2007525039.tif 000040
ここで、ｎｓは各ワード内にビット単位並列フォーマットで記憶され得るデータ・サンプルの数である。式（３４）から明らかなように、ｌ（Δt0）はΔt0の非増大関数である。それ故に、要求されるチップの最大数はΔｔ０の最小値で生ずる：
Ｌ＝ｌ（Δｔ0kmin）                                                  （３５）
【００８６】
各テーブルのサイズはパラメータｋmin、ｋmax、並びに、Ｌから決定され得る。グリッドはｋtot＝（ｋmax−ｋmin＋１）第１コード・チップの相違時間オフセットを含む。これらグリッド点の各々において、コード・チップの２L個の可能な組み合わせがある。よって、各テーブルはｋtot×２Lエントリーを最適には含み、各エントリーは最適には０から２ns−１までの範囲内における非符号付き整数である。
【００８７】
引き続き、図５で参照されるように、各テーブルは単一インデックスを伴うアレイとして記憶され得る。第１の２LエントリーはΔt0＝Δt0kminで生じ得る２L個の異なる可能性あるチップ・シーケンスと対応し、次の２LエントリーはΔt0＝Δt0（ｋmin＋１）と対応し、等々である。固定されたΔt0に対する表形式ビット・シーケンスは、第１チップが最上位のカウンタ・ビットである且つ第Ｌ番目チップが最下位のビットとであることを伴って二値インデックス・カウンタとしてシーケンスを解釈することによって順序付けされる。テーブルの整数要素が、チップの対応するコード時間オフセット８３Δｔ0kと対応するビット・シーケンス８５とを伴ってｘ（ｉ）テーブル要素８１であり得る。所与のｘ（ｉ）テーブル要素８１のアレイ・インデックスはそのコード時間オフセット８３Δｔ0kグリッド・インデックスｋとその対応するビット・シーケンス８５とに基づき計算され得る。アレイ・インデックスと関連された対応ビット・シーケンス８５はチップ値Ｃ（１）、Ｃ（２）、Ｃ（３）、・・・Ｃ（Ｌ）から構成される。Ｃ（ｆ）チップ値はゼロか１の何れかであり、ゼロは−１ＰＲＮコード値を表し且つ１が＋１ＰＲＮコード値を表し、それは増大する時間の順序でリストされる。ｘ（ｉ）テーブル要素８１の対応するアレイ・インデックスは：
2007525039.tif 000041
【００８８】
この式はコード時間オフセット８３グリッド・インデックスｋとｘ（ｉ）テーブル要素８１インデックスｉの関数としての対応ビット・シーケン８５とを付与すべく変換され得る：
【００８９】
2007525039.tif 000042
ｊ＝１，２，３，．．．，Ｌ
ここで、ｍｏｄ（ｙ、ｚ）＝ｙ−ｚ×ｆｌｏｏｒ（ｙ／ｚ）は通常の余剰関数である。
【００９０】
引き続き、図５で参照されるように、以下の計算は３つのテーブルのｘ（ｉ）テーブル要素８１エントリーを発生する。ｉが与えられたならば、対応するコード時間オフセット８３グリッド・インデックスｋ（ｉ）が式（３７ａ）から計算され、チップ・インデックスの３つのシーケンスを発生すべく用いられる：
2007525039.tif 000043
【００９１】
ここで、ｎは過剰サンプリング・データ・ワード内のサンプル時間のインデックスである。整数jP（ｎ，ｉ）はプロンプトＰＲＮコード２９（図２Ｄ）に対するサンプルｎで適用するＰＲＮコード・チップのインデックスである。整数je（ｎ，ｉ）及びjl（ｎ，ｉ）は、アーリー・コード６９Ｂ（２Ｄ）及びレイト・コート６９Ｃ（図２Ｄ）のそれぞれに対して同様に規定されている。式（３８ａ）乃至（３８ｃ）における公式は、過ぎ去ったチップ長及び第１チップとを単位として付与されている各サンプルの時間測定となる。次いでこれらのインデックスは、サンプル時間に適用されるチップ値を決定すべく使用され得る：
Ｃp（ｎ，ｉ）＝Ｃ［ｊp（ｎ，ｉ）；ｉ］    ｎ＝1,2,3，．．．，ｎｓ  （３９ａ）
Ｃe（ｎ，ｉ）＝Ｃ［ｊe（ｎ，ｉ）；ｉ］    ｎ＝1,2,3，．．．，ｎｓ  （３９ｂ）
Ｃl（ｎ，ｉ）＝Ｃ［ｊl（ｎ，ｉ）；ｉ］    ｎ＝1,2,3，．．．，ｎｓ  （３９ｃ）
【００９２】
ここで、Ｃp（ｎ，ｉ）は過剰サンプリング・プロンプトＰＲＮコード２９（図２Ｄ）であり、Ｃe（ｎ，ｉ）及びＣl（ｎ，ｉ）は、それぞれ、アーリー・コード６９Ｂ（図２Ｄ）及びレイト・コード６９Ｃ（図２Ｄ）である。これらコード・ビット値の各々は、式（３７ｂ）における外側のｍｏｄ（，２）演算によって決定されるようにゼロ或は１の何れかである。次いでこれら過剰サンプリングチップ値は、３つのテーブルのビット単位並列コード表現を構成する非符号付き整数を発生する表形式関数ｘp（ｉ）、ｘemlzm（ｉ）、並びに、ｘeml2s（ｉ）を公式化すべく使用され得る：
2007525039.tif 000044
2007525039.tif 000045
2007525039.tif 000046
【００９３】
ここで、ｘp（ｉ）はプロンプト符号テーブルのエントリーであり、ｘemlzm（ｉ）はアーリー-マイナス-レイト・ゼロ・マスク・テーブルのエントリーであり、ｘeml2s（ｉ）はアーリー-マイナス-レイト２の符号テーブルのエントリーである。留意すべきことは、式（４０ｃ）で使用された公式がアーリー-マイナス-レイト２の符号テーブル計算の単なる例示的実施例であることである。それはアーリー-マイナス-レイトＰＲＮコード符号３５Ａ（図２Ｄ）のＸエントリーの全てにゼロを配置する。同等に正しいがそれらＸエントリーにゼロを配置しない代替的な公式がある。
【００９４】
図５におけるテーブル・レイアウトは、１がどのようにしてＰＲＮコード・チップ値及びタイミング情報をデータ・ワードに変形すべく使用され得るテーブルを構築できるかのほんの例示的実施例であり、それらデータ・ワードは、過剰サンプリング・プロンプトＰＲＮコード符号２９Ａ（図２Ｄ）、アーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂ（図２Ｄ）、並びに、アーリー-マイナス-レイトＰＲＮコード符号３５Ａ（図２Ｄ）のビット単位並列表現を記憶する。他のテーブル・レイアウトも可能である。可能性ある例示的インデックス計算が、累積計算中にＰＲＮコード検索に対するテーブル内への索引付けのために以下に記載される。もし別のテーブル・レイアウトが使用されれば、異なる索引付け計算が必要となり得る。更には、異なる索引付け計算は図５に示される例示的テーブル・レイアウトに対してでさえ使用され得る。
【００９５】
主に図６で参照されるように、ここでそして別の箇所で先行して略述したように、累積計算はコード・チップの固定シーケンスと作動する。このシーケンスのプロンプト・バージョンは入来ＲＦ信号データ２１（図２Ａ）と特定化されたタイミング関係を有する。この関係は、もしソフトウェア・レシーバ１０（図１）が取得モードであればコード・サーチ・アルゴリズムによって、或は、もし追跡モードであればその遅延ロックド・ループによって、事前決定され得る。ソフトウェア相関器１９（図１）はプロンプト・コード・チップ９１（図６）Ｃ（１）乃至Ｃ（Ｍ）を用いて累積を計算できる。プロンプト・コード・チップ９１（図６）のプロンプト・レプリカのタイミングは累積間隔を規定できる。チップ・シーケンスは始動遅延９３（図６）、データ・ワードＷｌ９５（図６）を過ぎたΔｔstart秒で始動し、それは一定チッピング率ｆｃ＝１／Δｔｃでチップし、終了時間９７（図６）で終了し、それはデータ・ワードＷ1９５（図６）の第１サンプル後のΔｔstart＋ＭΔｔｃ秒で生ずる。Ｍｔｈ番目のプロンプト・コード・チップの終わりはデータ・ワードＷＮ９９（図６）中に生じ得て、それは、
Ｎ＝ｃｅｉｌ（（Δｔstart＋ＭΔｔｃ）／ｎｓΔｔｓ）                  （４１）
を暗示している。
【００９６】
ここで、ｃｅｉｌ（）関数は＋∞の方向において最も近い整数に向けて切り上げされる。データ・ワードＷ１９５（図６）の初期ビットの幾つかとデータ・ワードＷＮ９９（図６）の最終ビットの幾つかとは累積内に含まれ得る。ｎex0を排除されるデータ・ワードＷ１９５（図６）の初期ビットの数とすると共に、ｎexfを排除されるデータ・ワードＷＮ９９（図６）の最終ビットの数とする。図６におけるタイミング関係は、これらの数が：
ｎex0＝ｃｅｉｌ（Δｔstart／Δｔｓ）                              （４２ａ）
ｎexf＝ｎｓＮ−ｃｅｉｌ（（Δｔstart＋ＭΔｔｃ）／Δｔｓ）          （４２ｂ）
であることを暗示している。
【００９７】
これらサンプル・カウント数は、ここにそれら全体を引用することで合体させる、非特許文献６に見られる、非特許文献７及び非特許文献８で規定されているように、ビット単位並列累積計算中に第１及び最終データ・ワードを適切に処理すべくソフトウェア相関器１９（図１）が使用する追加ゼロ・マスク・ワードを開発するため使用され得る。留意すべきことは、式（４１）乃至（４２ｂ）及びここでの全ての関連タイミング考察は、以下のコード・チップ始動／停止慣例を用いる：もしコード・チップがサンプル時間と正確に合致すればサンプルはその特定のコード・チップと相関するが、もしそのサンプル時間がコード・チップの終了時間と正確に合致すれば、それはそのチップと相関関係を得られない。
【非特許文献６】IEEE Transactions on Wireless Communications, 2003
【非特許文献７】A 12-Channel Real-Time GPS L1 Software Receiver, B. M. Ledvina et al., Proceedings of the ION National Technical Meeting, January 22-24, 2003, Anaheim, CA.
【非特許文献８】Bit-Wise Parallel Algorithms for Efficient Software Correlation Applied to a GPS Software Receiver, B. M. Ledvina et al.
【００９８】
続いて図６で参照されるように、Ｎ個のデータ・ワードＷ１９５（図６）乃至データ・ワードＷN９９（図６）に対する正しいｘp(i)、ｘemlzm(i)、並びに、ｘeml2s(i)ビット単位並列コード表現を効率的に決定することは、データ・ワードＷｖと対応する正しいテーブル・インデックスｉｖの効率的な決定を為すことを含み、ここで、ｖ＝１，．．．，Ｎで有り、テーブル・インデックスｉｖは、始動遅延Δｔstart９３（図６）の関数、実際のＰＲＮコード・チップ長Δｔｃ６５（図６）、ｖ、並びに、プロンプト・コード・チップＣ（０），Ｃ（１），Ｃ（２），．．．，Ｃ（Ｍ＋１）９１（図６）である。チップ値Ｃ（０）９４（図６）は、累積の初期の数サンプルでレイト・コード６９Ｃ（図２Ｄ）を特定化すべく必要であり、そしてチップ値Ｃ（Ｍ＋１）９６（図６）は、最終の数サンプルでアーリー・コード６９Ｂ（図２Ｄ）を特定化すべく必要である。ｉｖインデックスを決定すべく使用可能な追加の定数は、Δｔｓ、ｎｓ、ｍ、Ｌｓ、ｋmin、ｋmax、並びに、公称チップ長Δｔcnomであり、３つのｘ(i)テーブルを発生すべく使用された。
【００９９】
インデックス計算手続きの第１ステップは、式（３６）の右辺に現れる最終合計項に対する候補整数のテーブルを事前計算すると共に記憶することである。このテーブルは以下の形態を採用する：
2007525039.tif 000047
【０１００】
この計算は未定義のチップ値Ｃ（−Ｌ＋１），Ｃ（−Ｌ＋２），Ｃ（−Ｌ＋３），．．．，Ｃ（−１）と、Ｃ（Ｍ＋２），Ｃ（Ｍ＋３），Ｃ（Ｍ＋４），．．．，Ｃ（Ｍ＋Ｌ）を要求する。値ゼロはそれら未定義チップの各々に対して使用可能であり、その理由は、それがデータ・ワードＷ１９５（図６）の第１ｎex0サンプルに対してだけ、或は、データ・ワードＷＮ９９（図６）の最終ｎexfサンプルに対してだけ過剰サンプリング・コードに影響し得るからであり、それらは累積の一部ではない。式（４３）のテーブルは以下の反復手続きを用いることによって構成され得る：
Δi(l)＝C(0)                                                      （４４ａ）
Δi(μ)＝mod[2Δi(μ-1),2L]＋C(μ-1)  μ＝2,3,4,...，(M+2)       （４４ｂ）
Δi(μ)＝mod[2Δi(μ-1),2L]           μ＝(M+3),(M+4),...,(M+L+1)（４４ｃ）
留意すべきことは、ｍｏｄ（２x，２L）演算は単一の切頭左向きビット・シフトによって置き換え可能である。
【０１０１】
多くの場合、プロンプト・コード・チップ９１（図６）Ｃ（０），Ｃ（１），Ｃ（２），．．．はフィードバック・シフトレジスタ或はそうしたレジスタのシステムの出力として発生され得る。例えば、新ＧＰＳ民生Ｌ２信号はこの方法で発生可能である。この場合、式（４４ｂ）の各反復はシフトレジスタ計算の反復と交互配置可能である。ＰＲＮコードのシフトレジスタ発生は当業界では周知である。
【０１０２】
先行して記載されたテーブルを構築する代替としては、一時に１つのデータ・ワードだけのインデックス成分を計算することである。Δｉｖがデータ・ワードＷｖに対する正しいインデックス成分であり、μｖがΔｉ(μ)テーブルからΔｉｖを決定するため使用される補助インデックスであることを仮定すると、テーブルは存在する。データ・ワードＷｖ＋１に対するΔｉv+1を計算するために、μv+1が計算され（ここで定義された手続き）、Ｃ（μｖ），Ｃ（μｖ＋１），Ｃ（μｖ＋２），．．．，Ｃ（μv+1−１）を発生するフィードバック・シフトレジスタ計算が反復され、そして、結果としてのチップ値が式（４４ｂ）或は（４４ｃ）の（μv+1−μｖ）反復を実行すべく使用される。
【０１０３】
正しいインデックスのデータ・ワードＷｖに対するｘp(i)，ｘemlzm(i)，ｘeml2s(i)への決定は、２つの量の決定に縮小され得る。一方は、式（３２）からのΔｔ0kvをデータ・ワードＷｖに対する真時間オフセットと出来る限り密接に符合させる時間オフセット・インデックスｋｖである。他方の量は補助テーブル・インデックスμｖである。それはデータ・ワードＷｖと関連される実際のチップのシーケンスに対するインデックスを構成する。これら２つの量が与えられれば、３つのｘ(i)テーブルに対する正しいインデックスは：
ｉｖ＝１＋（ｋｖ−ｋmin）×２L＋Δｉ(μｖ)  ｖ＝1,2,3，．．．，Ｎ （４５）
【０１０４】
補助インデックスμｖはＰＲＮコード・チップ・シーケンスに対するＷｖデータ・ワードの一によって決定される。ひとたびその位置が確かめられたならば、インデックスｋｖはそのインデックスμｖと関連されたＬコード・チップのＷｖサンプルに対する位置から計算され得る。
【０１０５】
時間整数は所与の間隔内での微細スケール時間単位の数を追跡し得る。微細スケール時間単位はサンプル間隔６３（図２Ｄ）の小さな分数であり、Δｔｉ：
Δｔｆ＝Δｔｓ／ｍｆ                                              （４６）
【０１０６】
ここで、ｍｆはサンプル間隔６３（図２）、Δｔｓ毎の微細スケール時間間隔の整数の数である。この数は例えばｍｆ>２ｍＮと十分大きく選択されて、有限時間分解能Δｔｆによる累積間隔中のタイミング・エラーの任意の重大な蓄え排除する。Ｎは累積間隔におけるデータ・ワードの数である。１つの累積間隔にわたるｋｖ値の計算はＮ個の反復回増分を含み、その各々はΔｔｆの分解能を有する。もしｍｆが先に付与された不等式に従えば、有限精度Δｔｆによる累積タイミング・エラーがｘ(i)テーブルの有限タイミング・精度によって生ずるタイミング・エラーより小さい。通常、ｍｆを２ｍＮより相当大きくすることが可能であり、関連計算の全てを３２ビット符合化整数のサイズ限界内に保持する。もしｍｆが２の累乗であれば、右向きビット・シフト演算がｍｆによる整数分割を具現化するため使用可能である。時間単位Δｔｆは、以下のデータ・ワードＷｖに対するコード／サンプル時間オフセットΔｔ0vの追跡を略保持する整数を規定するため使用可能である。
2007525039.tif 000048
【０１０７】
ここで、ｒｏｕｎｄ（）関数は最も近い整数に向けて切り上げ或は切り下げされる。時間遅延６７（図２Ｄ）、Δｔ0v、はＰＲＮコード・チップＣ（μｖ−Ｌ）の終了時間がデータ／ワードＷｖの第１サンプル時間を遅延させる量である。ｋfvを反復的に決定するアルゴリズムは式（４７）における関係を正確に保持しようとするが、整数演算だけを用いて小さなエラーが蓄えられることを可能とする。留意すべきことは、式（３２）及び（４７）の比較によって暗示されるように、
2007525039.tif 000049
である。この関係は反復的に決定されるｋｆｖからｋｖを決定すべく使用可能である。幾つかの定数は、ｋfv，ｋｖ，μｖを決定する反復的手続きによって要求される。第１の５つの定数は、ｘ（ｉ）テーブルを発生すべく使用される公称チップ長Δｔcnomと、以下の累積に使用される実際のチップ長６５（図２Ｄ）、Δｔｃとの間の差を考慮すべく使用される。
ｋfmid＝ｒｏｕｎｄ［（ｎｓ−１）ｍｆ／２］                          （４８ａ）
λ＝Δｔｃ−Δｔcnom／Δｔｃ                                        （４８ｂ）
ａfix0＝ｃｅｉｌ［（ｋfmid−ｍfｋmin／ｍ）λ２］ｓｉｇｎ（λ）       （４８ｃ）
2007525039.tif 000050
ａfix＝ｒｏｕｎｄ（λｂfix）                                        （４８ｅ）
【０１０８】
ここで、ｓｉｇｎ（）関数は、もしその入力独立変数が正であれば＋１をもたらし、もしその独立変数がゼロであればゼロをもたらし、そしてもしその独立変数が負であれば−１をもたらす。インデックスｋfmidは、Δｔｆ秒の単位で測定した場合、データ・ワードの長さの約半分である。累積中、論理的因子ａfix／ｂfixは、第１コード・チップの終了時間とデータ・ワードの中間点との間の時間オフセットによって乗算される。その結果は実際と公称のＰＲＮコード・チッピング率の間の差の平均効果を除去する時間摂動である。時間摂動は以下の矯正ｋfv値を計算すべく使用可能である。
2007525039.tif 000051
【０１０９】
式（４８ｄ）はｂfixを採集して２の累乗と等しくして、式（４９）におけるｂfixによる整数分割が右向きビット・シフト演算を用いて達成されるように為す。式（４９）におけるｒｏｕｎｄ（）演算は、もしｂfixによる分割を構成する右向きビット・シフトを実行する前に１が先ずｓｉｇｎ（ａfix）×ｂfix／２を量（ｋfmid−ｋfv）×ａfixに加算されれば、分割の一部として達成される。このアプローチは、（ｋfmid−ｋfv）及びｂfixの符合が双方とも正であり且つ右向きビット・シフトが符号付き分割結果をゼロに向かって丸める効果を有する。丸め（ｒｏｕｎｄ）関数の代替具現化例はｋfmid>ｋfvを保証しない用途に使用され得る。そうした用途は、通常、データ・ワード毎にＬ<２ＰＲＮコード・チップと関連されている。
【０１１０】
５つの追加定数は以下のｋｆｖ及びμｖ反復を規定するのに使用可能である。
2007525039.tif 000052
【０１１１】
定数Ｌtypはデータ・ワード毎のコード・チップの典型的な数である。それはデータ・ワード毎にμｖへの公称増分である。定数ΔｋfcはＰＲＮコードチップ当たりの細かいスケール時間間隔に等しい。定数Δｋfcは、もしｋfvがｋfmin<ｋfv<ｋfmaxの限界の外側に入ればｋｆｖを上げる或は下げるように調整するのに使用される。定数Δｋftypはデータ・ワード毎のｋｆｖへの公称増分である。限界ｋfmin及びｋfmaxは新微細時間スケールに再スケールされ、そしてｘ(i)テーブルの公称コード・チッピング率と累積の実際のチッピング率との間の差に対して調整された式（３３ａ）及び（３３ｂ）からの略制限ｋmin及びｋmaxである。式（３３ａ）の右辺における余分な−２項は、式（５０ｄ）の右辺におけるｋminへの増分と、式（５０ｅ）の右辺におけるｋmaxへの減分とによって補償される。オリジナルの−２項、増分、並びに、減分は、それが式（５０ｄ）及び（５０ｅ）における限界を妨げないｋｆ値が式（３３ａ）及び（３３ｂ）における限界を妨げないｋ値に変形されるので含ませられた。
【０１１２】
反復は第１データ・ワードに対するｋｆｌ及びμｌを初期化することによって始まる。公称初期値は：
2007525039.tif 000053
式（５１ａ）からのｋflnomがその上限ｋfmaxを乱し得ることは可能である。それ故に、以下の条件的調整が具現化され得て、初期化を終了する。
2007525039.tif 000054
2007525039.tif 000055
【０１１３】
この初期化が与えられれば、（ｋf2，μ2），（ｋf3，μ3）、（ｋf4，μ4），，．．．，（ｋfN，μN）は以下の反復に従って進む。
ｋfvnom＝ｋf(v-1)＋Δｋftyp          ｖ＝２，３，４，．．．，Ｎ    （５３ａ）
μvnom＝μ(v-1)＋Ｌtyp        ｖ＝２，３，４，．．，Ｎ            （５３ｂ）
2007525039.tif 000056
2007525039.tif 000057
【０１１４】
テーブル検索計算はｋｖ、ｉｖ、並びに、実際のテーブル検索で終了する：
ｋｖ＝round［ｍｋｆｖｆｉｘ（ｋｆｖ）／ｍｆ］  ｖ＝1,2,3,．．．，Ｎ  （５５）
【０１１５】
ｒｏｕｎｄ（）演算は、ｍｆによる分割を構成する右向きビット・シフト前にｍｆ／２をｍ×ｋfvfix（ｋfv）に加算することによって具現化される。この分割の結果は、もしコンピュータが２の補数表記で作動すれば、そしてもし右向きビット・シフトが２の補数符号ビット、即ち最左翼ビットで左からｋfvfix（ｋfv）の任意の符号に対してｋｖの正しい値となる。
【０１１６】
式（５５）からｋｖがそして式（５４ｂ）からμｖが与えられたならば、式（４５）からｉｖを計算するのに使用可能である。次いでこの値は、プロンプトＰＲＮコード符号２９Ａ（図２Ｄ及び図３Ａ）：ｘpv、アーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂ（図２Ｄ及び図３Ａ）：ｘemlzv、並びに、データ・ワードＷｖと対応するアーリー-マイナス-レイトＰＲＮコード符号３５Ａ（図２Ｄ及び図３Ａ）：ｘeml2svを決定するテーブルに索引付けするのに使用可能である：
ｘpv＝ｘp(iv)          ｖ＝１，２，３，．．．，Ｎ              （５６ａ）
ｘemlzms＝ｘemlzm(iv)    ｖ＝１，２，３，．．．，Ｎ              （５６ｂ）
ｘeml2sv＝ｘeml2s(iv)    ｖ＝１，２，３，．．．，Ｎ              （５６ｃ）
【０１１７】
式（５４ａ）及び（５４ｂ）の論理命題は、効率を改善すべく、通常演算中、データ・ワード毎の単一論理命題に縮小され得る。これは、式（５３ａ）におけるΔｋftypの符号が所与の累積間隔に対して固定されているから為され得る。（通常、Δｋｆｔｙｐの符号は、累積間隔毎、或は、所与のレシーバに対するチャネル毎に変動せず、その理由は、Δｋftypに影響する唯一の変数量が実際のチップ長６５（図２Ｄ）：Δｔｃであり、それが通常大きくは変動しないからである。）もし、Δｆtyp<０であれば、ｋfv及びμｖを決定する適切な公式は不等式ｋfvnom<ｋfminを考慮することによって決定され得る。逆に、もしΔｋftyp>０であれば、適切な公式は不等式ｋfvnom>ｋfmaxを考慮することによって決定される。何れの条件がチェックされるべきかについての判定は累積の始めに為されるが、その理由は、Δｋftypが式（５３ａ）乃至（５６ｃ）における反復の実行に先行して計算されるからである。
【０１１８】
指示パイプラインを作り出すプロセッサを用いる場合、「もし(if)」ステートメントはそのパイプラインを混乱させる。この場合、式（５４ａ）及び（５４ｂ）は以下の計算で置き換え可能である：
2007525039.tif 000058
ｋfv＝ｋfvnom−ηfvΔｋfc    ｖ＝２，３，４，．．．，Ｎ          （５７ｂ）
μv＝μvnom−ηfv                ｖ＝２，３，４，．．．，Ｎ      （５７ｃ）
【０１１９】
ｍｉｎ（）及びｍａｘ（）関数は、それぞれ、それらの２つの入力独立変数の最小及び最大をもたらす。変数ηfvは通常ゼロであり、その場合、式（５７ｂ）及び（５７ｃ）はｋfvをｋfvnomと等しくし且つμvをμvnomと等しくする。Δｋftyp<０及びｋfvnom<ｋfminの場合、ηfvの値はゼロであり、Δｋftyp>０及びｋfvnom>ｋfminの場合、ηfvの値は＋1である。これら双方の場合、ηfvは式（５７ｂ）及び（５７ｃ）がｋfv及びμvに必要な調整を実行させる。留意すべきことは、効率的なコードは、データ・ワード毎に一度、式（５７ａ）における論理命題を実行しないことである。代わりに、その累積反復が、Δｋftypの値に応じて、３つの異なる反復ループの内の１つで実行される。追加的な節約は式（５７ａ）の第１及び第３の条件付き節でもたれ得る。第１条件に対する−ηfvの値は、ｋfvnom−ｋfminの２の補数表現の符号ビットと等しい。同様に、第３条件に対する＋ηfvはｋfmax−ｋfvnomの２の補数表現の符号ビットと等しい。何れの場合も、ηfv（或はその負）は２つの演算で計算される。
【０１２０】
リアルタイムの過剰サンプリングＰＲＮコード発生器３０Ａ（図３Ａ）を要約すると共に、図７を参照すると、プロンプトＰＲＮコード２９（図３Ａ）及び全累積間隔に対するアーリー-マイナス-レイトＰＲＮコード３５（図３Ａ）を計算すべく、本方法は式（４４ａ）乃至（４４ｃ）を反復するステップを含んで（方法ステップ２０１、図７）、Δｉ（μ）値から成るテーブルを構築する。方法は、式（４８ａ）乃至（４８ｅ）及び（５０ａ）乃至（５０ｅ）における補助定数を計算するステップを更に含む（方法ステップ２０３、図７）。またこの方法は、式（５１ａ）乃至（５２ｂ）を評価することによってｋｆｌ及びμｌを初期化するステップを更に含む（方法ステップ２０５，図７）。この方法は、式（５３ａ），（５３ｂ），（５７ａ）乃至（５７ｃ），（４９），（５５），（４５）を反復するステップを更に含んで（方法ステップ２０７、図７）、各反復に対して、ｋfvnom，μvnom，ηfv，ｋfv，μｖ，ｋｖ，ｉｖを計算する。この方法は、式（５６ａ）乃至（５６ｃ）を反復するステップを更に含んで（方法ステップ２０９、図７）、各反復に対して、ｘpv，ｘemlzmv，ｘeml2svを計算する。
【０１２１】
既に述べたように、式（４４ａ乃至４４ｃ）反復と付随するシフトレジスタ反復とをｋfvnom乃至ｘeml2svを計算する反復間に交互配置することは効率的であることは立証し得る。その後、コード・チップＣ（μv-1−１）乃至Ｃ（μｖ−１）を発生数シフトレジスタ反復が実行され得て、これらチップ値は、μv-1からμｖまで式（４４ａ乃至４４ｃ）を反復すべく使用可能であって、Δｉ（μv-1）からΔｉ（μｖ）を決定する。
【０１２２】
本発明のソフトウェア相関器１９（図１）は、有益には、異なる周波数での信号、新ＰＲＮコード、或は、異なるタイプの装置に対する信号でも作動するように容易に変更される。よって、同一のハードウェアはそのソフトウェア相関器１９（図１）を使用して、そうした装置を、ＧＰＳレシーバ、携帯電話、或は、その双方として具現化する。新コード、新周波数、並びに、新タイプの機能を許容すべく、小さな変更がソフトウェア相関器１９（図１）に為され得るか、或は、異なるバージョンのソフトウェア相関器１９（図１）が同一プロセッサ上で走らされる。それら変更は異なるベースバンド混合周波数及び相互関係において異なるＰＲＮコードを用いることを含み、たぶん、変更は対象の新信号をソフトウェア相関器１９（図１）に提供する。本発明に対して、異なる周波数での信号、新ＰＲＮコード、或は、異なる装置に対する信号で作動するためには、２つの基本的な変更が為される必要性がある。第１として、ベースバンド混合周波数が信号データ２１のものに誂えられなければならず、その新周波数で正弦及び余弦テーブルを事前計算し記憶することも含む。第２として、新しい事前計算過剰サンプリングＰＲＮコード・テーブル２８（図３Ａ）が構築されなければならない。新テーブルのサイズは過剰サンプリング累積期間か、或は、ＰＲＮコードの少なくとも１つの過剰サンプリング期間と符号すべきである。新しい事前計算過剰サンプリングＰＲＮコード・テーブル２８（図３Ａ）を発生する代替として、その新ＰＲＮコードは過剰サンプリングＰＲＮコード発生器３０Ａ（図３Ａ）によってリアルタイムで発生され得る。また、本発明のシステム及び方法は、ＧＬＯＮＡＳＳレシーバ、携帯電話、携帯電話基地局、呼び出し器、無線イーサネット（例えば、８０２．ｌｌｘ規格）、ブルートゥースＴＭ、Ｂｌａｃｋｂｅｒｒｙ（登録商標）無線インターネット装置、並びに、衛星ラジオ／電話（例えば、ＩＮＭＡＲＳＡＴ（登録商標））等のシステム内で具現化され得る。事実、本発明のシステム及び方法は、スペクトル拡散、有線或は無線の何れでも情報伝達のための符号分割多重アクセス（ＣＤＭＡ）擬似乱数コードを用いる任意の種類の遠隔通信システム／装置に適用可能である。
【０１２３】
図８で参照されるように、ナビゲーション算定はＰＲＮコード位相５５、搬送波位相、並びに、搬送波周波数の測定値を要求する。全追跡衛星に対する測定は正確に同時に取られなければならない。時間間隔カウンタ（ＴＩＣ）機能は周期的タイミング方式を提供して、時間tTIC５６でこれら測定を同期化する。時間tTIC５６で、ＴＩＣ機能はＰＲＮコード位相５５、搬送波位相、並びに、搬送波周波数の全てをコート・エポック・カウンタと一緒にラッチし、ソフトウェア相関器１９（図１）はこれらを用途特定コード１５（図１）、例えばＧＰＳレシーバ・ソフトウェアに利用可能と為す。ＧＰＳレシーバ・ソフトウェアはコード位相及びエポック・カウンタを用いて、各衛星への擬似レンジを計算する。ソフトウェア相関器１９（図１）はコード・チッピング率及び搬送波ドップラー偏移入力によって決定された各信号のコード及び搬送波位相の追跡を保持する。量
2007525039.tif 000059
：衛星ｊに対するソフトウェア・レシーバ１０のそのｋ番目のＰＲＮコード期間中における推定されたコード・チッピング率は取得サーチ手続きによって決定されるか、或は、もし追跡であれば、遅延ロックド・ループによって決定される。同じように、
2007525039.tif 000060
：関連搬送波ドップラー偏移は取得手続きで規定されるか、或は、もし追跡が着手されたならば、位相ロックド・ループ或は周波数ロックド・ループで規定され得る。これらの決定は用途特定コード１５（図１）によって為される。ソフトウェア相関器１９（図１）はこれら２つの周波数を用いて、以下の公式に従ったそのコード及び搬送波位相の追跡を保持する量を更新できる。
2007525039.tif 000061
2007525039.tif 000062
【０１２４】
ソフトウェア相関器１９（図１）はこれらの量の追跡を保持でき、これら反復を、用途特定コード１５（図１）と連携し実行する信号取得算定の一部として初期化できる。量
2007525039.tif 000063
及び
2007525039.tif 000064
は用途特定コード１５によってソフトウェア相関器１９へ送信するか、或は、それらがソフトウェア相関器１９によって任意に初期化され、そして、用途特定コード１５は
2007525039.tif 000065
及び
2007525039.tif 000066
のフィードバック制御を実行して、式（５８）及び（５９）によって規定されたシーケンスの適切な値への集中を強制する。先行して記載下従来方法についての情報はＤｉｅｒｅｎｄｏｃｋに見出せる。
【０１２５】
ＴＩＣ時間tTIC５６（図８）は、例えば、レシーバ・クロックのミリ秒境界で生じ得る。各時間tTIC５６で、各信号のＰＲＮコード位相５５（図８）は以下のようにして計算される：
2007525039.tif 000067
【０１２６】
ここで、
2007525039.tif 000068
はＴＩＣ時間tTIC５６（図８）での信号ｊのチップにおけるＰＲＮコード位相５５（図８）である。エポック・カウンタ、即ちコード期間５７（図８）の数の単なる現在高であり、各コード始動／停止時間で増分する。
【０１２７】
時間tTIC５６（図８）での搬送波位相算定は、以下の如くに、ＰＲＮコード位相５５（図８）算定と同様である。
2007525039.tif 000069
【０１２８】
ここで、
2007525039.tif 000070
は時間tTIC５６での搬送波位相である。時間tTIC５６（図８）で帰還するドップラー偏移は
2007525039.tif 000071
である。
【０１２９】
本発明のシステム及び方法の性能に関して、本発明の例示的実施例からのサンプル・スクリーン・ショットが表８に提供されている。この表は９チャネルの追跡を例示的に示す。この例示的実施例のルーフ搭載Ｌ１アンテナは２６ｄＢ利得を伴うプレアンプを有し得る。本発明のソフトウェア相関器１９（図１）は、用途特定ソフトウェア１５（図１）と連携して作動する際、１０〜１５メートル程度の位置的精度を提供し得る。
【０１３０】
【表８】
2007525039.tif 000072
例示実施例による数値ＰＧＳ追跡データ出力
【０１３１】
２つの比較テストは本発明のシステム及び方法の性能を例示している。第１テストにおいて、第１構成はＭＩＴＥＬ（登録商標）ＧＰ２０２１ハードウェア相関器を含むが、本発明のソフトウェア相関器１９（図１）を含む第２構成と全て別の方式で同等である。これら２つの構成はその１ｄＢ小さいＳＮＲとせいぜい５〜１０メートルのナビゲーション分解能で異なる。第２テストにおいて、本発明のシステムを用いるタイミング研究は６つのチャンネルを処理することがプロセッサの容量の約２０％だけしか使用しない一方で、Ａｋｏｓ２００１ａはリアルタイムソフトウェアＧＰＳレシーバを報告し、それが１．７３ＧＨｚマイクロプロセッサ容量の１００％を要求して、５．７１４ＭＨｚのサンプリング周波数でのＲＦフロントエンドからのデータを処理する際に６チャネルＧＰＳレシーバを具現化する。
【０１３２】
図９Ａ及び図９Ｂで参照されるように、とりわけ、リアルタイム過剰サンプリングＰＲＮコード発生器３０Ａ（図３Ａ）によって発生されるＰＲＮコードの精度を査定する指標であり、プロンプトＰＲＮコード符号２９Ａ（図３Ａ）、アーリー-マイナス-レイトＰＲＮコード符号３５Ａ（図３Ａ）、並びに、アーリー-マイナス-レイトＰＲＮコード・ゼロ・マスク３５Ｂ（図３Ａ）を含み、発生コード対真コードの低い歪みである。プロンプト・コード比較に対して発生された図９Ａは、サンプリング真コードの自動相関関数８０（図９Ａ）と、サンプリング真コード及び真ｘｐテーブルから発生されたサンプリング・コードの間の交差相関関数８２（図９Ａ）の並置プロットを示す。図９Ｂは、アーリー-マイナス-レイトＰＲＮコード３５（図３Ａ）に対する同様の比較を示す。何れの場合でも、公称チッピング周波数はｆcnom＝１／Δｔcnom＝１．０２３ＭＨｚであり、サンプリング周波数はｆｓ＝１／Δｔｓ＝１２．１９９ＭＨｚであり、そして、テーブルのコード・タイミング分解能はｍ＝１２、即ちサンプルの１／１２番目である。この分解能はコード・チップの約１／１４３番目に変形する。実際のチッピング率は（ｆｃ−ｆcnom）＝１．５Ｈｚだけ公称のものとは異なる。コード・チッピング率のこのドップラー偏移は、レシーバ及びトランシーバ間の重要な非ゼロ範囲、４３８ｍ／秒と対応する。相互関係は１０２３０個のコード・チップにわたって累積され、そのコードは新ＧＰＳ民生Ｌ２ ＣＬ及びＣＭコードの対の時分割バージョンである。この例に対するデータ・ワード割出差婦負は、Δｔｓ／１０５、即ち、ｍｆ＝１０５のコード・チップ始動時間分解能を用いる。
【０１３３】
図９Ａ及び図９Ｂから明かなように、プロンプトＰＲＮコード２９（図３Ａ）及びアーリー-マイナス-レイトＰＲＮコード３５（図３Ａ）歪みは非常に小さい。新テーブルを用いて作り出された相互関係は正確なコードから作り出されたものと理想的に同等である。新アプローチの低い歪みは２つのパラメータによって最良に特徴付けされ：プロンプトＰＲＮコード符号２９Ａ（図３Ａ）の相互関係ピークが１以下に垂れ下がる量と、アーリー-マイナス-レイトＰＲＮコード３５（図３Ａ）のゼロ交差時間のオフセットとである。前者の測定基準は新アプローチのパワーロスを特徴付け、後者の測定基準は正味のタイミング・エラーを特徴付ける。プロンプト・ピークの垂れ下がりは公称振幅のほんの０．３％で有り、それは０．０３ｄＢ損失に変換される。新コードのタイミング歪みは４×１０−４未満のコード・チップである。この歪みは非常に小さく、それはＧＰＳ範囲測定エラーの約０．１ｍに変換される。
【０１３４】
ｘ（ｉ）テーブルのコード・タイミング粒状度が
2007525039.tif 000073
コード・チップである場合、コード・タイミング・エラーが４×１０−４未満のコード・チップであることは自己矛盾しているように見える可能性がある。この自己矛盾の解決策は累積の平均化効果に横たわっている。コード・チップの長さは、図９Ａ及び図９Ｂに示される例に対して１４３．０９９２６９コード・オフセット時間グリッド間隔と等しい。この数の非整数特性は、ｘ(i)テーブルのコード・オフセット・エラーを、累積が連続的なデータ・ワードを通じてのその道を作業するに連れて混乱させる。この混乱はテーブル粒状度エラーを平均化する傾向があり、この平均化は、図９Ｂに示されるように、大規模に或はそれ以上に正味のタイミング・エラーを低減できる。
【０１３５】
本発明は様々な実施例に関して記載されたが、この発明は広範な種類の更なる別の実施例を収容できることを理解されたい。
【図面の簡単な説明】
【０１３６】
【図１】図１は、典型的なソフトウェア・レシーバのハードウェア環境の概略ブロック線図である。
【図２Ａ】図２Ａは、データ・ワードを計算するための信号及び搬送波レプリカの符号及びマグニチュード・ビットのビット単位マッピングの概略線図である。
【図２Ｂ】図２Ｂも、データ・ワードを計算するための信号及び搬送波レプリカの符号及びマグニチュード・ビットのビット単位マッピングの概略線図である。
【図２Ｃ】図２Ｃは、ビット単位並列無線周波数信号及びＰＲＮコード・レプリカ記憶及び混合のプロットの図表表現である。
【図２Ｄ】図２Ｄは、プロンプト、アーリー、レイト、及びアーリー-マイナス-レイトＰＲＮコード信号と、それら過剰サンプリング等価物の１６ビット・ワード表現の各種区分のプロットの図表表現である。
【図３Ａ】図３Ａは、本発明のビット単位並列プロセス（２度の複写、同位相搬送波レプリカに対する１度、直角位相搬送波レプリカに対する１度）を図示するデータフロー線図である。
【図３Ｂ】図３Ｂも、本発明のビット単位並列プロセス（２度の複写、同位相搬送波レプリカに対する１度、直角位相搬送波レプリカに対する１度）を図示するデータフロー線図である。
【図３Ｃ】図３Ｃは、読者の本発明の理解を高めるべく提示された、正弦波の先行技術に係る最適２ビット表現のプロットの図表表現である。
【図４Ａ】図４Ａは、本発明のビット単位並列計算を通じての相互関係累積の計算のための方法のフローチャートである。
【図４Ｂ】図４Ｂも、本発明のビット単位並列計算を通じての相互関係累積の計算のための方法のフローチャートである。
【図５】図５は、コード時間オフセット及びチップ・ビット・パターンの関数としての検索テーブル・レイアウトの概略線図である。
【図６】図６は、データ・サンプル・ワードと、累積間隔を規定するプロンプト・コード・チップのシーケンスとの間のタイミング関係を図示するプロットの図表表現である。
【図７】図７は、リアルタイム過剰サンプリングＰＲＮコード発生アルゴリズムを用いて、全累積間隔に対する過剰サンプリング・プロンプトＰＲＮコード・レプリカ及び過剰サンプリング・アーリーＰＲＮコード・レプリカのビット単位並列表現を計算する方法のフローチャートである。
【図８】図８は、各信号のコード位相が計算される時間における箇所を図示するプロットの図表表現である。
【図９Ａ】図９Ａは、真及びテーブル検索コードのプロンプト・バージョンを伴う真サンプリング・コードの相関関係のプロットの図表表現である。
【図９Ｂ】図９Ｂは、アーリー-マイナス-レイト・バージョンを伴う真サンプリング・コードの相関関係のプロットの図表表現であり、新リアルタイム過剰サンプリングＰＲＮコード発生器によって発生する。
【符号の説明】
【０１３７】
１１    アンテナ
１３    ＲＦフロントエンド
１７    データ・バッファリング及び取得システム
１９    ソフトウェア相関器
１６    マイクロプロセッサ
【図１】
2007525039.tif 000074
2007525039.tif 000075
2007525039.tif 000076
2007525039.tif 000077
2007525039.tif 000078
2007525039.tif 000079
2007525039.tif 000080
2007525039.tif 000081
2007525039.tif 000082
【図５】
2007525039.tif 000083
【図６】
2007525039.tif 000084
【図７】
2007525039.tif 000085
【図８】
2007525039.tif 000086
2007525039.tif 000087
【国際調査報告】
2007525039.tif 000088
2007525039.tif 000089
2007525039.tif 000090