説明

リアルタイム・ソフトウェア・レシーバ

汎用プロセッサ上で実行するリアルタイム・ソフトウェア・レシーバ(10)は、データ取得(17)と、ハードウェア相互関係の代わりに、ビット単位並列処理を用いてベースバンド混合及びPRNコードの相関関係を実行する相関モジュール(19)とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
政府所有権の陳述
この発明は、契約番号N00014−J−1822に基づく、海軍研究事務所(ONR)と契約番号NCC5−563、NAG5−11819、及び、NAG5−12089に基づく、航空宇宙局とからの合衆国政府支援で為された。合衆国政府はこの発明において特定の権利を有する。
【0002】
発明の背景
この発明は、全般的には、ソフトウェア無線レシーバに関し、より詳細には測位システム用のソフトウェア・レシーバに関する。
【背景技術】
【0003】
全地球測位システム(GPS)に用いられているもの等の典型的な測位システム・レシーバは、アンテナ、無線周波数(RF)区分、相関器、信号追尾及び復調構成要素、並びに、ナビゲーション解決を計算する構成要素を含む。事前増幅器が後に続き得るアンテナはL帯域GPS信号を受信する。RF区分はGHz GPS信号をフィルタしてMHz範囲の中間周波数に周波数逓降変換する。またこのRF区分はその信号をディジタル化する。相関器は逓降変換された信号を衛星に割り当てられた各種々のチャネル(現代のレシーバでは10個或はそれ以上)に分離する。各衛星に対して、相関器はドップラー偏移中間周波数信号を搬送波レプリカ信号のローカルコピーと相関させることによってベースバンドに混合し、その信号を擬似乱数(PRN)コードと相関させることによって特定の衛星を区別する。ソフトウェア・ルーチンは搬送波レプリカ及びPRNレプリカの信号に実際に受信された信号を追跡させ、ナビゲーション・メッセージを抽出し、そして、そのナビゲーション解決を計算する。
【0004】
ベースバンド混合は入力信号の複素数指数との乗算であり、その複素数指数の周波数はその入力信号の周波数と殆ど符合する。複素数信号は余弦成分及び正弦成分とに分解され得て、同位相成分及び直角位相成分で分離する。ベースバンド混合信号の周波数は、精密ナビゲーション・システム用のフェースロックロープの場合に数ミリヘルツ以内に制御され得て、そしてベースバンド混合信号は連続的に変動する位相を有しなければならない。ハードウェア相関器において、ローカル発振器は精密周波数制御及び連続位相を有する余弦信号成分及び正弦信号成分を発生する。正確な周波数及び位相を伴ってその場で余弦信号成分及び正弦信号成分を発生することは、ソフトウェア相関器に適するにはあまりにも時間がかかり過ぎる。代わりに、ソフトウェア相関器は周波数オフラインのグリッド上に余弦信号成分及び正弦信号成分を発生する。これら信号成分は、例えば1つの特定RFフロントエンド・ハードウェア形態に対して5.714MHz等のRFフロントエンド・サンプリング周波数でサンプリングされた点の時間グリッド上に記憶されなければならず、そうした信号は典型的な累積期間、例えば、GPS L1民生信号で作動する際の0.001秒粗捕捉(C/A)PRNコード期間の間、継続しなければならない。それには、地上レシーバからGPS衛星を追跡する際に必要とされる全周波数範囲である−10KHzから+10KHzまでにわたる1mHzグリッド上に全周波数をブルートフォースで又は強引に記憶するために、10ギガバイト或はそれ以上のメモリが必要であり、追加記憶装置は各周波数点で可能性ある開始位相のグリッドの記憶が必要とされる。
【0005】
PRNコード混合はベースバンド混合信号のプロンプト(prompt)+1/−1PRNコードの乗算或は+2/0/−2アーリー-マイナス-レイト(early-minus-late)PRNコードの乗算であり、コード・タイミング及び周波数は入力信号のものと略合致する。結果としての信号はプロンプトPRNコード混合の場合には定数であり、アーリー-マイナス-レイト混合の場合にはコード・タイミング・エラーの略線形関数である。レシーバはこれら相関出力の双方を累積する。プロンプト累積のマグニチュードは信号強度を示す共に、信号が検出されたか否かを示し、同位相(実数)成分及び直角位相(虚数)成分が用いられて、搬送波位相及びドップラー偏移を測定する。アーリー-マイナス-レイト累積のマグニチュードはコード・タイミング・エラーを測定し、タイミング・エラーがゼロの場合にはそれはゼロとなる。
【0006】
ベースバンド混合信号のコード位相は精密なナビゲーション・システム用のPRNコード・チップのほん僅か或はそれほどでもない範囲以内で制御可能でなければならない。ハードウェア相関器において、ローカル発振器はプロンプト及びアーリー-マイナス-レイトPRNコード・レプリカを発生する。ソフトウェア相関器はPRNコード・レプリカを計算して記憶することができるか、或はそれらをリアルタイムで計算できる。
【0007】
現行の全地球測位システムはL2周波数及び新L5周波数での新民生コード、そして、L2周波数での新コード(M-コード、CL及びCMコード)を含む拡張能力を実現するように計画されている。これらアップグレードの内の幾つかは1〜3年以内に始動する予定である。ハードウェア相関器はこれら新信号を用いるためにハードウェア変更を必要としている。近いうちにレシーバ設計者は、新GPS衛星がより古いモデルと置き換わって、余分な複雑性で非常にゆっくりと生ずる改善性能の価値があるか否かを決定するために複雑な矛盾に直面するであろう。こうした複雑な矛盾を回避するための1つの方法は、新相関器チップセットの必要性無しに新信号を受信して処理できるソフトウェア・レシーバを用いることである。
【0008】
ソフトウェア・レシーバは、そのソフトウェア構成要素が容易に変更できるため、柔軟性がある。ソフトウェア・レシーバの1つの適用例は、単一装置を形成すべく、無線ディジタル通信プロトコルを用いる数々の装置を一体的に合体することである。GPSレシーバ及びパーソナルデータアシスタント(PDA)は3つ全ての役割を演ずる単一装置となり得る。ソフトウェア・レシーバの他の用途は、新無線装置のための開発時間及び市場投入時間を短縮することである。例えば、新周波数及びコードがGPSに追加されると、ソフトウェア相関器を有するソフトウェア・レシーバは単に再プログラムされる必要があるが、ハードウェア・アプローチは特有の種類の新相関器チップ設計を要求する。新PRNコードは、単にソフトウェア変更を為すことによって使用可能となる。よってソフトウェア・レシーバ・テクノロジーは、新信号への遷移期間中、設計者に係わるリスクを減らす。更にはソフトウェア・レシーバは、ガリレオ・システム(欧州GPS)或はGLONASS(ロシアGPS)を用いるべく、再プログラムされ得る。
【0009】
最近において、GPSソフトウェア・レシーバは、記憶信号を事前処理するか或はリアルタイムで動作するかの何れかを為すように開発されてきている。先行するリアルタイム・ソフトウェア・レシーバは限定された数(4〜6)チャネルを伴って機能するか或は高性能コンピュータの速度、或は、非特許文献1及び2等のディジタル信号プロセッサ(DSP)・チップを必要とする。これら2つの非特許文献は引用することでここに合体させる。
【非特許文献1】Real-Time GPS Software Radio Receiver, Akos et al., ION NIM 2001, 22-24, January 2001, Long Beach, CA pp.809-816 (Akos 2001a)
【非特許文献2】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
【発明の開示】
【発明が解決しようとする課題】
【0010】
それ故に、本発明の目的は、リアルタイムで動作し、且つ、厳格に限定された数のチャネル或は非常に高速なプロセッサに制限されないソフトウェア・レシーバを作成することである。
本発明の他の目的は、記憶されるべき正弦信号成分及び余弦信号成分の数を最少化することである。
本発明の別なる目的は、ビット単位並列を通じて入来する信号を処理することである。
本発明の更なる目的は、ビット単位並列の使用によって過剰サンプリングされた信号を処理することである。
本発明のまた更なる目的は、ビット単位並列化ソフトウェア・レシーバで非常に長い過剰サンプリングされたPRNコードを効率的に処理することである。
【0011】
先に詳述された目的は、更なる他の目的と共に、本発明によって対処される。本発明の解決策及び長所は以下に記載される例示的な実施例によって達成される。
【課題を解決するための手段】
【0012】
本発明のソフトウェア・レシーバ・システム及び方法は複数のアルゴリズムから成る集合の効率的な実行をイネーブルし、汎用プロセッサ上で入力チャネルからサンプリングされたデータに対するソフトウェア相関を実行する。本発明のシステム及び方法は、PRNコード記憶或はリアルタイムでのPRNコードの計算の何れかを提供する。PRNコード記憶は、1023チップ長であるGPS粗大/取得コード等の短い期間を有するPRNコードに対して適切である。この場合、本発明のシステム及び方法は、全PRNコード期間の過剰にサンプリングされたレプリカを事前計算し、テーブル等内に組織だって効率的な検索のためにそれらを記憶する。このテーブルは、RFデータがレシーバ・フロントエンドから有効であるサンプリング時間に対して測定されたコード始動時間の選択を含むことができる。各固有PRNコードに対して個別のテーブルがある。
【0013】
本発明のシステム及び方法は、ここで記載される過剰サンプリング関数の使用を通じてリアルタイムでのプロンプト及びアーリー-マイナス-レイトPRNコードの過剰サンプリング・バージョンをも発生し得る。この過剰サンプリング関数の値は、PRNコードにわたって包括的であり得る特別に設計されたテーブル内に配置され得る。この特別に設計されたテーブルの長さは、そのレプリカが所与の受信信号を処理すべく使用されるPRNコードの長さとは独立し得る。本発明のシステム及び方法は、迅速且つリアルタイムでのテーブル検索を可能とする特別に設計されたテーブルにインデックスを効率的に算出するための技術を含む。
【0014】
本発明のシステムは、受信信号をベースバンドと混合し、表形式PRNコード或はリアルタイム発生PRNコードの何れかを用いてビット単位並列及び検索テーブルを通じてベースバンド/PRN相関を計算し、そしてビット単位並列及びプロセッサ指示若しくは検索テーブルを通じての累積を計算できるソフトウェア相関器を含む。ビット単位並列処理はコンピュータ・データの所与のワードの多数ビットと同時に多数データ・サンプルを処理することを可能としている。例えば、32ビット・ワードに対して、ソフトウェア相関器は一時に32サンプルまで処理できる。ビット単位並列処理は、論点の各信号が通常はナビゲーション信号のRFディジタル信号処理のようなほんの数ビットによって表現され得る場合、最適に動作できる。
【0015】
本発明のビット単位並列演算は整数の数学的相関動作と比較して計算時間を節約できる。例えば、4つの累積がサンプル毎に必要であれば、整数数学は各サンプル毎に6つの乗算と4つの加算とを必要とする(最後のサンプルは例外)。例えば5.714MHzのサンプリング率で、これは各PRNコード期間毎に57,140個の整数演算に転換する。例示的実施例において、33,500回のビット単位並列演算が、RF信号が2ビット表現を有する場合、PRNコード期間毎に必要である。この演算カウント数は、RF信号が1ビット表現を有する場合、PRNコード期間毎に略16,750回のビット単位並列演算まで更に低減される。よって、演算カウント数に関して殆ど2倍から殆ど4倍の節約となる。
【0016】
本発明のシステム及び方法は、事前計算されたベースバンド混合正弦波のテーブル、連続可変正弦波によって作り出されるものと同等である相関累積出力を作り出し得るアルゴリズム、並びに、それらテーブル及びアルゴリズムの使用方法をも含む。よって、本発明において、正弦波値の比較的小さな集合は事前計算されると共に節約される必要が有り、それはコンピュータ・メモリ及び処理時間を温存し得る。
【0017】
本発明は、基本生データがRFフロントエンドから由来することとなるサンプリング時間の事前特定化された集合に対して測定されたPRNコード・レプリカの任意の所与の「チップ」のタイミングを、追跡するために(チップはPRNコードの要素)、ソフトウェア的にPRNコード・レプリカの位相を追跡するシステム及び方法をも含む。PRNコード位相は各チャネルに対する変数を介しての追跡が保持され、それはRFサンプリング時間に対するPRNコード始動時間を示す。本発明のシステム及び方法は、サンプリング時間に関しての各衛星に対する、PRNコード位相、搬送波位相、並びに、搬送波周波数の測定の同期化を可能とする。
【0018】
各PRNコード・レプリカの位相と各搬送波レプリカの位相とを追跡するための方法は、全てのC/Aコード位相、搬送波位相、エポック・カウンタ、並びに、事前特定化時間での各衛星に対する搬送波周波数をラッチするステップと、C/Aコード位相及びエポック・カウンタを用いて各衛星への擬似範囲を計算するステップとを含む。この方法は、コード・チッピング率及び搬送波ドップラー偏移入力を推定することによってコード及び位相を追跡して更新するステップをも含む。この方法は、更新されたコード・チッピング率とその事前特定化時間の関数として、各衛星に対する事前特定化時間でのコード位相を計算するステップを更に含む。更にこの方法は、更新された搬送波位相、ドップラー偏移、並びに、事前特定化時間の関数として、その事前特定化時間での搬送波位相を計算するステップを含む。PRNコード位相(或はチップ箇所)のタイミングは、ナビゲーションデータ処理用のGPS測定に関する最も根本的なものである。これらの時間のモニタリングは精度の完全な制御をソフトウェア的に可能とし、それによってそれらの時間は測定可能であり、そして慣性計測ユニット等の他のセンサからのデータの測定時間で、それらの時間の精密な同期化を可能としている。この特徴は向上された能力を付与して、GPSデータを他のタイプのセンサ・システムからのデータと十分に結合され一体化しなければならないシステムとして知られるものを開発する。
【0019】
本発明のソフトウェア相関器は、好都合にも、任意周波数の信号、新PRNコード、或は異なるタイプの装置に対する信号をも受け入れることが容易にできる。よって、同一の処理ハードウェアはソフトウェア相関器を用いて、GPSレシーバ、携帯電話、或は、それら双方の装置を具現化する。新コード、新周波数、並びに、新タイプの機能を許容すべく、小さな変更がソフトウェア相関器に為され得るか、或は、異なるバージョンのソフトウェア相関器が同一プロセッサ上で走らされることができる。先行技術のハードウェア相関器に基づくレシーバは、それらの設計でハードウェアに組み込まれた周波数及びPRNコードだけを処理することができる。また、本発明のシステム及び方法は、GLONASSレシーバ、携帯電話及び携帯電話基地局、ポケットベル、無線イーサネット(例えば、802.1lx規格)、ブルートゥースTM、ブラックベリー(登録商標)無線イーサネット装置、並びに、衛星ラジオ/電話(例えば、INMARSAT(登録商標))等のシステム内で具現化され得る。実際上、本発明のシステム及び方法は拡散スペクトル、情報伝送用のコード分割多重アクセス(CDMA)PRNコード、有線或は無線の何れか等の任意の種類の遠隔通信システム/装置に適用できる。
【0020】
本発明のその他の目的や更なる目的と共に本発明のより良好な理解のため、添付図面及び詳細な説明が参照される。本発明の範囲は特許請求の範囲に指摘されている。
【発明を実施するための最良の形態】
【0021】
本発明は、本発明の例示的実施例が示されている添付図面を参照して、以下より完全に説明される。以下の構成説明は例示的目的のみで提示されている。ここで記載される速度及びインターフェースの要件を満たしている任意のコンピュータ構成は、本発明のシステムを具現化するために適合し得る。ここでの数式は一般的な意味で述べられているが、例示的目的のみのためにGPS L1 C/Aに固有のパラメータを有する。例えば、数新規の多くにおいて見られる0.001秒累積間隔は公称C/Aコード期間である。また、例示的実施例のC/A PRNコードは他の任意のCDMA信号伝達システムのPRNコードによって置き換え可能である。
【0022】
前置き説明として、RF信号処理式及び項がここに提供される。衛星から受信された時間領域L1 C/A信号は、

【0023】
ここではtiはサンプリング時間であり、Aは振幅であり、Djkはナビゲーション・データ・ビットであり、C[t]はC/Aコードであり、τjk及びτjk+1は受信されたkth及びk+1stC/Aコード期間の始動時間であり、ωIFはL1搬送波周波数と対応する中間周波数であり、φ(ti)は累積されたデルタ範囲による搬送波位相摂動であり、nはレシーバ・ノイズであり、並びに、添字jは特定のGPS衛星に言及する。φ(ti)の前方におけるマイナス符号は、例示的実施例で使用されたRFフロントエンドにおいて生ずる高側混合から由来している。数式(1)における信号は典型的なRFフロントエンドの出力である。
【0024】
GPSレシーバは受信信号とそのレプリカとの間の相関で作動する。それら相関は信号を取得し追跡すべく使用される。レプリカは2つの部分、即ち、搬送波レプリカ及びC/A PRNコード・レプリカから構成される。これら2つの搬送波レプリカ信号は、同位相信号及び直角位相信号として使用される。RFフロントエンドからの受信信号との混合の際、それらは以下の数式2及び3で表される同位相及び直角位相のベースバンド混合信号を形成する


ここで、式(2)及び(3)はkth C/Aコード期間中に適用する。これらの式において、

及び

はkth及びk+1stコード期間の始動時間のレシーバ推定値であり、

は時間

での推定搬送波位相であり、並びに、

はkthコード期間中の推定搬送波ドップラー偏移である。
【0025】
典型的なレシーバは、引用することでここに合体させる非特許文献3等におけるGPSレシーバに記載された様々な従来手段によって推定値

、並びに、

を計算する。これらは、

及び

を計算する遅延ロックド・ループや、

及び

を計算する位相ロックド・ループ或は周波数ロックド・ループ等のオープン・ループ取得方法及びクローズド・ループ信号追跡方法を含む。ここで開発されたソフトウェア・レシーバはこれら推定値を形成するための従来技術を用いる。
【非特許文献3】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)
【0026】
プロンプト相関器及びアーリー-マイナス-レイト相関器の双方は、搬送波周波数、搬送波位相、並びに、GPSレシーバにおけるコード位相を追跡すべく必要とされている。典型的なレシーバはPRNコード及び搬送波レプリカを用いて、以下の同位相及び直角位相の累積を計算する。


ここで、ik

に従う第1RFフロントエンド・サンプル時間のインデックスであり、N+1は

に従うサンプルの合計数である。時間オフセットΔはレプリカPRNコードがもしそれが正であれば早く再生させられ、そしてもしΔが負であれば遅く再生される。プロンプト相関器はΔ=0を伴った数式(4)及び(5)によって規定される。アーリー-マイナス-レイト相関器はIjk(Δeml/2)−Ijk(−Δeml/2)及びQjk(Δeml/2)−Qjk(−Δeml/2)であり、Δemlは早いPRN搬送波レプリカ及び遅いPRN搬送波レプリカの間の間隔である。ここで記載される本発明はIjk及びQjkをソフトウェア的に累積するレシーバに対する効率的な技術である。
【0027】
ここで図1で参照されるように、本発明のソフトウェア・レシーバ10の動作プラットフォームは、アンテナ11、従来のRFフロントエンド13、データ取得(DAQ)システム17、マイクロプロセッサ16、ソフトウェア相関器19、並びに、特定用途向けコード15を含む。従来のRFフロントエンド13はアンテナ11及び(DAQ)システム17とインターフェースしている。DAQシステム17はシフトレジスタ及びデータ・バッファから成るシステムを含む。マイクロプロセッサ16は、特別に開発されたビット単位並列アルゴリズムから成る集合や、GPSナビゲーション及び追跡機能等の特殊用途向けコード15を含むソフトウェア相関器19を実行する。例示的な実施例において、従来のGPSソフトウェア機能(信号追跡、データ抽出、ナビゲーション解決策等々)は非特許文献4によって提供されるが、任意の同等構成によって提供され得る。
【非特許文献4】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)
【0028】
続けて図1で参照されるように、従来のRFフロントエンド13は、例えば、公称1.57542GHz GPS信号12を

の中間周波数に逓降変換して、アナログ・ディジタル変換を実行するMTTEL(登録商標)GP2015RFフロントエンドであり得る。結果としてのディジタル化された信号データ21は、2つの二値ビット/サンプル、符号ビット及びマグニチュード・ビット、或は1つのビット/サンプル等のビット/サンプルの事前決定数を有する。DAQシステム17におけるシフトレジスタはマグニチュード及び符号データ・ビット・ストリームを個別のワードに並列処理し、DAQシステム17はそれらをDMAを用いてマイクロプロセッサ16のメモリ内に読み込む。マイクロプロセッサ16内へのより効率的なデータ読み込みプロセスを為すべく且つ効率的な相関計算を準備すべく、DAQシステム17は一時に32ビット等のバッファされたサンプルの事前特定化されたビット数を読み取ることができる。この例示的な32ビットは16個の符号ビットと16個のマグニチュード・ビットとを含む。
【0029】
図1及び図2Aで参照されるように、DAQシステム17(図1)におけるシフトレジスタは信号データ21(図1及び図2A)をバッファし、信号符号21A(図2A)及び信号マグニチュード21B(図2A)を個別のワードに詰め込むが、それらワードは表1に示されるように整数値±1及び±3を表す。1ビット信号の場合、複数サンプルを表しているビット・ストリームは連続的なワードに詰め込まれて、ビット単位並列処理用に信号を準備する。DAQシステム17は、例えば信号符号21A及び信号マグニチュード21Bを、例えば従来のRFフロントエンド13(図1)からの第3出力であり得る

クロック信号と同期化することによって、正確なタイミングをも提供する。DAQシステム17は、例えば16ビット・ワードに対する16カウンタによる除算の使用によって、5.71424MHzクロック信号を357.14KHzまでに逓降変換でき、それはバッファが満杯の場合を示す信号を提供できる。DAQシステム17はバッファ満杯指示を提供するために任意の方法を使用できる。
【0030】
【表1】

従来のRFフロントエンドのサンプルRF出力の符号及びマグニチュードの組み合わせとそれらと対応する値
【0031】
図1で更に参照されるように、例示的な実施例におけるDAQシステム17は、インターフェース・カードと、例えば、RTLINUX(登録商標)を走らす1.73GHz AMD ATHLON(登録商標)プロセッサと互換性があるドライバ・ソフトウェアとから構成され得るが、任意のオペレーティングシステムやリアルタイム動作に適応できる任意のプロセッサと互換性がある。インターフェース・カードは、例えば、NATIONAL INSTRUMENTS(登録商標)PCI-DIO-32HSディジタルI/Oカードであり得る。このカードの関連特徴は、32ディジタル入力ライン、DMA、並びに、オープンソース・ドライバから成る一揃いや、COMEDI(COntrol MEasurement and Device Interface)として知られるインターフェース・カードに対するアプリケーション・インターフェース・ソフトウェアからたぶん入手されるRTLINUX(登録商標)用のドライバの有効性である。PCI-DIO-32HSカードに対する従来のCOMEDIドライバへの変更は、16から32までの入力ビット数の増大を含み、DMAをイネーブルし、連続的な割込駆動取得を支援すべくドライバを変更する。
【0032】
また図1で更に参照されるように、マイクロプロセッサ16は、例えば、RTLINUX(登録商標)オペレーティングシステムを走らす1.73GHz AMD ATHLONTMプロセッサであり得るが、任意のオペレーティングシステムと、リアルタイム・オペレーションに適合できるプロセッサとが使用され得る。低いレイテンシー割込反応性、最低優先順位スレッドである可能性を有するカーネルによる標準間隔でのスレッド実行の能力、並びに、最優先コードの信頼性ある実行は、本発明のシステム性能を向上し得るオペレーティングシステムの種々の特徴の中に混ざっている。RTLINUX(登録商標)の使用は例示的目的のみでここに提示されている。
【0033】
続けて図1で参照されるように、RFフロントエンドからの逐次的且つ直接的な入力を取るハードウェア相関器と類似して、ソフトウェア相関器19は該ソフトウェア相関器19及びDAQシステム17の双方がアクセスできる共有メモリから読み込むものであり、前者はデータ読み込みであり、後者はデータ書き込みである。この共有メモリ・バッファはDMAメモリ・スペース及び循環バッファとして具現化され得る。本発明のシステム及び方法がGPS(或は同類の)環境内で使用されている例示的実施例において、マイクロプロセッサ16は循環バッファ内に最新の21ミリ秒の信号データ21(図1及び図2A)を記憶できるが、それ以上でもそれ以下でも記憶できる。本発明は循環バッファのサイズを固定しないか、或は、そこに記憶され得るRFデータの量を固定しない。循環バッファは定期的に予定されたプログラム・スレッドの様々な繰り返しの中、様々な衛星に対する様々な時間に始動し停止するコード期間の処理を可能としている。DMAメモリ・スペースは、循環バッファを満たすDAQソフトウェア・ドライバを用いてDAQシステム17によって直に書き込まれ得る。ソフトウェア相関器19及び特定用途向けコード15の間の通信はオペレーティングシステムが提供された共有メモリ能力を用いて実行され得る。例えば、RTLINUX(登録商標)に附属されたmbuffドライバが使用され得て、この共有メモリ・スペースを作成し管理する。リアルタイム処理に適合する任意のメモリ管理システムが使用可能である。もしmbuffドライバが使用されれば、カーネル・モジュールはメモリを共有し、カーネルはその共有メモリ・スペースを長期記憶にスワッピングすることが制限され得る。
【0034】
ハードウェア相関器との類似性に関して続けると共に、主にハードウェア相関器における図1を参照すると、相関器は周波数及び位相情報をアプリケーション・コードの一部である追跡ループ及び取得ループから受信し、数値制御発振器(NCOs)は書き込まれた周波数及び位相と対応する信号を発生する。対照的に、ソフトウェア相関器19は模擬搬送波と、特殊用途向けコード15からのそれらの周波数コマンドを受信するコードNCOsを含む。ソフトウェア相関器19はこれら周波数コマンドを用いて、搬送波レプリカ信号25(図3A)及びプロンプトPRNコード29及びアーリー-マイナス-レイトPRNコード35(図3A)を再構築し、それを信号データ21(図2A)と混合して、完全混合プロンプト被積分関数31及び完全混合アーリー-マイナス-レイト被積分関数33(図3A)を生ずる。
【0035】
この類似性を更に続行すべく、ハードウェア相関器は、正しいドップラー偏移周波数及び位相で特定のC/Aコード・レプリカをリアルタイムで発生する。対照的に、ソフトウェア相関器19はC/Aコード・オフラインを発生できると共に、それらをメモリ・テーブル、即ち事前計算された過剰サンプリングされたPRNコード・テーブル28(図3A)に記憶できる。事前計算された過剰サンプリングされたPRNコード・テーブル28は、信号データ21(図3A)のサンプリング時間と正しいタイミング関係でPRNコードを選択すべく用いられる。次いでコードは、ベースバンド混合信号23(図3A)と相関関係を形成すべく用いられ、規格同位相及び直角位相を作り出すべく合計されるもの、合計されたプロンプト累積45(図3B)、並びに、連続可変的な正弦波によって作り出されるものと同等である合計されたアーリー-マイナス-レイト累積47(図3B)からの結果である。これらは、信号追跡及びナビゲーション機能を実行する従来のGPSソフトウェア等の特殊用途向けコード15に提供される。第2のアプローチにおいて、ソフトウェア相関器19はコード・チッピング率でオンライン中にPRN搬送波レプリカをを発生できると共に、表形式機能を用いることができて、累積算定の目的でRFフロントエンドのサンプリング率でコードを再サンプリングする。リアルタイム過剰サンプリングPRNコード発生器30A(図3A)は、この後者のアプローチにおける事前計算過剰サンプリングPRNコード・テーブル28(図3A)の代わりに用いられる。この後者の方法は、新民生GPS L2 CLコード等のより長いPRNコードで使用可能である。
【0036】
また、図1で更に参照されるように、受信されたL1生信号12は不確かな搬送波位相を有することができるので、ソフトウェア相関器19は数式(4)及び(5)で規定されるように同位相(I)及び直角位相(Q)の双方を計算する。ソフトウェア相関器19は、記憶された搬送波レプリカ・テーブル30(図3A)から得る搬送波レプリカ信号25(図3A)を用いることで累積プロセスを始める。このテーブルにおける搬送波レプリカは粗い周波数グリッド上に降下し、それら全ては特定位相、例えばゼロの位相で始動する。ベースバンド混合プロセスは、「理想」に限りなく接近している周波数である搬送波レプリカ・テーブル30(図3A)から搬送波レプリカ信号25(図3A)を選択することを含む。175Hzグリッド間隔の場合、ベースバンド混合プロセスは理想信号の最大限±87.5Hz以内である信号を選択する。粗い周波数グリッドは例えば175Hzの間隔を有し得るが、(a)例えば±10KHzをカバーすべく必要とされる周波数範囲、(b)事前計算された信号を記憶するために利用可能なスペース量、並びに、(c)他の設計決定事項に依存して、より大きな或はより小さな間隔を有し得る。搬送波レプリカ・テーブル30(図3A)における事前計算された信号の各々は、180個の32ビット・ワードを専有し得て、初期ワードの32サンプル以内で、任意の可能なコード期間始動時間に対する1つのPRNコード期間を専有する完全な5,714個のRFフロントエンド・サンプルをカバーすべく保証される。よって、1804=720バイトは、テーブル内に記憶されている事前計算された搬送波レプリカ信号25各々の各ビットに対して要求され得る。搬送波レプリカ信号25(図3A)各々の正弦波及び余弦波は2ビット表現を有し、それは所与のドップラー偏移で搬送波レプリカ信号25に対して2880バイトの記憶用件と変換される。175Hzグリッド間隔で−10KHzから+10KHz範囲をカバーするために記憶され得る115個のドップラー偏移がある。これは、搬送波レプリカ信号25の全てに対して323Kバイトの記憶装置となる。このアプローチは、法外に多数の可能性ある周波数及び位相のオフセットを伴う正弦波を事前計算する必要性を回避すると共に、リアルタイムでの正弦波の計算の必要性を回避している。代わりに、事前に規定された正弦波レプリカを用いることで作り出されたエラーは、以下に記載されるように、事後処理算定によって補償される。
【0037】
引き続き、そして続けて図1を参照すると、結果としての累積が、


となり、ここで、ωgjkは推定周波数

と最も接近しているグリッド周波数であり、t0gjkはこの搬送波レプリカ信号25(図3A)がゼロ搬送波位相を有する時間である。ソフトウェア相関器19はこれら累積を回転し、計算され得るものの正確な近似値を作り出し、数式(4)及び(5)において推定搬送波位相時間履歴が使用された、即ち、
jk(Δ)=Igjk(Δ)cos(Δψavgjk)+Qgjk(Δ)sin(Δψavgjk)(8)
jk(Δ)=−Igjk(Δ)sin(Δψavgjk)+Qgjk(Δ)cos(Δψavgjk)(9)
【0038】
ここで、Δψavgjkはグリッド搬送波位相と累積間隔にわたって平均された推定搬送波位相との間の平均位相差であり、即ち、

である。
【0039】
数式(8)、(9)、並びに、(10)はソフトウェア相関器(19)がどのようにしてそのI及びQ累積を回転できるかの例示であり、事前計算された搬送波レプリカ信号のテーブルにおける位相及び周波数のエラーに対する矯正を為す。同等の結果を生ずる他の式も存在し、この特許出願はそうした技術の全てを包含する。
【0040】
数式(8)及び(9)の有効性は以下の仮定に依存する。即ち、

である。
【0041】
例えば、175Hzグリッド間隔及び公称0.001秒のC/A PRNコード期間は0.04の不等式である数式(11)の左側の項における値を生じ、それは仮定された限界に関係する。
【0042】
数式(8)及び(9)は以下の如くに数式(4)及び(5)から誘導され得る。第1として、数式(6)及び(7)の余弦項及び正弦項の独立変数においてグリッド信号の搬送波位相は数式(4)及び(5)に加算され、それら数式から減算される。次に、三角関数恒等式が用いられて、結果としての余弦項及び正弦項が余弦関数及び正弦関数の積の合計にそれぞれ分割される。各積において、それら項の内の1つは数式(6)及び(7)における三角関数項での独立変数と同じような独立変数を含む。次いで他の三角関数項はcos(Δψavjk)或はsin(Δψavjk)によって近似される。これらの近似値は、数式(11)の不等式のため且つ累積間隔にわたる

の平均値がゼロであるために有効である。
【0043】
レシーバ感度を特徴付ける搬送波対ノイズの比C/Noにおける減少は、正確ではないベースバンド混合周波数の使用によって生ずる。最悪の場合の減少は周波数グリッド間隔Δfの関数として表現されて、
ΔSNR=20log10(sin(πΔfT)/πΔfT) (12)
で与えられ、ここで、ΔfはHzの単位であり、Tは積分期間である。よって、175HzのΔfは、T=0.001秒に対して0.11dBの最悪のC/No損失を生ずる。
【0044】
次に図2A、図2B、並びに、図3Aを参照すると、(プロンプトPRNコード29(図3A)及びアーリー-マイナス-レイトPRNコード35(図3A)から構成される)PRNコードが、事前計算されるか、或は、リアルタイムで生成されるかの何れかである。事前計算は、各衛星に対して、全PRNコードの計算、容易な検索のためのPRNコードの適切な記憶、そして、可能であれば、例えば入来RF信号データ21(図2A及び図3A)に基づき計算されるインデックスによってのPRNコードの参照を含む。事前計算はPRNコードが非常に長くない場合に最も有益に使用され得る。リアルタイムでPRNコードを生成することは、PRNコードが非常に長い場合(そしてそれ故に受け入れがたい量の記憶装置を要求する場合)、たぶん過剰に多数のPRNコードが利用可能な記憶装置量を要求する場合、或は、他の任意の理由にためにより適切な解決策であり得るが、リアルタイムPRNコード生成は追加計算コストを課し得る。PRNコードの事前計算及びリアルタイム決定の双方は、ビット単位並列処理具現化例に関してここで記載される。
【0045】
続いて図2A、図2B、並びに、図3Aで主に参照されるように、ビット単位並列動作を実行するために、ソフトウェア相関器19(図1)は事前計算搬送波レプリカ符号25A(図2B及び図3A)及び搬送波レプリカ・マグニチュード25B(図2B及び図3A)をデータ・ワード内に記憶する。信号データ21(図2A及び図3A)及び搬送波レプリカ信号25(図2B及び図3A)の1ビット、2ビット、或は、それ以上のビットの観点での単純表現は、ここに記載された算定を実行すべくビット単位並列処理を用いるために適切である。ビット単位並列動作は、ワードの連続ビットの形態で連続的サンプルを記憶するデータの表現で作動する。例えばRFフロントエンド出力の32個のサンプル(ビット)は、もし信号データ21が単一データ・ビットで構成されていれば、2つのN=32ビットのワード、信号符号21A(図2A及び図3A)、並びに、信号マグニチュード21B(図2A及び図3A)、或は、単純な単一の32ビット・ワードに記憶される。搬送波レプリカ符号25A(図2B及び図3A)及び搬送波レプリカ・マグニチュード25B(図2B及び図3A)が例えばテーブル内に個別のワードで記憶され、各32ビット・ワードが、対応する余弦波或は正弦波の32個の連続的なサンプルに対して表形式される32個の符号或はマグニチュードのビットを記憶している。同様にして、テーブルは、プロンプトPRNコード29(図3A)及びアーリー-マイナス-レイトPRNコード35(図3A)を記憶でき、それらはプロンプトPRNコード符号29A(図3A)、アーリー-マイナス-レイトPRNコード符号35A(図3A)、並びに、アーリー-マイナス-レイトPRNコード・ゼロ・マスク35B(図3A)で構成される。これら3つの信号タイプのビット単位並列表現を含むデータ・ワード、オリジナルのRF信号データ21(図2A及び図3A)、搬送波レプリカ信号25(図2B及び図3A)、拡散解除プロンプトPRNコード29(図3A)、並びに、アーリー-マイナス-レイトPRNコード35(図3A)はソフトウェア相関器19(図1)の算定への入力である。
【0046】
更に図2A、図2B、並びに、図3Aで参照されるように、数多くの中間算定量と少なくとも3つのタイプの中間信号もビット単位並列フォーマットで記憶される。先ず、同位相及び直角位相のベースバンド混合信号23(図3A)があり、例示的実施例に対するその3ビット表現は、ベースバンド混合符号23A(図3A)、ベースバンド混合高マグニチュード23B(図3A)、並びに、ベースバンド混合低マグニチュード23C( 図3A)として記憶される。第2ビット単位並列信号タイプは完全混合被積分関数31(図3A)があり、その中には4つの信号、即ち、同位相及び直角位相完全混合プロンプト被積分関数31(図3A)と、同位相及び直角完全混合アーリー-マイナス-レイト被積分関数33(図3A)とがある。前者は例示実施例において、完全混合プロンプト被積分関数符号31A(図3A)、完全混合プロンプト被積分関数高マグニチュード31B(図3A)、並びに、完全混合プロンプト被積分関数低マグニチュード31C(図3A)として、3ビット表現で記憶される。後者は例示実施例において、完全混合アーリー-マイナス-レイト被積分関数符号33A(図3A)、完全混合アーリー-マイナス-レイト被積分関数高マグニチュード33B(図3A)、完全混合アーリー-マイナス-レイト被積分関数低マグニチュード33C(図3A)、並びに、完全混合アーリー-マイナス-レイト被積分関数ゼロ・マスク33D(図3A)として、3.5ビット表現で記憶される。この表現は、対応するゼロ・マスク・ビットが値ゼロを有すれば、符号、高マグニチュード、並びに、低マグニチュードのビットが無視されるので、3.5ビット表現と呼称される。第3ビット単位並列信号タイプが値ワード27(図3B)であり、アーリー-マイナス-レイト被積分関数は値ワード37(図3B)である。各完全混合被積分関数は値ワード、即ち、整数被積分関数が採用することができる各可能な値に対する1つのワードを構築すべく使用される。例示的実施例の被積分関数に対して8個の可能性ある値があり、即ち、同位相及び直角位相完全混合プロンプト被積分関数31(図3A)に対して、−1、−2、−3、−6、1、2、3、並びに、6であり、同位相及び直角位相完全混合アーリー-マイナス-レイト被積分関数33(図3A)に対して、−2、−4、−6、−12、2、4、6、並びに、12がある。各ビット並列値ワードは、もし被積分関数値が値ワードの値と同等である場合に各サンプル時間に対して1ビットを含む、が、他の全てのサンプル時間に対してゼロ・ビットを含む。生データ及び中間結果のビット単位並列フォーマットでの記憶は、もしマイクロプロセッサ16(図1)がビット単位排他的論理和コマンドを有すれば、一時に32サンプルに対して動作すべく混合に含まれる排他的論理和演算を可能とする。他のビット単位コマンドは2つの32サンプルから成る集合に並列して追加のソフトウェア相関演算を実行すべく使用される。
【0047】
この時点で、過剰サンプリングの問題が導入される。図2C及び図2Dを参照すると、過剰サンプリングの問題は以下のようにビット単位並列に関して例示されている。通常、PRNコード・チップ毎に2つ以上のRFデータ・サンプルがある。tからtまでのサンプリング時間での3つの連続的−1値73(図2C)は、tからtまでの時間での4つの連続的+1値75(図2C)が行うように、同一PRNコード・チップ中に全て生ずる。2つのコード・チップに対するサンプル数に関する差は、PRNコード・チップ期間がサンプル期間の整数倍ではないために生ずる。類似して、図2Dを参照すると、サンプル間隔Δt63が実際のPRNコード・チップ長Δt65よりも小さく、RFサンプリング周波数f=1/ΔtがPRNコード・チッピング周波数f=1/Δtよりも大きいために過剰サンプリングが示されている。CDMAシグナリングに対するPRNコードは+1及び−1値のシーケンスであり、その要素がチップである。対象となる時間間隔にわたって、搬送波レプリカはf=1/Δtチップ/秒の一定のチッピング率でそのチップを通じて進行する。時間間隔Δtは実際のPRNコード・チップ長65(図2D)である。ソフトウェア相関器19(図1)は通常PRNコードを受信し、それをそのコード、即ちプロンプトPRNコード29(図2D)のプロンプト・レプリカ・バージョンと整列させるように試みる。それは、信号のプロンプトPRNコード29(図2D)とアーリー-マイナス-レイトPRNコード35(図2D)との相関を利用して、プロンプトPRNコード29(図2D)が所望されるように整列する傾向があるチッピング率fを決定する。fcを決定する従来の方法は当業界において周知である。アーリー・コード69B(図2D)プロンプトPRNコード29(図2D)の対応するチップ前の0.5Δtemlで始動し停止し、そしてレイト・コード69C(図2D)のチップはプロンプトPRNコード29(図2D)後の0.5Δemlで始動し停止する。アーリー-マイナス-レイトPRNコード35(図2D)は、アーリー・コード69B(図2D)とレイト・コード69C(図2D)との間の差である。これら4つのタイプのレプリカ・コードの例証部分は図2Dに示されている。
【0048】
図1、図2A、図2C、並びに、図2Dで参照されるように、ソフトウェア相関器19(図1)は、従来のRFフロントエンド13及びDAQシステム17を通じて、信号データ21(図1)、ソースがf=1/ΔtHzでサンプリングされる生データ12(図1)を受信する。結果としてのRF信号データ21を処理するために、ソフトウェア相関器19(図1)は、生信号12(図1)と同時にサンプリングされたプロンプトPRコード29(図2D)及びアーリー-マイナス-レイトPRNコード35(図2D)のレプリカが必要である。図2Dは、垂直一点破線として16個のサンプル時間を示している。図2Dを参照すると、プロンプトPRNコード29(図2D)はサンプル時間にそのプロンプトPRNコード符号29A(図2D)によって表現され得る。ビット値1は+1を表し、ビット値ゼロは−1を表す。3個の1で始動し、10個の0で続行し、そして別の3個の1で終了する16個のサンプル時間で示されるプロンプトPRNコード符号29A(図2D)は、整数215+214+213+2+2+2=57351として記憶された16ビット・ワードである。アーリー-マイナス-レイトPRNコード35(図2D)は1.5ビット表現を要求する。ゼロ・マスク・ビットは、もしアーリー-マイナス-レイトPRNコード35が値ゼロを採用すれば、ゼロに設定され、そしてそれはアーリー-マイナス-レイトPRNコード35が+2或は−2と同等であれば、1に設定される。図2Dに示される16個のサンプル時間でのアーリー-マイナス-レイトPRNコード・ゼロ・マスク35B(図2D)は213+212+2=12292と同等である。2の符号ビットは、もしアーリー-マイナス-レイトPRNコード35(図2D)がサンプル時間に+2と同等であれば1に設定され、もしそのコードが−2と同等であればゼロに設定される。もし対応するアーリー-マイナス-レイトPRNコード・ゼロ・マスク35B(図2D)ビットがゼロと等しければ、2の符号ビットは無関係である。16個のサンプル時間に対するアーリー-マイナス-レイト35A(図2D)は、対応するアーリー-マイナス-レイトPRNコード・ゼロ・マスク35B(図2D)ビットがゼロであるために、その値が無関係であるところのビットを示すX値を含む。例示的実施例において、全X値はゼロとなり、よってアーリー-マイナス-レイトコード符号35A(図2D)に対する同等整数が2=4である。
【0049】
引き続き、図3Aで参照されるように、事前計算過剰サンプリングPRNコード・テーブル28からプロンプトPRNコード29及びアーリー-マイナス-レイトPRNコード35を取る代替としては、リアルタイム過剰サンプリングPRNコード発生器30A(図3A)を用いて、プロンプトPRNコード符号29A、アーリー-マイナス-レイトPRNコード符号35A、並びに、アーリー-マイナス-レイトPRNコード・ゼロ・マスク35Bを発生することである。図3Aに示されているものは、2つの円と四半円ポインタを伴うルーズ矢印である。これらはスイッチに対する記号であり、PRNコードの可能性ある交互的なソースを選択するためのシステムの能力を示す。リアルタイム過剰サンプリングPRNコード発生器30Aを用いることは、従来手段によってPRNコード・チップをリアルタイムで発生するステップを含む。例えば、GPS民生L2 CL及びCMコードは非特許文献5で参照される27ビット・フィードバック・シフトレジスタによって発生される。この方法はPRNコードからチップ値を選択するステップを更に含み、そのチップ値はデータ・ワードのサンプルを含むデータ間隔と対応し、チップはデータ間隔に対して既知のタイミングを有し、その相対タイミングを時間グリッド・インデックスに変換し、そしてPRNコード・チップ値とデータ間隔に対する時間グリッド・インデックスとをPRNコードの過剰サンプリング・ビット単位並列フォーマットに変換する。これら後者のステップはテーブル検索機能を用いることによって効率的に実行され得る。プロンプトPRNコード符号29A、アーリー-マイナス-レイトPRNコード符号35A、並びに、アーリー-マイナス-レイトPRNコード・ゼロ・マスク35Bに対してそれぞれ1つずつのテーブルは、問題となっているデータ・ワードと関連されたサンプル時間に対するPRNコードのビット単位並列表現を構成する整数値を含み得る。それぞれが1次元テーブルとなるインデックスは、(a)第1PRNコード・チップと所与のデータ・ワードの第1サンプル時間との間の時間オフセットと、(b)データ・ワードのサンプル時間を跨ぐPRNコード・チップのビット・パターンとの関数である。これらテーブルのサイズは過剰サンプリングされるPRNコードの期間とは独立している。これらテーブルは多重チャネル/レシーバにおいて多重PRNコードに対して再使用され得る。計算及びテーブル使用は後でより詳細に議論される。
【非特許文献5】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 引き続き、ソフトウェア相関器19(図1)の動作に対するビット単位並列処理の説明をすると共に、図3Aを参照すると、ここに記載された特別に開発されたアルゴリズムはビット単位並列処理を利用して、Cコード・コマンド等の単一プログラミング言語ステートメントは一時に32サンプルまで部分的に処理できる。先行して言及した余弦信号及び正弦信号の形態での搬送波レプリカ信号25は、二値搬送波レプリカ符号25A及び搬送波レプリカ・マグニチュード25Bとして記憶される。この表現のフォーマットは表2に規定され、図3Cに図示され、それは最小2乗誤差を有する最適2ビット表現53(図3C) に示される代表的な正弦信号51(図3C)の形態での再構築された搬送波及び搬送波レプリカである。表2のフォーマットは、余弦信号及び正弦信号が役2.4の振幅を有することを仮定している。留意することは、例えば2ビット表現を超える他の表現は可能である。一般に、より大きなビットはより良好なSNRを生ずるが、相関関係演算に対するより多数の計算をも要求し得る。
【0050】
【表2】

記憶された中間周波数ベースバンド混合搬送波正弦波レプリカ及びそれらが表す値の符号及びマグニチュード組み合わせ
【0051】
引き続き、図3Aで参照されるように、RFフロントエンド出力表現の乗算、表1の信号符号21A及び信号マグニチュード21Bの、正弦波表現、表2の搬送波レプリカ符号25A及び搬送波レプリカ・マグニチュード25Bによる乗算は、ベースバンド混合信号23を生じ、それは、ベースバンド混合符号23A、ベースバンド混合高マグニチュード23B、並びに、ベースバンド混合低マグニチュード23Cから構成され、それらが、表3に示された−6、−3、−2、−1、+1、+2、+3、+6の値を採用することができる。ベースバンド混合高マグニチュード23Bは単純な信号マグニチュード21Bであり、そしてベースバンド混合低マグニチュード23Cは搬送波レプリカ・マグニチュード25Bである。よって、これら2つのマグニチュード・ビットは計算の必要性無しで利用可能である。ベースバンド混合符号23Aは信号符号21A及び搬送波レプリカ符号25Aの間の排他的論理和の結果である。留意すべきことは、実際の符号との符号ビット値の関係がどのようにして表1及び2のものから逆進されるかである。
【0052】
【表3】

ベースバンド混合信号及びそれらの対応信号値から成る符号・高マグニチュード・低マグニチュード組み合わせ
【0053】
引き続き、図3Aの参照と共に、ビット単位並列アルゴリズムを説明すると、事前計算プロンプトPRNコード29及びアーリー-マイナス-レイトPRNコード35のテーブルに対する記憶が必要とされる量は2つの単純化を為すことによって大きく低減される。第1として、プロンプトPRNコード29はプロンプトPRNコード符号29Aとして記憶される。この表現は表4に示されている。他方、アーリー-マイナス-レイトPRNコード35は2ビット表現(実際には1.5ビット表現)で記憶され、即ち、表5で示されるように、アーリー-マイナス-レイトPRNコード符号35A及びアーリー-マイナス-レイトPRNコード・ゼロ・マスク35Bである。留意すべきことは、表5の第1列におけるXは、ゼロ或は1が対応するコード値に影響すること無しにこの箇所に配置され得ることである。このXは、ゼロ・マスク・ビットがゼロと等しい場合、コード値に対する符号ビットの効果の欠如を示す。これは、アーリー-マイナス-レイトPRNコード35表現が1.5ビット表現として言及される理由である。このX値は対応する完全混合アーリー-マイナス-レイト被積分関数符号33Aに影響するが、対応するゼロ・マスク箇所がアーリー-マイナス-レイト値ワードの対応するビットをゼロにするためにアーリー-マイナス-レイト値ワードの何れにも影響しない。
【0054】
【表4】

プロンプトC/Aコード及び対応するプロンプト信号値の符号ビット
【0055】
【表5】

アーリー-マイナス-レイトPRNコード35及び対応信号値から成る、符号及びゼロ・マスク・ビットの組み合わせ
【0056】
引き続き、図3Aで参照されるように、事前計算過剰サンプリングPRNコード・テーブル28における別の単純化はコード・ドップラー偏移変動を無視することができる。テーブルにおける全信号はゼロ・ドップラー偏移を有するべく仮定され、即ち、テーブルにおける全C/Aコードは

を仮定する。留意すべきことは、0.001の周期がC/Aコードの完全1023チップだけを用いる累積に適用できることである。他の任意のタイプのコード或は累積間隔は異なる周期を有し得る。この仮定によるコード位相エラーは中間点が所望の中間点時間

で生ずる中間点を有する事前計算過剰サンプリングPRNコード・テーブル28からレプリカ・コードを選択することによって削減し得る。この仮定の唯一の他の効果は小さな相関関係パワーロスであり、それはもしドップラー偏移のマグニチュードが10KHz未満であれば、ほんの0.014dBにすぎない。事前計算過剰サンプリングPRNコード・テーブル28は、例えば175ナノ秒の信号サンプル間隔に対して測定されるように、例えば14の種々の位相の内からの選択を含むことになる。これは、例えば12.5ナノ秒のコード位相間隔に変形し、それは3.8mの擬似範囲測定ディジタル化レベル、或は、1.9mの最大測定エラーと等しい。事前計算過剰サンプリングPRNコード・テーブル28における位相数はシステムの設計に依存し、位相の集合数は本発明では要求されない。図6で参照されるように、事前計算過剰サンプリングPRNコード・テーブル28がC(1)からC(M)のチップの過剰サンプリングされたビット単位並列表現を記憶する。テーブルは、累積間隔W95(図6)における全体的な第1データ・サンプル・ワードを跨ぐコード・チップC(1)の始動時間の範囲に対して、過剰サンプリングされたビット単位並列コード・レプリカの検索を可能としている。このテーブルはコード・レプリカを含み得て、その種々の位相は、始動時間の必要数のほんの1/nであるデータ・ワードW95(図6)の単一サンプル間隔だけを跨ぐ始動時間を生ずる。この場合、ソフトウェア相関器はビット・シフト演算をそのサンプル間隔から表形式にされたPRNコード・レプリカに適用し得て、チップC(1)がデータ・ワードW95(図6)の種々のサンプル間隔で始動する際に適用される、過剰サンプリングビット単位並列PRNコード・レプリカを発生する。
【0057】
引き続き,図3Aの参照と共に、ビット単位並列アルゴリズムを説明すると、プロンプトPRNコード29及びアーリー-マイナス-レイトPRNコード35のレプリカはベースバンド混合信号23と混合され得て、排他的論理和演算及びビット再定義によって完全混合プロンプト被積分関数31を形成する。プロンプトPRNコード符号29Aとベースバンド混合符号23Aとの間での排他的論理和は、表6に付与された完全混合プロンプト被積分関数符号31Aを作り出す。完全混合プロンプト被積分関数高マグニチュード31B及び完全混合プロンプト被積分関数低マグニチュード31Cは、これもまた表6に付与された、ベースバンド混合高マグニチュード23B及びベースバンド混合低マグニチュード23Cである。留意すべきことは、表6の表現は、符号ビットの意味合いの転換を除いて、表3のものと同等であることである。マグニチュード・ビットの数はシステムの設計に依存し、そしてマグニチュード・ビットの集合数は本発明によって必要とされない。マグニチュード・ビットの数に関する変化は表6の等価物のエントリーの数に関する変化を引き起こし、それは被積分関数の可能性ある値に影響する。
【0058】
【表6】

完全混合プロンプト被積分関数31及びその対応値から成る、符号、高マグニチュード、低マグニチュード・ビット組み合わせ
【0059】
更に図3Aで参照されるように、アーリー-マイナス-レイトPRNコード35のベースバンド混合信号23との混合は、完全混合アーリー-マイナス-レイト被積分関数33を形成する。完全混合アーリー-マイナス-レイト被積分関数符号33Aは、アーリー-マイナス-レイトPRNコード符号35A及びベースバンド混合符号23Aの間の排他的論理和である。完全混合アーリー-マイナス-レイト被積分関数高マグニチュード33B及び完全混合アーリー-マイナス-レイト被積分関数低マグニチュード33Cは、先のように、ベースバンド混合高マグニチュード23B及びベースバンド混合低マグニチュード23Cである。完全混合アーリー-マイナス-レイト被積分関数ゼロ・マスク33Dはアーリー-マイナス-レイトPRNコード・ゼロ・マスク35Bである。結果としての表現は表7に付与されている。表5におけるように、表における各Xエントリーは、対応するビットが対応する被積分関数値に影響すること無しにゼロか或は1であり得ることを示す。
【0060】
【表7】

完全混合アーリー-マイナス-レイト被積分関数33及びそれらの対応する値から成る、符号、高マグニチュード、低マグニチュード、並びに、ゼロ・マスクの組み合わせ
【0061】
図3A、図3B、図4A、並びに、図4Bで参照されるように、ビット単位並列処理を用いて、例えばGPS C/Aコードに対するミリ秒毎である累積期間毎の同位相及び直角位相を計算する方法は、その周波数の所望周波数への接近性に従って搬送波レプリカ信号25(図3A)を選択するステップ、信号符号21A(図3A)におけるビットとして少なくとも1つのチャネルからサンプル信号データ21(図3A)及び搬送波レプリカ信号25(図3A)、そしてもし存在すれば、信号マグニチュード21B(図3A)、搬送波レプリカ符号25A(図3A)、並びに、搬送波レプリカ・マグニチュード25B(図3A)を表現するステップとを含む(方法ステップ101、図4A)。
【0062】
留意すべきことは、搬送波レプリカ信号25(図3A)の周波数が正しい信号周波数と密接するように該搬送波レプリカ信号が選択される。
【0063】
この方法は、同位相及び直角位相ベースバンド混合符号23A(図3A)と同位相及び直角位相ベースバンド混合高低マグニチュード23B/C(図3A)とを計算することによって信号データ21(図3A)をベースバンドと混合するステップをも含む(方法ステップ103、図4A)。
【0064】
この方法は、事前計算過剰サンプリングPRNコード・テーブル28(図3A)からPRNコードを選択するか、或は、それをリアルタイム過剰サンプリングPRNコード発生器30A(図3A)を用いて計算し、プロンプトコード符号29A(図3A)としてプロンプトPRNコード29(図3A)を表現し、アーリー-マイナス-レイトPRNコード符号35A(図3A)及びアーリー-マイナス-レイトPRNコード・ゼロ・マスク35B(図3A)としてアーリー-マイナス-レイトPRNコード35(図3A)を表現するステップを更に含む(方法ステップ105、図4A)。
【0065】
この方法は、同位相及び直角ベースバンド混合信号23(図3A)をプロンプトPRNコード29(図3A)及びアーリー-マイナス-レイトPRNコード35(図3A)と混合することによってその同位相及び直角ベースバンド混合信号を拡散解除するステップを更に含んで、同位相及び直角位相完全混合プロンプト被積分関数31(図3A)と完全混合アーリー-マイナス-レイト被積分関数33(図3A)を生ずる(方法ステップ107、図4A)。
【0066】
この方法は、プロンプト値ワード・ロジック27A(図3B)を用いるステップを更に含んで、プロンプト被積分関数値ワード27(図3B)を同位相及び直角位相完全混合プロンプト被積分関数31(図3A)から計算する。
【0067】
この方法は、アーリー-マイナス-レイト値ワード・ロジック37A(図3B)を用いるステップを更に含んで、アーリー-マイナス-レイト被積分関数値ワード37(図3B)を完全混合アーリー-マイナス-レイト被積分関数33(図3B)から計算する(方法ステップ109、図4A)。
【0068】
この方法は、各プロンプト被積分関数値ワード27及びアーリー-マイナス-レイト被積分関数値ワード37(図3B)にわたって、1ビットの合計テーブル38或はもし有効であればプロセッサ・コマンドを用いて、1ビット(或はゼロ・ビット)の数を合計するステップ(方法ステップ111、図4B)と、プロンプト累積41(図3B)及びアーリー-マイナス-レイト累積49(図3B)を作り出すべく累積間隔にわたって、各プロンプト累積41(図3B)における1ビット(或はゼロ・ビット)の数を合計するステップを更に含む(方法ステップ113、図4B)。
【0069】
この方法は、プロンプト累積41(図3B)及びアーリー-マイナス-レイト累積49(図3B)を対応する値41Aによって乗算するステップと、その結果を全累積間隔に対する各信号の値ワードにわたって合計するステップとを更に含み(方法ステップ115、図4B)、同位相及び直角位相合計プロンプト累積45(図3B)と、取得技術或は追跡ループによる使用のため記憶される合計アーリー-マイナス-レイト累積47(図3B)とを生み出す。
【0070】
この方法は、同位相及び直角位相号駅プロンプト累積45(図3B)及び合計アーリー-マイナス-レイト累積47(図3B)を回転するステップを更に含み(方法ステップ117、図4B)、ベースバンド混合が正しい周波数及び位相を伴う余弦信号レプリカ及び正弦信号レプリカを用いて実行された状態をシミュレートする。
【0071】
もし処理すべきより多くのチャネルが存在すれば(決定ステップ119、図4B)、この方法は、方法ステップ101、図4Aで始まる先行する諸ステップを繰り返すステップを含む。
【0072】
もし処理すべきこれ以上のチャネルがなければ(決定ステップ119、図4B)、この方法は、次の累積期間に対するパラメータを設定するステップを含み、現行C/Aコード位相、エポック・カウンタ、搬送波位相、並びに、搬送波ドップラー偏移を記憶することを含む(方法ステップ121、図4B)。もし次の累積が計算の必要性がでるまで待機する時間期間が満了しなければ(決定ステップ123、図4B)、この方法はその時間期間の満了までスリープするステップを含む(方法ステップ125、図4B)。もし時間期間が満了すれば(決定ステップ123、図4B)、この方法は方法ステップ101、図4Aで始まる先行する諸ステップを繰り返すステップを含む。時間期間の長さは公称累積期間に依存する。それはこの期間より小さくすべきであり、通常、この期間の50%から90%の間であり、累積が任意のチャネルに対して欠如する可能性を低減する。
【0073】
再度、図3B及び図4Aで参照されるように、方法ステップ109(図4A)は値ワードを計算することを必要とする。この計算は、表6におけるプロンプト被積分関数表現の右側列における可能性ある値の各々に対するビット単位並列ブール論理を実行することで始動する。32ビット・プロンプト被積分関数値ワード27(図3B)は各32サンプルと表6の各行に対して計算される。プロンプト被積分関数値ワード27(図3B)は、実際の被積分関数が表6の右側列における対応する値と等しい場合、サンプル時間に対する1を含み、そして実際の被積分関数がこの値と等しくない場合、残りの時間に対するゼロを含む。可能性ある表6値と対応するプロンプト被積分関数ワード27(図3B) は方法ステップ109(図4A)によって以下の通りに形成される:
マイナス1=NOT(符号)AND[NOT(高マグ)AND NOT(低マグ)] (13)
マイナス2=NOT(符号)AND(NOT(高マグ)AND 低マグ) (14)
マイナス3=NOT(符号)AND[高マグAND NOT(低マグ)] (15)
マイナス6=NOT(符号)AND[高マグAND低マグ] (16)
プラス1=符号AND[NOT(高マグ)AND NOT(低マグ)] (17)
プラス2=符号AND[NOT(高マグ)AND(低マグ)] (18)
プラス3=符号AND[(高マグ)AND NOT(低マグ)] (19)
プラス6=符号AND[(高マグ)AND低マグ] (20)
【0074】
引き続き、図3A、図3B、図4A、並びに、図4Bで参照されるように、方法ステップ109(図4A)、111(図4B)、並びに、113(図4B)は、完全混合プロンプト被積分関数31(図3A)に対するものと同様である完全混合アーリー-マイナス-レイト被積分関数33(図3A)に対する演算を必要とする。アーリー-マイナス-レイト被積分関数値ワード37(図3B)はプロンプト被積分関数ワード27(図3B)の2倍である値と対応し、即ち、マイナス6ワードはマイナス12ワードとなる。また、追加のアンド演算は表7のゼロ・マスク・ビットによって実行されなければならず、アーリー及びレイトPRNコードが相互にキャンセルする場合、サンプル時間をマスクする。これらのアーリー-マイナス-レイト被積分関数値ワード37(図3B)の方法ステップ109(図4A)計算に対する可能性ある公式は以下の通りである:
マイナス2=[ゼロ・マスク AND NOT(符号)]AND[NOT(高マグ)AND NOT(低マグ)] (21)
マイナス4=[ゼロ・マスクAND NOT(符号)]AND[NOT(高マグ)AND低マグ]
(22)
マイナス6=[ゼロ・マスクAND NOT(符号)]AND[高マグAND NOT(低マグ)]
(23)
マイナス12=[ゼロ・マスクAND NOT(符号)]AND[高マグAND低マグ] (24)
プラス2=[ゼロ・マスクAND符号]AND[NOT(高マグ)AND NOT(低マグ)](25)
プラス4=[ゼロ・マスクAND符号]AND[NOT(高マグ)AND低マグ] (26)
プラス6=[ゼロ・マスクAND符号]AND[高マグAND NOT(低マグ)] (27)
プラス12=[ゼロ・マスクAND符号]AND[高マグAND低マグ] (28)
【0075】
追加のゼロ・マスキングは累積間隔の第1ワード及び最終ワードにおいて生じ得る。これは、累積間隔の始動及び停止時間が、通常、データ・ワードの境界で降下しないために真である。それ故に、累積間隔に優先する第1ワードにおけるビットは、累積間隔の最後の後で来る最終ワードにおけるビットのようにマスクされるゼロを得る必要性があり得る。
【0076】
主に図3B及び図4Bで参照されるように、方法ステップ111(図4B)の1ビット・カウンティング演算は8値ワードの各々における1ビット数のカウント数を形成する。もしマイクロプロセッサ16(図1)の指示集合におけるそうしたカウンティング演算が全く無ければ、そのカウンティングはテーブル検索を用いて達成され得る。テーブル検索の場合、プロンプト被積分関数値ワード27及びアーリー-マイナス-レイト被積分関数値ワード37(図3B)は1ビット合計テーブル38(図3B)におけるアドレスとして使用され得て、1ビット合計テーブル38(図3B)はそのアドレスにおいて1値(或はゼロ)の数を出力し得る。例えば、もしテーブル検索演算がBITSUMと呼称されれば、以下の計算が実行され得て、1ビット・カウント数を計算する:
1カウント数=BITSUM(値ワード) (29)
ここで、テーブル1カウント数の出力はワード値ワードにおける1ビットの数である。この演算は、プロンプト被積分関数ワード27(図3B)及びアーリー-マイナス-レイト被積分関数値ワード37(図3B)の各々に対して繰り返されて、方法ステップ111(図4B)を達成する。テーブル幅、例えば16ビット或は32ビットの選択は利用可能なメモリ量や他の設計決定に依存する。もしテーブル幅が値ワードにおけるビット数より小さければ、テーブルの多重呼び出しが使用されて、所与の値ワードにおける1値の合計数を計算する。各呼び出しはその値ワードにおけるビットの一部だけを入力として取る。
【0077】
引き続き、主に図3B及び図4Bで参照されるように、方法ステップ113(図4B)及び115(図4B)の累積演算は各プロンプト被積分関数値ワード27(図3B)及び各アーリー-マイナス-レイト被積分関数値ワード37(図3B)に対する1ビット・カウント数を全累積間隔にわたって合計し、各結果をその値ワードと関連された値41A(図3B)で乗算し、これら基準化された値累積の全てを合計して数式(6)及び(7)の累積、合計プロンプト累積45(図3B)、並びに、合計アーリー-マイナス-レイト累積47(図3B)を形成する。例えば、以下の計算が実行されて、数式(6)において同位相合計プロンプト累積45を計算する:

【0078】
ここで、lは累積間隔における連続的なビット単位並列データ・ワードのインデックスであり、Nはその間隔におけるデータ・ワードの合計数であり、1カウント数(k)Iplはl番目のデータ・ワード間隔に対する値k41A(図3B)と同位相合計プロンプト累積45(図3B)との双方に関連された対応する値ワード41(図3B)に対する1カウント数である。直角位相合計プロンプト累積45(図3B)と同位相及び直角合計アーリー-マイナス-レイト累積47(図3B)は同じようにして計算される。唯一の差は使用された実際の1カウント数値内であり、そしてアーリー-マイナス-レイト信号の場合に対してk値41A(図3B)の集合である。
【0079】
引き続き、主図4A及び図4Bで参照されるように、本発明の方法はRFフロントエンド出力の表現におけるビットと、ベースバンド混合信号との異なる数との作動に適合できる。2ビット以上の増大はロジックをより複雑に為し得て、一直線の整数算術にわたる時間節約を減少し得る。1ビット表現までの減少は逆効果を有し得る。例えばもし、RFフロントエンドが、搬送波レプリカ信号25(図2B)がその2ビット・ディジタル化を保持する一方で2ビット・ディジタル化よりも1ビット・ディジタル化を用いれば、演算カウント数は1ビット方法に対して殆ど1/2に減少でき、それは一直線整数算術より約4.2倍速くロジックを実行させることができる。
【0080】
PRNコードを決定する議論に戻ると共に、再度図2C、2D、並びに、図3Aで参照されるように、ビット単位並列過剰サンプリング・プロンプトPRNコード符号29A(図2D及び図3A)、アーリー-マイナス-レイトPRNコード符号35A(図2D及び図3A)、並びに、アーリー-マイナス-レイトPRNコード・ゼロ・マスク35B(図2D及び図3A)のリアルタイム発生はリアルタイム過剰サンプリングPRNコード発生器30A(図3A)によって実行され得る。この計算への入力は、実際のPRNコード・チップ長65(図2D)、Δt、サンプル間隔63(図2D)、Δt、公称アーリー-マイナス-レイト・コード遅延61(図2D)、Δteml、第1サンプル時間に対する第1コード・チップの最終時間或は言い換えれば時間差Δt、第1RFサンプル時間から第1プロンプトPRNコード・チップの最終時間までの67(図2D)、並びに、プロンプト・コード・チップ91(図2D及び図6)である。出力は、全てビット単位並列フォーマットであるプロンプトPRNコード符号29A(図2D及び図3A)、アーリー-マイナス-レイトPRNコード・ゼロ・マスク35B(図2D及び図3A)、並びに、アーリー-マイナス-レイトPRNコード符号35A(図2D及び図3A)を記憶する3つの整数である。
【0081】
再度図2C及び図2Dで参照されるように、テーブル検索が使用され、PRNコード及びそのタイミング情報がその過剰サンプリング・プロンプト及びアーリー-マイナス-レイト・バージョンのビット単位並列表現に変形する。必要とされているテーブル検索は、この計算の目的のために以下のパラメータが実質的に一定であることを認識することによって簡略化され得る:サンプリング間隔63(図2D)、Δt、公称チップ長、Δtcnom、ソフトウェア相関器19(図1)によって使用されるアーリー-マイナス-レイト・コード遅延61(図2D)、Δteml、並びに、マイクロプロセッサ16(図1)のデータ・ワードを跨ぐチップの最大数。先の簡略化のために使用される、実際のチッピング率Δf(Δtの逆数)と公称チッピング率Δfcnom(Δtcnomの逆数)との差は、以降に議論される手続きであるドップラー偏移の平均効果に対する、時間差67(図2D)、Δtを矯正することによって適合され得る。この簡略化を用いて、各検索テーブルが2つの変数入力を有し:プロンプト・コード・チップ91(図2D及び図6)と時間差67(図2D)、Δt0から成る実際の集合。各信号成分に対するテーブル検索手続きは、プロンプトPRNコード符号29A(図2D及び図3A)に対する単一整数結果、アーリー-マイナス-レイトPRNコード・ゼロ・マスク35B(図2D及び図3A)に対する別の単一整数結果、並びに、アーリー-マイナス-レイトPRNコード符号35A(図2D及び図3A)に対する更に別の単一整数結果を生ずる。
【0082】
時間差67(図2D)、Δt0
は連続的範囲:

における値の無限数を採用し得る。この範囲の下限は、第1レイト・チップの最終時間が第1サンプル時間よりは速くは生じないことを補償する。下方の時間差67(図2D)Δt0値は、サンプル時間の全てで、プロンプトPRNコード29(図2D)、アーリー・コード69B(図2D)、並びに、レイト・コード69C(図2D)とは関連のない第1チップを作る。式(31)における上限は、第1レイト・チップの始動時間が第1サンプルよりは遅くならないことを補償する。Δt0のより大きな値は、有効コード・チップに基づき未定義である第1サンプル時間でレイト・コード69C(図2D)を残す。
【0083】
図5で参照されるように、電子処理可能なテーブルを作り出すべく、Δt0値の連続的範囲はサンプル間隔63(図2D)、Δt毎にm個の同等離間された点を有する個別のグリッドで置換され得る。整数mは、粒状度Δt/mが十分なPRNコード・タイミング分解能を付与するように充分大きいよう選択される。GPS用途においてmは、通常、(cΔt/m)が数メートル或はそれ以下のオーダーであるように十分に大きく、cは光の速度であるが、テーブル・サイズが通常ではmと比例しているために理想的にサイズ決めされる。mの選択が与えられたとすれば、第1プロンプト・コード期間の相対的終了時間のグリッドは:
Δt0k=kΔt/m k=kmin,…,max (32)
ここで限界:
min=floor(−mΔteml/2Δt)−2 (33a)
max=floor(m[Δt−1/2Δteml]/Δt) (33b)
【0084】
上記の式は式(31)で規定された間隔の全適用範囲を提供する。floor()関数は−∞の方向において最も近い整数に向けて切り上げされる。このkmin値は最小Δt0kを式(31)における下限を僅かに下回るように降下させ、メモリを非効率的に為すが、この値は幾つかの更なる計算を簡素化するので有益である。
【0085】
各テーブルのサイズは、データ/ワードのサンプル範囲内に入る可能性があるコード・チップの最大数の関数であり得る。Δt0が与えられたならば、コード・チップの以下の数に対するビット情報が、プロンプトPRNコード29(図2D)、アーリー・コード69B(図2D)、並びに、レイト・コード69C(図2D)が以下のデータ・ワードのサンプル時間の全てで完全に特定化されるように要求される。


ここで、nは各ワード内にビット単位並列フォーマットで記憶され得るデータ・サンプルの数である。式(34)から明らかなように、l(Δt0)はΔt0の非増大関数である。それ故に、要求されるチップの最大数はΔtの最小値で生ずる:
L=l(Δt0kmin) (35)
【0086】
各テーブルのサイズはパラメータkmin、kmax、並びに、Lから決定され得る。グリッドはktot=(kmax−kmin+1)第1コード・チップの相違時間オフセットを含む。これらグリッド点の各々において、コード・チップの2L個の可能な組み合わせがある。よって、各テーブルはktot×2Lエントリーを最適には含み、各エントリーは最適には0から2ns−1までの範囲内における非符号付き整数である。
【0087】
引き続き、図5で参照されるように、各テーブルは単一インデックスを伴うアレイとして記憶され得る。第1の2LエントリーはΔt0=Δt0kminで生じ得る2L個の異なる可能性あるチップ・シーケンスと対応し、次の2LエントリーはΔt0=Δt0(kmin+1)と対応し、等々である。固定されたΔt0に対する表形式ビット・シーケンスは、第1チップが最上位のカウンタ・ビットである且つ第L番目チップが最下位のビットとであることを伴って二値インデックス・カウンタとしてシーケンスを解釈することによって順序付けされる。テーブルの整数要素が、チップの対応するコード時間オフセット83Δt0kと対応するビット・シーケンス85とを伴ってx(i)テーブル要素81であり得る。所与のx(i)テーブル要素81のアレイ・インデックスはそのコード時間オフセット83Δt0kグリッド・インデックスkとその対応するビット・シーケンス85とに基づき計算され得る。アレイ・インデックスと関連された対応ビット・シーケンス85はチップ値C(1)、C(2)、C(3)、・・・C(L)から構成される。C(f)チップ値はゼロか1の何れかであり、ゼロは−1PRNコード値を表し且つ1が+1PRNコード値を表し、それは増大する時間の順序でリストされる。x(i)テーブル要素81の対応するアレイ・インデックスは:

【0088】
この式はコード時間オフセット83グリッド・インデックスkとx(i)テーブル要素81インデックスiの関数としての対応ビット・シーケン85とを付与すべく変換され得る:
【0089】

j=1,2,3,...,L
ここで、mod(y、z)=y−z×floor(y/z)は通常の余剰関数である。
【0090】
引き続き、図5で参照されるように、以下の計算は3つのテーブルのx(i)テーブル要素81エントリーを発生する。iが与えられたならば、対応するコード時間オフセット83グリッド・インデックスk(i)が式(37a)から計算され、チップ・インデックスの3つのシーケンスを発生すべく用いられる:

【0091】
ここで、nは過剰サンプリング・データ・ワード内のサンプル時間のインデックスである。整数jP(n,i)はプロンプトPRNコード29(図2D)に対するサンプルnで適用するPRNコード・チップのインデックスである。整数je(n,i)及びjl(n,i)は、アーリー・コード69B(2D)及びレイト・コート69C(図2D)のそれぞれに対して同様に規定されている。式(38a)乃至(38c)における公式は、過ぎ去ったチップ長及び第1チップとを単位として付与されている各サンプルの時間測定となる。次いでこれらのインデックスは、サンプル時間に適用されるチップ値を決定すべく使用され得る:
p(n,i)=C[jp(n,i);i] n=1,2,3,...,n (39a)
e(n,i)=C[je(n,i);i] n=1,2,3,...,n (39b)
l(n,i)=C[jl(n,i);i] n=1,2,3,...,n (39c)
【0092】
ここで、Cp(n,i)は過剰サンプリング・プロンプトPRNコード29(図2D)であり、Ce(n,i)及びCl(n,i)は、それぞれ、アーリー・コード69B(図2D)及びレイト・コード69C(図2D)である。これらコード・ビット値の各々は、式(37b)における外側のmod(,2)演算によって決定されるようにゼロ或は1の何れかである。次いでこれら過剰サンプリングチップ値は、3つのテーブルのビット単位並列コード表現を構成する非符号付き整数を発生する表形式関数xp(i)、xemlzm(i)、並びに、xeml2s(i)を公式化すべく使用され得る:



【0093】
ここで、xp(i)はプロンプト符号テーブルのエントリーであり、xemlzm(i)はアーリー-マイナス-レイト・ゼロ・マスク・テーブルのエントリーであり、xeml2s(i)はアーリー-マイナス-レイト2の符号テーブルのエントリーである。留意すべきことは、式(40c)で使用された公式がアーリー-マイナス-レイト2の符号テーブル計算の単なる例示的実施例であることである。それはアーリー-マイナス-レイトPRNコード符号35A(図2D)のXエントリーの全てにゼロを配置する。同等に正しいがそれらXエントリーにゼロを配置しない代替的な公式がある。
【0094】
図5におけるテーブル・レイアウトは、1がどのようにしてPRNコード・チップ値及びタイミング情報をデータ・ワードに変形すべく使用され得るテーブルを構築できるかのほんの例示的実施例であり、それらデータ・ワードは、過剰サンプリング・プロンプトPRNコード符号29A(図2D)、アーリー-マイナス-レイトPRNコード・ゼロ・マスク35B(図2D)、並びに、アーリー-マイナス-レイトPRNコード符号35A(図2D)のビット単位並列表現を記憶する。他のテーブル・レイアウトも可能である。可能性ある例示的インデックス計算が、累積計算中にPRNコード検索に対するテーブル内への索引付けのために以下に記載される。もし別のテーブル・レイアウトが使用されれば、異なる索引付け計算が必要となり得る。更には、異なる索引付け計算は図5に示される例示的テーブル・レイアウトに対してでさえ使用され得る。
【0095】
主に図6で参照されるように、ここでそして別の箇所で先行して略述したように、累積計算はコード・チップの固定シーケンスと作動する。このシーケンスのプロンプト・バージョンは入来RF信号データ21(図2A)と特定化されたタイミング関係を有する。この関係は、もしソフトウェア・レシーバ10(図1)が取得モードであればコード・サーチ・アルゴリズムによって、或は、もし追跡モードであればその遅延ロックド・ループによって、事前決定され得る。ソフトウェア相関器19(図1)はプロンプト・コード・チップ91(図6)C(1)乃至C(M)を用いて累積を計算できる。プロンプト・コード・チップ91(図6)のプロンプト・レプリカのタイミングは累積間隔を規定できる。チップ・シーケンスは始動遅延93(図6)、データ・ワードW95(図6)を過ぎたΔtstart秒で始動し、それは一定チッピング率f=1/Δtでチップし、終了時間97(図6)で終了し、それはデータ・ワードW195(図6)の第1サンプル後のΔtstart+MΔt秒で生ずる。Mth番目のプロンプト・コード・チップの終わりはデータ・ワードW99(図6)中に生じ得て、それは、
N=ceil((Δtstart+MΔt)/nΔt) (41)
を暗示している。
【0096】
ここで、ceil()関数は+∞の方向において最も近い整数に向けて切り上げされる。データ・ワードW95(図6)の初期ビットの幾つかとデータ・ワードW99(図6)の最終ビットの幾つかとは累積内に含まれ得る。nex0を排除されるデータ・ワードW95(図6)の初期ビットの数とすると共に、nexfを排除されるデータ・ワードW99(図6)の最終ビットの数とする。図6におけるタイミング関係は、これらの数が:
ex0=ceil(Δtstart/Δt) (42a)
exf=nN−ceil((Δtstart+MΔt)/Δt) (42b)
であることを暗示している。
【0097】
これらサンプル・カウント数は、ここにそれら全体を引用することで合体させる、非特許文献6に見られる、非特許文献7及び非特許文献8で規定されているように、ビット単位並列累積計算中に第1及び最終データ・ワードを適切に処理すべくソフトウェア相関器19(図1)が使用する追加ゼロ・マスク・ワードを開発するため使用され得る。留意すべきことは、式(41)乃至(42b)及びここでの全ての関連タイミング考察は、以下のコード・チップ始動/停止慣例を用いる:もしコード・チップがサンプル時間と正確に合致すればサンプルはその特定のコード・チップと相関するが、もしそのサンプル時間がコード・チップの終了時間と正確に合致すれば、それはそのチップと相関関係を得られない。
【非特許文献6】IEEE Transactions on Wireless Communications, 2003
【非特許文献7】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.
【非特許文献8】Bit-Wise Parallel Algorithms for Efficient Software Correlation Applied to a GPS Software Receiver, B. M. Ledvina et al.
【0098】
続いて図6で参照されるように、N個のデータ・ワードW95(図6)乃至データ・ワードWN99(図6)に対する正しいxp(i)、xemlzm(i)、並びに、xeml2s(i)ビット単位並列コード表現を効率的に決定することは、データ・ワードWと対応する正しいテーブル・インデックスiの効率的な決定を為すことを含み、ここで、v=1,...,Nで有り、テーブル・インデックスiは、始動遅延Δtstart93(図6)の関数、実際のPRNコード・チップ長Δt65(図6)、v、並びに、プロンプト・コード・チップC(0),C(1),C(2),...,C(M+1)91(図6)である。チップ値C(0)94(図6)は、累積の初期の数サンプルでレイト・コード69C(図2D)を特定化すべく必要であり、そしてチップ値C(M+1)96(図6)は、最終の数サンプルでアーリー・コード69B(図2D)を特定化すべく必要である。iインデックスを決定すべく使用可能な追加の定数は、Δt、n、m、L、kmin、kmax、並びに、公称チップ長Δtcnomであり、3つのx(i)テーブルを発生すべく使用された。
【0099】
インデックス計算手続きの第1ステップは、式(36)の右辺に現れる最終合計項に対する候補整数のテーブルを事前計算すると共に記憶することである。このテーブルは以下の形態を採用する:

【0100】
この計算は未定義のチップ値C(−L+1),C(−L+2),C(−L+3),...,C(−1)と、C(M+2),C(M+3),C(M+4),...,C(M+L)を要求する。値ゼロはそれら未定義チップの各々に対して使用可能であり、その理由は、それがデータ・ワードW95(図6)の第1nex0サンプルに対してだけ、或は、データ・ワードW99(図6)の最終nexfサンプルに対してだけ過剰サンプリング・コードに影響し得るからであり、それらは累積の一部ではない。式(43)のテーブルは以下の反復手続きを用いることによって構成され得る:
Δi(l)=C(0) (44a)
Δi(μ)=mod[2Δi(μ-1),2L]+C(μ-1) μ=2,3,4,...,(M+2) (44b)
Δi(μ)=mod[2Δi(μ-1),2L] μ=(M+3),(M+4),...,(M+L+1)(44c)
留意すべきことは、mod(2x,2L)演算は単一の切頭左向きビット・シフトによって置き換え可能である。
【0101】
多くの場合、プロンプト・コード・チップ91(図6)C(0),C(1),C(2),...はフィードバック・シフトレジスタ或はそうしたレジスタのシステムの出力として発生され得る。例えば、新GPS民生L2信号はこの方法で発生可能である。この場合、式(44b)の各反復はシフトレジスタ計算の反復と交互配置可能である。PRNコードのシフトレジスタ発生は当業界では周知である。
【0102】
先行して記載されたテーブルを構築する代替としては、一時に1つのデータ・ワードだけのインデックス成分を計算することである。Δiがデータ・ワードWに対する正しいインデックス成分であり、μがΔi(μ)テーブルからΔiを決定するため使用される補助インデックスであることを仮定すると、テーブルは存在する。データ・ワードW+1に対するΔiv+1を計算するために、μv+1が計算され(ここで定義された手続き)、C(μ),C(μ+1),C(μ+2),...,C(μv+1−1)を発生するフィードバック・シフトレジスタ計算が反復され、そして、結果としてのチップ値が式(44b)或は(44c)の(μv+1−μ)反復を実行すべく使用される。
【0103】
正しいインデックスのデータ・ワードWに対するxp(i),xemlzm(i),xeml2s(i)への決定は、2つの量の決定に縮小され得る。一方は、式(32)からのΔt0kvをデータ・ワードWに対する真時間オフセットと出来る限り密接に符合させる時間オフセット・インデックスkである。他方の量は補助テーブル・インデックスμである。それはデータ・ワードWと関連される実際のチップのシーケンスに対するインデックスを構成する。これら2つの量が与えられれば、3つのx(i)テーブルに対する正しいインデックスは:
=1+(k−kmin)×2L+Δi(μ) v=1,2,3,...,N (45)
【0104】
補助インデックスμはPRNコード・チップ・シーケンスに対するWデータ・ワードの一によって決定される。ひとたびその位置が確かめられたならば、インデックスkはそのインデックスμと関連されたLコード・チップのWサンプルに対する位置から計算され得る。
【0105】
時間整数は所与の間隔内での微細スケール時間単位の数を追跡し得る。微細スケール時間単位はサンプル間隔63(図2D)の小さな分数であり、Δt
Δt=Δt/m (46)
【0106】
ここで、mはサンプル間隔63(図2)、Δt毎の微細スケール時間間隔の整数の数である。この数は例えばm>2mNと十分大きく選択されて、有限時間分解能Δtによる累積間隔中のタイミング・エラーの任意の重大な蓄え排除する。Nは累積間隔におけるデータ・ワードの数である。1つの累積間隔にわたるk値の計算はN個の反復回増分を含み、その各々はΔtの分解能を有する。もしmが先に付与された不等式に従えば、有限精度Δtによる累積タイミング・エラーがx(i)テーブルの有限タイミング・精度によって生ずるタイミング・エラーより小さい。通常、mを2mNより相当大きくすることが可能であり、関連計算の全てを32ビット符合化整数のサイズ限界内に保持する。もしmが2の累乗であれば、右向きビット・シフト演算がmによる整数分割を具現化するため使用可能である。時間単位Δtは、以下のデータ・ワードWに対するコード/サンプル時間オフセットΔt0vの追跡を略保持する整数を規定するため使用可能である。

【0107】
ここで、round()関数は最も近い整数に向けて切り上げ或は切り下げされる。時間遅延67(図2D)、Δt0v、はPRNコード・チップC(μ−L)の終了時間がデータ/ワードWの第1サンプル時間を遅延させる量である。kfvを反復的に決定するアルゴリズムは式(47)における関係を正確に保持しようとするが、整数演算だけを用いて小さなエラーが蓄えられることを可能とする。留意すべきことは、式(32)及び(47)の比較によって暗示されるように、

である。この関係は反復的に決定されるkfvからkvを決定すべく使用可能である。幾つかの定数は、kfv,k,μを決定する反復的手続きによって要求される。第1の5つの定数は、x(i)テーブルを発生すべく使用される公称チップ長Δtcnomと、以下の累積に使用される実際のチップ長65(図2D)、Δtとの間の差を考慮すべく使用される。
fmid=round[(n−1)m/2] (48a)
λ=Δt−Δtcnom/Δt (48b)
fix0=ceil[(kfmid−mfmin/m)λ]sign(λ) (48c)

fix=round(λbfix) (48e)
【0108】
ここで、sign()関数は、もしその入力独立変数が正であれば+1をもたらし、もしその独立変数がゼロであればゼロをもたらし、そしてもしその独立変数が負であれば−1をもたらす。インデックスkfmidは、Δt秒の単位で測定した場合、データ・ワードの長さの約半分である。累積中、論理的因子afix/bfixは、第1コード・チップの終了時間とデータ・ワードの中間点との間の時間オフセットによって乗算される。その結果は実際と公称のPRNコード・チッピング率の間の差の平均効果を除去する時間摂動である。時間摂動は以下の矯正kfv値を計算すべく使用可能である。

【0109】
式(48d)はbfixを採集して2の累乗と等しくして、式(49)におけるbfixによる整数分割が右向きビット・シフト演算を用いて達成されるように為す。式(49)におけるround()演算は、もしbfixによる分割を構成する右向きビット・シフトを実行する前に1が先ずsign(afix)×bfix/2を量(kfmid−kfv)×afixに加算されれば、分割の一部として達成される。このアプローチは、(kfmid−kfv)及びbfixの符合が双方とも正であり且つ右向きビット・シフトが符号付き分割結果をゼロに向かって丸める効果を有する。丸め(round)関数の代替具現化例はkfmid>kfvを保証しない用途に使用され得る。そうした用途は、通常、データ・ワード毎にL<2PRNコード・チップと関連されている。
【0110】
5つの追加定数は以下のkfv及びμ反復を規定するのに使用可能である。

【0111】
定数Ltypはデータ・ワード毎のコード・チップの典型的な数である。それはデータ・ワード毎にμへの公称増分である。定数ΔkfcはPRNコードチップ当たりの細かいスケール時間間隔に等しい。定数Δkfcは、もしkfvがkfmin<fv<fmaxの限界の外側に入ればkfvを上げる或は下げるように調整するのに使用される。定数Δkftypはデータ・ワード毎のkfvへの公称増分である。限界kfmin及びkfmaxは新微細時間スケールに再スケールされ、そしてx(i)テーブルの公称コード・チッピング率と累積の実際のチッピング率との間の差に対して調整された式(33a)及び(33b)からの略制限kmin及びkmaxである。式(33a)の右辺における余分な−2項は、式(50d)の右辺におけるkminへの増分と、式(50e)の右辺におけるkmaxへの減分とによって補償される。オリジナルの−2項、増分、並びに、減分は、それが式(50d)及び(50e)における限界を妨げないk値が式(33a)及び(33b)における限界を妨げないk値に変形されるので含ませられた。
【0112】
反復は第1データ・ワードに対するkfl及びμを初期化することによって始まる。公称初期値は:

式(51a)からのkflnomがその上限kfmaxを乱し得ることは可能である。それ故に、以下の条件的調整が具現化され得て、初期化を終了する。


【0113】
この初期化が与えられれば、(kf2,μ2),(kf3,μ3)、(kf4,μ4),,...,(kfN,μN)は以下の反復に従って進む。
fvnom=kf(v-1)+Δkftyp v=2,3,4,...,N (53a)
μvnom=μ(v-1)+Ltyp v=2,3,4,..,N (53b)


【0114】
テーブル検索計算はk、i、並びに、実際のテーブル検索で終了する:
=round[mkfvfix(kfv)/m] v=1,2,3,...,N (55)
【0115】
round()演算は、mによる分割を構成する右向きビット・シフト前にm/2をm×kfvfix(kfv)に加算することによって具現化される。この分割の結果は、もしコンピュータが2の補数表記で作動すれば、そしてもし右向きビット・シフトが2の補数符号ビット、即ち最左翼ビットで左からkfvfix(kfv)の任意の符号に対してkの正しい値となる。
【0116】
式(55)からkがそして式(54b)からμが与えられたならば、式(45)からiを計算するのに使用可能である。次いでこの値は、プロンプトPRNコード符号29A(図2D及び図3A):xpv、アーリー-マイナス-レイトPRNコード・ゼロ・マスク35B(図2D及び図3A):xemlzv、並びに、データ・ワードWと対応するアーリー-マイナス-レイトPRNコード符号35A(図2D及び図3A):xeml2svを決定するテーブルに索引付けするのに使用可能である:
pv=xp(iv) v=1,2,3,...,N (56a)
emlzms=xemlzm(iv) v=1,2,3,...,N (56b)
eml2sv=xeml2s(iv) v=1,2,3,...,N (56c)
【0117】
式(54a)及び(54b)の論理命題は、効率を改善すべく、通常演算中、データ・ワード毎の単一論理命題に縮小され得る。これは、式(53a)におけるΔkftypの符号が所与の累積間隔に対して固定されているから為され得る。(通常、Δkftypの符号は、累積間隔毎、或は、所与のレシーバに対するチャネル毎に変動せず、その理由は、Δkftypに影響する唯一の変数量が実際のチップ長65(図2D):Δtであり、それが通常大きくは変動しないからである。)もし、Δftyp<0であれば、kfv及びμを決定する適切な公式は不等式kfvnom<kfminを考慮することによって決定され得る。逆に、もしΔkftyp>0であれば、適切な公式は不等式kfvnom>kfmaxを考慮することによって決定される。何れの条件がチェックされるべきかについての判定は累積の始めに為されるが、その理由は、Δkftypが式(53a)乃至(56c)における反復の実行に先行して計算されるからである。
【0118】
指示パイプラインを作り出すプロセッサを用いる場合、「もし(if)」ステートメントはそのパイプラインを混乱させる。この場合、式(54a)及び(54b)は以下の計算で置き換え可能である:

fv=kfvnom−ηfvΔkfc v=2,3,4,...,N (57b)
μv=μvnom−ηfv v=2,3,4,...,N (57c)
【0119】
min()及びmax()関数は、それぞれ、それらの2つの入力独立変数の最小及び最大をもたらす。変数ηfvは通常ゼロであり、その場合、式(57b)及び(57c)はkfvをkfvnomと等しくし且つμvをμvnomと等しくする。Δkftyp<0及びkfvnom<kfminの場合、ηfvの値はゼロであり、Δkftyp>0及びkfvnom>kfminの場合、ηfvの値は+1である。これら双方の場合、ηfvは式(57b)及び(57c)がkfv及びμvに必要な調整を実行させる。留意すべきことは、効率的なコードは、データ・ワード毎に一度、式(57a)における論理命題を実行しないことである。代わりに、その累積反復が、Δkftypの値に応じて、3つの異なる反復ループの内の1つで実行される。追加的な節約は式(57a)の第1及び第3の条件付き節でもたれ得る。第1条件に対する−ηfvの値は、kfvnom−kfminの2の補数表現の符号ビットと等しい。同様に、第3条件に対する+ηfvはkfmax−kfvnomの2の補数表現の符号ビットと等しい。何れの場合も、ηfv(或はその負)は2つの演算で計算される。
【0120】
リアルタイムの過剰サンプリングPRNコード発生器30A(図3A)を要約すると共に、図7を参照すると、プロンプトPRNコード29(図3A)及び全累積間隔に対するアーリー-マイナス-レイトPRNコード35(図3A)を計算すべく、本方法は式(44a)乃至(44c)を反復するステップを含んで(方法ステップ201、図7)、Δi(μ)値から成るテーブルを構築する。方法は、式(48a)乃至(48e)及び(50a)乃至(50e)における補助定数を計算するステップを更に含む(方法ステップ203、図7)。またこの方法は、式(51a)乃至(52b)を評価することによってkfl及びμを初期化するステップを更に含む(方法ステップ205,図7)。この方法は、式(53a),(53b),(57a)乃至(57c),(49),(55),(45)を反復するステップを更に含んで(方法ステップ207、図7)、各反復に対して、kfvnom,μvnom,ηfv,kfv,μ,k,iを計算する。この方法は、式(56a)乃至(56c)を反復するステップを更に含んで(方法ステップ209、図7)、各反復に対して、xpv,xemlzmv,xeml2svを計算する。
【0121】
既に述べたように、式(44a乃至44c)反復と付随するシフトレジスタ反復とをkfvnom乃至xeml2svを計算する反復間に交互配置することは効率的であることは立証し得る。その後、コード・チップC(μv-1−1)乃至C(μ−1)を発生数シフトレジスタ反復が実行され得て、これらチップ値は、μv-1からμまで式(44a乃至44c)を反復すべく使用可能であって、Δi(μv-1)からΔi(μ)を決定する。
【0122】
本発明のソフトウェア相関器19(図1)は、有益には、異なる周波数での信号、新PRNコード、或は、異なるタイプの装置に対する信号でも作動するように容易に変更される。よって、同一のハードウェアはそのソフトウェア相関器19(図1)を使用して、そうした装置を、GPSレシーバ、携帯電話、或は、その双方として具現化する。新コード、新周波数、並びに、新タイプの機能を許容すべく、小さな変更がソフトウェア相関器19(図1)に為され得るか、或は、異なるバージョンのソフトウェア相関器19(図1)が同一プロセッサ上で走らされる。それら変更は異なるベースバンド混合周波数及び相互関係において異なるPRNコードを用いることを含み、たぶん、変更は対象の新信号をソフトウェア相関器19(図1)に提供する。本発明に対して、異なる周波数での信号、新PRNコード、或は、異なる装置に対する信号で作動するためには、2つの基本的な変更が為される必要性がある。第1として、ベースバンド混合周波数が信号データ21のものに誂えられなければならず、その新周波数で正弦及び余弦テーブルを事前計算し記憶することも含む。第2として、新しい事前計算過剰サンプリングPRNコード・テーブル28(図3A)が構築されなければならない。新テーブルのサイズは過剰サンプリング累積期間か、或は、PRNコードの少なくとも1つの過剰サンプリング期間と符号すべきである。新しい事前計算過剰サンプリングPRNコード・テーブル28(図3A)を発生する代替として、その新PRNコードは過剰サンプリングPRNコード発生器30A(図3A)によってリアルタイムで発生され得る。また、本発明のシステム及び方法は、GLONASSレシーバ、携帯電話、携帯電話基地局、呼び出し器、無線イーサネット(例えば、802.llx規格)、ブルートゥースTM、Blackberry(登録商標)無線インターネット装置、並びに、衛星ラジオ/電話(例えば、INMARSAT(登録商標))等のシステム内で具現化され得る。事実、本発明のシステム及び方法は、スペクトル拡散、有線或は無線の何れでも情報伝達のための符号分割多重アクセス(CDMA)擬似乱数コードを用いる任意の種類の遠隔通信システム/装置に適用可能である。
【0123】
図8で参照されるように、ナビゲーション算定はPRNコード位相55、搬送波位相、並びに、搬送波周波数の測定値を要求する。全追跡衛星に対する測定は正確に同時に取られなければならない。時間間隔カウンタ(TIC)機能は周期的タイミング方式を提供して、時間tTIC56でこれら測定を同期化する。時間tTIC56で、TIC機能はPRNコード位相55、搬送波位相、並びに、搬送波周波数の全てをコート・エポック・カウンタと一緒にラッチし、ソフトウェア相関器19(図1)はこれらを用途特定コード15(図1)、例えばGPSレシーバ・ソフトウェアに利用可能と為す。GPSレシーバ・ソフトウェアはコード位相及びエポック・カウンタを用いて、各衛星への擬似レンジを計算する。ソフトウェア相関器19(図1)はコード・チッピング率及び搬送波ドップラー偏移入力によって決定された各信号のコード及び搬送波位相の追跡を保持する。量

:衛星jに対するソフトウェア・レシーバ10のそのk番目のPRNコード期間中における推定されたコード・チッピング率は取得サーチ手続きによって決定されるか、或は、もし追跡であれば、遅延ロックド・ループによって決定される。同じように、

:関連搬送波ドップラー偏移は取得手続きで規定されるか、或は、もし追跡が着手されたならば、位相ロックド・ループ或は周波数ロックド・ループで規定され得る。これらの決定は用途特定コード15(図1)によって為される。ソフトウェア相関器19(図1)はこれら2つの周波数を用いて、以下の公式に従ったそのコード及び搬送波位相の追跡を保持する量を更新できる。


【0124】
ソフトウェア相関器19(図1)はこれらの量の追跡を保持でき、これら反復を、用途特定コード15(図1)と連携し実行する信号取得算定の一部として初期化できる。量

及び

は用途特定コード15によってソフトウェア相関器19へ送信するか、或は、それらがソフトウェア相関器19によって任意に初期化され、そして、用途特定コード15は

及び

のフィードバック制御を実行して、式(58)及び(59)によって規定されたシーケンスの適切な値への集中を強制する。先行して記載下従来方法についての情報はDierendockに見出せる。
【0125】
TIC時間tTIC56(図8)は、例えば、レシーバ・クロックのミリ秒境界で生じ得る。各時間tTIC56で、各信号のPRNコード位相55(図8)は以下のようにして計算される:

【0126】
ここで、

はTIC時間tTIC56(図8)での信号jのチップにおけるPRNコード位相55(図8)である。エポック・カウンタ、即ちコード期間57(図8)の数の単なる現在高であり、各コード始動/停止時間で増分する。
【0127】
時間tTIC56(図8)での搬送波位相算定は、以下の如くに、PRNコード位相55(図8)算定と同様である。

【0128】
ここで、

は時間tTIC56での搬送波位相である。時間tTIC56(図8)で帰還するドップラー偏移は

である。
【0129】
本発明のシステム及び方法の性能に関して、本発明の例示的実施例からのサンプル・スクリーン・ショットが表8に提供されている。この表は9チャネルの追跡を例示的に示す。この例示的実施例のルーフ搭載L1アンテナは26dB利得を伴うプレアンプを有し得る。本発明のソフトウェア相関器19(図1)は、用途特定ソフトウェア15(図1)と連携して作動する際、10〜15メートル程度の位置的精度を提供し得る。
【0130】
【表8】

例示実施例による数値PGS追跡データ出力
【0131】
2つの比較テストは本発明のシステム及び方法の性能を例示している。第1テストにおいて、第1構成はMITEL(登録商標)GP2021ハードウェア相関器を含むが、本発明のソフトウェア相関器19(図1)を含む第2構成と全て別の方式で同等である。これら2つの構成はその1dB小さいSNRとせいぜい5〜10メートルのナビゲーション分解能で異なる。第2テストにおいて、本発明のシステムを用いるタイミング研究は6つのチャンネルを処理することがプロセッサの容量の約20%だけしか使用しない一方で、Akos2001aはリアルタイムソフトウェアGPSレシーバを報告し、それが1.73GHzマイクロプロセッサ容量の100%を要求して、5.714MHzのサンプリング周波数でのRFフロントエンドからのデータを処理する際に6チャネルGPSレシーバを具現化する。
【0132】
図9A及び図9Bで参照されるように、とりわけ、リアルタイム過剰サンプリングPRNコード発生器30A(図3A)によって発生されるPRNコードの精度を査定する指標であり、プロンプトPRNコード符号29A(図3A)、アーリー-マイナス-レイトPRNコード符号35A(図3A)、並びに、アーリー-マイナス-レイトPRNコード・ゼロ・マスク35B(図3A)を含み、発生コード対真コードの低い歪みである。プロンプト・コード比較に対して発生された図9Aは、サンプリング真コードの自動相関関数80(図9A)と、サンプリング真コード及び真xテーブルから発生されたサンプリング・コードの間の交差相関関数82(図9A)の並置プロットを示す。図9Bは、アーリー-マイナス-レイトPRNコード35(図3A)に対する同様の比較を示す。何れの場合でも、公称チッピング周波数はfcnom=1/Δtcnom=1.023MHzであり、サンプリング周波数はf=1/Δt=12.199MHzであり、そして、テーブルのコード・タイミング分解能はm=12、即ちサンプルの1/12番目である。この分解能はコード・チップの約1/143番目に変形する。実際のチッピング率は(f−fcnom)=1.5Hzだけ公称のものとは異なる。コード・チッピング率のこのドップラー偏移は、レシーバ及びトランシーバ間の重要な非ゼロ範囲、438m/秒と対応する。相互関係は10230個のコード・チップにわたって累積され、そのコードは新GPS民生L2 CL及びCMコードの対の時分割バージョンである。この例に対するデータ・ワード割出差婦負は、Δt/10、即ち、m=10のコード・チップ始動時間分解能を用いる。
【0133】
図9A及び図9Bから明かなように、プロンプトPRNコード29(図3A)及びアーリー-マイナス-レイトPRNコード35(図3A)歪みは非常に小さい。新テーブルを用いて作り出された相互関係は正確なコードから作り出されたものと理想的に同等である。新アプローチの低い歪みは2つのパラメータによって最良に特徴付けされ:プロンプトPRNコード符号29A(図3A)の相互関係ピークが1以下に垂れ下がる量と、アーリー-マイナス-レイトPRNコード35(図3A)のゼロ交差時間のオフセットとである。前者の測定基準は新アプローチのパワーロスを特徴付け、後者の測定基準は正味のタイミング・エラーを特徴付ける。プロンプト・ピークの垂れ下がりは公称振幅のほんの0.3%で有り、それは0.03dB損失に変換される。新コードのタイミング歪みは4×10−4未満のコード・チップである。この歪みは非常に小さく、それはGPS範囲測定エラーの約0.1mに変換される。
【0134】
x(i)テーブルのコード・タイミング粒状度が

コード・チップである場合、コード・タイミング・エラーが4×10−4未満のコード・チップであることは自己矛盾しているように見える可能性がある。この自己矛盾の解決策は累積の平均化効果に横たわっている。コード・チップの長さは、図9A及び図9Bに示される例に対して143.099269コード・オフセット時間グリッド間隔と等しい。この数の非整数特性は、x(i)テーブルのコード・オフセット・エラーを、累積が連続的なデータ・ワードを通じてのその道を作業するに連れて混乱させる。この混乱はテーブル粒状度エラーを平均化する傾向があり、この平均化は、図9Bに示されるように、大規模に或はそれ以上に正味のタイミング・エラーを低減できる。
【0135】
本発明は様々な実施例に関して記載されたが、この発明は広範な種類の更なる別の実施例を収容できることを理解されたい。
【図面の簡単な説明】
【0136】
【図1】図1は、典型的なソフトウェア・レシーバのハードウェア環境の概略ブロック線図である。
【図2A】図2Aは、データ・ワードを計算するための信号及び搬送波レプリカの符号及びマグニチュード・ビットのビット単位マッピングの概略線図である。
【図2B】図2Bも、データ・ワードを計算するための信号及び搬送波レプリカの符号及びマグニチュード・ビットのビット単位マッピングの概略線図である。
【図2C】図2Cは、ビット単位並列無線周波数信号及びPRNコード・レプリカ記憶及び混合のプロットの図表表現である。
【図2D】図2Dは、プロンプト、アーリー、レイト、及びアーリー-マイナス-レイトPRNコード信号と、それら過剰サンプリング等価物の16ビット・ワード表現の各種区分のプロットの図表表現である。
【図3A】図3Aは、本発明のビット単位並列プロセス(2度の複写、同位相搬送波レプリカに対する1度、直角位相搬送波レプリカに対する1度)を図示するデータフロー線図である。
【図3B】図3Bも、本発明のビット単位並列プロセス(2度の複写、同位相搬送波レプリカに対する1度、直角位相搬送波レプリカに対する1度)を図示するデータフロー線図である。
【図3C】図3Cは、読者の本発明の理解を高めるべく提示された、正弦波の先行技術に係る最適2ビット表現のプロットの図表表現である。
【図4A】図4Aは、本発明のビット単位並列計算を通じての相互関係累積の計算のための方法のフローチャートである。
【図4B】図4Bも、本発明のビット単位並列計算を通じての相互関係累積の計算のための方法のフローチャートである。
【図5】図5は、コード時間オフセット及びチップ・ビット・パターンの関数としての検索テーブル・レイアウトの概略線図である。
【図6】図6は、データ・サンプル・ワードと、累積間隔を規定するプロンプト・コード・チップのシーケンスとの間のタイミング関係を図示するプロットの図表表現である。
【図7】図7は、リアルタイム過剰サンプリングPRNコード発生アルゴリズムを用いて、全累積間隔に対する過剰サンプリング・プロンプトPRNコード・レプリカ及び過剰サンプリング・アーリーPRNコード・レプリカのビット単位並列表現を計算する方法のフローチャートである。
【図8】図8は、各信号のコード位相が計算される時間における箇所を図示するプロットの図表表現である。
【図9A】図9Aは、真及びテーブル検索コードのプロンプト・バージョンを伴う真サンプリング・コードの相関関係のプロットの図表表現である。
【図9B】図9Bは、アーリー-マイナス-レイト・バージョンを伴う真サンプリング・コードの相関関係のプロットの図表表現であり、新リアルタイム過剰サンプリングPRNコード発生器によって発生する。
【符号の説明】
【0137】
11 アンテナ
13 RFフロントエンド
17 データ・バッファリング及び取得システム
19 ソフトウェア相関器
16 マイクロプロセッサ

【特許請求の範囲】
【請求項1】
ソフトウェア・レシーバ(10)であって、
無線信号を受信できるレシーバ(11)と、
前記無線信号をディジタル化(17)する手段と、
前記ディジタル化無線信号(21)をビット単位並列処理を用いてベースバンド信号(23)を形成すべく混合できるソフトウェア相関器(19)と、
を備えるソフトウェア・レシーバ(10)。
【請求項2】
前記ソフトウェア相関器(19)が、
前記ベースバンド信号(23)及び少なくとも1つの擬似乱数(PRN)コード(29)の間の相互関係を前記ビット単位並列処理を用いて計算する手段を備える、請求項1に記載のソフトウェア・レシーバ(10)
【請求項3】
前記ソフトウェア相関器(19)が、
前記相互関係から累積(45)を前記ビット単位並列処理を用いて計算する手段を更に備える、請求項2に記載のソフトウェア・レシーバ(10)。
【請求項4】
前記累積(45)を用いてナビゲーション・データを計算できる用途特定コード(15)を更に備える、請求項3に記載のソフトウェア・レシーバ(10)。
【請求項5】
ディジタル化(17)を為す前記手段が、
前記無線信号(12)を中間周波数に逓減変換する手段と、
前記中間周波数をディジタル化できるディジタイザと、
を含む、請求項1乃至4の内の何れか一項に記載のソフトウェア・レシーバ(10)。
【請求項6】
前記ディジタイザが少なくとも1つのビット サンプルを作り出す、請求項5に記載のソフトウェア・レシーバ(10)。
【請求項7】
前記ディジタイザがアナログ・ディジタル変換器である、請求項5に記載のソフトウェア・レシーバ(10)。
【請求項8】
少なくとも1つの無線周波数(RF)信号(21)を累積期間にわたって処理する方法であって、
少なくとも1つのRF信号(21)を受信する段階と、
前記少なくとも1つのRF信号(21)をビット単位並列処理を用いてベースバンド混合信号(23)を形成すべく混合する段階と、
前記ベースバンド混合信号(23)の関数として完全混合プロンプト被積分関数(31)、事前選択擬似乱数(PRN)コード(29)及び(35)を、前記ビット単位並列処理を用いて計算する段階と、
前記ベースバンド混合信号(23)の関数として完全混合アーリー-マイナス-レイト被積分関数(33)、事前選択PRNコード(29)及び(35)を、前記ビット単位並列処理を用いて計算する段階と、
同位相累積及び直角位相累積(45),(47)を累積期間にわたって計算する段階であり、前記同位相及び直角位相合計累積(45),(47)が完全混合プロンプト被積分関数(31)及び完全混合アーリー-マイナス-レイト被積分関数(33)の関数であることから成る段階と、
前記同位相及び直角位相累積(45),(47)を回転して、前記ベースバンド混合信号(23)の周波数及び位相粒状度の効果を補正する段階と、
の諸段階を含む方法。
【請求項9】
複数のチャネルからの複数の信号に対するプロンプト及びアーリー-マイナス-レイトの同位相及び直角位相合計累積(45),(47)を計算する方法であって、
前記複数のチャネルの内の少なくとも1つのチャネルから、搬送波レプリカ符号(25A)及び搬送波レプリカ・マグニチュード(25B)として、搬送波レプリカ信号(25)を表現する段階と、
前記複数のチャネルの内の前記少なくとも1つのチャネルから、少なくとも1つの信号ワード(21A)として信号データ(21)を表現する段階と、
前記搬送波レプリカ符号(25A)及び前記少なくとも1つの信号ワード(21A)の関数としてベースバンド混合符号(23A)を計算する段階と、
前記搬送波レプリカ・マグニチュード(25B)の関数としてベースバンド混合マグニチュード(23B),(23C)を計算する段階と、
プロンプトPRNコード(29)及びアーリー-マイナス-レイトPRNコード(35)を有する擬似乱数(PRN)コードを選択する段階と、
プロンプトPRNコード符号(29A)として前記プロンプトPRNコード(29)を表現する段階と、
前記ベースバンド混合符号(23A)及び前記プロンプトPRNコード符号(29A)の関数として完全混合プロンプト被積分関数符号(31A)を計算する段階と、
アーリー-マイナス-レイトPRNコード符号(35A)及びアーリー-マイナス-レイトPRNコード・ゼロ・マスク(35B)として前記アーリー-マイナス-レイトPRNコード(35)を表現する段階と、
前記ベースバンド混合符号(23A)及び前記アーリー-マイナス-レイトPRNコード符号(35A)の関数として完全混合アーリー-マイナス-レイト被積分符号(33A)を計算する段階と、
前記完全混合プロンプト被積分関数符号(31A)及び前記ベースバンド混合マグニチュード(23B),(23C)の関数として、プロンプト被積分関数値ワード(27)から成る少なくとも1つの集合を計算する段階と、
前記完全混合アーリー-マイナス-レイトPRNコード・ゼロ・マスク(35B)、前記ベースバンド混合マグニチュード(23B),(23C)、並びに、アーリー-マイナス-レイトPRNコード・ゼロ・マスク(35B)の関数として、アーリー-マイナス-レイト被積分値ワード(37)から成る少なくとも1つの集合を計算する段階と、
プロンプト被積分関数値ワード(27)から成る前記少なくとも1つの集合における有効ビットの数の関数として、且つ、プロンプト被積分関数値ワード(27)から成る前記少なくとも1つの集合と関連された値の関数として、累積間隔のために、前記複数のチャネルに対するプロンプト同位相及び直角位相合計累積(45)を計算する段階と、
アーリー-マイナス-レイト被積分値ワード(37)から成る前記少なくとも1つの集合における重要なビットの数の関数として、且つ、アーリー-マイナス-レイト被積分値ワード(37)から成る前記少なくとも1つの集合と関連された値の関数として、前記複数のチャネルに対するアーリー-マイナス-レイト同位相及び直角位相合計累積(47)を計算する段階と、
の諸段階を含む方法。
【請求項10】
ゼロ及び1から成るグループから前記有効ビットを選択する段階を更に含む、請求項9に記載の方法。
【請求項11】
信号符号(21A)及び信号マグニチュード(21B)として前記少なくとも1つのチャネルから前記信号ワードを表現する段階と、
前記搬送波レプリカ・マグニチュード(25B)及び前記信号マグニチュード(21B)の関数として、少なくとも1つのベースバンド混合マグニチュード(23B),(23C)を計算する段階と、
を更に含む、請求項9或は10に記載の方法。
【請求項12】
周波数の粗いグリッドを表現する搬送波レプリカ・テーブルから前記搬送波レプリカ信号(25)を検索する段階を更に含む、請求項9乃至11の内の何れか一項に記載の方法。
【請求項13】
ソフトウェア・レシーバ(10)であって、
無線信号(12)を受信できるフロントエンド装置(13)であり、前記無線信号(12)を信号データ(21)に変換できるフロントエンド装置(13)と、
前記信号データ(21)を受信できるデータ取得装置(17)であり、前記信号データ(21)をマイクロプロセッサ(16)に提供できるデータ取得装置(17)と、
前記信号データ(21)を少なくとも1つのデータ・ワードに詰めることができる少なくとも1つのシフトレジスタと、
前記少なくとも1つのデータ・ワードの関数として、少なくとも1つのベースバンド混合信号(23)をビット単位並列処理を用いることによって計算できるベースバンド・ミキサーと、
前記ベースバンド混合信号(23)及び擬似乱数(PRN)コード・レプリカ信号(29),(35)の間の相互関係を計算できる相関器と、
前記相互関係を累積することによって合計累積(45),(47)を計算できる累積器と、
を備えるソフトウェア・レシーバ(10)。
【請求項14】
前記信号データ(21)が信号符号(21A)を更に含む、請求項13に記載のソフトウェア・レシーバ(10)。
【請求項15】
前記信号データ(21)が信号符号(21A)と少なくとも1つの信号マグニチュード(21B)とを更に含む、請求項13に記載のソフトウェア・レシーバ(10)。
【請求項16】
前記相関器が前記相互関係を計算するために前記ビット単位並列処理を用いる、請求項13乃至15の内の何れか一項に記載のソフトウェア・レシーバ(10)。
【請求項17】
前記累積器が電子機構によって前記相互関係を累積する、請求項13乃至16の内の何れか一項に記載のソフトウェア・レシーバ(10)。
【請求項18】
前記無線信号(12)が全地球測位ソースから受信され得る、請求項13乃至17の内の何れか一項に記載のソフトウェア・レシーバ(10)。
【請求項19】
前記相関器が、任意周波数での前記無線信号(12)を受け入れること、任意のPRNコード(29),(35)を受け入れること、そして、無線信号(12)を発生する任意の装置からの前記無線信号(12)を受け入れることから成るグループから選択される機能を実行できる、請求項13乃至18の内の何れか一項に記載のソフトウェア・レシーバ(10)。
【請求項20】
過剰サンプリング・プロンプト及びアーリー-マイナス-レイト擬似乱数(PRN)コード(29),(35)をビット単位並列フォーマットで発生する方法であって、
コード・チップ及びタイミング情報の過剰サンプリング・プロンプト及びアーリー-マイナス-レイトPRNコード(29),(35)への前記ビット単位並列フォーマットでの変換用の表形式機能を公式化する段階と、
少なくとも1つのプロンプトPRNコード(29)をリアルタイムで発生する段階と、
前記少なくとも1つのPRNコード(29)から少なくとも1つのチップ値を選択する段階であり、該少なくとも1つのチップ値がデータ・ワードの少なくとも1つのサンプルを含む少なくとも1つのデータ間隔と対応すると共にその少なくとも1つのデータ間隔に対する既知のタイミングを有することから成る段階と、
前記相対的なタイミングを時間グリッド・インデックスに変換する段階と、
前記少なくとも1つのチップ値と前記少なくとも1つのデータ間隔中の前記時間グリッド・インデックスを、前記少なくとも1つのデータ間隔に対してビット単位並列フォーマットで、前記過剰サンプリング/プロンプト及びアーリー-マイナス-レイトPRNコード(29),(35)に変換する段階であり、その変換が前記表形式機能の使用から生ずることからなる段階と、
の諸段階を含む方法。
【請求項21】
時間オフセット・インデックスk及び補助テーブル・インデックスμの関数として前記時間グリッド・インデックスを計算する段階を更に含む、請求項20に記載の方法 。
【請求項22】
先行して計算された時間グリッド・インデックス、前記少なくとも1つのプロンプトPRNコード(29)、並びに、前記少なくとも1つのプロンプトPRNコード(29)と関連されたタイミング値の関数として、反復的に、前記時間グリッド・インデックスを計算する段階を更に含む、請求項20或は21に記載の方法。
【請求項23】
ビット単位並列表現で事前計算テーブル内に記憶される過剰サンプリングプロンプト及びアーリー-マイナス-レイト擬似乱数(PRN)コード(29),(35)データ/ワードを用いる方法であって、
RFデータ・サンプル時間に対して測定された過剰サンプリング・プロンプト及びアーリー-マイナス-レイトPRNコード(29),(35)始動時間に基づき前記過剰サンプリング・プロンプト及びアーリー-マイナス-レイトPRNコード(29),(35)を選択する段階であり、前記過剰サンプリングプロンプト及びアーリー-マイナス-レイトPRNコードの中間点を所望のPRNコードの中間点と略符合させることを含む段階と、
前記過剰サンプリング・プロンプト及びアーリー-マイナス-レイトPRNコード(29),(35)データ・ワードをビット・シフトする段階であり、前記過剰サンプリング・プロンプト及びアーリー-マイナス-レイトPRNコード(29),(35)始動時間が事前選択サンプル間隔と対応していることを保証する段階と、
の諸段階を含む方法。
【請求項24】
擬似乱数(PRN)コード(29),(35)の位相を追跡してそのチップのタイミングを追跡する方法であって、
PRNコード位相、搬送波位相、エポック・カウンタ、並びに、事前特定化された時間の搬送波周波数をラッチする段階と、
前記PRNコード位相及び前記エポック・カウンタを用いて擬似範囲を計算する段階と、
コード・チッピング率及び搬送波ドップラー偏移入力を推定することによって前記PRNコード位相及び前記搬送波位相を追跡し更新する段階と、
前記更新されたコード・チッピング率及び前記事前特定化時間の関数として、前記事前特定化時間での前記PRNコード位相を計算する段階と、
の諸段階を含む方法。
【請求項25】
請求項8に記載の方法を実行できるコンピュータ・ネットワークにおけるノード。
【請求項26】
請求項8に記載の方法を実行する少なくとも1つのノードを含む通信ネットワーク。
【請求項27】
ネットワークにおけるコンピュータ・システムに請求項8に記載の方法を実行させることができる情報を担持するコンピュータ・ネットワークにわたって移動する電磁信号において実施されるコンピュータ・データ信号。
【請求項28】
請求項8に記載の方法の実行のため、実施されるべき指示を有するコンピュータ可読媒体。

【図1】
image rotate

image rotate

image rotate

image rotate

image rotate

image rotate

image rotate

image rotate

image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

image rotate


【公表番号】特表2007−525039(P2007−525039A)
【公表日】平成19年8月30日(2007.8.30)
【国際特許分類】
【出願番号】特願2006−500905(P2006−500905)
【出願日】平成16年1月9日(2004.1.9)
【国際出願番号】PCT/US2004/000673
【国際公開番号】WO2004/063897
【国際公開日】平成16年7月29日(2004.7.29)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.Linux
【出願人】(500056220)コーネル リサーチ ファンデーション インク. (7)
【Fターム(参考)】