(57)【特許請求の範囲】
【請求項１】
軌道に乗っているナビゲーション衛星から信号観測値を収集するための観察者プラットホームと、
ナビゲーション衛星群衛星配置暦、エフェメリス、ディファレンシャル補正を供給するためのサーバープラットホームと、
前記観察者プラットホームと前記サーバープラットホームとの間で情報を渡すためのナビゲーションプラットホームとを具備し、
前記サーバープラットホームは、データ通信量を減らすと共に前記ナビゲーションプラットホームにおける計算量を減らすために、前記ナビゲーション衛星群衛星配置暦情報、エフェメリス情報、ディファレンシャル補正情報を人工衛星のポジションと速度を表す単純な多項式情報とし、
前記観察者プラットホームに対して前記サーバプラットホームが提供する前記単純な多項式情報により、前記観察者プラットホームにおいて前記ナビゲーション衛星群衛星配置暦情報及びエフェメリス情報の全データの保持が不要となり、前記ナビゲーションプラットホームにおけるユーザーポジションを解明するのに整数算術演算だけが用いられることを特徴とする人工衛星ナビゲーションシステム。
【請求項２】
前記観察者プラットホームは、前記サーバープラットホームからの前記単純な多項式情報に対する周期的な要求の後、限定された期間の間、自立したポジション解決計算を提供するものであることを特徴とする請求項１に記載の人工衛星ナビゲーションシステム。
【請求項３】
前記サーバープラットホームは、ナビゲーション衛星配置の静止観察をするための測定プラットホームを含み、そして、前記測定プラットホームは測定誤差と人工衛星データメッセージのデータベースを構築するものであることを特徴とする請求項１に記載の人工衛星ナビゲーションシステム。
【請求項４】
前記サーバープラットホームは、前記静止観察をチェックするためと、測定誤差と人工衛星データメッセージの前記データベースにおいて、誤った情報を含むのを防止するための、健全と品質モニターを含むものであることを特徴とする請求項３に記載の人工衛星ナビゲーションシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、人工衛星ナビゲーション受信機とそのシステムに関するものであり、さらに特に、非常に弱い信号強度の領域での実施のための装置と方法、また初期化と、ポジション解決のアウトプットとを非常に早く行えるものに関するものである。
【０００２】
【従来の技術】
グローバル  ポジショニング  システム（ＧＰＳ；  Ｇｌｏｂａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）受信機は、典型的には、ポジションと速度のようなナビゲーションのデータを決定すめために、３あるいはそれ以上の地球の周りを軌道に乗って旋回する人工衛星から受信したシグナルを使用するものである。ＧＰＳシグナルは、費用なしで世界的に利用可能であって、そして今や市の１つの一区画以内まで、あるいはもっと良い範囲で、日常的に自動車の場所を決定するために使われているものである。二重周波数キャリアＧＰＳレシーバーは、それらのキャリア周波数の上にＰ符号変調から蓄積されたデルタレンジ測定（ＡＤＲ；  ａｃｃｕｍｕｌａｔｅｄ  ｄｅｌｔａ−ｒａｎｇｅ  ｍｅａｓｕｒｅｍｅｎｔｓ）を生み出して、そして符号位相測定を生み出すために、また同時に  Ｌ１  Ｃ  ／  Ａ  符号を追跡するために、典型的には、ＧＰＳ人工衛星と関連付けられた１対の無線キャリアである  Ｌ１  と  Ｌ２を追跡するものである。キャリア周波数  Ｌ１  が１５７５．４２  ＭＨｚ  に割り当てられ、そしてキャリア周波数  Ｌ２  が１２２７．７８  ＭＨｚ．  に置かれる。それほど高価でない受信機は、たった１つのキャリア周波数を調律しており、そして従って、ポジションエラーとして現われるローカルな対流圏と電離層のシグナル伝達遅れを計算するために、適切な情報を持っていない。このような周波数において、無線キャリアシグナルが視線によって移動するものである。それで建物、山と地平線が、受信をブロックすることになるし、そして多元反射が良い受信を妨げることになる。
地球についての軌道でのＧＰＳ人工衛星の配置群の一つ一つは、符号分割多元接続（  ＣＤＭＡ；  ｃｏｄｅ−ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ  ）システムの取り決めによる、３２のユニークな識別符号の１つを伝達するものである。これは多くのＧＰＳ人工衛星のすべてに、同じ周波数の拡散スペクトラムモードにおいて、人工衛星の相対的な速度に起因するように、その周波数のドップラー周波数シフトのプラスまたはマイナスを伝達することを許すものである。個別のＧＰＳ人工衛星に対して予め割り当てられている、３２の疑似乱数（  ＰＲＮ；  ｐｓｅｕｄｏ  ｒａｎｄｏｍ  ｎｕｍｂｅｒ  ）連続符号の１つに、１０２３の「チップ」符号を関連づけることによって、特定の人工衛星がシグナルとノイズの結果として生じている混乱から分類される。これらの符号は、必ずしもお互いと一緒の位相で伝達されていない。そのために、初めにＧＰＳ人工衛星を「見いだす」ことは、ドップラー周波数変化と発振器不正確さの原因のため、種々のキャリア周波数を検索して、そして、１０２３の異なった符号位相、そして２０あるいはそれ以上の可能な相互関係のテンプレートを使って、符号一致を捜すことを伴うものである。
【０００３】
【発明が解決しようとする課題】
本願発明は、ナビゲーション衛星を軌道に乗せることから信号観察を集めることに対して、観察者プラットホームを含む人工衛星ナビゲーションシステムに関するものである。サーバープラットホームが、単純化されたナビゲーション衛星配置暦、天文学カレンダー（ｅｐｈｅｍｅｒｉｓ）、差異の補正、及びクライアントサービスを供給する。ナビゲーションプラットホームが、観察者とサーバープラットホームとの間にインフォメーションを渡して、そしてサーバープラットホームからの援助データに対する周期的な要求の後、限定された期間の間、自立したポジション解決計算を提供する。サーバープラットホームに含められた測定プラットホームが、ナビゲーション衛星配置のスタティックな観察をし、そしてそれは測定エラーと人工衛星データメッセージのデータベースを構築する。サーバープラットホームに含められた健全と品質モニターが、スタティックな観察をチェックし、測定エラーと人工衛星データメッセージのデータベースにおいて、正しくないインフォメーションの包含物を妨げる。少なくとも一度、サーバーとナビゲーションプラットホームの間に存在している  ＴＣＰ／ＩＰ  コミュニケーションリンクが、周期的にそのコミュニケーションリンク上で渡されるインフォメーション  データパケット  フォーマットをサポートする。それは、サーバープラットホームにおいての暦と天文学カレンダーの人工衛星メッセージを、最近の人工衛星のポジションと速度を示す単純な多項式のセットへ減らす。これらは観察プラットホームからのリアルタイムデータで現在のポジション解決を計算するナビゲーションプラットホームにおいて有用である。    暦と天文学カレンダーのすべてのデータ保管を削除するためと、そしてナビゲーションプラットホームにおいるユーザーポジションを解決するために用いられる固定小数点の整数計算だけを許可するために、軽量のモデルとしての援助データが、サーバープラットホームから観察者プラットホームへ供給される。
【０００４】
多くの高い建物のある大きな都市で、特定の受信機によって追跡されているＧＰＳ人工衛星の１つあるいはそれ以上が、一時的に妨げられるかもしれない。幾つかの状況で、このような妨害は、すべての頭上のＧＰＳ人工衛星が追跡されることを阻止することとなり、このような停電、隙間は数分間続けられるものである。ＧＰＳシグナルが、地下か、あるいは水中のトンネルを通って動いている車にも、同じく利用できなくなる。
【０００５】
少なくとも１つの従来の５チャンネルＧＰＳ受信機は、最初のスイッチオンにおいて、そのチャネルのすべてを１機の人工衛星に焦点を合わせる。これはドップラー効果のために存在する不確実さがもたらす人工衛星シグナル周波数の問題と、受信機でのローカルな発振器不正確さの問題を扱う。外見上明白なドップラーの周波数スペクトラムでの特定の人工衛星の検索が、並列に行われる。例えば、受信機チャネルが複数あるように、可能なドップラーの周波数スペクトラムを同じぐらい多くの部分に分割することによって。その時、いくつかの受信機チャネルのそれぞれに、それぞれの部分の中で検索に注目するように、指定する。
【０００６】
一つの最も大きい不確実は、始動時において、典型的なローカル発振器から可能な、ランダムな周波数から生じるものである。そのために、外見上明白なドップラーの周波数は、広い検索境界線だけの中で知られている。実際のドップラーの周波数を知ることは、あまり多くの助けにはならない、なぜならローカル発振器は、それ自身のものの上にごくわずかでそれほど遠く離れ得るからである。
【０００７】
ユーザーの見地から、従来技術のＧＰＳ受信機の少なくとも２つの操作上の特徴が、完全な満足を妨げるものである。ビルが、ローカルなシグナルフィールドレベルを受信機の最大の敏感さより下にさげるから、このような従来の受信機は、しばしば室内で働くことをやめた。そして、たいていの受信機が、コールドスタートからポジション解決を作り出すために、非常に長い時間がかかる。
【０００８】
ＧＰＳ受信機での集中的な計算が、高いクロック速度とたくさんの高価な記憶装置メモリを必要とした。これらは、次には、高価な、そして包括的なハードウェアが必要となる。製造業者とユーザーが同様に、高価でないプラットホームを使うか、あるいは他のアプリケーションのために既存の前のプラットホームを共有する、より軽い、そしてより薄いナビゲーションソリューションを高く評価するでしょう。
【０００９】
インターネットは同じく、個別のＧＰＳ受信機が、それらの地域で差異の補正データをモニターして、そして高性能なプロセッサを持っている地域の  Ｗｅｂ  サーバについての計算集中的なタスクを取り除く方法を、象徴している。
【００１０】
スナップ  トラック社（ＳｎａｐＴｒａｃｋ，  Ｉｎｃ．）  （米国、カリフォルニア州サンノゼ市）は、無線の支援されたＧＰＳ（ＷＡＧ；  ｗｉｒｅｌｅｓｓ  ａｓｓｉｓｔｅｄ  ＧＰＳ）システムのコマーシャル供給元である。時間、周波数とおよその場所データが、ナビゲーション受信機でのＧＰＳシグナル処理を支援するために、ワイヤレスネットワークから抽出される。このような技術は、スナップ  トラック社の次に例をあげる多くの米国特許に記載されています。ＵＳＰ５，９４５，９４４；  ＵＳＰ５，６６３，７３４；  ＵＳＰ５，７８１，１５６；  ＵＳＰ５，８２５，３２７；  ＵＳＰ５，８３１，５７４；  ＵＳＰ５，８４１，３９６；  ＵＳＰ５，８１２，０８７；  ＵＳＰ５，８７４，９１４；  ＵＳＰ５，８８４，２１４。同じく、ＵＳＰ６，０７８，２９０も参照ください。
【００１１】
そこで、本願発明の目的の一つは、極めて低いシグナル強度レベルでも、屋内で作動することができる人工衛星ナビゲーション受信機及びシステムを提供することである。
【００１２】
本願発明の他の目的は、それぞれのコールドスタートの後に、急速にポジション解決を行える人工衛星ナビゲーション受信機及びシステムを提供するものである。
【００１３】
本願発明の更なる目的は、高価でない人工衛星ナビゲーションシステムを提供することである。
【００１４】
本願発明の更なる目的は、インターネットとインタフェースを取る人工衛星ナビゲーションシステムを提供することである。
【００１５】
本願発明の目的の一つは、ネットワークで情報が流通した時の、時間差と周波数相違によって改善された正確さとパフォーマンスで、アシストされた人工衛星ナビゲーションシステムを提供することである。
【００１６】
【課題を解決するための手段】
簡単に言えば、本願発明のＧＰＳ測位システムの実施例は、システム  オン  チップ受信機、ネットワーククライアントと  Ｗｅｂ  サーバから構成されている。そのＷｅｂ  サーバは、システム  オン  チップ受信機がただインフォメーションを通す、単純な観察者のプラットホームモードをサポートすることができ、あるいはシステム  オン  チップ受信機が  Ｗｅｂ  サーバとのその最後の接触後から１５分間である間はそのポジションを計算することが可能である、半自主的なモードをサポートすることができるものである。そのＷｅｂ  サーバは、ＧＰＳ測定エラー、天文学カレンダー（ｅｐｈｅｍｅｒｉｓ）、暦と他の人工衛星データメッセージのデータベースを構築するために、独自のローカルなＧＰＳ配置群測定プラットホームを含むものである。問題を持っている不十分な能力を発揮する人工衛星からのインフォメーションは、除外される。そのネットワーククライアントは、浮動小数点式あるいは超自然的な数学機能を使うよりむしろ、整数計算を使うことと２進数を伝達することによって、伝統的な計算集中的なタスクから解放されるものである。１つのモードにおいて、ポジション修復が、ネットワーククライアントからパスするデータから  Ｗｅｂ  サーバによって提供される。システム  オン  チップ受信機は、レシーバー感度と検索速度を引き上げるための回路を含むものである。
【００１７】
本願発明の実施例は、ナビゲーション衛星を軌道に乗せることから信号観察を集めることに対して、観察者プラットホームを含む人工衛星ナビゲーションシステムに関するものである。サーバープラットホームが、単純化されたナビゲーション衛星配置群暦、天文学カレンダー（ephemeris）、差異の補正、及びクライアントサービスを供給するものである。ナビゲーションプラットホームが、観察者とサーバープラットホームとの間にインフォメーションを渡して、そしてサーバープラットホームからの援助データに対する周期的な要求の後、限定された期間の間、自立したポジション解決計算を提供するものである。サーバープラットホームに含められた測定プラットホームが、ナビゲーション衛星配置群のスタティックな観察をし、そしてそれは測定エラーと人工衛星データメッセージのデータベースを構築するものである。サーバープラットホームに含められた健全と品質モニターが、スタティックな観察をチェックし、測定エラーと人工衛星データメッセージのデータベースにおいて、正しくないインフォメーションの包含物を妨げるものである。少なくとも一度、サーバーとナビゲーションプラットホームの間に存在している TCP/IP コミュニケーションリンクが、周期的にそのコミュニケーションリンク上で渡されるインフォメーション データパケット フォーマットをサポートするものである。それは、サーバープラットホームにおいての暦と天文学カレンダーの人工衛星メッセージを、最近の人工衛星のポジションと速度を示す単純な多項式のセットへ減らす。これらは観察プラットホームからのリアルタイムデータで現在のポジション解決を計算するナビゲーションプラットホームにおいて有用である。 暦と天文学カレンダーのすべてのデータ保管を削除するためと、そしてナビゲーションプラットホームにおけるユーザーポジションを解決するために用いられる整数計算だけを許可するために、軽量のモデルとしての援助データが、サーバープラットホームから観察者プラットホームへ供給される。
【００１８】
本願発明の利点は、ユーザーナビゲーション装置のコストを減らすシステムと方法が提供されるということである。
【００１９】
もう１つの本願発明の利点は、都市の峡谷と屋内使用のために十分な感度と初期の修復時間とを改善するシステムと方法が提供されるということである。
【００２０】
本願発明の更なる利点は、システムと方法が、それがより高いレベルを作るならリアルタイムと歴史的なユーザーポジション修復と関係がある、インターネット上で提供する、より高いレベルのデータベースサービスを作るシステムと方法を提供するということである。
【００２１】
本願発明のこれらと他の目的と利点は、種々の図画で例証される望ましい実施例の、次の詳細な記述を読んだ後、当業者にとって疑いなく明らかになることでしょう。
【００２２】
【発明の実施の形態】
本願発明のポジションを決定するシステムの実施例が、図１で例証されており、そして一般的な符号１００によってここに示されているものである。システム１００が、受信機１０２と、その受信機と一緒に配置されたネットワーククライアント１０４と、その受信機とそのクライアントから遠く離れた  Ｗｅｂ  サーバ１０６とから構成されています。マイクロ波アンテナ１０８が、軌道に乗っているＧＰＳ人工衛星から受信機１０２へ送信されたローカルなシグナルを受信する。第２のマイクロ波アンテナ１１０が、同じく軌道に乗っているＧＰＳ人工衛星の幾つかから  Ｗｅｂ  サーバ１０６へ送信されたローカルなシグナルを受信する。
【００２３】
本願発明のポジションを決定するシステムの実施例が、図１で例証されており、そして一般的な符号１００によってここに示されているものである。システム１００が、受信機１０２と、その受信機と一緒に配置されたネットワーククライアント１０４と、その受信機とそのクライアントから遠く離れた  Ｗｅｂ  サーバ１０６とから構成されています。マイクロ波アンテナ１０８が、軌道に乗っているＧＰＳ人工衛星から受信機１０２へ送信されたローカルなシグナルを受信する。第２のマイクロ波アンテナ１１０が、同じく軌道に乗っているＧＰＳ人工衛星の幾つかから  Ｗｅｂ  サーバ１０６へ送信されたローカルなシグナルを受信する。
【００２４】
受信機１０２が  Ｗｅｂ  サーバ１０６から遠く離れているけれども、それは同じ一般的な地理的な領域にあって、そして  Ｗｅｂ  サーバ１０６によって計算された、差異、電離層と対流圏の補正からの利益を、まだ得ることができるものである。
【００２５】
受信機１０２は、無線周波数（ＲＦ）ステージ１１２と、デジタル  シグナル  プロセッサ（ＤＳＰ）１１４と、マイクロコンピュータ（μＣ）１１６から構成されている。μＣ１１６は、ランダムアクセスメモリ（ＲＡＭ）と、リードオンリーメモリ（ＲＯＭ）と、クライアント１０４からのレベルが高いコマンドに反応が早いマイクロプロセッサを含んでいる。このようなＲＡＭとＲＯＭは、製造及び運営費用を減らすために、そのサイズにおいて通常は小さいものとなっている。そのために受信機１０２が、人工衛星の天文学カレンダーあるいは暦データを保管するために使われないことは、本願発明の実施例において危機的なものとなっている。オペレーションの少なくとも１つのモードにおいて、受信機１０２は、それぞれ明白な人工衛星のポジションと速度を表す多項式のセットのＷｅｂサーバ１０６からの周期的な更新に、非常に依存しているものである。
【００２６】
本願発明の１つの実施例において、ＤＳＰ１１４は、なるべく状態マシンの論理ゲート構成に専念したものとして導入されるものであり、例えば、特定用途向け集積回路（  ＡＳＩＣ  ）として、あるいはゲート  アレイとしてである。μＣ１１６は、ファームウェアあるいはソフトウェアを使っている第２の状態マシン、例えばソフトウェアによって実装された状態マシンを、実行するためにプログラムされるものである。これらの２つの状態マシンは、  ＲＦ  ステージ１１２によって供給された同相の、そして二次の（ｑｕａｄｒａｔｕｒｅ）サンプルを、μＣ１１６によって構築されて、そして転送されるナビゲーション測定に、変換するために、共生の関係で働くものである。連続的な通信リンク１１８と１２０が、これらのナビゲーション測定を、ナビゲーションプラットホームに、例えば、いずれか、クライアント１０４に、あるいはそれを通して  Ｗｅｂ  サーバ１０６に、運ぶものである。このようなナビゲーションプラットホームは、後に捜索するべき人工衛星、得られる測定などを伝達するものである。
【００２７】
クライアント１０４と  Ｗｅｂ  サーバ１０６との間の通信リンク１２２と１２４が、なるべくインターネットを含んでおり、そして転送制御装置プロトコル  ／  インターネット・プロトコル（  ＴＣＰ／ＩＰ；  ｔｒａｎｓｆｅｒ  ｃｏｎｔｒｏｌ  ｐｒｏｔｏｃｏｌ  ／  Ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ  ）技術を使うものである。第３者であるユーザーは、なるべく少なくとも  Ｗｅｂ  サーバ１０６へのアクセスができる。
【００２８】
部品あるいはすべての通信リンク１１８、１２０、１２２及び１２４は、有線ではなくて、無線であってもよい。特定のアプリケーションが、このような事情によるか、あるいはワイヤレスとなるこれらのリンクによって使用可能であるかもしれない。もし受信機１０２が、バッテリーによって作動するものであって、そしてユーザーが身に付けるか、あるいは乗り物に搭載されていたならば、これは特に真実味のあることとなるであろう。
【００２９】
浮動小数点計算あるいは１０を基数とする計算が、受信機１０２によって続けられないことは、本願発明のすべての実施例において重大なことである。一つの精度、そして確かに倍精度、そして浮動小数点式は、なるべく受信機１０２の切り離せない部分であるローパワーの消費と遅いクロック速度ために、あまりにもプロセッサ集中的なものとなっている。その代わりに、受信機ポジションのすべての計算と解決は、整数の２を基数とする計算、例えば、３２ビットの２進法でされることが要求される。これは、  Ｗｅｂ  サーバ１０６が計算して、そして対流圏の、電離層の、選択的な有効性（  ＳＡ；  ｓｅｌｅｃｔｉｖｅ  ａｖａｉｌａｂｉｌｉｔｙ  ）と、２を基数とする整数でフォーマットされた差異の補正データ上に通過させる、少なくとも１つのオペレーションのモードを必要とするものである。これが可能ではないとき、これらの煩わしい仕事は、クライアント１０４の上にふりかかる。
【００３０】
ＧＰナビゲーション暦と天文学カレンダーが、それぞれの人工衛星のポジションと速度を、それぞれ表す単純な多項式を供給するために、それ自身のリファレンスステーションＧＰＳ受信機と共に、  Ｗｅｂ  サーバ１０６によって、得られて、そして減らされる。このような多項式は、もちろん、長い時間にわたって新鮮でないものであり、しかし、インターネットによるクライアント１０４と  Ｗｅｂ  サーバ１０６との間の周期的なコンタクトは、十分新鮮な軌道データを提供することに非常に依存しているものである。従って、受信機１０２は、ローカルな  ＲＡＭ  ／  ＲＯＭ  に現在の天文学カレンダーと暦のデータを持つために記憶装置集中的な要求から解放されて、そして地域的に倍精度の浮動小数点の数学ですべてのポジション修復のための人工衛星の軌道ポジションを計算することについての  ＲＩＳＣ  プロセッサの２５８の集中的なジョブから解放される。
【００３１】
本願発明のビジネスのモデルの実施例において、  Ｗｅｂ  サーバ１０６は、独立したサービスプロバイダによって所有されており、そして管理されているものである。使用ごと、または定期利用料金は、受信機１０２そして／あるいはネットワーククライアント１０４を操作するユーザーにチャージされる。受信機１０２は、アプリケーション特定のネットワーククライアント１０４の半導体集積回路装置デザインのために、知的財産（  ＩＰ；  ｉｎｔｅｌｌｅｃｔｕａｌ  ｐｒｏｐｅｒｔｙ  ）パッケージで代わりにさらにまとめられる。このような  ＩＰ  は、ライセンス料とハードウェア装置コストのために、ネットワーククライアント１０４の相手先ブランド製造業者（ＯＥＭ；  ｏｒｉｇｉｎａｌ  ｅｑｕｉｐｍｅｎｔ  ｍａｎｕｆａｃｔｕｒｅｒｓ）に販売される。
【００３２】
ＲＦ  ステージ１１２とＤＳＰ１１４は、それらの製品に取り入れられる相手先ブランド製造業者（ＯＥＭ）に、μＣ１１６のためのソフトウェアにバンドルする、ベリログ  コード（  Ｖｅｒｉｌｏｇ  −  ｃｏｄｅ  ）として、商業的に販売されることができる「ハードウェア  イネーブラ  （  ｈａｒｄｗａｒｅ  ｅｎａｂｌｅｒ  ）  」を構成する。このようなハードウェア  イネーブラ  は、一つの集積回路（  ＩＣ  ）装置で、「システム  オン  チップ」（  ＳＯＣ；  ｓｙｓｔｅｍ  ｏｎ  ｃｈｉｐ  ）として実施されるものである。ハードウェア記述言語（ＨＤＬ；  ｈａｒｄｗａｒｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）または、Ｃ＋＋、ビジュアル・ベーシックなど、のようなソフトウェアプログラミングコードの他の形式が、同じく使われることができるものである。
【００３３】
クライアント１０４は、少なくとも４つのモードのうちの１つで操作されることができる：自治権がある、半自治権がある、軽装（ｔｈｉｎ）、そして超軽装。自治権があるモードでは、クライアント１０４は、ナビゲーションプラットホームであって、  Ｗｅｂ  サーバ１０６の援助がない受信機１０２それ自体の情報的なニーズを供給する。すべての他のモードでは、  Ｗｅｂ  サーバ１０６は、ナビゲーションプラットホームとして機能する。
【００３４】
半自治権があるモードでは、クライアント１０４は、インフォメーションのために、周期的に  Ｗｅｂ  サーバ１０６を調べる。軽装（  ｔｈｉｎ  ）モードでは、クライアント１０４は、受信機１０２と  Ｗｅｂ  サーバ１０６との間に、ただデータを通すものである。軽装モードは、それが最も良くクライアント１０４を構築して、そして操作するコストが最小限に下げられることを可能にするものであるから、好まれるものである。超軽装モードでは、他の観察者によって提供された、時間差そして／あるいは周波数差のインフォメーションが、現地時間とローカルな周波数との不確実とを減らすために、ネットワークの上に伝えられるものである。
【００３５】
オペレーションで、受信機１０２は、２つのドメイン、例えば、周波数と符号位相において、同時にＧＰＳマイクロ波シグナルを探索しなくてはならない。ローカルな発振器と、人工衛星伝達手段の相対的な速度によって起こされたドップラーシフトは、解決されるキャリア周波数の不確実さを作る。瞬間的なＧＰＳ人工衛星の疑似乱数（ＰＲＮ）符号位相は、他の未知数である。「ノイズの床  （ｎｏｉｓｅ  ｆｌｏｏｒ）」の上方にある、受け取ったシグナルは、比較的容易で、そしてすばやく探索することができるものである。けれども、建物の中に存在する時のような弱いシグナルは、およそ２０デシベルの騒音の中に埋められているものである。周波数  ／  符号位相の貯蔵所へのそれぞれの訪問は、符号の相関物により供給した、処理利得を持っているノイズの床を「打ち落とす（  ｂｅａｔ  ｄｏｗｎ）」に十分に長い間、そこに存在しなくてはならない。弱いシグナルは、検索の貯蔵所が、例えばエイリアシングのためのように、貯蔵所の周波数と貯蔵所の符号位相との間の、より素晴らしいステップをもつことを、同じく要求するものである。もっと多くの貯蔵所が、捜索されるために必要とされ、そしてそれぞれの貯蔵所が、そのすべてが検索時間を幾何級数的に増やす、もっと多くの処理の存在を必要とするのである。
【００３６】
Ｗｅｂ  サーバ１０６は、インターネットにリアルタイムナビゲーションデータを公表する。部分的であるか、あるいは非リアルタイムのナビゲーション、またはインターネット上の初期化データを掲示するような、他のサービスは、現在存在するものであり、そしてそれらインターネット上のデータは、部分的に代わりに、あるいは受信機１０２に送られてきたリアルタイムナビゲーションデータの正当性をチェックすることに、使われるものである。Ｗｅｂ  サーバ１０６のための主要な、そして重大な役割ジョブは、受信機１０２からのナビゲーション計算の煩わしい仕事を取り除くことである。このような取り除くことの程度は、受信機１０２と  Ｗｅｂ  サーバ１０６との間に実現されるコミュニケーション連絡の規則性に、依存するものである。受信機１０２によって得られた実際の測定結果は、  Ｗｅｂ  サーバ１０６に転送される。
【００３７】
本願発明の代わりの実施例は、もっとレベルが高い抽象概念と目的のためにデータベース処理をする  Ｗｅｂ  サーバ１０６を含ものである。例えば、スタティックな観察をチェックして、そして測定エラーと人工衛星データメッセージのデータベースにおける正しくないインフォメーションの包含を妨げることに対して、サーバープラットホームは、健全と品質モニターを含むものである。もう１つのフロントの上に、  Ｗｅｂ  サーバ１０６は、受信機１０２が、何時間もの、または何日もの、または何週間もの、または数カ月もの、または何年もの期間に渡って、訪問する場所などのパターンのために、長い時間にわたってポジション解決インフォメーションを集めることができたのである。このようなインフォメーションは、それから受信機１０２のユーザーがいる場所、またはそのユーザーが行ったことがある場所、あるいはそのユーザーが将来いる可能性が高い場所、を見積もるために処理されるのである。このようなインフォメーションは、至急報・特電、タイムレコーダー、自宅監禁・軟禁、展開・配置、インベントリー（目録、棚卸）、軍、セキュリティと、他の種類の応用に有用である。ポジションインフォメーションは、ユーザーがどのような瞬間にも何をしているかについての、理知的な推測と解釈されることができるものである。例えば、もしユーザーのポジションが地元の食料雑貨店のそれと一致したならば、ユーザーは買い物をしていると考えられることができるでしょう。ログが同じく  Ｗｅｂ  サーバ１０６に、ユーザーによって生成されることができ、例えば、電子データベースに「記録して」いる都市メンテナンス課によって、消火栓、動力変圧器、道路などの常設場所がそうである。
【００３８】
ユーザーのポジションについてのインフォメーションの、インターネット上の存在は、リアルタイムで文脈上のメッセージをユーザーに向けるために、広告主と販売促進者によって使われる。このようなデータは、本願発明のビジネスモデルの実施例においてリアルタイムで販売されるものである。
【００３９】
本願発明の１つの実施例では、ユーザーが受信機１０２を身につけて、そして、ワイヤレスでクライアント１０４に接続する。例えば、ユーザーによって動かされたスキーが、レコーディングされて、そしてキオスクで後に表示されることができた。もう一つの例では、ジョギングの屋外イベントが、特定の運動体制をチェックする個人的なトレーナーによって分析されることができた。このようなアプリケーションで、受信機１０２は、現在の半導体技術により、完全に腕時計の中に統合されることができた。
【００４０】
本願発明の実施例は、レシーバー感度を増やして、そして、並列に異なった貯蔵所の周波数  ／  符号位相の仮説を走らせる多くのプロセッサのために、  ＳＯＣ  受信機１０２によって得られたシグナルサンプルをコピーすることによって、同時に検索タイムを減らすものである。平均して、正しい貯蔵所の周波数  ／  符号位相の仮説は、非常に急速に、屋内であるいは車の中にさえ見いだされる。
【００４１】
一般に、本願発明の実施例は、シグナル感度が増やされる方法であってそして検索時間が従来の受信機及び方法と比較して短くされるような方法で、遠く離れたＧＰＳ受信機によって集められたデータを処理するために、インターネット  Ｗｅｂ  サーバを使うものである。
【００４２】
図２が、本願発明の「システム  オン  チップ」（  ＳＯＣ；  ｓｙｓｔｅｍ  ｏｎ  ｃｈｉｐ  ）の実施例を表しており、そして一般的な符号２００によってここに参照される。ＳＯＣ  ２００は、１つのシリコンピース上に集積された２つの基本的な部分を含むものであり、２つの基本的な部分とは、ハードウェアによって実装された状態マシンと、ソフトウェアによって実装された状態マシンである。  図１において、これらの２つの機能的な半分の部分は、ＤＳＰ１１４とμＣ１１６として別に示されている。
【００４３】
ハードウェアによって実装された状態マシンは、  ＲＦ  ステージ１１２（図１）からのサンプルを入力する。それは、受信機ミキサーのオペレーションに遅れをとらずについていくために専用のゲート  ロジックを用いる。埋め込みの  ＲＩＳＣ  プロセッサ上で実行されるソフトウェアによって実装された状態マシンは、ハードウェアによって実装された状態マシンの要求であるリアルタイムデータを供給する。このような埋め込みの  ＲＩＳＣ  プロセッサは、市販されている  ＸＥＭＩＣＳ  （スイス）社の  クールリスク  （ｃｏｏｌＲＩＳＣ（商標））  ＣＲ８１６  で実装されることが可能である。ソフトウェアによって実装された状態マシンは、連続的なコミュニケーションチャネルによって、μＣ１１６（図１）と典型的にコミュニケーションをとる。
【００４４】
ＳＯＣ  ２００は、クロック発振器２０２とクロック  マネージャ２０４を提供するものであり、このクロックマネージャ２０４は、符号の数制御装置の発振器（  ＮＣＯ；  ｎｕｍｅｒｉｃａｌ  ｃｏｎｔｒｏｌ  ｏｓｃｉｌｌａｔｏｒ  ）２０６、符号ジェネレーター２０８、１８部分の符号メモリ２１０、デジタルのローカル発振器２１２、キャリアＮＣＯ２１４、１０部分のキャリアジェネレーター２１６と、１０部分のキャリアミキサー２１７をドライブするものである。有限の状態マシン（  ＦＳＭ；  ｆｉｎｉｔｅ  ｓｔａｔｅ  ｍａｃｈｉｎｅ  ）２１８は、３５２の１０部分の符号仮説メモリ２２０、３５２の符号ミックス相関ペアー２２２と、３５２のペアーのラッチ２２４にデータを載せるために、データを発生させるものである。仮説メモリ２２６は、ペアーのラッチ２２４から抽出したインフォメーションを受け取るパワーサムレジスター（ｐｏｗｅｒ  ｓｕｍ  ｒｅｇｉｓｔｅｒ）２２８とのインタフェースとなるものである。Ｍ１、Ｍ２とＭ３のセットは、２３０、２３２と２３４とに位置しており、パワーレジスタがμＣ１１６に出力される。
【００４５】
ゲインコントローラー２３６が、マルチプレクサ２３８に同位相（「Ｉ」）サンプルと２次（ｑｕａｄｒａｔｕｒｅ）（「Ｑ」）サンプルを送る。データセレクター２４０が、サンプルメモリＡ  ２４２とサンプルメモリＢ  ２４４の中から、図形蓄積サンプルを、周期的に取り替える。サンプル制御シグナル２４６は、１つのピリオドで、どのメモリが満たされているか、そしてどちらが読まれているか決定する。ゲインコントローラー２３６は、第１パルス周波数変調器２４８によって、Ｉ−ＤＣオフセットシグナル２４７を提供する。Ｑ−ＤＣオフセットシグナル２５０は、第２パルス周波数変調器２５２によって、フィードバックされる。ＡＧＣ  −  フィードバックシグナル２５４は、第３パルス周波数変調器２５６によって、出力される。
【００４６】
ＳＯＣ  ２００の一部であるμＣ１１６のソフトウェアによって実装された状態マシンは、  ＸＥＭＩＣＳ  （スイス）社のクールリスク（  ｃｏｏｌＲＩＳＣ（商標））という縮小命令セットのコンピュータ（  ＲＩＳＣ  ）マイクロプロセッサを持っている、好ましくは、埋め込みで、ローパワーの、縮小命令セット（  ＲＩＳＣ；  ｒｅｄｕｃｅｄ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ）プロセッサ２５８に、基づいているものである。ＩＰ  −  プロダクトとして同じく、ウルトラローパワーのデジタルセルライブラリーとしての、クールリブ（  ＣｏｏＬｉｂ  （商標））  と８ビットの  ＲＩＳＣ  コアのクールリスクＲ（  ＣｏｏｌＲＩＳＣＲ  （商標））が市場に出ている。  ｈｔｔｐ：／／ｗｗｗ．ｘｅｍｉｃｓ．ｃｈ  を参照ください。ソフトウェアによって実装された状態マシンのファームウェアは、リード・オンリー・メモリ（  ＤＲＯＭ  ）２６０、スタティックなランダムアクセスメモリ（  ＳＲＡＭ  ）２６２とフラッシュメモリ２６４を用いる。パワーオンリセットロジック２６６は、パワーオンリセットを提供する。温度補償された水晶発振器（  ＴＣＸＯ；  ｔｅｍｐｅｒａｔｕｒｅ  ｃｏｍｐｅｎｓａｔｅｄ  ｃｒｙｓｔａｌ  ｏｓｃｉｌｌａｔｏｒ  ）２６８が、  ＲＩＳＣ  プロセッサ２５８に安定したタイミングベースを提供する。ＲＩＳＣ  プロセッサ２５８とクライアント１０４（図１）との間のコミュニケーションは、シリアル  インプット  ／  アウトプット（  ＳＩＯ；  ｓｅｒｉａｌ  ｉｎｐｕｔ  ／  ｏｕｔｐｕｔ  ）周辺機器２７０、例えば、  ＲＳ  −  ２３２、ユニバーサルシリアルバス（  ＵＳＢ；  ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ  ）、イーサネット（登録商標）などで伝達する。
【００４７】
周波数相違コミュニケーションポート２７１が、  ＳＯＣ  ２００のローカル周波数の不安定さを減らすのに役立つ、ネットワーク上にインフォメーションを分配することに関係する。時間差コミュニケーションポート２７２が、  ＳＯＣ  ２００のローカル時間（現地時間）の不確実さを減らすのに役立つ、ネットワーク上にインフォメーションを分配することに同様に関係する。その１方あるいは両方ともが、初期の修復時間（ｔｉｍｅ−ｔｏ−ｆｉｒｓｔ  ｆｉｘ）、受信機感度と解決の正確さとを改善することができる、探索戦略の方策で使用される。このような改良は、典型的には流れを下った（下流の）データ消費者によってポスト処理で達成される。これは、例えば、ネットワークサーバーである。
【００４８】
図３は、本願発明の状態マシンコントロールプログラムの実施例を表しており、そして一般的な符号３００によってここに参照される。状態マシンコントロールプログラム３００は、パワーオン初期化装置  ３０２、クロックジェネレーターとコントローラー３０４、モードブロックアレイプログラムコントロールループ３０６、事前計算（  ｐｒｅｃｏｍｐｕｔａｔｉｏｎ  ）  とプレイバックブロック３０８、そしてラッチ可能ブロック３１０とを含むものである。ＦＳＭ  ３００は、典型的にインタフェースされており、そしてナビゲーションプラットホーム３１２に対して、早く反応するものとなっている。このようなナビゲーションプラットホーム３１２は、完全に自治権があるモードにおいてクライアント１０４上にて、そして軽装（ｔｈｉｎ）クライアントモードと半自治権があるモードにおいて  Ｗｅｂ  サーバ１０６上にて、ホストするものである。ナビゲーションプラットホームは、ナビゲーション解決が計算されるところにおいて、本質的なものとなるものである。
【００４９】
状態マシンコントロールプログラム３００は、パワーオン及び初期化の後の、深い眠り（静止、スリ−プ）に、補助のハードウェアを典型的に置くものであり、例えば、クロックを巧みに操作し、そして  ＲＩＳＣ  プロセッサ２５８（図２）に停止命令を実行すること、である。連続的なインプットライン上の割り込みは、クロックジェネレーターとコントローラー３０４を目覚めさせるだろう。これは、ソフトウェアによって実装された状態マシンを目覚めさせることである。１ミリセカンド割込み発生器（ＭＳＥＣ  ＝  Ｏｎ）は、マスタータイマー  Ｍｓｅｃ２４  を増加させ始めて、そしてスタートさせるものである。温度センサー、時間差カウンターと周波数差異カウンターが、それぞれデフォルト（ｄｅｆａｕｌｔ）測定をとる。ＲＦ  とサンプルクロック（  ＳＣＬＫ    ＝  ｏｎ）がオンとなると、  ＡＧＣ  プログラムコントロールループが活性化（アクティブ）される。サンプルメモリＡあるいはＢは、  ＡＧＣ  プログラムコントロールループが初期化され、そして安定化されるのを、待たなければならない。
【００５０】
例えば、「  ｓａｍｐｌｅＭｅｍｏｒｙＣｏｎｔｒｏｌ  」フラグを書くことによって、サンプルメモリは、マニュアルでオンとオフになる。「１」の値がメモリをオンにし、そして「０」の値がそれをオフにする。新しい有効なモードブロックが定義されるときはいつでも、サンプルメモリは、好ましくは自動的にオンにされる。ナビゲーションプラットホームは、同じく他のモードを自由に操ることができ、例えば、「  ＲＦ  」と「ミリセカンド（  Ｍｓｅｃ  ）」フラグのそれぞれを  ＯＮ・ＯＦＦ  にすることである。ＲＦ＝ＯＦＦのモード及び  Ｍｓｅｃ＝ＯＮのモード  は、時間を持続するために使われるが、どんな人工衛星でも追跡するのをスキップする。これは、ＧＰＳの修復レートが遅い、例えば１０セカンドごと、の時、より少ない力を使用する。ＲＦ＝ＯＦＦのモード及び  Ｍｓｅｃ＝ＯＦＦのモード  は、有限の状態マシン３００が深いスリープモードに戻されることを可能にする。  ＲＦ＝ＯＮのモードで、Ｍｓｅｃ＝ＯＮのモードで、そしてサンプルメモリ＝ＯＦＦのモード  は、ＲＦ  −  ＡＧＣ  を活発（アクティブ）にしておくものである、その中に追跡されている人工衛星はない。
【００５１】
パワーオン初期化装置  ３０２は、有限の状態マシン変数のために、デフォルト状態を準備する。変数は、ローカルであり、すなわちモードブロックの中でではなく、最初の使用で明示的にコードで識別される。さもなければ、すべての変数は、モードブロックにある。次の表Ｉは、ソフトウェアでパワーオン初期化装置  ３０２を実行する１つの方法を表している。プレイバッククロックをスタートさせる前に、２つの変数、  ＭＢＰ  と  ＬＡＰ  とが初期化される。
ＴＡＢＬＥ  ”Ｉ”
0003574429.tif 000002
クロックジェネレーターとコントローラー３０４のロジックは、図４でさらに詳述されている。クロックジェネレーターとコントローラー４００は、例えば、２７．４５６  ＭＨｚ  作動するマスタークロック（  ＭＣＬＫ  ）を含むものである。ＭＳＥＣデータセレクター４０４は、マスタークロック（  ＭＣＬＫ  ）アウトプットの  ＲＩＳＣプロセッサ２５８によって、ソフトウェア制御を許すものである。同様に、ＰＣＬＫ  データセレクター４０６は、プレイバッククロックアウトプットのソフトウェア制御を許すものである。「÷１３  」分周器４０８は、マスタークロック周波数をサンプルクロック周波数に下げる。プログラマブルダウンカウンター４１０は、２１１１を０までカウントダウンするためにロードした時に、マスタークロックを１３．０ＫＨｚクロックに下げる。  ＳＣＬＫ  データセレクター４１２は、サンプルクロック（  ＳＣＬＫ  ）アウトプットのソフトウェア制御を許すものである。「÷６４  」分周器４１４と「÷３３  」分周器４１６は連続しており、そしてマスタークロック周波数を１ミリセカンドのパルス周波数に下げる。プログラマブルアップカウンター４１８は、１６，７７７，２１５のサイクルでマスタークロックをカウントする。「÷１０  」分周器４２０は、マスタークロック周波数を１０ミリセカンドのパルス周波数に下げる、例えば、割り込みとしての使用のために。  クロックジェネレーターとコントローラー４００は、アップカウンター４２４、  書込み可能な状態ｏｎ／ｏｆｆデータセレクター４２６、プログラマブルアップダウン１２ビットカウンター４２８と、書込み可能な初期設定値レジスタ４３０を、さらに含むものである。
【００５２】
有効なモードブロックのために、ソフトウェアによって実装された状態マシンは、１モードブロックを初期化しなくてはならない。ただソフトウェアによって実装された状態マシンだけが、多くのパラメータを定義するモードブロックにデータを書き込むことができる。ＦＳＭ  ３００は、初期化の後には、このようなデータを書き込むことができない。ソフトウェアによって実装された状態マシンは、  ｂｌｏｃｋＷｒｉｔｅＦｌａｇ  ＝１をセットし、それで、このフラグがクリアーされるまで、このブロックは有限の状態マシンによって選択されない。適切なデータを書き込んだ後、ソフトウェアによって実装された状態マシンは、  ｂｌｏｃｋＷｒｉｔｅＦｌａｇ  ＝０をセットする。
【００５３】
ソフトウェアによって実装された状態マシンは、どんな時でも、  ｂｌｏｃｋＷｒｉｔｅＦｌａｇ  をクリアーする（「１」から「０」に変えられる）、有限の状態マシンは、ｎｅｗＭｏｄｅＢｌｏｃｋＦｌａｇ  でこのイベントを記録する。これは有限の状態マシン変数であって、そしてグローバルである、例えば、特定のモードブロックではない。
【００５４】
モードブロックアレイプログラムコントロールループ３０６は、有限の状態マシン３００のメインプログラムコントロールループを表している。ｓｔａｒｔＯｆＮｅｗＲｅｃｏｒｄ  イベントが起こるときはいつでも、そして同じくプログラムコントロールループが稼働していなく、そして  ｎｅｗＭｏｄｅＢｌｏｃｋＦｌａｇ  がセットされるときはいつでも、プログラムコントロールループの先頭が達せられる。いくつかの変数は、有限の状態マシン３００にグローバルである。  「  ＭＢＰ  」変数が、５ビットのアドレスモードブロックポインタであり、その中に０−１６は可能な値である。  「  ｎｕｍＭｏｄｅＢｌｏｃｋｓ  」変数は、定義されたモードブロックの数を、モードブロックアレイ（ＭＢＡ；  ｍｏｄｅ  ｂｌｏｃｋ  ａｒｒａｙ）に保管する。  「  ｒｅｃｏｒｄＴｏｇｇｌｅ  」フラグは、１０ミリセカンドごとに変化する、１ビットのカウンターである。  「  Ｍｓｅｃ４  」変数は、すべてのミリセカンドを変える、４ビットのカウンターであり、実際、それは「  Ｍｓｅｃ２４  」変数の最下位の４ビットに相当する。
【００５５】
２つの変数、「  ｐｌａｙｂａｃｋＳｔａｔｅ  」と「  ｐｌａｙｂａｃｋＳｔａｔｅＣｎｔ  」は、有限の状態マシンのそれぞれのステップで消費される、マスタークロックの数をモニターするために使用される。これらの変数は、主に有限の状態マシンがどのように働いているかを観察するために使用される。しかしながら、有限の状態マシンが、１つの有限の状態マシンブロックよりいっそう多くによって使用されている、グローバルデータが書かれる、ある特定の重大なエリアにあるとき、それらは同じく知られるように、競争状態を妨げるために使用されることができる。ｐｌａｙｂａｃｋＳｔａｔｅ  は、状態マシンにおける場所に従って変えられる。カウンターは、どのようにカウンターが初期化されたかにより、アップカウンターまたはダウンカウンターのどちらにも成り得るものである。  ゼロに初期化すると、変数をアップカウンターにし、非ゼロの値に初期化すると、変数をダウンカウンターにするのである。ｐｌａｙｂａｃｋＳｔａｔｅ  がゼロ状態にあるとき、  ｐｌａｙｂａｃｋＳｔａｔｅＣｎｔ  は、アイドリング状態となることを強いられる。
ＴＡＢＬＥ  ＩＩ
0003574429.tif 000003
ｎｅｗＭｏｄｅＢｌｏｃｋＦｌａｇ  をクリーンにするときは、注意が払わなければならない。変数は、ソフトウェアによって実装された状態マシンによって、  ｂｌｏｃｋＷｒｉｔｅＦｌａｇ  をクリアーするクロックと同じクロック上でクリーンにされてはならない。これは、ＭＢＰ  ＝ｎｕｍＭｏｄｅＢｌｏｃｋｓ  あるいは書かれているモードブロックアドレスが現在の  ＭＢＰ  より少しであるという場合において、モードブロックが実行されることから妨げられるであろう。
【００５６】
ｍｏｄｅＢｌｏｃｋＰｏｉｎｔｅｒ  が新しいアクティブなモードブロックにセットされるときはいつでも、事前計算とプレイバックブロック３０８は、稼動している。コントロールが、モードブロックアレイプログラムコントロールループからここで飛び上がって、そして、実施後に、プログラムコントロールループに戻る。もし  ｓｔａｒｔＯｆＮｅｗＲｅｃｏｒｄ  イベントが起こるならば、ジャンプアウトが起こりえる。モードブロック中の１ブロックの地位が  ｓｔｏｐｐｅｄＰｌａｙｂａｃｋ  フラグでタグを付けられるであろう。ソフトウェアによって実装された状態マシンは、どのようにこのような状況に返答するべきかを決定する。
ＴＡＢＬＥ  ＩＩＩ
0003574429.tif 000004
0003574429.tif 000005
0003574429.tif 000006
0003574429.tif 000007
0003574429.tif 000008
0003574429.tif 000009
ラッチアベイルプログラムコントロールループ３１０は、新しいラッチデータに応答する。ラッチは、決してクリアーされない、それらはそれぞれのプレイバックの終わりに、ただ書き込まれるだけである。もしそれらが、次のプレイバックの前に処理されないならば、データは失われて、そしてエラーとして報告されない。  ｌａｔｃｈＡｃｔｉｖｅＰｏｉｎｔｅｒ  （ＬＡＰ）変数が、モードブロック数（  ｎｕｍＭｏｄｅＢｌｏｃｋｓ  ）以下の有効モードブロック値にセットされるときは、新しいラッチデータの入手可能性の状態は知らされる。それで、ラッチアベイルブロックのオペレーションは、イベント駆動型（イベントドリブン）である。  ｌａｔｃｈＡｃｔｉｖｅＰｏｉｎｔｅｒ  が  ｎｕｍＭｏｄｅＢｌｏｃｋｓ  より少しの価値になるとすぐに、ブロックは動くものである。しかしながら、もしラッチアベイル処理の初期化に、かなりのクロックをとるようであれば、データが実際に使用可能となる前に、初期化を行わなければならない。
【００５７】
ＨｙｐＭｅｍ  は、実際に記憶セルを使用することなしの自動ラップとしての、バンクとセルアドレスブロックを使うことができる新しい方法を持っている。このようにして、  ｈｙｐＨｅｍ  を使わない、アウトドアのモードとすることは、  ｍａｘＤａｔａ  の場所を覚えているために、まだこれらの２つのレジスターを使用するのである。この方法は、フランスの  ｈｙｐＭｅｍ  マクロ記述に加えられる。
【００５８】
もし  ｍａｘＤａｔａ  が求められるならば、すべてのレコードが更新される。それで、ｍａｘｂａｔａＵｐｄａｔｅＲａｔｅ  が、１ビットの単語になって、そして仕事の  ｍａｘＤａｔａＵｐｄａｔｅ  によって置き換えられる。ｍａｘＤａｔａＲｅｐｏｒｔＲａｔｅ  は、取り去られて、そしてソフトウェアで処理されることとなる。
【００５９】
プレイバックが終了していて、働いている相関物が相関ラッチにコピーされるとき、  ｌａｔｃｈＡｖａｉｌ  が１にセットされ、そしてラッチアベイルポインター（ＬＡＰ；  ｌａｔｃｈ  ａｖａｉｌ  ｐｏｉｎｔｅｒ）が、働いているモードブロックポインター（  ＭＢＰ；  ｍｏｄｅ
ｂｌｏｃｋ  ｐｏｉｎｔｅｒ  ）にセットされることを想定してください。
【００６０】
もし  ｍａｘＤａｔａ  が、処理されていないならば、１つのモードブロックのためのすべてのプレイバックが完了されるとき、どんな新しいプレイバックでも報告される。このチェックは、事前計算とプレイバックブロックでされることができ、しかし１つのセクションのみでこのステップをすることが好ましい。１つのモードブロックが、他のレコードのために処理される、ソフトウェアによって実装された状態マシンに示す前に、ｍａｘＤａｔａ  が最新のものにアップデートされるのを待つことを望むので、これは、ラッチアベイルブロックでなされるものである。
【００６１】
新しいモードブロックが始められるとすぐに、ラッチデータが、まだ前のモードブロックの最後のプレイバックから処理されていることはありそうである。それで、標準的な事前計算のセクションで、  ｍａｘＤａｔａ  分析と結び付けられたデータは、初期化されることができないものである。そこで、初期化のプログラムコントロールループが、それぞれのモードブロックそれぞれのレコードにおいて要求されなくてはならない。
ＴＡＢＬＥ  ＩＶ
0003574429.tif 000010
0003574429.tif 000011
0003574429.tif 000012
もしプレイバックブロックが、同じクロック上で、ＬＡＰを現在の  ＭＢＰ  にセットしようとしているならば、ＬＡＰを  ｎｕｍＭｏｄｅＢｌｏｃｋｓ  の静止（無活動）状態へ戻すときに、問題が発生する。上記のものは、プレイバックブロックにおいてであり、ちょうど新しいＬＡＰを書き込む前に、  ｐｌａｙｂａｃｋＳｔａｔｅ  は７にセットされた。それで、もし  ｐｌａｙｂａｃｋＳｔａｔｅ  ＝７であるならば、ＬＡＰに対するどんな変更でも待つべきである。
【００６２】
高度の平行（類似、並行）を得るために、符号の仮説の大きなバンク（ｂａｎｋ）が、同じキャリア混合を使用する平行（類似、並行）に実装されるものである。最も多くのフレキシビリティのために、「検索」モードのためにはかなりの可能性でチップの１／２  のスペースを、そして「  ｔｉｍｅＴｒａｃｋ  」モードのためにはもっとわずかなスペースを合成することに対して、バーチャルコードジェネレーターが好まれる。しかしながら、多数の符号の仮説のために、バーチャルコードジェネレーターを用いた実装は、あまりにも高価である。
【００６３】
２．１１２  ＭＨｚ  のサンプルクロックの期間は、およそ半分のチップ時間である。正確には、それはチップ時間の半分より少しである３１／６４または１／６４である。このスペースのために、１０２３のチップ範囲をカバーする符号仮説の数は、２１１２である。これは完全なチップの１／２のスペースのための２０４６の場所より、３％（６６の余分の符号の場所に相当）多くのメモリスペースを必要とする。
【００６４】
最近のテストデータは、典型的な水晶周波数のための先験的な（アプリオリな）最悪事態のモデリングエラーが、温度モデリングで約±０．５  ＰＰＭ（±  ７８７Ｈｚ  ）であることを示している。保守的であって、そして周波数に対するユーザーポジションエラー効果のために若干の不確実性を残すために、最初の人工衛星のための±１０００  Ｈｚ  の周波数範囲が、好ましくは、探索される。もし最初の探索に学習した周波数インフォメーションについて、高度な信頼があるならば、次の人工衛星の周波数探索範囲は、時間と努力をセーブするために制限され得る。代わりに、このような探索時間のセービングは、それほど高価でないハードウェアで見いだされるであろうような、遅いクロックスピードとトレードされ得るものである。
【００６５】
「事前発見間隔」（  ＰＤＩ  ；  ｐｒｅｄｅｔｅｃｔｉｏｎ  ｉｎｔｅｒｖａｌ  ）は、パワーを得るために適合するすぐ前に終わる、入ってくるそしてローカルに生成されたシグナルの首尾一貫して統合された期間である。１０ミリセカンドの事前発見間隔の間、キャリア混合の周波数レスポンスは、±１００  Ｈｚ  において最初の  ヌル（ｎｕｌｌ，ゼロ）  を持っている同期性機能である。典型的には、周波数の探索ステップは、探索された次の周波数が、前の頻度のヌルにそのピークを持つように、選択されます。この場合、１００  Ｈｚ  毎に探索可能であり、そしてそれぞれの周波数の探索ステップの  １．５ｄＢ  バンド幅は、±５０  Ｈｚ  である。２０の完全な符号探索が、±１０００  Ｈｚ  の望ましい範囲をカバーするために必要とされる。
【００６６】
２バッファの  ＲＦサンプル構成で、相関物のバンク（ｂａｎｋ）により定義された各符号の仮説は、ちょうど２１１２のクロック、例えば、１ミリセカンドのサンプルクロックの数、で完全な１０ミリセカンドの事前発見間隔の間に、更新される。ＲＦサンプルは、すべての１０ミリセカンドに、同じサブミリセカンドの時間で、取られるものである。これらはそれからミックスさせられて、そして一つのサンプルクロック上に相関づけられ、そのためにサンプルの新しいセットは、読まれたすべてのサンプルクロックである。１０ミリセカンドで、そして２７．４５６  ＭＨｚ  において、２１１２のサンプルの１３０グループを作り出すことができる２７４５６のマスタークロックがある。特定の符号と周波数の仮説をミックスした２１１２のサンプルのループは、ここでは「プレイバック（ｐｌａｙｂａｃｋ）」と述べられている。
【００６７】
もし、２０の完全な符号探索が、セットアップのために必要だったクロックの残りで、１２０のプレイバックにおいてなされたならば、１つの符号スペクトル（１０２３のチップ）をすることに必要とされるプレイバックの数（Ｎ）は、２０  ＊  Ｎ  ＝  １２０である。この例では、Ｎ  ＝  ６である。「Ｉ」の数と「Ｑ」の数の相関ペアーは、合計で７０４の相関物のために、それで２１１２／６  ＝  ３５２となる。それらは、図２で示されている。
【００６８】
代わりの実施例は、２つの要因により、マスタークロック速度を増加させる、この要因とは、例えば合計で２６０のプレイバックを生む場合。プレイバックの数は、１つの完全な符号スペクトルを得るために、１２に増やされることができる。このようにして、ちょうど１７６の相関物ペアーが、合計３５２の個別の相関物で必要である。この例では、１７６の相関物が、２  ＊  （  ２７．４５６ＭＨｚ  ）  ＝  ５４．９１２ＭＨｚ  のプレイバックスピードで選択される。
【００６９】
符号ＮＣＯ  ２０６は、２．１１２  ＭＨｚ  サンプルクロックを、１．０２３  ＭＨｚに変換する６ビットの加算器である。それは、標準的な２つのサンプルクロックよりも、どちらかと言うと、１つの符号クロックのために必要な３つのサンプルクロックがあるときに、符号クロックと  ｄｉｖ３  シグナルを生成する。それらは、シフトする能力はないが、しかし、初期状態変数「  ｎｃｏＩｎｉｔｉａｌＣｏｎｄｉｔｉｏｎ  」を指定することによって、位相は調整され得る。
【００７０】
符号ジェネレーターブロック２０８は、２つの１０ビットのシフトレジスタを特定の連続した疑似乱数を発生させるために、使用する。このブロックは、望ましいチップ位相と疑似乱数に基づく３つのルックアップテーブルを含んでおり、それらは、  Ｇ１  、  Ｇ２  と  Ｇ２のオフセットである。
【００７１】
符号と  ｄｉｖ３  メモリ２１０は、同じサンプルクロック上の、符号ジェネレーターと  ｄｉｖ３  アウトプットシグナルを、ストロボ（ｓｔｒｏｂｅ）と遅らせるために、２つのシフトレジスタを使用する。遅れ深さは、最悪の事態では、それぞれのシグナルのために１７の１ビット状態である。これらは、検索または「  ｍｅａｓ  −  ｍｏｄｅ」のための、バーチャル符号ジェネレーターへのインプットシグナルである。
【００７２】
バーチャル符号ジェネレーターブロックは、遅れレジスターにおいて、符号に関連する±３１／６４チップの相対的な遅れを合成する。肯定的な遅れは、時間通りのタップと遅れたタップの組み合わせを使用する。初期の遅れは、時間通りのタップと早い（初期の）タップの組み合わせを使用する。「ｓｅａｒｃｈ」（探索）モードで使われた５つのバーチャル符号ジェネレーターの１つのグループがあり、そして「  ｔｉｍｅＴｒａｃｋ  」モードで使った合計で１６  ＊  ５  ＝  ８０のための、１５  ＊  ５のバーチャル符号ジェネレーターの他のプールがある。
【００７３】
５つのバーチャル符号ジェネレーターのセットは、ここでは「ｓｕｐｅｒ  ｖｉｒｔｕａｌ  ｃｏｄｅ  ｇｅｎｅｒａｔｏｒ  （スーパーバーチャル符号ジェネレーター）」と述べられている。それらが、ドップラー曲線を保証するための、１０ミリセカンドの記録の全域で必要な位相を生み出すものである。
【００７４】
長さを持った、５つの１ビットのシフトレジスターのセットを含むバーチャル符号ジェネレーターメモリ２０８は、「検索」モードで１０ミリセカンドの事前発見間隔の間、コードドップラーを作るために使われる５つのバーチャル符号ジェネレーターのアウトプットが、１７６である。最も早い初期状態である  ０は、バーチャル符号ジェネレーターの直接のアウトプットである。最終の状態、「１７５」は、状態  ０からの遅れている１７５のサンプルクロックである。
【００７５】
符号シフトメモリは、指定されたサンプルクロックの、全体のコード発生ブロックの状態をストロボするために使用される。このデータは、バーチャル符号シフトを作るために、次のプレイバックで再ロードされる。
【００７６】
デジタルローカル発振器（  ＤＬＯ；  ｄｉｇｉｔａｌ  ｌｏｃａｌ  ｏｓｃｉｌｌａｔｏｒ  ）２１２が、１６までにサンプルクロックを分割して、そして１３２  ｋＨｚ  でゼロから１５まで数える「  ｄｌｏＳｔａｔｅ  」と呼ばれる、１６状態変数を生成する。それは最終の  ＲＦ  ステージからのシグナル出力の、最終のＩＦを生成するために使用される。
【００７７】
キャリアＮＣＯ  ２１４、あるいはマスターキャリア  ＮＣＯは、そのインプット（  ５２８ｋＨｚ  ）として、サンプルクロックを４つに分けた、２４ビットのレジスタであって、そしてそこで４つの最も重要なビットは、「  ｃａｒｒｉｅｒＮｃｏＶａｌｕｅ  」に対応する周波数（もし周波数がネガティブであるならダウンカウント）において、ゼロから１５までアップまたはダウンで数える「ｎｃｏＳｔａｔｅ  」として解読（デコード）される。
【００７８】
「ｓｕｍＳｔａｔｅ」  は、「  ｄｌｏＳｔａｔｅ  」と「  ｎｃｏＳｔａｔｅ  」との合計である、４ビットの数である。それは、ドップラーと最終の  ＩＦ  との合計によって生み出された位相を表しているものである。
【００７９】
「ｒｅａｌＳｔａｔｅＣｏｕｎｔ  」変数は、マスターキャリアＮＣＯの状態が変化しない、連続したサンプルクロックの数を数えるものである。カウントを増加させる前に、カウンターを前もって分割することで、変数は、同じく遅れ得るものである。これはドップラーが非常に小さい場合に、限定された範囲を４ビットの遅延に適応させるために必要とされるものである。
【００８０】
スーパーバーチャルキャリアＮＣＯが、マスターキャリアＮＣＯと同じ周波数を生成する複数のバーチャルキャリアＮＣＯのグループであり、しかし位相オフセットにおいて、それは、マスターキャリアＮＣＯから１ミリセコンド遅れているモジュールである。それぞれのバーチャルキャリアＮＣＯが、２つの４ビットレジスタ、例えば、「オフセット（差し引き計算）」と「遅れ」とを持っている。それぞれのバーチャルキャリアＮＣＯが、「  ｓｕｍＳｔａｔｅ  」の位相から、４ビットの位相オフセットを生成する。現在の「  ｒｅａｌＳｔａｔｅＣｏｕｎｔ  」が、遅れ変数を超えるとき、またはドップラーがネガティブであるときは、前進を超えるとき、遅れ変数は、遅れの１付加ビットを加えることがでるのである。
【００８１】
キャリアミックス２１６は、  ＲＦ  サンプルを、１０のＮＣＯのそれぞれによって生み出されたキャリア位相と混ぜるものである。キャリアミキサーは、たった１つである。サンプルのすべての１０ミリセカンドは、１回、同じサブミリセカンドの位相に混ぜられるものである。
【００８２】
符号ミキサーは、重大な平行（類似、並行）を供給するものであり、探索モードでの各ミックスにおいて、最高１７６の異なった符号の仮説が生み出されることができる。    「ｔｉｍｅＴｒａｃｋ  」モードで、１１の相関物が異なった時（エポック）においてミックスを分離するために必要とされるので、たった１６が利用可能である。    それぞれの仮説のために、ミキサーと、同相の、そして２次のインテグレータとがあり、例えば、「Ｉ」と「Ｑ」との相関物  ２２２がある。
【００８３】
仮説ラッチ２２４は、最近の仮説の「Ｉ」と「Ｑ」のためのホールディングレジスターである。ラッチが用いられているので、それで、  ＲＩＳＣ  プロセッサ２５８が、データを読むのを待たないで、次のミックスは始まることができるのである。それぞれの新しいミックスが古いデータに上書きして、  ＲＩＳＣ  プロセッサ２５８が読めるように、その時までラッチしたデータを取ってくる。
【００８４】
デジタルシグナル処理は、書かれることができる異なった変数の数によってコントロールされる。人工衛星乗用車疑似乱数（  ＳＶ：ＰＲＮ  ）変数は、新しい探索を定義するよう書かれる。軌道に乗っているＧＰＳ人工衛星が疑似乱数の符号０１−３２を使用する。ＷＡＡＳ  と  疑似  は、３３  −  ４ｘの限界で定義される。６ビットのワード長は、最小の必要条件である。符号のスタートの位相変数は、「  ＳｔａｒｔｉｎｇＣｏｄｅＰｈａｓｅ  」であって、そしてチップの６４番目のパーツで関係したスタートの位相を定義する。これは２バイトの無署名のワードであって、そして「探索」モードで最初の符号ウインドウの右手側の位相を表しており、また「  ｍｅａｓ  −モード」で符号ウインドウの左手側の位相を表しているのである。符号位相の範囲は、０−（１０２３  ＊  ６４−１）  ＝  ０から６５４７１となる。符号位相を調整するとき、考慮されている６４の未使用の値がある。「ＳｔａｒｔｉｎｇＣｏｄｅＰｈａｓｅ」の数は、容易にチップと６４番目の中に入り得るものである。
ＴＡＢＬＥ  Ｖ
0003574429.tif 000013
例えば、１００個のチップの符号位相と、１７／６４のチップスペースは、「  ｓｔａｒｔｉｎｇＣｏｄｅＰｈａｓｅ  」  ＝  ６４１７を持っている。１０２３  ＊  ６４よりいっそう多くを加えることによって、上の限界を超えるとき、大きい位相から小さいの位相までの実施において、デットゾーン（ｄｅａｄ  ｚｏｎｅ）が１つの整数チップを借りるので、位相のたった１つのチップが加えられるのである。
【００８５】
同様に、小さいスタートの「  ｃｏｄｅＰｈａｓｅ  」からポジティブな位相を引くときは、方法は下にロールして、そして大きい「  ｃｏｄｅＰｈａｓｅ  」にデッドゾーンを譲渡することで占領するものである。訂正されていない位相は、小さい位相から大きい位相まで移動するには、あまりにも大きすぎるので、訂正は１を差し引くことである。
【００８６】
ドップラースタート「  ｃａｒｒｉｅｒＮｃｏＶａｌｕｅ  」変数は、ビットのキャリアＮＣＯユニットで定義される。３バイトの署名されたワードは、毎秒サイクルの番号でキャリアドップラーを表すために使用される。１３２  ｋＨｚ  の最終の中間の周波数（  ＩＦ  ）が、この変数に含められる必要はない、最終の  ＩＦ  は、キャリアＮＣＯの外の、１６状態のデジタルのローカル発振器によって復調されるものである。キャリアＮＣＯは、４によって分割されるサンプルクロックである、インプットクロックを含めて、２４ビットを持っている。  ビットから  ヘルツ  まで「  ｃａｒｒｉｅｒＮｃｏＶａｌｕｅ  」を転換するためのスケール要因は、「  ＣＡＲＲＩＥＲ＿ＮＣＯ＿ＨＺ＿ＰＥＲ＿ＢＩＴ    ＝  ２．１１２  ＭＨｚ  ／  ４／２＾２４  ＝  ０．０３１４７１２５２Ｈｚ  ／  ビットである。
【００８７】
５０００ＨｚのキャリアドップラーをキャリアＮＣＯユニットに転換するため、ドップラーは、ビットのユニットを得て、そして「  ｃａｒｒｉｅｒＮｃｏＶａｌｕｅ  」  ＝  １５８８７５をもたらすために上記の定数によって分割させられるものである。それで、「  Ｈｚ  ／  ＣＡＲＲＩＥＲ＿ＮＣＯ＿ＨＺ＿ＰＥＲ＿ＢＩＴ  」において、「  ｃａｒｒｉｅｒＮｃｏＶａｌｕｅ  」＝  キャリアドップラーとなる。この分割は、ナビゲーションプロセッサでなされて、そして標準的なコントロールメッセージで、ＤＳＰ１１４に送られるものである。
【００８８】
典型的に３つの  ＤＳＰ  の操作モードがあり、（１）「探索」モード（首尾一貫していない）、（２）「  ｗｅａｋＭｅａｓ  」モード（首尾一貫していない）と、（３）「  ｔｉｍｅＴｒａｃｋ  」モード（首尾一貫している）がある。現在のモードは、  ＤＳＰｍｏｄｅ  変数で定義される。ＤＳＰｍｏｄｅ    ＝  「探索」モードで、コードを生成するときは、正しい大部分の相関物  が、「  ｓｔａｒｔｉｎｇＣｏｄｅＰｈａｓｅ  」によって定義された位相を生み出すことであろう。このような約束事は、オペレーションを下準備することを単純化するものである。
【００８９】
２つのモードで、たった一つの周波数ミックス仮定があり、そしてすべての相関物は、１０個の  ＶＮＣＯ  で構成した、１０個の１ミリセカンドのキャリアミックスの結果とうまくいくものである。バーチャルキャリアＮＣＯのは、１０ミリセカンドの事前発見間隔の全域で、特定のミリセカンドの間、サイン波の首尾一貫した位相を生み出すものである。
【００９０】
ミックス毎にたった１つの周波数の仮説があるので、必要とされる平行（類似、並行）は、多くの平行（類似、並行）した符号位相の仮説を使っている符号ドメインで生成される。この場合、それぞれの１対の相関物が、キャリアミックスの同じアウトプットをとっており、そして次に異なった符号位相の仮定を混ぜるものである。
【００９１】
「探索」モード（首尾一貫していないモード）で、右手方向へ、あるいは後にそれぞれの相関物のために埋め合わせられるコードは、１つのサンプルクロック、例えば、正確に３１／６４によって、符号を遅らせることによって、作られる。それで、「探索」モードで、「  ｈｙｐｏｔｈｅｓｉｓＳｐａｃｉｎｇ  」することが固定されていて、そして制御可能ではない。完全な１０ミリセカンドの相関関係のために、同位相のものと二次の結果を含んでいる、それぞれの符号の仮説のために、１つの相関物ペアーがある。
【００９２】
１０ミリセカンドのミックスと、位相の必要とされる期間の上に起こる符号ドップラーシフトを受け入れるために、５つのバーチャル符号ジェネレーターが、５つの１７６状態の１ビットのシフトレジスタと共に、使用される。これらはチップ間隔の３１／６４を作り出すために、サンプルクロックで計時されるものである。
【００９３】
バーチャル符号ジェネレーターは、マスター符号ＮＣＯと符号ジェネレーターによって定義された参照位相に関する位相オフセットを作り出すものである。
【００９４】
それぞれのバーチャル位相ジェネレーターが、５つのバーチャル符号ジェネレーターで、１０ミリセカンドの期間をカバーするために、２ミリセカンドに渡って、位相シフトを生成するものである。２ミリセカンドの間のキャリアミックスは、同じ符号ミックスを使うことであろう。もし、符号−ドップラーＮＣＯが適切に扱われるならば、長期の傾向がないので、ミリセコンド毎に１つのバーチャル符号ジェネレーターは、過度なものとなる。
【００９５】
２０  ｋＨｚ  のキャリアドップラーのために、バーチャル符号ジェネレーターは、１０ミリセコンド以上の符号ドップラーによる位相変化のチップの、±１０／６４を作る必要があるだけである。この相対的な位相オフセットは、たった３つの符号バージョンで達成されることができる。バーチャル符号ジェネレーターのカウント変数がゼロであるとき、チップの１０／６４分だけ上がる、早い符号オフセットは、早い符号タップと時間通りのタップを使用するであろう。同じく、バーチャル符号ジェネレーターのカウント変数がゼロであるとき、遅い符号オフセットは、時間通りの符号タップと遅いタップを使って、生成されるものである。
【００９６】
符号と  ｄｉｖ３  メモリブロックのたった３つの状態が、「探索」モードのために使用される。
【００９７】
５つのバーチャル符号ジェネレーターのそれぞれのアウトプットは、１７６状態の長さであって、そしてサンプルクロックで計時される、それ自身の１ビットのシフトレジスタの中に渡される。早いタップは、実際にはジェネレーターのアウトプットである。
【００９８】
詳細には、それぞれのサンプルクック、そして「  ｃｏｄｅＮｃｏ  」の更新と、符号ジェネレーターの状態の後に、シフトレジスターは、１つのセルによって、記録の中身を右手方向に動かせて、計時される。右手方向の前の５つの状態は、捨てられる。
【００９９】
バーチャル符号ジェネレーターの状態は、スタートの（最も早い）位相で考慮されるものであり、そして最初の相関物のペアーの中に、直接渡される。「探索」モードのために、コード発生ブロックを下準備することは、符号と  ｄｉｖ３  メモリを下準備して、そして次にバーチャル符号ジェネレーターのアウトプットのシフトレジスタであるメモリを下準備して、という２つのステップを必要とするものである。下準備することの詳細は、下準備のセクションで論じられている。
【０１００】
もし望ましい符号位相（ｃｏｄｅｐｈａｓｅ）が、１００個のチップと、１７／６４のチップスペースであるならば、ハードウエア位相への小さい調整が、早いもののために、時間通りの、そして遅い遅れを受け入れるために必要とさるものであり、そのために、プレイバックの最初のクロックの上に生成された時間どおりの、そしてそれほど同じく、プレイバックが始まるとき、すべての遅れが有効であるように、望ましい符号位相が、作られるものである。これをするために、符号と  ｄｉｖ３  メモリブロックからのたった３つの状態が使われる、符号ＮＣＯと符号ジェネレーターが、最も早くレジスタの３つが満たされるまで、クロックの必要とされる数のために動作しているものであるとき、望ましい符号位相は効果を下準備することがそうであること、「探索」モードのケースでのどちらかによって修飾される。
【０１０１】
１７６番目の状態の時間通りの符号は、プレイバックの最初のサンプルクロックによって、レジスタをシフトすることによって、初期化される。１７６の深さである遅れブロックは、２つのステップで下準備される。最初はバーチャル符号ジェネレーターにデータを送るために使われる遅れブロックを下準備するであろう。２番目に下準備することは、それからバーチャル符号ジェネレーターのアウトプットを使う遅れブロックを満たすことであろう。
【０１０２】
２番目の下準備することのために、バーチャル符号ジェネレーターは、２番目の遅れメモリを満たすために必要とされるサンプルクロックの数を計時される。それから望ましい時間通りの位相は、プレイバックの最初のサンプルクロックの右の大部分の遅れレジスタにあるであろう。
【０１０３】
「  ｗｅａｋＭｅａｓ  」モードは、人工衛星のセットの一連の失敗した探索の後に、使用されるものである。個別の探索のパワーピークは、今回はより素晴らしい探索解決で、再訪される。「  ｗｅａｋＭｅａｓ  」モードで、不確実さが減少しているから、十分な時間が並列に多数の人工衛星を探索するために手に入れられている。
【０１０４】
結果がポジションと速度の修復（固定）を作るのに十分正確であるように、もう１つの相関物の間隔のタイプが実行される。８機の人工衛星の同時の測定のために、例えば、それぞれの人工衛星のための１５の周波数が探索され、そして１３０の利用可能な仮説のうちの１２０を使用する。これは仮説の間に、事前計算のために十分なマスタークロックを割くこととなるであろう。センター周波数は、いずれかの側に８つの周波数で、探索時における最も良い周波数とすることができる。５０Ｈｚのステップ大きさは、±４２５  Ｈｚ  の広範囲を提供する。１ｇの加速モデルのために、すなわち１０ｍ  ／  ｓ２  、それから１０秒で、速度における最大の変化はｇ  ＊  １０  ＝  １００ｍ  ／  ｓ  ＝  ５００  Ｈｚ  である。５０Ｈｚのステップ大きさは、２５Ｈｚの最も悪いケース頻度エラーをもたらし、そしてそれはおよそ５ｍ  ／ｓの  速度である。これは速度の修復（固定）のために受容できる騒音パフォーマンスのボーダーライン上にある。それで、もしユーザーが力学的により小さいことを知られているならば、ステップ大きさは減少し得えるであろう。
【０１０５】
符号ドメインで、すべての１７６の相関物は、それぞれの符号の仮説の間に、非常にわずかな間隔でもう１つの符号探索を生成するために使用される。１つのスキームがチップ間隔の２／６４を使うものであり、最も悪いケースエラーは、チップの１／６４となり、これはおよそ４．５メートルとなる。これは弱いシグナルのための、目標レンジの正確さに適合するものである。
【０１０６】
符号の仮説の間隔は、１６のスーパーバーチャル符号ジェネレーターと、１０ミリセカンドの記録の全域に渡る、符号ドップラープロフィールに生産するべき５つのバーチャル符号ジェネレーターとを使って生成されるものである。バーチャル符号ジェネレーターの間隔は、チップの２／６４  のスペースである。このようにして、参照符号のタップから、チップの０／６４、２／６４、４／６４、６／６４、８／６４、１０／６４、１２／６４、１４／６４、１６／６４、１８／６４、２０／６４、２２／６４、２４／６４、２６／６４、２８／６４、３０／６４  のスペースというような、符号の仮説のウインドウが生成される。バーチャル符号ジェネレーターのアウトプットは、非常に長い素晴らしい符号の仮説ウインドウを作り出すために、１つのサンプルクロック（３１番目の部分）によって、遅らされるものである。
【０１０７】
それぞれのスーパーバーチャル符号ジェネレーターのオフセットは、好ましくは常に同じである。それぞれのスーパーバーチャル符号ジェネレーターでの最初のバーチャル符号ジェネレーターは、チップのそれぞれ、１  ＝  ０／６４、２  ＝  ２／６４、３  ＝  ４／６４、４  ＝  ６／６４、５  ＝  ８／６４、…、１６  ＝３０／６４を出力する。それぞれのスーパーバーチャルコードジェネレーターおける、連続したバーチャル符号ジェネレーターのオフセットは、１０ミリセカンドの事前発見間隔の全域に渡ってのドップラー曲線以外は、前のバーチャル符号ジェネレーターと同じである。このデータは、バーチャル符号ジェネレーターの計算前のステップで、プログラムされるものである。
【０１０８】
それぞれのバーチャル符号ジェネレーターのアウトプットは、１１ビットのシフトレジスタに送られる。それぞれのシフトレジスタの左側の状態は、現在のバーチャル符号ジェネレーターのアウトプットと同じ値であり、すなわち、状態  ０が、ゼロの遅れとなっている。右側の最終の状態は、バーチャル符号ジェネレーターのアウトプットからの遅れている１０個のサンプルクロックである。
【０１０９】
相関物は、符号の発生にマップされる。最初の相関物が、最初のスーパーバーチャル符号ジェネレーター遅れレジスタの、最初の状態に存在している符号を要するものである。１６番目の相関物が、１６番目のスーパーバーチャル符号ジェネレーターの最初の遅れに存在している符号を要するものである。それから１７番目の相関物  は、最初のスーパーバーチャル符号ジェネレーターのシフトレジスタの２番目の状態をとるものであり、そして３２番目の相関物  は、１６番目のスーパーバーチャル符号ジェネレーターのシフトレジスタの２番目の状態をとる、という具合です。
【０１１０】
スーパーバーチャル符号ジェネレーターは、チップ間隔の２／６４を生成するために使用される。それぞれのバーチャル符号ジェネレーターが、１０ミリセカンドの記録の全域に渡って、コードドップラー曲線を出力する。すべての１６個のスーパーバーチャル符号ジェネレーターは、２／６４のチップ間隔において、チップの３０／６４の位相範囲を作り出すものである。それぞれのスーパーバーチャル符号ジェネレーターのアウトプットを遅らせることによって、３１／６４の増加において、作られた位相のくし（ｃｏｍｂ）は、繰り返えされ得るものである。可能な遅れの最大の数は、相関物の数によって制限される。マジックの数は、１７６  ＝  １６  ＊  １１として１１である。これは最大範囲の１つを与えるものである。
【０１１１】
チップサーチ・エンジンの１／３２は、多数のサンプルクロックによって、スーパーバーチャル符号ジェネレーターのアウトプットを延期することによって、作り出されるものである。すべての１１個の遅れが使われるとき、全体の範囲は、３４０／６４のチップと、チップの２０／６４である。より大きなラインは、モジュール  ３１（ｍｏｄｕｌｏ−３１）のオフセットを持っている。３０／６４より大きいすべての遅れは、遅れレジスタによって引き起こされるものである。ゼロと３０との間のすべての遅れは、遅れレジスタによって引き起こされるものである。
【０１１２】
「  ｔｉｍｅＴｒａｃｋ  」モードで、  素晴らしい２／６４の相関物の間隔が、１／６４から３２／６４までの中から、生成されるものであり、例えば、最大限１６の個別の符号の仮説のために。相関物が、首尾一貫した統合能力のために使われることができるように、より少ない仮説が生み出されるものである。ミックスは、異なった相関物の中に、１０符号エポックのそれぞれの間、１０の別個のミリセカンドよりどちらかと言うと、切り離されることができ得るものである。
【０１１３】
それらは、どんなデータビットエッジの全域に渡っても統合することなしに、ＧＰＳ送信で５０  Ｈｚの  ナビゲーションデータに同期化を可能にする。これは損失を最小にして、そして整数ミリセカンドタイミング能力を増やすものである。
【０１１４】
本願発明の実施例は、数の制限がないチャンネル数を持って、従来の追跡レシーバーのように見えるようなことで作られることが可能である。これはここに「  ｔｉｍｅＴｒａｃｋ  」モードであると述べており、データ部分を観察して、そして次にＧＰＳから時刻、時間を得るためにナビゲーションデータを復調することによって、時刻、時間は決定されることがでる。シグナルを観察するにはあまりにも弱すぎるナビゲーションデータであるときのように、これは他の２つのモードで可能ではない。１０ミリセカンドをカバーするためには、１１個の相関物がナビゲーションデータのデータビットエッジの最適な検出を許すために必要とされる。使われた相関物ペアーの最大の数は、すべての１６の符号の仮説が使われると想定して、（１５  ＊  ２  ＋  １１）  ＝  ４１となる。この場合、１５個の符号の仮説が、２つの相関物のペアーとを使用し、、そして１つの符号の仮説が、１１のペアーを使います。    わずか１６のペアーと３２のペアーが、他のモードで使われ得るものである。
【０１１５】
従来の追跡の間に、１つのコードの仮説が、通常は、符号の自動相関物化の機能のピークに集中させられるであろう。対応する相関物のペアーは、最も良いシグナルから騒音への比率を表しており、そして、どんな半分のサイクルのキャリア位相変化でも観察することに対して、最も良い乗り物である。他の符号の仮説は、同じくこのような変更を観察することができ、しかしソフトウェアによって実装された状態マシンによって読まれなくてはならない相関物の数は、極端、過度であることでしょう。
【０１１６】
「  ｔｉｍｅＴｒａｃｋ  」モードで、プレイバック毎に、たった１つの符号の仮説が、１１の相関物の選択を表している。この符号の仮説の相対的な場所は、可変的である。ピークのいずれかの側についての使われる、符号の仮説の数はさまざまであり得るものである。
【０１１７】
「  ｔｉｍｅＴｒａｃｋ  」モードでの他の符号の仮説は、１０ミリセカンドの記憶を、１つあるいは２つの相関物のペアーに分けることであろう。  ２つの相関物のモードにおいては、２つの選択肢がある。最初のものは、１０ミリセカンドが、２つの５ミリセカンドのブロックに分かれている。第２には、１０ミリセカンド  を、ナビゲーションデータ位相反転の場所の評価に従って分けるものである。
【０１１８】
オフピーク時の相関物は、遅れロック（ｌｏｃｋ）プログラムコントロールループのために使われる。パワーにおける差異は、書式ステアリングインフォメーションにセンター符号の仮説のいずれかの側の上にある符号の仮説の間に調べられるものである。
【０１１９】
「探索から追跡へ」からの発展は、符号のピークを見出すための探索ロジックを使用することから始めるものである。「探索」モードが、「  ｔｉｍｅＴｒａｃｋ  」モードに渡す。符号のピークが解決されるまで、すべての相関物は、２つのの５ミリセカンドのブロックの中のアウトプットに配置されるものである。符号が知られていれば、副次的なもののチェックが、周波数のピークにおいてなされる。１１の相関物の選択は、１ミリセカンドのアウトプットで、大きい周波数エラーを検出することができる。符号のピークと周波数のピークが解決された後、１１の相関物の符号の仮説は、ピークの上に置かれ、そして時間が位相反転の場所を捜して費やされる。その結果は、ビット移行が起こるミリセカンドを識別する。
【０１２０】
ビット移行が知られるまで、他の相関物ペアーは、５ミリセカンドのブロック選択に残っている。相関物は、２つの相関物の中に、ビット移行のいずれかの側にデータを出力するために、スイッチする。
【０１２１】
１６の符号の仮説で、広範囲の８つのチップのために１／２のチップで分割されたアコーディオンモードの例として。    限界は、１／４  チップ間隔のために２つのチップである。      もっときつい間隔は、１／６４に下方に可能であり、そして多数のプレイバックが、非常にわずかな間隔でより広い符号のミックスを生み出すために、使われることができるものである。
【０１２２】
さらに１５  ＊  ５のバーチャル符号ジェネレーターのグループが、１６の符号の仮説の全域に渡って、アコーディオンオフセットを生成するために使用される。  相対的な位相オフセットが、チップの０／６４から１５  ＊  ３２／６４より生成される。しかしながら、±１０／６４の符号ドップラー効果が含まれるとき、  −  １０から１５  ＊  ３２  ＋  １０まで、例えば、  −  １０から４９０まで（＜  １６  ＊  ３１）の最も悪いケース範囲がある。それで、ただ１つの初期のレジスタ、１つの時間通りのレジスタと１６の遅いレジスタだけが必要とされる。符号ジェネレーター状態は、初期のレジスタとして用いられるものである。
【０１２３】
「探索」モードで、完全なブロックがプレイバックの最初のサンプルクロックで有効であるように、符号と  ｄｉｖ３  メモリレジスタは、下準備がなされている。「  ｔｉｍｅＴｒａｃｋ  」モードのための符号の創出は、「探索」モードと異なっており、バーチャル符号ジェネレーターのアウトプットに追加の遅れがないのである。位相を下準備しているたった一つが存在しており、それで２番目の遅れであることは時間通りの相関物を定義するためにより容易であり、そして他の遅延は、より遅いものとなっている。早い遅れとしての最初の正確な遅れは、直接本当に符号ジェネレーターのアウトプットである。より低い相関物の数は、より早い位相を表している。
【０１２４】
「  ｔｉｍｅＴｒａｃｋ  」モードに２つの相関物モードがある。「  ｂｅｆｏｒｅ  ＢＴＴ−ｄｅｔｅｃｔｉｏｎ  （ＢＴＴ  −  発見の前）」モードでは、１０ミリセカンドの事前発見の間隔に、どちらかと言えばミリセカンドよりはボーダーラインとして  ＣＡ符号エポックを持つ、１１の部分の中に壊れている。たった１ミリセカンドが実行されるので、生成されたエポックは、毎ミリセカンドで正確に同じ時に起きるのである。エポックは、補償するために毎ミリセカンドの間、延期され得た。エラーは、ナビゲーションデータによって起こされた位相反転があるとき、ただ起こるだけであるので、これは本当に必要とされない、そしてこれはただ反転が起こったミリセカンド統合での、最も悪いケースの５つのサンプルクロックをもたらすだけである。
【０１２５】
「  ＢＴＴ  −  発見の前」モードは、ナビゲーションデータ部分の位相を確立することにおいて重要である。それの後に、ただ２つの相関物のペアーの中に、およその期待されたビットの移行時を関連づけることは十分である。２番目のモードが、「  ａｆｔｅｒ  ＢＴＴ−ｄｅｔｅｃｔｉｏｎ  （ＢＴＴ−発見の後）」モードであり、それから活性化されることができる。プロセッサファームウェア装置は、ラインを分裂させている相互関係として識別されたミリセカンドを得て、そして送りる。このような指定されたミリセカンドのエポックのすべての左のサイドの前のデータは左手側（  ＬＨＳ；  ｌｅｆｔ  ｈａｎｄ  ｓｉｄｅ  ）  の相関物  に入るであろう。指定されたミリセカンドのエポックのすべての右手側の次のデータは右手側（  ＲＨＳ；  ｒｉｇｈｔ  ｈａｎｄ  ｓｉｄｅ  ）の相関物  に入るであろう。ＣＡ符号のエポックの後のデータが、  ＲＨＳ相関物  に入るであろうのに対して、データは指定されたミリセカンドに  ＣＡ  符号のエポックの前に  ＬＨＳ相関物  に入るであろう。
【０１２６】
ＢＴＴｍｏｄｅ  変数は、ただ「  ｔｉｍｅＴｒａｃｋ  」モードで、すなわち、  ＤＳＰｍｏｄｅ    ＝  ３（「  ｔｉｍｅＴｒａｃｋ  」モード）を応用するだけである。もし  ＢＴＴｍｏｄｅ    ＝  ０であるなら、それからすべての符号の仮説は、もう１つの変数によってたった１つあるいは２つの相関物を使う。もし、  ＢＴＴｍｏｄｅ    ＝  １−１５であるなら、１つの符号の仮説が、発見モードの前に作用する。符号の仮説で使われた１１の相関物は、  ＢＴＴｍｏｄｅ  と等しい。例えば、もし  ＢＴＴｍｏｄｅ    ＝  ７であるなら、それからインデックス  ７を持っている符号の仮説は、  ＢＴＴ  発見の前のモードで作用するであろう。０−１５からインデックスをつけると仮定しよう、つまり  ０（ゼロ）番目の符号の仮説が、モードの前に実行できないことを意味する。オプションの前が、  ＢＴＴ  発見の後のモードの相関物のペアーの間の真中に置かれるので、これは許され得る。
【０１２７】
ＢＴＴ  ミリセカンド変数は、予想されるデータビット移行ポイントを指定する。もし  ＢＴＴ  ミリセカンド  ＝  ０、あるいは１１−１４であるなら、それでたった１つの相関物  がミリセカンドあるいはエポックから独立している発見後のモードで、符号の仮説のために使われる。もし  ＢＴＴ  ミリセカンド  ＝  １，１０であるなら、それで２つの相関物  が  ＢＴＴ  発見の後のモードで、符号の仮説のために使われる。同じく、分離はこの指定されたミリセカンドの中に、エポックに基づいている。例えば、もし  ＢＴＴ  ミリセカンド  ＝  ３であるなら、それで分裂ポイントが、第３番目のミリセカンドにおけるエポックである。
【０１２８】
もし  ＢＴＴ  ミリセカンド  ＝  １５であるなら、相関関係はエポックの場所から独立している１０ミリセカンドの記憶の中心で、２つの相関物に分かれている。ＢＴＴｍｏｄｅ  、  ＢＴＴ  ミリセカンドを処理して、６つの「  ｔｉｍｅＴｒａｃｋ  」モードもしくはそれ以上のプロセスオプションを生み出してください。２つの変数、  ＢＴＴｍｏｄｅと  ＢＴＴ  ミリセカンドは、「  ｔｉｍｅＴｒａｃｋ  」モードのために、混ざることについての５つの異なったスタイルを生み出すことができる。  ミキサーは３つのオプションを持っており、ミックスデータはすべて、２つの相関物  の間で分けられて、あるいはエポックによって切り離されていて、合計されることができる。少なくとも６つの方法が、実行で使われることができる。
【０１２９】
最初の方法が読むべき最も少数の相関物を持っており、  ＢＴＴはなく、そして１０ミリセカンドの事前発見の間隔が、それぞれ相関する。    ＢＴＴｍｏｄｅ    ＝  ０と  ＢＴＴ  ミリセカンド  ＝  ０である。それぞれの符号の仮説が、１つの相関物へのアウトプットとなる。これは探索と「  ｗｅａｋＭｅａｓ  」モードとのミックスと、まさしく同じである。読むために最も少数の相関物  を生産するアウトドアの「探索」モードの後の、そしてどんなタイミングインフォメーションでもないパワーを見いだすために、大きい符号のウインドウを見るとき、このモードは有用である。
【０１３０】
１０ミリセカンドの記録の中に、ナビゲーションデータ位相の反転が起こるので、若干のデータ喪失がある。  しかしながら、他のすべての１０ミリセカンドの記録が、このような損失を経験しないであろう。位相の反転が、正確に１０ミリセカンドの期間の真中にあるとき、記録は完全に喪失するであろう。もし位相が、記録の真中で、２０ミリセカンドごとに変わるならば、利用可能なパワーの半分は失われるであろう。
【０１３１】
２番目の方法が読むべき２番目に最も少数の相関物を持ち  、  ＢＴＴは持っていない、そして２つの５ミリセカンドの事前発見の間隔がそれぞれ相関する。ＢＴＴｍｏｄｅ    ＝  ０と  ＢＴＴ  ミリセカンド  ＝  １５である。それぞれの符号の仮説が、持続時間でそれぞれ正確に５  ミリセカンドである２つの相関物にアウトプットを行う。このモードは、タイミングインフォメーションが利用可能ではないとき、そして位相反転のための損失が最小にされるはずであるとき、例えば、アウトドアの「探索」モードの後に、パワーを見いだすために大きい符号ウインドウを見るときに有用なものです。
【０１３２】
ある意味で、５ミリセカンドのパワーの計算がされる、あるいは位相の反転は、それの全域に渡って統合しないために、汚点がつき得るものである。例えば、１００Ｈｚに代えて２００Ｈｚというように、わりに周波数がより広い周波数バンド幅のため、とか周波数ピークを探すことに対して、５ミリセカンドの事前発見の間隔の選択が同じく有用である。
【０１３３】
３番目の方法が  ＢＴＴ  発見の前で、  ＢＴＴ  インフォメーションを検索し、２つの５ミリセカンドの事前発見の間隔が、それぞれ相関する。    ＢＴＴｍｏｄｅ    ＝  （１から１５まで）と  ＢＴＴ  ミリセカンド  ＝  １５である。ＢＴＴｍｏｄｅで特別に指定されたもの以外の符号の仮説が、持続時間でそれぞれ正確に５ミリセカンドである２つの相関物の出力を行う。  ＢＴＴｍｏｄｅ  と等しい符号の仮説は、１１の相関物の中にアウトプットを行う。このモードは、符号と周波数のピークが解決された後、そしてどんな位相ナビゲーションデータの位相反転でも捜すときに、有用である。
【０１３４】
４番目の方法が、  ＢＴＴ  発見の前で、  ＢＴＴ  インフォメーションを検索し、１０ミリセカンドの事前発見の間隔が、それぞれの相関物で使われている。ＢＴＴｍｏｄｅ  ＝  （１−１５）と  ＢＴＴ  ミリセカンド  ＝  ０である。それぞれの符号の仮説が、  ＢＴＴｍｏｄｅ  によって指定された符号の仮説以外の１つの相関物へアウトプットを行う。このモードは、少し奇妙であり、しかしそれはソフトウェアによって実装された状態マシンによって読まれる相関物の数を最小にするのである。
【０１３５】
５番目の方法が、  ＢＴＴ  ミリセカンドと、  ＢＴＴｍｏｄｅ    ＝  （１−１５）、それと  ＢＴＴ  ミリセカンド  ＝  （１−１０）とのエポックにおいて、相関物の分割で、  ＢＴＴ  を維持、保守するものである。すべての符号の仮説は、  ＢＴＴｍｏｄｅ  によって指定されたものを除き、２つの相関物にアウトプットを行う。分割のポイントは、  ＢＴＴ  ミリセカンドに指定される、ミリセカンドのエポックである。エポックが、ミリセカンド境界線の全域に渡ってラップされるかを観察するために、１ミリセカンドの相関物の値を調べることは、継続する。これは、最も良い整数ミリセカンドのレンジパフォーマンスを提供する。追跡ロジックは、正確に２０ミリセカンドの首尾一貫した統合期間で、最大の弱い信号追跡能力のために２０ミリセカンドの事前発見の間隔に、スイッチすることが可能である。
【０１３６】
６番目の方法が、  ＢＴＴ  ミリセカンドのエポックに、相関物の分割により、  ＢＴＴ  を検索するのをやめるものである。ＢＴＴｍｏｄｅ    ＝  ０と  ＢＴＴ  ミリセカンド  ＝  （１−１０）、すべての符号の仮説は、分割ポイントが  ＢＴＴ  ミリセカンドに指定されるミリセカンドのエポックである２つの相関物にアウトプットを行うものである。
【０１３７】
非常にわずかな間隔のピークにズームインするアコーディオンモードを使う時に、このモードは有用である。ピークは反映されたパワーのためと、そしてより大きいビームが近所にないことを確かめるために、調べられるものである。
【０１３８】
追跡ロジックは、正確に２０ミリセコンドの首尾一貫した統合期間のおかげで、最大の弱い信号追跡能力のために２０ミリセカンドの事前発見の間隔に、スイッチすることができるものである。
【０１３９】
「ｎｕｍＨｙｐｏｔｈｅｓｅｓ」  変数が、それぞれのプレイバックを実行する符号の仮説の数をコントロールする。この無署名の１バイトは、ミックスで使われる相関物の数である。この方法は、ローパワーの従来の追跡モードを作るために、  ＢＴＴｍｏｄｅの発見の後、  と共に使用されるものである。
【０１４０】
「ｎｕｍＨｙｐｏｔｈｅｓｅｓ」  は、１以上のモードで、同じく有効である。ありそうにない符号の仮説を検索しないことによって、もっと狭い範囲が、時間とパワーとをセーブするために探索され得る。「探索」モードのために、それは、どのくらい多くの、シフト遅れレジスタがアクティブであるかを意味するものである。この場合、アクティブな相関物の数は、「  ｎｕｍＨｙｐｏｔｈｅｓｅｓ」  に匹敵する。
【０１４１】
「  ｗｅａｋＭｅａｓ  」モードのために、それは、どのくらい多くの、バーチャル符号ジェネレーターのアウトプットがアクティブであるかを意味するものである。１６個のスーパーバーチャル符号ジェネレーターが活発にしておかれるので、アクティブな相関物の数は、（１６  ＊  ｎｕｍＨｙｐｏｔｈｅｓｅｓ  ）で表されるものである。もし「  ｎｕｍＨｙｐｏｔｈｅｓｅｓ」  が、１つであるならば、探索されるレンジは、「  ｓｔａｒｔｉｎｇＣｏｄｅＰｈａｓｅ」  から「  ｓｔａｒｔｉｎｇＣｏｄｅＰｈａｓｅ」にチップの３０／６４を追加した範囲となる。「  ｔｉｍｅＴｒａｃｋ  」モードのために、それは、どのくらい多くの、スーパーバーチャル符号ジェネレーターが活発であるかを意味するものである。アクティブな相関物の数は、上に論じられた  ＢＴＴ  モードの機能である。
【０１４２】
「ｈｙｐｏｔｈｅｓｉｓＳｐａｃｉｎｇ」  変数は、それぞれの符号の仮説の間のチップの、６４の間隔をコントロールするものである。「探索」モードで、間隔はチップの３１／６４に配線され、それでこの変数は無視されるのである。「  ｗｅａｋＭｅａｓ  」モードで、  相関物の間隔は、チップの２／６４となるように自動的にプログラムされるものである。それで、「ｈｙｐｏｔｈｅｓｉｓＳｐａｃｉｎｇ」  変数は、「  ｔｉｍｅＴｒａｃｋ  」モードで主に使われるのである。これは１−３２の広範囲を持っている、５ビットの無署名の数である。
【０１４３】
0003574429.tif 000014
変数は、符号の仮説の隙間が所定の周波数で新しい位相に移される時の回数を表しているものである。すべての可能な符号の仮説の、完全な符号走査を得るために、この変数は、１２の値を持っているであろう。それで、これは広範囲の１−１６を持っている、４ビットの数である。それは、「探索」モードで使うだけであり、そして「  ｗｅａｋＭｅａｓ  」モードで、そして同じく「  ｔｉｍｅＴｒａｃｋ  」モードでも無視されるものである。
【０１４４】
「ｗｉｎｄｏｗＳｈｉｆｔ」変数は、
0003574429.tif 000015
がより大きいとき、連続した符号ウインドウの間に存在しなくてはならない符号位相で、シフトをコントロールするものである。符号ウインドウが、「探索」モードで繰り返されるので、それで間隔はただ（  ｎｕｍＨｙｐｏｔｈｅｓｅｓ  ＊  ３１）の積である。シフトが５までに去ったとき、それらはＤＳＰ１１４で容易に計算されて、そして次にオリジナルの数、例えば、（ｘ  ＊  ３１  ＝  ｘ  ＊  ３２  −  ｘ）を引くことができる。より大きい周波数のレンジが探索されなくてはならないとき、そして必要とされるとき、「ｔｉｍｅｓＴｗｏＭｏｄｅ」  変数が、より速いプレイバック能力をオンにする。
【０１４５】
分配モードは、もっとゆっくり時計を走らせて、そして「  ｔｉｍｅＴｒａｃｋ  」モードで、ただ少数のプレイバックだけがされる必要がある時として、実行上のパワーをセーブするために、必要とされるかもしれない。「ｎｕｍＲｅｃｏｒｄｓ」  変数は、現在のセットの仮説を動かすための連続したレコードの数である。１つより大きい値が、我々が本当にただ一度に１機の人工衛星を捜すことだけをしていることを意味しており、そしてそれで、我々が他の人工衛星に切り替えていないので、我々は仮説の現在のセットに滞在することができる。これは「探索」モードで、ただ使われるだけである。例えば、１秒間１つの衛星に留まるために。    この場合、この変数は、１００の価値を持っているであろう。これは、最高で２．５５秒の範囲を持つ、無署名の８ビットの数である。
【０１４６】
「ｎｕｍＦｒｅｑ」  変数は、現在の符号の仮説を持って探索される周波数の数である。これは、広範囲の１−２０を持っている無署名の５ビットの数である。それは周波数検索を定義するために、ステップサイズの変数とともに働くものである。
【０１４７】
「ｆｒｅｑＳｔｅｐ」  変数は、連続した探索周波数の間に、周波数間隔を表すものである。ステップ大きさは、一般に事前発見の間隔に対応する周波数であるべきである。しかしながら、より小さいサイズが、周波数のピークを微調整するための測定で使われることができる。
【０１４８】
探索は、最も小さい周波数側から始められ、そして最も大きい周波数へと継続する。それは、中心で始まるものと同じ範囲をカバーしており、そして次に両方の方向へ動いていくものである。このような方法は、ＤＳＰ１１４に実装することがより容易である。
【０１４９】
例えば、我々は、およそ１０００  Ｈｚ  の±４００  Ｈｚ  を捜索することを望んだと考えてください。    我々は、スタートの周波数を、６５０  Ｈｚ  であるようにして、そして後述されているように、残っている周波数を生成する１００Ｈｚの、８つのステップを行う。この場合、  「ｃａｒｒｉｅｒＮｃｏＶａｌｕｅ」  が６５０  Ｈｚに  、  「ｎｕｍＦｒｅｑ」    ＝  ８、に対応しており、そして  「ｆｒｅｑＳｔｅｐ」  は、１００Ｈｚである。
【０１５０】
我々がオフセットと遅れのスーパーバーチャルキャリアＮＣＯ変数のために、そして同じくバーチャル符号ジェネレーターの変数である  Ｃ１  、  Ｃ２ｂｉｔ  、カウント、そして状態のために、ダブル貯蔵を持っていないという仮定をしてください。このようにして、余分の記憶装置を必要とすることは避けられる。それは、それらを計算するとき、ＤＳＰがアイドリングしていることを意味し、そして、それはより長いセットアップ時間、しかしより少ないゲートを意味しているのである。もし、急ぐことが後で決められることができ、そして余分なゲート後で与えることができるという余裕があられることができるなら、プレイバックが理解されているように、事前計算した定数をバッファに入れることは、考慮されるべきである。
【０１５１】
±１０００  Ｈｚ  の周波数の探索は、ランタイムに極めて少ししか事前計算を必要としないので、この現在のアプローチは許されるものである。実際に、それは最初の１０ミリセコンドに起こるだけである。残っている２０のプレイバッククロックにおいて、２０の事前計算をするのには、十分なリソースがなければなりません。もしそうでなければ、実際に、最終目的地のレジスタに、それらを詰め込む前に、追加のメモリが事前計算の結果を記憶するために必要とされるかもしれない。
【０１５２】
ＤＳＰ１１４の状態マシンデザインは、典型的にプレイバッククロックがどのように選択されて、そしてコントロールされるか定義することを含むことであろう。「ｓｔａｒｔＰｌａｙｂａｃｋ」  変数が、プレイバッククロックによって定まって、そしてプレイバックミックスを始めるために使われる。「ｐｌａｙｂａｃｋＳａｍｐｌｅｓＴｏＧｏＣｏｕｎｔ」  変数が、ミックスで処理されるために残っているサンプルの番号を定義する。それが、そしてクロックを下準備することについての数において、２１１２で初期化され、そして、そうであることは処理されるそれぞれのサンプルクロックを減少させた。最初の値がゼロに達するとき、処理が完了することとなる。「ｐｌａｙｂａｃｋＣｌｏｃｋＳｅｌｅｃｔｏｒ」  変数が、プレイバッククロック速度を選ぶ。値がゼロであるときは、マスタークロックは直接使われる。値が１であるとき、マスタークロックは、２倍されるものである。「ｐｌａｙｂａｃｋＣｌｏｃｋ」  時計が、すべてのランタイムブロック稼働するために使われる。「ｐｒｉｍｉｎｇＣｏｍｐｌｅｔｅ」  シグナルがいつ下準備することが終えられる、そしてミックスが始められる準備ができているかを示している。下準備する時の間に、それはゼロである。「ｐｌａｙｂａｃｋＣｏｍｐｌｅｔｅ」  シグナルが完全な２１１２年のサンプルミックスがいつ終了しているかを示します、そして相互関係結果は持ちこたえているラッチで効力がある。    下準備することであるとき、あるいはどんなプレイバックでも  ＲＩＳＣ  プロセッサ２５８によってクリアされたとき、それは同じくゼロである。
【０１５３】
３つの可能な状態が、同じ基本的な状態マシンを使うことができる。最も典型的な探索は、多数の周波数の可能な  符号位相が並べるすべてを捜索するはずです。    ユーザー時間あるいはポジションを持つ前に、これはなされるものである。状態マシンは、自動的１０ミリセカンドのミックスを行い、そして定義された範囲の、すべての符号と周波数とをするでしょう。
【０１５４】
それぞれの探索は、すべてのプレイバック可能性を使います、それで他の仮説が並列になされるのを阻止しなくてはならない。そのようなものがさもなければ、つまりもしすべての状態が救われて、また修復されない限りは、ミックスの連続性が破滅させられるであろう。次の状態を供給するためにマイクロプロセッサを得るのを待つことによって、どのブロックもクロックを浪費しないで、最大限のスピードであり得るように、この自治は必要とされる。
【０１５５】
符号の探索は、スタートの符号、各符号間の間隔、そして探索される符号の数、を定義することによって、指定されることができ得る。チップ間隔が、３１／６４である、１７６相関物のモデルに基づいて、我々は１２のステップで完全な１０２３のチップを探索することができる。ＤＳＰ１１４へのコマンドは、すべての１７６の仮説を使っており、そしてコードがもう１つのコードスペクトルの部分を捜索するそれぞれのミックスの間に、１７６のサンプルクロックによって、シフトされる１２の連続したミックスをするはずである。最初のプレイバックが完全であるときは、ＤＳＰ１１４は、自動的に符号をシフトして、次の移行を開始して、そして、１つの周波数において求められた探索の数が消耗するまで、プロセスを続けるものである。周波数の探索は、多くの周波数のプロセスや、ステッピング変数「  ｎｕｍＦｒｅｑ  」と「  ｆｒｅｑＳｔｅｐ  」を繰り返すことにより、行った。
【０１５６】
±１０００  Ｈｚ  と１秒であるという状態で、最初の探索テクニックがすべての符号位相において、１台の人工衛星乗り物（  ＳＶ  ）のためにすべてのプレイバックを使う。    もう１つのテクニックは、ただ符号スペクトルの小さい部分、仮説が使われるほどすべての符号よりそれ少なくだけを検索することである。たった１つのプレイバックが、首尾一貫していない、広い筋が通っていないスキャンのために使われる。およその符号の場所が知られている、そして不確実成長モデルに基づいて必要であるよりさらに探索する必要がないとき、これは運営上の電源を節約します。
【０１５７】
「ｔｉｍｅＴｒａｃｋ」  モードは、狭い首尾一貫した走査のために、１つのプレイバックを使用する。このような検索は、統合された境界線をナビゲーションデータビット位相反転と同列にそろえる。「ｔｉｍｅＴｒａｃｋ」  モードは、従来の種類のものであり、その中に統合期間がミリセカンドではなく、地域的に生成されたコース獲得（  ＣＡ；  ｃｏｕｒｓｅ  ａｃｑｕｉｓｉｔｉｏｎ  ）のエポックに同期させられてしまう。    ゴールは過ぎてどんな位相反転でもまとめるのを避けるはずである、そしてもっと多くの位相を与えられた  相関物が異なったエポックに個別の統合  をセーブすることを要求する。１０ミリセカンドの事前発見の間隔の間、１１の相関物が適切に１０エポックのデータをセーブするために必要とされる。必要とされる符号の仮説の数は１６に、１６  ＊  １１  ＝  １７６から減らされます。
【０１５８】
「  ｔｉｍｅＴｒａｃｋ  」モードは、縮小されて、そしてアコーディオンのように拡大されることができる。仮説がそうであり得るそれぞれの符号の間の間隔は、チップの１／６４から３２／６４の間に適応しました。    これは１６のバーチャル符号ジェネレーターによって可能にされる。異なった符号の仮説は、符号ＮＣＯから１７の符号ジェネレーターアウトプット遅れ蛇口と「  ｄｉｖ３  」シグナルからシミュレートされます。    「  ｔｉｍｅＴｒａｃｋ  」モードは別個のアウトプット、あるいは時代について２小片の中にカットされたアウトプットのために１０ミリセカンドの事前発見の  間隔のすべてのエポックを選ぶことができる。
【０１５９】
レベルが高い状態マシンは、好ましくは３つの主なプログラム制御ループを持っている。記録プログラム制御ループが「探索」モードだけで動作して、そして大きい周波数範囲の探索を自由に操る。それはスペースと他のものが中間に動かされることができないというすべての利用可能な仮説を消費する。
【０１６０】
周波数プログラム制御ループが、多数の周波数において同じ符号の仮説を繰り返して、そして多数の周波数を生成する速い方法である。プロセッサは次の探索周波数を指揮するためにただ介入するだけである。レコードプログラム制御ループと一緒にされるとき、それは非常にパワフルな探索マシンを供給する。符号  −ドップラーＮＣＯは、それぞれの周波数で独立して更新されることができる。
【０１６１】
「ｃｏｄｅＷｉｎｄｏｗ」  プログラム制御装置ループが、連続した符号探索を行うために使用される。最初の符号ウインドウが、スタートの絶対の位相を設定するテーブルルックアップで定義され、そしてどんな次の探索でも相対的に符号をシフトすることによって、符号の位相を生み出す。
0003574429.tif 000016
本願発明が、現在望ましい実施例に関して記述されたが、その内容の公表が制限すると解釈されないはずであることは理解されるところである。    上述の明細書を読んでいただいた後に、当業者にとって、種々の変化と修正が疑いなく明白になることでしょう。したがって、付加されたクレームが発明の本当の精神と範囲の中で、すべての変化と修正をカバーしていると解釈されることは意図するところである。
【図面の簡単な説明】
【図１】本願発明の実施例を示す、ユーザー器具、ネットワーククライアントと  Ｗｅｂ
サーバの間に分配される、ユーザーナビゲーションシステムの機能ブロック図で
ある。
【図２】本願発明の実施例を示す、受信機ミキサーが稼働している状態にするハードウ
ェアによって実装された状態のマシンと、そのハードウェアによって実装された
状態のマシンのデータ要求を満たすソフトウェアによって実装された状態マシン
を含む、デジタル  シグナル  プロセッサの機能ブロック図である。
【図３】本願発明の実施例を示す、埋め込みの  ＲＩＳＣ  プロセッサと、そのナビゲーショ
ンプラットホームとのインタフェースによって実行される、ファームウェアオペ
レーティング・システムの上位レベルの機能ブロック図である。
【図４】本願発明の実施例を示す、図１の受信機に含められるクロック発生と制御に関
する、機能ブロック図である。
【符号の説明】
１０４・・・・・ネットワーククライアント
１０６・・・・・Ｗｅｂサーバ
２１８・・・・・状態マシン
２２６・・・・・仮説メモリ
２３６・・・・・ゲインコントローラー
３０２・・・・・パワーオン初期化装置
３０４・・・・・クロックジェネレータとコントローラー
３０６・・・・・モードブロックアレイプログラムコントロールループ
３０８・・・・・事前計算とプレイバックブロック
３１０・・・・・ラッチ可能ブロック
３１２・・・・・ナビゲーションプラットホーム
【図１】
0003574429.tif 000017
【図２】
0003574429.tif 000018
【図３】
0003574429.tif 000019
【図４】
0003574429.tif 000020