(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023084068
(43)【公開日】2023-06-16
(54)【発明の名称】任意の電力割り当てを有する複数の信号成分を有する積分信号を処理するためのシステム、媒体、および方法
(51)【国際特許分類】
G01S 19/35 20100101AFI20230609BHJP
G01S 19/30 20100101ALI20230609BHJP
【FI】
G01S19/35
G01S19/30
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022076616
(22)【出願日】2022-05-06
(31)【優先権主張番号】17/543,002
(32)【優先日】2021-12-06
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520221224
【氏名又は名称】ノバテル インク.
【氏名又は名称原語表記】NovAtel Inc.
【住所又は居所原語表記】10921 14th Street NE, Calgary, Alberta T3K 2L5, Canada
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】デイヴィッド エイ. ブラウン
(72)【発明者】
【氏名】パトリック シー. フェントン
【テーマコード(参考)】
5J062
【Fターム(参考)】
5J062CC07
5J062DD15
5J062DD24
(57)【要約】 (修正有)
【課題】任意の電力割り当てを有する複数の信号成分を有するGNSS積分信号を処理
【解決手段】GNSS受信機の積分信号処理ユニットは、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを並列に生成する。複数の複素回転されたサンプル(例えば、進み複素回転されたサンプル、遅れ複素回転されたサンプル)を、PRNコードシーケンス内のコードチップ数以下の任意の幅にわたるウィンドウ内に並列に累積する。積分信号処理ユニットは、1サンプルに対して複数の複素回転されたサンプルを順次生成する。複数の複素回転されたサンプル(例えば、進み複素回転されたサンプル、定時複素回転されたサンプル、遅れ複素回転されたサンプル)を、ウィンドウ内に順次累積する。GNSS受信機は、相関技術を実施するため、マルチパス緩和技術を実施するため、かつ/または積分信号を追跡するために、累積された複素回転されたサンプルを利用できる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ナビゲーション受信機であって、
複数の信号成分間で任意の電力割り当てを有する複数の信号成分を有する積分信号のために、当該ナビゲーション受信機は、プロセッサによって実行される積分信号処理ユニットを含み、
前記積分信号処理ユニットは、
前記積分信号のサンプルに対して少なくとも1つのローカルコードを生成し、
前記少なくとも1つのローカルコードのうちのそれぞれのローカルコードに対して、位相回転値およびコードシフト値を選択し、
前記位相回転値に基づいて、前記サンプルに対する1つまたは複数の複素回転されたサンプルを生成し、
前記コードシフト値に基づいて、疑似ランダムノイズ(PRN)期間の少なくとも一部にわたるウィンドウのために、複数のタイムスロットのうちの1つまたは複数のタイムスロットを決定する
ように構成されている、ナビゲーション受信機。
【請求項2】
前記積分信号処理ユニットは、
前記コードシフト値を利用して、1つまたは複数のコードチップにわたる複数のビンのうちの1つまたは複数のビンをイネーブルする
ようにさらに構成されており、
前記複数のビン内における累積された複素回転されたサンプルは、(1)1つまたは複数の相関技術、(2)1つまたは複数のマルチパス緩和技術、および(3)1つまたは複数の搬送波ドップラー周波数推定技術のうちの少なくとも1つを実施するためにGNSS受信機によって利用される、
請求項1記載のナビゲーション受信機。
【請求項3】
前記積分信号処理ユニットは、
少なくとも前記1つまたは複数の複素回転されたサンプルと共に、1つまたは複数の重み付けベクトルを利用して、定時信号および進みマイナス遅れ(early minus late)信号のうちの少なくとも一方を生成する
ようにさらに構成されており、
前記定時信号および前記進みマイナス遅れ信号は、前記積分信号を追跡するために利用される、
請求項1記載のナビゲーション受信機。
【請求項4】
前記積分信号は、ACE-BOC(Asymmetric Constant Envelope Binary Offset Carrier)多重化に基づく、請求項1記載のナビゲーション受信機。
【請求項5】
前記少なくとも1つのローカルコードは、(1)前記積分信号内のコードの進みバージョン、(2)前記積分信号内のコードの定時バージョン、および(3)前記積分信号内のコードの遅れバージョンのうちの1つまたは複数に対応する、請求項1記載のナビゲーション受信機。
【請求項6】
前記少なくとも1つのローカルコードは、単一のローカルコードであり、
前記1つまたは複数の複素回転されたサンプルは、並列に生成された進み複素回転されたサンプルと、遅れ複素回転されたサンプルとを含む、
請求項1記載のナビゲーション受信機。
【請求項7】
前記少なくとも1つのローカルコードは、3つのローカルコードを含み、
前記1つまたは複数の複素回転されたサンプルは、順次に生成された進み複素回転されたサンプルと、定時複素回転されたサンプルと、遅れ複素回転されたサンプルとを含む、
請求項1記載のナビゲーション受信機。
【請求項8】
アンテナで受信した積分信号を処理するための方法であって、
前記積分信号は、任意の電力割り当てを有する複数の信号成分を有し、
当該方法は、
前記積分信号のサンプルに対して少なくとも1つのローカルコードを生成することと、
前記少なくとも1つのローカルコードのうちのそれぞれのローカルコードに対して、位相回転値およびコードシフト値を選択することと、
前記位相回転値に基づいて、前記サンプルに対する1つまたは複数の複素回転されたサンプルを生成することと、
前記コードシフト値に基づいて、疑似ランダムノイズ(PRN)期間の少なくとも一部にわたるウィンドウのために、複数のタイムスロットのうちの1つまたは複数のタイムスロットを決定することと
を含む、方法。
【請求項9】
当該方法は、
前記コードシフト値を利用して、1つまたは複数のコードチップにわたる複数のビンのうちの1つまたは複数のビンをイネーブルすること
をさらに含み、
前記複数のビン内における累積された複素回転されたサンプルは、(1)1つまたは複数の相関技術、(2)1つまたは複数のマルチパス緩和技術、および(3)1つまたは複数の搬送波ドップラー周波数推定技術のうちの少なくとも1つを実施するためにナビゲーション受信機によって利用される、
請求項8記載の方法。
【請求項10】
当該方法は、
少なくとも前記1つまたは複数の複素回転されたサンプルと共に、1つまたは複数の重み付けベクトルを利用して、定時信号および進みマイナス遅れ信号のうちの少なくとも一方を生成すること
をさらに含み、
前記定時信号および前記進みマイナス遅れ信号は、前記積分信号を追跡するために利用される、
請求項8記載の方法。
【請求項11】
前記積分信号は、ACE-BOC(Asymmetric Constant Envelope Binary Offset Carrier)多重化に基づく、請求項8記載の方法。
【請求項12】
前記少なくとも1つのローカルコードは、(1)前記積分信号内のコードの進みバージョン、(2)前記積分信号内のコードの定時バージョン、および(3)前記積分信号内のコードの遅れバージョンのうちの1つまたは複数に対応する、請求項8記載の方法。
【請求項13】
前記少なくとも1つのローカルコードは、単一のローカルコードであり、
前記1つまたは複数の複素回転されたサンプルは、並列に生成された進み複素回転されたサンプルと、遅れ複素回転されたサンプルとを含む、
請求項8記載の方法。
【請求項14】
前記少なくとも1つのローカルコードは、3つのローカルコードを含み、
前記1つまたは複数の複素回転されたサンプルは、順次に生成された進み複素回転されたサンプルと、定時複素回転されたサンプルと、遅れ複素回転されたサンプルとを含む、
請求項8記載の方法。
【請求項15】
前記サンプルに対して生成された前記1つまたは複数の複素回転されたサンプルの数は、Nに等しく、Nは、PRNコードチップの数以下である、請求項8記載の方法。
【請求項16】
ナビゲーション受信機であって、
複数の信号成分間で任意の電力割り当てを有する複数の信号成分を有する積分信号のために、当該ナビゲーション受信機は、プロセッサによって実行される積分信号処理ユニットを含み、
前記積分信号処理ユニットは、
前記積分信号のサンプルに対して少なくとも1つのローカルコードを生成し、
前記少なくとも1つのローカルコードのうちのそれぞれのローカルコードに対して、位相回転値およびコードシフト値を選択し、
前記位相回転値に基づいて、前記サンプルに対する1つまたは複数の複素回転されたサンプルを生成し、
前記1つまたは複数の複素回転されたサンプルを、疑似ランダムノイズ(PRN)コードシーケンス内のコードチップの数以下のあらゆる任意の幅のウィンドウにわたる複数のビンのうちの1つまたは複数のビン内に累積する
ように構成されている、ナビゲーション受信機。
【請求項17】
前記積分信号は、ACE-BOC(Asymmetric Constant Envelope Binary Offset Carrier)多重化に基づく、請求項16記載のナビゲーション受信機。
【請求項18】
前記複数のビン内に累積された、累積された複素回転されたサンプルは、(1)1つまたは複数の相関技術、(2)1つまたは複数のマルチパス緩和技術、および(3)1つまたは複数の搬送波ドップラー周波数推定技術のうちの少なくとも1つを実施するために前記ナビゲーション受信機によって利用される、請求項16記載のナビゲーション受信機。
【請求項19】
前記複数のビン内に累積された、累積された複素回転されたサンプルは、前記積分信号を追跡するために前記GNSS受信機によって利用される、請求項16記載のナビゲーション受信機。
【請求項20】
前記少なくとも1つのローカルコードは、単一のローカルコードであり、前記1つまたは複数の複素回転されたサンプルは、並列に生成された進み複素回転されたサンプルと、遅れ複素回転されたサンプルとを含むか、
または
前記少なくとも1つのローカルコードは、3つのローカルコードを含み、前記1つまたは複数の複素回転されたサンプルは、順次に生成された進み複素回転されたサンプルと、定時複素回転されたサンプルと、遅れ複素回転されたサンプルとを含む、
請求項16記載のナビゲーション受信機。
【発明の詳細な説明】
【技術分野】
【0001】
背景
技術分野
本発明は、全般的には、グローバルナビゲーション衛星システム(GNSS)に関し、より具体的には、任意の電力割り当てを有する複数の信号成分を有する積分信号を処理するためのGNSS受信機に関する。
【0002】
背景情報
グローバルナビゲーション衛星システム(GNSS)の開発に伴い、多様なサービス(例えば、ポジショニング、ナビゲーション、タイミング等)を提供するために、ますます多数のGNSS信号が放送されている。そのようなサービスを提供する際におけるリソースを節約するために、複数の信号を多重化して1つの複合信号にする必要がある場合がある。さらに、複合信号は、例えば非線形増幅によって引き起こされる可能性のある信号歪みを緩和するための定包絡特性を有することができる。
【0003】
ACE-BOC(Asymmetric Constant Envelope Binary Offset Carrier)は、4つの独立したスペクトル拡散コードを、任意の電力比の組み合わせを有する積分信号の2つの異なる搬送波周波数に変調することを可能にする二重周波数定包絡多重化技術である。他の定包絡多重化技術と比較して、ACE-BOCは、信号成分の数や、成分間の電力比等の点で、より高い設計柔軟性を提供することができる。そのような設計柔軟性は、種々のサービスのために必要とされ得る信号方式の最適化における多様性を提供することができる。しかしながら、積分信号に関連する設計柔軟性は、結果的に、積分信号の処理における複雑さをもたらす可能性がある。
【0004】
概要
1つまたは複数の実施形態では、本システム、本媒体、および本方法は、任意の電力割り当てを有する複数の信号成分を有する積分信号を処理する。一実施形態では、積分信号処理ユニットは、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを並列に生成することができ、これにより、サンプルに対する複数の複素回転されたサンプルを、疑似ランダムノイズ(PRN)コードシーケンス内のコードチップの数以下のあらゆる任意の幅にわたるウィンドウ内に並列に累積することができる。例えば、ウィンドウは、少なくとも1.5個のコードチップ(例えば、2個のコードチップ、3個のコードチップ、10個のコードチップ等)にわたることができる。
【0005】
一実装形態では、グローバルナビゲーション衛星システム(GNSS)受信機の積分信号処理ユニットは、積分信号のサンプルに対してローカルコードを生成することができ、このローカルコードは、積分信号内のコードに対応することができる。積分信号処理ユニットは、ローカルコードに基づいて位相回転値およびコードシフト値を選択することができる。例えば、位相回転値およびコードシフト値は、シフト/位相ルックアップテーブルから選択可能である。積分信号処理ユニットは、選択された位相回転値に基づいて、サンプルに対する進み(early)複素回転されたサンプルと、遅れ(late)複素回転されたサンプルとを並列に生成することができる。
【0006】
積分信号処理ユニットは、選択されたコードシフト値を利用して、少なくとも1.5個のコードチップ(例えば、2個のコードチップ)にわたる進みコード位相値および遅れコード位相値を並列に生成することができ、この場合、遅れコード位相値は、コード位相の1疑似ランダムノイズ(PRN)チップ相当の分だけ時間的にオフセットされる。積分信号処理ユニットは、進みコード位相値および遅れコード位相値を利用して、進みビンイネーブル出力および遅れビンイネーブル出力から最終的なビンイネーブル出力を生成することができる。積分信号処理ユニットは、少なくとも1.5個のコードチップ(例えば、2個のコードチップ)にわたるウィンドウのために生成された最終的なビンイネーブル出力を利用して、単一のサンプルに対して複数の複素回転されたサンプル(例えば、進み複素回転されたサンプルと、遅れ複素回転されたサンプルと)を並列に累積することができる。
【0007】
例えば、最終的なビンイネーブル出力を利用して、少なくとも1.5個のコードチップ(例えば、2個のコードチップ)にわたる複数のビンのうちの1つまたは2つのビン内に、進み複素回転されたサンプルと、遅れ複素回転されたサンプルとを並列に累積することができる。複数のビンを使用して、1つまたは複数の相関技術、および/または1つまたは複数のマルチパス緩和技術を実施するために必要とされ得る相関値を生成することができる。追加的または代替的に、重み付けビンは、進みビンイネーブル出力および遅れビンイネーブル出力を利用して、積分信号を追跡する目的で、1.5個のコードチップ(例えば、2個のコードチップ)にわたるウィンドウのために、進み複素回転されたサンプルと、遅れ複素回転されたサンプルとを並列に累積することができる。
【0008】
一実施形態では、積分信号処理ユニットは、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを順次に生成することができ、これにより、サンプルに対する複数の複素回転されたサンプルを、少なくとも1.5個のコードチップ(例えば、3個のコードチップまたは10個のコードチップ)にわたるウィンドウ内に順次に累積することができる。特に、積分信号処理ユニットは、積分信号の1つのサンプルに対して複数のローカルコードを生成することができ、これらの複数のローカルコードは、積分信号内のコードに対応する。例えば、複数のローカルコードは、積分信号内のコードの進みバージョン、積分信号内のコードの定時(punctual)バージョン、および積分信号内のコードの遅れバージョンを含むことができる。
【0009】
積分信号処理ユニットは、最小値から開始して複数のローカルコードの数に対応する値まで増分するカウンタの値に基づいて、複数のローカルコードのうちの1つのローカルコードをシフト/位相ルックアップテーブルに供給することができる。したがって、複数のローカルコードの各々は、カウンタが増分するにつれてシフト/位相ルックアップテーブルに順次に供給される。
【0010】
積分信号処理ユニットは、供給されたローカルコードに基づいて位相回転値およびコードシフト値を選択することができる。積分信号処理ユニットは、選択された位相回転値に基づいて、複素回転されたサンプルを生成することができる。積分信号処理ユニットは、ウィンドウが少なくとも1.5個のコードチップ(例えば、3個のコードチップ)にわたるように、必要に応じて、カウンタの値に基づいて選択されたコードシフト値を時間的にオフセットさせることにより、選択されたコードシフト値に基づいて、コード位相値を生成することができる。
【0011】
例えば、コードの進みバージョンに基づいて選択されたコードシフト値は、カウンタが0の値であるので、時間的にオフセットされてはならない。コードの定時バージョンに基づいて選択されたコードシフト値は、カウンタが1の値であるので、コード位相の1PRNチップ相当の分だけ時間的にオフセット可能である。さらに、コードの遅れバージョンに基づいて選択されたコードシフト値は、カウンタが2の値であるので、コード位相の2PRNチップ相当の分だけ時間的にオフセット可能である。したがって、この例では、ウィンドウは、3つのコードチップにわたっている。したがって、この例では、3つのコードチップにわたるウィンドウのために、複数のローカルコードの各々に対して複素回転値およびコード位相値が順次に生成される。
【0012】
積分信号処理ユニットは、生成されたコード位相値に基づいてビンイネーブル出力を生成することができる。積分信号処理ユニットは、少なくとも1.5個のコードチップ(例えば、3個のコードチップ)にわたるウィンドウのためにそれぞれ生成されたビンイネーブル出力を利用して、単一のサンプルに対して複数の複素回転された値を順次に累積することができる。例えば、それぞれのビンイネーブル出力を利用して、少なくとも1.5個のコードチップ(例えば、3個のコードチップ)にわたる複数のビン内に、複数の複素回転されたサンプルを順次に累積することができる。複数のビンを使用して、1つまたは複数の相関技術および/または1つまたは複数のマルチパス緩和技術を実施するために必要とされ得る相関値を生成することができる。追加的または代替的に、重み付けビンは、それぞれのビンイネーブル出力を利用して、積分信号を追跡する目的で、1.5個のコードチップ(例えば、3個のコードチップまたは10個のコードチップ)にわたるウィンドウのために、複数の複素回転されたサンプルを順次に累積することができる。
【0013】
以下の説明は、添付の図面を参照する。
【図面の簡単な説明】
【0014】
【
図1】本明細書で説明される1つまたは複数の実施形態によるシステムの概略ブロック図である。
【
図2A】本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを並列に生成することによって積分信号を処理することができる積分信号処理ユニットの概略ブロック図である。
【
図2B】本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを並列に生成することによって積分信号を処理することができる別の積分信号処理ユニットの概略ブロック図である。
【
図2C】本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを並列に生成することによって積分信号を処理することができる別の積分信号処理ユニットの概略ブロック図である。
【
図3】本明細書で説明される1つまたは複数の実施形態によるシフト/位相ルックアップテーブルの概略ブロック図である。
【
図4】本明細書で説明される1つまたは複数の実施形態によるサンプルイネーブルデコーダの概略ブロック図である。
【
図5】本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを並列に生成することによって積分信号を処理するための例示的なフローチャートである。
【
図6A】本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを順次に生成することによって積分信号を処理することができる積分信号処理ユニットの概略ブロック図である。
【
図6B】本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを順次に生成することによって積分信号を処理することができる別の積分信号処理ユニットの概略ブロック図である。
【
図6C】本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを順次に生成することによって積分信号を処理することができる積分信号処理ユニットの概略ブロック図である。
【
図7A】本明細書で説明される1つまたは複数の実施形態によるシフトテーブルの概略ブロック図である。
【
図7B】本明細書で説明される1つまたは複数の実施形態によるサンプルイネーブルデコーダの概略ブロック図である。
【
図8】本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを順次に生成することによって積分信号を処理するための例示的なフローチャートである。
【0015】
実施形態の詳細な説明
図1を参照すると、システム100は、1つまたは複数のクライアントデバイス105と、1つまたは複数のナビゲーション信号、例えばGNSS衛星信号(図示せず)を送信する1つまたは複数のグローバルナビゲーション衛星システム(GNSS)衛星110のような、1つまたは複数の送信機とを含む。GNSS衛星信号を送信するGNSS衛星110が参照されてよいが、本明細書で説明される1つまたは複数の実施形態が、任意の種々異なるナビゲーション信号を送信する任意の種々異なる送信機、例えば地上送信機と共に利用されてよいことが明確に想定されている。したがって、GNSS信号を送信するGNSS衛星110の説明は、例示のみを目的として行われるべきである。
【0016】
GNSS衛星110は、限定するわけではないが、ガリレオ、北斗衛星導航系統(BDS)、全地球測位システム(GPS)、および/またはGLONASSのような、1つまたは複数の衛星ナビゲーションシステムに関連付けられてよい。例えば、GNSS衛星110は、ACE-BOC(Asymmetric Constant Envelope Binary Offset Carrier)多重化に基づく1つまたは複数の積分信号、すなわち積分GNSS信号を送信することができる。本明細書で説明される1つまたは複数の実施形態によれば、積分信号は、ACE-BOC信号と称されることがある。ACE-BOC多重化は、2つの異なる周波数における4つ以下の信号成分(例えば、4つ以下の独立したバイポーラの直接シーケンススペクトラム拡散信号)を結合して、1つの定包絡線積分信号にすることができ、この場合、信号成分は、任意の電力比、変調、およびコードレートを有することができる。例えば、4つの信号成分は、ガリレオ衛星コンステレーションのE5a-I、E5a-Q、E5b-I、およびE5b-Qであってよいし、または北斗衛星コンステレーションのB2a-I、B2a-Q、B2b-I、およびB2b-Qであってよい。
【0017】
クライアントデバイス105は、典型的には移動可能であり、アンテナ115と、GNSS受信機120、すなわちナビゲーション受信機とを含み、GNSS受信機120は、1つまたは複数のプロセッサ125と、メモリ130とを有する。例えば、クライアントデバイス105は、携帯電話、ラップトップコンピュータ、ポータブルコンピュータ、パーソナルデジタルアシスタント等であってよい。これに加えて、GNSS受信機120は、単一周波数、デュアル周波数、またはマルチ周波数の受信機であってよい。メモリ130は、本明細書で説明される1つまたは複数の実施形態に関連する1つまたは複数の値を格納することができる。
【0018】
1つまたは複数のプロセッサ125は、積分信号処理ユニット200(例えば、200A,200B,200C,200D,200E,および200F)を実行し、この積分信号処理ユニット200は、本明細書で説明される1つまたは複数の実施形態に従って、例えば、信号成分間で任意の電力割り当てを有する可能性がある積分信号を処理することができる。
【0019】
図2Aは、本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを並列に生成することによって積分信号を処理することができる積分信号処理ユニット200Aの概略ブロック図である。
【0020】
本明細書に記載の1つまたは複数の実施形態によれば、
図2A~
図4を参照して以下でさらに詳細に説明されるように、それぞれのサンプル201に対して進み複素回転されたサンプル215Aと、遅れ複素回転されたサンプル215Bとを並列に生成することによって、サンプルクロック204に同期された積分信号のサンプルを処理することができる。サンプル201に対する複素回転されたサンプル215Aおよび215Bは、疑似ランダムノイズ(PRN)コードシーケンス内のコードチップの数以下のあらゆる任意の幅にわたる数(N)の複数のビン220内に並列に累積可能である。例えば、ウィンドウは、少なくとも1.5個のコードチップ(例えば、2個のコードチップ)にわたることができる。一実装形態では、ビン220は、いくらかの所定の期間の間、複素回転されたサンプルを累積(総和)することができる。ビンは、ハードウェア、ソフトウェア、またはこれらの組み合わせであってよい。
【0021】
GNSS受信機120は、複数のサンプルに対する選択されたビン220内および/またはビン220の選択されたグループ内に累積された複素回転されたサンプル(例えば、215Aおよび215B)を使用して、1つまたは複数の相関技術、および/または1つまたは複数のマルチパス緩和技術を実施するために必要とされ得る相関値を生成することができ、かつ/または以下でさらに詳細に説明されるように、積分信号を追跡することができる。追加的または代替的に、以下でさらに詳細に説明されるように、重み付けベクトルを、複数のサンプルに対する複素回転されたサンプル(例えば、215Aおよび215B)と共に利用して、例えば、積分信号を追跡するために利用され得る相関値を生成することができる。
【0022】
一実装形態では、複素回転されたサンプルに対応する間隔および位置等を変化させるために、ビン220の、かつ/または種々のグループ分けで選択されたビン220の、サイズおよび/または開始点を変更することができる。例示的な例として、
図2Aのビン220が、2個のコードチップのスパンにわたって均等に離間された20個のビンを含むものと仮定する。さらに、第1の10個のビン(例えば、ビン0~ビン9)が、第1のコードチップにわたる「進みビン(early bins)」であり、第2の10個のビン(例えば、ビン10~ビン19)が、第2のコードチップにわたる「遅れビン(late bins)」であると仮定する。
【0023】
図2A~
図4を参照して説明される例は、均等に離間されていて2個のコードチップにわたる20個のビンを参照することができるが、本明細書で説明される1つまたは複数の実施形態が、少なくとも1.5個のチップ、1.5個未満のチップ、または完全なPRNコード期間の任意の部分にわたる任意の数(N)の複数のビン220と共に利用されてよいことが明確に想定されている。一実装形態では、ビン220同士は、均等に離間されていてもよいし、または不均等に離間されていてもよい。一実装形態では、複数のビン220の数は、18~24個のビンであってよい。代替的な実装形態では、ビン220の数は、任意の整数値であってよい。一実施形態では、1つのビンは、2つ以上のコードチップにわたる1つのウィンドウ内に配置されている1つのタイムスロット、またはコード位相値の1つのスロットに対応することができる。
【0024】
図2Aを参照すると、コード位相数値制御発振器(NCO)203は、コードレート205を利用して、推定されたコード位相値を表すために使用される精緻なコードチップ位相細部を生成することができる。例えば、積分信号のサンプルが取られるサンプルクロック204のそれぞれのパルスにおいて、コード位相NCO203は、サンプル201に対するコードチップにおけるタイムスロットを示すコード位相サブチップ値を生成することができる。一実装形態では、コード位相サブチップ値は、0~0.99の間である。一実装形態では、コードレート205は、サンプルクロック204と非同期であってよい。
【0025】
コード位相NCO203またはチップカウント207は、4×PRNコード生成器202を駆動することができ、この4×PRNコード生成器202は、積分信号のサンプル201に対してローカルコード、例えば疑似ランダムノイズ(PRN)コードを生成することができ、このローカルコードは、受信した積分信号内のコードのうちの1つに対応する。例えば、4ビットのコードのうちの第1のビット(例えば、最上位ビット)は、積分信号に関連する上部周波数の同相信号(SUI)に対応することができる。4ビットのコードのうちの第2のビットは、積分信号に関連する下部周波数の同相信号(SLI)に対応することができる。4ビットのコードのうちの第3のビットは、積分信号に関連する上部周波数の直交相信号(SUQ)に対応することができる。4ビットのコードのうちの第4のビット(例えば、最下位ビット)は、積分信号に関連する下部周波数の直交相信号(SLQ)に対応することができる。
【0026】
コード位相NCO203によって生成されたサブチップ値が1にロールオーバーすると、チップカウント207を増分することができ、新しいコードチップの開始を示す信号を4×PRNコード生成器202に送信することができる。この信号に基づいて、4×PRNコード生成器202は、次の4ビットのローカルコードを生成することができる。チップカウントがそのカウントの終わりに、例えば10229に達すると、チップカウントは、ゼロにロールバックすることができ、4×PRNコード生成器202にリセット信号を送信することができる。この例では、ローカルコードは、受信した積分信号内のコードの進みバージョンであってよい。コードの進みバージョンは、例えば、1個のコードチップまたは1/2個のコードチップ等の分だけ、受信した積分信号内のコードよりも先行することができる。
【0027】
引き続き、複数のビン220が、2個のコードチップのウィンドウにわたって均等に離間された20個のビンを含んでいる例において、サンプルクロック204のパルスに対して、コード位相NCO203が0.99のコード位相サブチップ値を生成し、4×PRNコード生成器202がこの時点で[1010]のローカルコードを生成することも仮定する。これに加えて、この例では、前回のコードチップのために4×PRNコード生成器202によって生成されたローカルコードが[1111]であると仮定する。
【0028】
本明細書で説明される1つまたは複数の実施形態によれば、シフト/位相ルックアップテーブル206を利用して、積分信号処理ユニット200Aによって、ローカルコードに基づいてコードシフト値および位相回転値を選択することができ、これらの値を使用して、サンプル201に対して進み複素回転されたサンプル215Aと、遅れ複素回転されたサンプル215Bとが並列に生成され、これらの複素回転されたサンプル215Aおよび215Bが、以下でさらに詳細に説明されるように、2個のコードチップにわたる複数のビン220、例えば20個のビンのうちの1つまたは2つのビン内に並列に累積される。
【0029】
特に、以下でさらに詳細に説明されるように、シフト/位相ルックアップテーブル206から選択された位相回転値を使用して、サンプル201に対して進み複素回転されたサンプル215Aと、遅れ複素回転されたサンプル215Bとを並列に生成することができる。これに加えて、以下でさらに詳細に説明されるように、シフト/位相ルックアップテーブル206から選択されたコードシフト値を利用して、(1)2個のコードチップにわたる複数のビン220(例えば、20個のビン)のうちの1つまたは2つのビンをイネーブルすることができ、(2)イネーブルされたビン内にどの複素回転されたサンプルが供給されるか、例えば、サンプル201に対して進み複素回転されたサンプル215Aが供給されるか、遅れ複素回転されたサンプル215Bが供給されるかを決定することができる。
【0030】
シフト/位相ルックアップテーブル206にサンプルクロック204を供給することができ、これにより、それぞれのサンプル201に対して、シフト/位相ルックアップテーブル206からコードシフト値および位相回転値が選択される。これに加えて、当業者に公知のように、積分信号の信号成分と混合される副搬送波は、15.345MHzの周波数であってよく、その一方で、コードレートは、10.23MHzであってよい。したがって、奇数のコードチップに対しては、シフト/位相ルックアップテーブル206から選択された位相回転値を180度調整する必要がある場合がある。したがって、コードチップが偶数であるかまたは奇数であるかを示すために、シフト/位相ルックアップテーブル206にチップカウント207の最下位ビットを供給することができる。
【0031】
図3は、本明細書で説明される1つまたは複数の実施形態によるシフト/位相ルックアップテーブル206の概略ブロック図である。GNSS受信機120のプロセッサ125は、列301に含まれているそれぞれのPRNコードが、列302内の対応する位相回転値と、列303内のコードシフト値とを有するように、シフト/位相ルックアップテーブル206を初期化することができる。特に、シフト/位相ルックアップテーブル206は、列301内のPRNコードに対応する列302内の位相回転値と、列303内のコードシフト値とを、例えばシステム要件や、ユーザ選好等に基づいて変化させることができるように、プログラミング可能であってよい。例えば、システムが対称シフトを利用すべきであるか、または正シフトを利用すべきであるかに基づいて、列301内のPRNコードに対応する列303内のコードシフト値を変化させることができる。これに加えて、積分信号の型に基づいて、列301内のPRNコードに対応するコードシフト値および位相回転値を変化させることができる。例えば、積分信号がACE-BOCのI型信号であるか、ACE-BOCのII型信号であるか、またはACE-BOCのIII型信号であるかに基づいて、シフト/位相ルックアップテーブル206内のコードシフト値および位相回転値を変化させることができる。
【0032】
シフト/位相ルックアップテーブル206は、列301、302、および303内に特定の値を含んでいるが、本明細書で説明される1つまたは複数の実施形態によれば、シフト/位相ルックアップテーブル206は、これとは異なる値を含んでよいことが明確に想定されている。これに加えて、ローカルコードに対応するコードシフト値および位相回転値を、
図3のシフト/位相ルックアップテーブル206を利用して選択することに言及されているが、ローカルコードに対応するコードシフト値および位相回転値を、任意の種々異なる手法で選択してよいことが明確に想定されている。
【0033】
上記のように、この例では、4×PRNコード生成器202によって[1010]のローカルコードが生成される。[1010]のローカルコードを、シフト/位相ルックアップテーブル206の4ビットエンコーダ304に供給することができ、この[1010]のローカルコードを利用して、[1010]のローカルコードに対応する列301における行を特定して、列302からの位相回転値と、列303からのコードシフト値とを選択することができる。この例では、[1010]のローカルコードは、列301の第11行に対応する。両方ともPRNコード1010に対応する、列302の第11行における位相回転値0.875と、列303の第11行におけるコードシフト値0.250とを、4ビットエンコーダ304によって選択して、4ビットエンコーダ304の出力部から供給することができる。コードシフト値0.250を、4ビットエンコーダ304から出力して、シフト/位相ルックアップテーブル206の出力として供給することができる。一実装形態では、コードシフト値は、10ビットであってよい。一実装形態では、コードシフト値を、13ビットになるように符号拡張することができる。
【0034】
位相回転値0.875を、4ビットエンコーダから出力して、加算器310に供給することができる。1ビットエンコーダ306に供給されるチップカウント207の最下位ビットが、コードチップが偶数であることを示している場合には、1ビットエンコーダ306は、位相回転値0.875が修正されないように、加算器に0の値を出力する。しかしながら、チップカウント207の最下位ビットが、コードチップが奇数であることを示している場合には、1ビットエンコーダは、加算器310によって位相回転値が180度だけ調整されるように、πの値を出力する。この例では、コードチップは、偶数であると仮定する。したがって、0.875の位相回転値は、加算器310によって調整されずに、シフト/位相ルックアップテーブル206の出力として供給される。
【0035】
本明細書で説明される1つまたは複数の実施形態によれば、以下でさらに詳細に説明されるように、シフト/位相ルックアップテーブル206から出力された位相回転値、例えば0.875を利用して、サンプル201に対して進み複素回転されたサンプル215Aと、遅れ複素回転されたサンプル215Bとを並列に生成することができる。
【0036】
図2Aに戻ると、搬送波位相NCO208は、累積された搬送波ドップラー周波数209に基づいて、搬送波位相値(例えば、正弦変換および余弦変換)を推定する。ドップラー効果に対して信号201を補正するために必要とされる、搬送波位相NCO208からの搬送波位相値が、加算器210Aにおいて、進み位相回転値(例えば、シフト/位相ルックアップテーブル206から出力される0.875)に加算される。この加算の結果を、進み複素位相回転値とすることができる。複素ミキサ211Aは、サンプル201(例えば、マルチビットのIおよびQサンプル)と、進み複素位相回転値とを混合して、進み複素回転されたサンプル215Aを取得することができる。進み複素回転されたサンプル215Aは、複数のマルチプレクサ225の各々の入力部に、例えば入力部Aに供給可能である。
【0037】
遅れ複素回転されたサンプル215Bを生成するために、位相回転値、例えば0.875は、1PRNだけ遅延させられる。特に、0.875の位相回転値は、前回のコードチップのための位相回転値を格納することができる1PRN遅延部212Aに供給される。1PRN遅延部212Aに供給される0.875の位相回転値は、前回のコードチップのための位相回転値が1PRN遅延部212Aから加算器210Bに供給されるべきであることを示す、1PRN遅延部212Aへの信号として機能することができる。この例では、上述したように、前回のコードチップのためのローカルコードは、[1111]である。シフト/位相ルックアップテーブル206に基づいて、PRNコード[1111]に対応する位相回転値は、0.125である。したがって、シフト/位相ルックアップテーブル206から1PRN遅延部212Aに供給される0.875の位相回転値に基づいて、1PRN遅延部212Aは、前回のコードチップのための0.125+0.5の位相回転値を加算器210Bに供給し、この加算器210Bは、ドップラー効果を除去するために、0.625の位相回転値に、推定された搬送波位相値を加算する。
【0038】
加算器210Bによる加算の結果を、遅れ複素位相回転値とすることができる。複素ミキサ211Bは、サンプル201と、遅れ複素位相回転値とを混合して、遅れ複素回転されたサンプル215Bを取得することができる。遅れ複素回転されたサンプル215Bは、複数のマルチプレクサ225の各々の、進み複素回転されたサンプル215Aが供給される入力部とは異なる入力部に、例えば入力部Bに供給可能である。
【0039】
したがって、進み複素回転されたサンプル(215A)と、遅れ複素回転されたサンプル(215B)とを並列に生成するために、積分信号処理ユニット200Aによって単一のサンプル201が利用される。以下でさらに詳細に説明されるように、複素回転されたサンプルは、例えば、2つのマルチプレクサ225から2個のコードチップにわたる複数のN個のビン、例えば20個のビンのうちの2つのイネーブルされたビンに供給可能である。以下でさらに詳細に説明されるように、進み複素回転されたサンプルおよび遅れ複素回転されたサンプルがそれぞれどのイネーブルされたビンに供給されるかの決定は、シフト/位相ルックアップテーブル206およびコード位相NCOから取得されたコードシフト値に基づくことができる。
【0040】
シフト/位相ルックアップテーブル206から出力されたコードシフト値を利用して、2個のコードチップにわたる複数のサンプルコード位相値、例えば進みサンプルコード位相値と、遅れサンプルコード位相値とを並列に生成することができる。この例では、シフト/位相ルックアップテーブル206によって出力された0.250のコードシフト値が加算器210Dに供給される。加算器210Dは、コード位相NCO203によって供給された、サンプル201に対するコードチップにおけるタイムスロットを表すコード位相サブチップ値0.99に、0.250のコードシフト値を加算して、1.24の進みサンプルコード位相値を取得する。この進みサンプルコード位相値を、進みサンプルイネーブルデコーダ213Aに供給することができる。進みサンプルイネーブルデコーダ213Aは、供給された1.24の進みサンプルコード位相値に基づいて、複数のビン220のうちのどのビンがイネーブルされるかを決定することができる。進みサンプルコード位相値が1.0未満である場合には、進みサンプルコード位相値は、本明細書で説明される1つまたは複数の実施形態に従って、進みビン、例えばビン0~9のうちの1つをイネーブルすることができる。進みサンプルコード位相値が1.0よりも大きい場合には、進みサンプルコード位相値は、本明細書で説明される1つまたは複数の実施形態に従って、遅れビン、例えばビン10~19のうちの1つをイネーブルすることができる。この例では、1.24の進みサンプルコード位相値は、1.0よりも大きく、したがって、1.24の進みサンプルコード位相値は、以下でさらに詳細に説明されるように、遅れビンをイネーブルする。
【0041】
図4は、本明細書で説明される1つまたは複数の実施形態によるサンプルイネーブルデコーダ213、例えば、進みサンプルイネーブルデコーダ213Aの概略ブロック図である。サンプルイネーブルデコーダ213は、複数のビン220のうちのそれぞれのビンのための開始位置を含むことができ、これらの開始位置を、プロセッサ125によって初期化することができる。この例では、2個のコードチップにわたる20個の均等に離間されたビンが設けられている。以下の表は、この例に関して、2個のコードチップにわたるウィンドウを参照しながら、20個のビンの各々がどこで開始することができるかを示す。
【表1】
【0042】
進みサンプルコード位相値を、あらゆる負の値が0にセットされるように、サンプルイネーブルデコーダ213のリミッタ402に供給することができる。代替的に、進みサンプルコード位相値についての負の値を、本明細書で説明される1つまたは複数の実施形態による積分信号処理ユニット200Aによって単純に除外(すなわち、無視)してもよい。この例では、進みサンプルコード位相値は、1.24であり、したがって、例えば0にセットされることはない。したがって、1.24の進みサンプルコード位相値は、複数の比較器405、例えばN個の比較器の各々に供給され、これらの比較器405の各々は、それぞれ異なるビンに対応することができる。したがって、この例では、20個のビンのうちのそれぞれ異なるビンに対応する20個の比較器が設けられている。複数の比較器405の各々は、進みサンプルコード位相値、例えば1.24を利用して、対応するビンがイネーブルされるべきであるかどうかを決定することができる。複数の比較器405の各々の出力、例えばYを、ビンがイネーブルされるべきである場合には1の値にセット(すなわち、←)することができるか、またはビンがイネーブルされるべきではない(例えば、ディスエーブルされたままである)場合には0の値にセット(すなわち、←)することができる。
【0043】
特に、
図4に示されているように、xは、進みサンプルコード位相値、例えば1.24を表す。最後の比較器を除いたそれぞれの比較器に関して、Aは、現在のビンのための開始値を表し、Bは、次のビンのための開始値を表す。進みサンプルコード位相値、例えばxが、現在のビンの開始値、例えばAと、次のビンの開始値、例えばBとによって定義された範囲内にある場合には、現在のビンがイネーブルされるべきであると決定され、例えば、Yが1の値にセットされる。特に、進みサンプルコード位相値、例えばxが、A以上B未満である場合には、現在のビンがイネーブルされるべきであり、例えば、Yが値1にセットされ、そうでない場合には、ビンがディスエーブルされ/ディスエーブルされたままにされ、例えば、Yが0の値にセットされる。
【0044】
最後の比較器に関しては、Aが、最後のビンの開始値を表し、Bは、最後のビンの終了値を表すことができる。進みサンプルコード位相値、例えばxが、最後のビンの開始値、例えばAと、最後のビンの終了値、例えばBとによって定義された範囲内にある場合には、最後のビンがイネーブルされるべきであると決定され、例えば、Yが1の値にセットされる。特に、進みサンプルコード位相値、例えばxが、A以上B未満である場合には、最後のビンがイネーブルされるべきであり、例えば、Yが1の値にセットされ、そうでない場合には、最後のビンがディスエーブルされ/ディスエーブルされたままにされ、例えば、Yが0の値にセットされる。代替的に、最後の比較器は、開始値を表しているAのみを利用してもよい。この実施形態では、進みサンプルコード位相値、例えばxが、A以上である場合には、最後のビンがイネーブルされるべきであり、例えば、Yが1の値にセットされ、そうでない場合には、ビンがディスエーブルされ/ディスエーブルされたままにされ、例えば、Yが0の値にセットされる。
【0045】
この例では、20個の比較器405の各々によって、1.24の進みサンプルコード位相値が利用されて、どのビンがイネーブルされるべきであるかが決定される。特に、この例では、ビン12に対応する第13の比較器は、1.24の進みサンプルコード位相値が1.2(A)~1.3(B)の範囲内にあることを決定する。したがって、第13の比較器の出力は、ビン12のためのイネーブル信号であり、例えば、Yが1の値にセットされる。他の全ての比較器、例えば比較器1~12および14~20は、1.24の進みサンプルコード位相値が、これら他の比較器に関して定義された範囲内にはないことを決定する。したがって、これら他の比較器の出力は、ディスエーブルビン信号であり、例えば、Yが0の値にセットされる。
【0046】
したがって、この例では、進みサンプルイネーブルデコーダ213Aのイネーブラ410Aからの出力は、20個のビンのうちのビン12(遅れビン)をイネーブルするための進みビンイネーブル出力216Aである。一実施形態によれば、進みビンイネーブル出力216Aは、0および1のベクトルであってよく、ここで、1は、ビンがイネーブルされるべきであることを示し、その一方で、0は、ビンがイネーブルされるべきでないこと、例えばディスエーブルされたままであることを示す。したがって、この例での進みビンイネーブル出力216Aは、0000 0001 0000 0000 0000であってよく、ここで、このベクトルの最下位ビットは、ビン0を表し、最上位ビットは、ビン19を表す。以下でさらに詳細に説明されるように、進みサンプルイネーブルデコーダ213Aによって出力される進みビンイネーブル出力216Aを利用して、複数のビン220のうちの1つのビンをイネーブルすることができ、また、どのイネーブルされたビン内にどの複素回転されたサンプルが供給されるか、例えば、進み複素回転されたサンプル215Aが供給されるか、遅れ複素回転されたサンプル215Bが供給されるかを決定することもできる。
【0047】
図2Aに戻ると、複数のビン220のうちの1つのビンをイネーブルするために利用される遅れサンプルコード位相値を生成するために、シフト/位相ルックアップテーブル206から取得されたコードシフト値、例えば0.250を、1PRNだけ遅延させることができる。特に、0.250のコードシフト値は、前回のコードチップのためのコードシフト値を格納することができる1PRN遅延部212Bに供給される。1PRN遅延部212Bに供給される0.250のコードシフト値は、前回のコードチップのためのコードシフト値が1PRN遅延部212Bから加算器210Eに供給されるべきであることを示す、1PRN遅延部212Bへの信号として機能することができる。この例では、上述したように、前回のコードチップのために生成されたローカルコードは、[1111]である。シフト/位相ルックアップテーブル206に基づいて、PRNコード[1111]に対応するコードシフト値は、-0.250である。したがって、シフト/位相ルックアップテーブル206から1PRN遅延部212Bに供給される0.250のコードシフト値に基づいて、1PRN遅延部212Bは、前回のコードチップのための-0.250のコードシフト値を加算器210Eに供給することができる。この加算器210Eは、0.99のコード位相サブチップ値および1の値に-0.250のコードシフト値を加算して、1.74(例えば、-0.250+0.99+1)の遅れサンプルコード位相値を生成することができる。遅れサンプルコード位相値を、1PRNチップ期間の分だけ(すなわち、2個のコードチップにわたるウィンドウの第2のコードチップのために)時間的にオフセットさせるために、加算器210Eによって1の値が加算される。
【0048】
この1.74の遅れサンプルコード位相値を、遅れサンプルイネーブルデコーダ213Bに供給することができる。遅れサンプルイネーブルデコーダ213Bは、供給された1.74の遅れサンプルコード位相値に基づいて、複数のビン220のうちのどのビンがイネーブルされるかを決定することができる。遅れサンプルコード位相値が1.0未満である場合には、遅れサンプルコード位相値は、本明細書で説明される1つまたは複数の実施形態に従って、進みビン、例えばビン0~9のうちの1つをイネーブルすることができる。遅れサンプルコード位相値が1.0よりも大きい場合には、遅れサンプルコード位相値は、本明細書で説明される1つまたは複数の実施形態に従って、遅れビン、例えばビン10~19のうちの1つをイネーブルすることができる。この例では、1.74の遅れサンプルコード位相値は、1.0よりも大きく、したがって、1.74の遅れサンプルコード位相値は、以下でさらに詳細に説明されるように、遅れビンをイネーブルする。
【0049】
特に、
図4を参照すると、サンプルデコーダ213、例えば遅れサンプルイネーブルデコーダ213Bは、最終的な遅れサンプルコード位相値1.74を上記と同様の手法で利用することができ、この場合には、
図4のxは、進みサンプルイネーブルデコーダ213Aに関して上述したような進みサンプルコード位相値、例えば1.24ではなく、遅れサンプルコード位相値1.74を表す。より具体的には、上記と同様の手法で、複数の比較器405の各々は、遅れサンプルコード位相値、例えば1.74を利用して、対応するビンがイネーブルされるべきであるかどうかを決定することができる。この例では、ビン17に対応する第18の比較器は、1.74の遅れサンプルコード位相値が1.7(A)~1.8(B)の範囲内にあることを決定する。したがって、第18の比較器の出力は、ビン17のためのイネーブル信号であり、例えば、Yが1の値にセットされる。他の全ての比較器、例えば比較器1~17,19,および20は、1.74の遅れサンプルコード位相値が、これら他の比較器に関して定義された範囲内にはないことを決定する。したがって、これら他の比較器の出力は、ディスエーブルビン信号であり、例えば、Yが0の値にセットされる。
【0050】
したがって、この例では、遅れサンプルイネーブルデコーダ213Bのイネーブラ410Aからの出力は、ビン17をイネーブルするための遅れビンイネーブル出力216Bである。一実施形態によれば、遅れビンイネーブル出力216Bは、0および1のベクトルであってよく、ここで、1は、ビンがイネーブルされることを示し、その一方で、0は、ビンがディスエーブルされることを示す。したがって、この例での遅れビンイネーブル出力216Bは、0010 0000 0000 0000 0000であってよく、ここで、このベクトルの最下位ビットは、ビン0を表し、最上位ビットは、ビン19を表す。
【0051】
図2Aに示されているように、進みビンイネーブル出力216A、例えば0000 0001 0000 0000 0000と、遅れビンイネーブル出力216B、例えば0010 0000 0000 0000 0000とを、進みサンプルイネーブルデコーダ213Aおよび遅れサンプルイネーブルデコーダ213BからORゲート214にそれぞれ供給することができる。ORゲート214は、OR演算を利用して、0010 0001 0000 0000 0000の最終的なビンイネーブル出力216ABを生成することができ、ここで、最下位ビットは、ビン0を表すことができ、最上位ビットは、ビン19を表すことができる。最終的なビンイネーブル出力216ABを、2個のコードチップにわたる複数のビン220に供給して、複数のビン220のうちのいずれのビンもイネーブルしないようにすることができるか、20個の複数のビンのうちの1つのビンをイネーブルすることができるか、または複数のビン220のうちの2つのビンをイネーブルすることができる。この例では、最終的なビンイネーブル出力216ABは、ORゲート214からの0010 0001 0000 0000 0000のベクトルであり、ビン220に供給されて、2個のコードチップにわたる20個の複数のビンのうちのビン12および17をイネーブルする。
【0052】
特に、最終的なビンイネーブル出力216ABのそれぞれのビットを、対応するビンにそれぞれ供給することができ、1の値、例えばハイ信号が供給されたビンは、イネーブルされ、その一方で、0の値、例えばロー信号が供給されたビンは、ディスエーブルされたままである。この例では、ビン12および17には1の値、例えばハイ信号が供給され、その一方で、ビン0~11,13~16,18,および19には0の値、例えばロー信号が供給される。したがって、ビン12および17は、イネーブルされ、その一方で、ビン0~11,13~16,18,および19は、ディスエーブルされたままである。
【0053】
さらに、
図2Aに示されているように、進みサンプルイネーブルデコーダ213Aから出力された進みビンイネーブル出力216Aを複数のマルチプレクサ225に供給して、イネーブルされたビン内に、例えばビン12および17内にどの複素回転されたサンプルが供給されるか、例えば、進み複素回転されたサンプル215Aが供給されるか、遅れ複素回転されたサンプル215Bが供給されるかを決定することができる。マルチプレクサ225の数は、ビン220の数に対応することができ、マルチプレクサ225の各々は、
図2Aに示されているようにそれぞれ異なるビン220に結合可能である。例えば、
図2Aに示されているように、第1のマルチプレクサは、ビン0に結合されており、第2のマルチプレクサは、ビン1に結合されており、以下も同様である。したがって、この例では、20個のそれぞれ異なるマルチプレクサ225の各々は、2個のコードチップにわたる20個のビンのうちのそれぞれ異なるビンに結合されている。一実装形態では、それぞれのマルチプレクサ225は、出力部Yと、進み複素回転されたサンプル215Aを受信する入力部Aと、遅れ複素回転されたサンプル215Bを受信する入力部Bとを有する。
【0054】
図2Aに示されているように、進みビンイネーブル出力216A、例えば0000 0001 0000 0000 0000をマルチプレクサ225に供給することができる。特に、ベクトルであってよい進みビンイネーブル出力216Aのそれぞれのビットを、適切なビンに対応するそれぞれ異なるマルチプレクサ225に供給することができる。例えば、進みビンイネーブル出力216Aの最下位ビットは、ビン0を表し、したがって、ビン0に結合された第1のマルチプレクサ225に供給可能である。進みビンイネーブル出力216Aの最上位ビットは、ビン19を表し、したがって、ビン19(例えば、ビンN-1)に結合された最後のマルチプレクサ(例えば、マルチプレクサ20)に供給される。
【0055】
一実装形態では、進みビンイネーブル出力216Aのビットに基づいてハイ信号(例えば、1の値)を受信したマルチプレクサ225は、入力部Aにおいて受信した進み複素回転されたサンプル215Aを出力(例えば、Y)として供給する。さらに、進みビンイネーブル出力216Aのビットに基づいてロー信号(例えば、0の値)を受信したマルチプレクサ225は、入力部Bにおいて受信した遅れ複素回転されたサンプル215Bを出力(例えば、Y)として供給する。一実装形態では、ただ1つのマルチプレクサ225にのみハイ信号(例えば、1の値)が供給され、これにより、ただ1つのマルチプレクサ225のみが、進み複素回転されたサンプル215Aを出力(例えば、Y)として供給し、その一方で、全ての他のマルチプレクサ225にはロー信号(例えば、0の値)が供給され、これにより、全ての他のマルチプレクサ225は、遅れ複素回転されたサンプル215Bを出力(例えば、Y)として供給する。
【0056】
代替的な実施形態では、マルチプレクサを、反対の方式(図示せず)で構成して動作させてもよく、この場合には、進みサンプルイネーブルデコーダ213Aの進みビンイネーブル出力216Aが、例えば、ORゲート214とマルチプレクサ225との間に配置されることになるインバータ(図示せず)を利用して反転される。したがって、0000 0001 0000 0000 0000の進みビンイネーブル出力216Aは、1111 1110 1111 1111 1111に反転されるであろう。したがって、この代替的な実施形態では、反転された進みビンイネーブル出力に基づいてロー信号(例えば、0の値)を受信したマルチプレクサ225は、入力部Aにおいて受信した進み複素回転されたサンプルを出力(例えば、Y)として供給することとなろう。さらに、反転された進みビンイネーブル出力216Aに基づいてハイ信号(例えば、1の値)を受信したマルチプレクサ225は、入力部Bにおいて受信した遅れ複素回転されたサンプルを出力(例えば、Y)として供給することとなろう。
【0057】
その後、進み複素回転されたサンプル215Aおよび/または遅れ複素回転されたサンプル215Bは、マルチプレクサ225の出力部(例えば、Y)から、対応するイネーブルされたビンに供給される。この例では、上述したように、ORゲート214からの0010 0001 0000 0000 0000のベクトルである最終的なビンイネーブル出力216ABに基づいて、ビン12および17がイネーブルされる。これに加えて、この例では、イネーブルされたビン12に結合された第13のマルチプレクサは、進みビンイネーブル出力216A、例えば0000 0001 0000 0000 0000に基づいて、ハイ信号、例えば1の値を受信する。
【0058】
したがって、第13のマルチプレクサ225の入力部Aにおいて受信された進み複素回転されたサンプル215Aは、第13のマルチプレクサ225の出力、例えばYとして供給され、イネーブルされたビン12に供給されて、このビン12内に累積される。さらに、この例では、イネーブルされたビン17に結合された第18のマルチプレクサは、進みビンイネーブル出力216Aに基づいてロー信号、例えば0の値を受信する。したがって、第18のマルチプレクサ225の入力部Bにおいて受信された遅れ複素回転されたサンプル215Bは、第18のマルチプレクサ225の出力、例えばYとして供給され、イネーブルされたビン17に供給されて、このビン17内に累積される。他のマルチプレクサ225、例えば1~12,14~17,19,および20は、ディスイネーブルされたビンに結合されているので、これら他のマルチプレクサ225からの出力(例えば、遅れ複素回転されたサンプル215B)は、ディスエーブルされたビン内に累積されない。
【0059】
したがって、上述したように、単一のサンプル201に対して2つの複素回転されたサンプル、例えば進み複素回転されたサンプル215Aと、遅れ複素回転されたサンプル215Bとを並列に生成することができ、2個のコードチップにわたる複数のビン220内に並列に累積することができる。したがって、本明細書で説明される1つまたは複数の実施形態によれば、サンプルクロック204に同期された積分信号の複数のサンプルは、これらの複数のサンプルの各々に対して進み複素回転されたサンプルと、遅れ複素回転されたサンプルとを並列に生成し、これらの複素回転されたサンプルを2個のコードチップにわたる複数のビン220内に累積することによって、処理可能である。受信機は、複数のサンプルに対する選択されたビン220内および/またはビン220の選択されたグループ内に累積された複素回転されたサンプルを使用して、1つまたは複数の相関技術、および/または1つまたは複数のマルチパス緩和技術を実施するために必要とされ得る相関値を生成することができる。
【0060】
より一般的には、ORゲート214およびマルチプレクサ225は、以下の所望の機能:
【数1】
を提供するための単なる1つの手法であり、ここで、IT
jは、j位置における1を除く全ての0を含む長さNのビンjのためのバイナリベクトル(0および1)であり、Nは、ビンの総数であり、215A
iは、サンプルiに対する進み複素回転されたサンプルであり、215B
iは、サンプルiに対する遅れ複素回転されたサンプルであり、216A
iは、サンプルiに対する進みビンイネーブル出力であり、216B
iは、サンプルiに対する遅れビンイネーブル出力であり、Tは、累積すべきサンプルの数である。ドット積「・」は、等しい長さの2つのベクトルの対応するエントリの積の和として、すなわち、
【数2】
として定義され、ここで、nは、ベクトルaおよびbの長さである。
【0061】
さらに、累積された複素回転されたサンプルを利用して、例えば、積分信号を追跡するために利用することができる相関測定値を計算することができる。
図2Aに示されているように、サンプル201(i)に対して並列に生成された複素回転されたサンプル215A
iおよび215B
iを、複素ミキサ211Aおよび211Bから重み付けビン230Aおよび230Bに供給することができる。特に、
図2Aに示されているように、進み複素回転されたサンプル215Aは、複素ミキサ211Aから重み付けビン230Aの最初の入力部(例えば、一番上の矢印)および重み付けビン230Bの最後の入力部(例えば、一番下の矢印)に供給される。さらに、
図2Aに示されているように、遅れ複素回転されたサンプル215Bは、複素ミキサ211Bから重み付けビン230Aの第2の入力部(例えば、上から2番目の矢印)および重み付けビン230Bの第3の入力部(例えば、上から3番目の矢印)に供給される。
【0062】
さらに、進みビンイネーブル出力216Aおよび遅れビンイネーブル出力216Bを、進みサンプルイネーブルデコーダ213Aおよび遅れサンプルイネーブルデコーダ213Bから重み付けビン230Aおよび230Bに供給することができる。特に、
図2Aに示されているように、進みビンイネーブル出力216Aは、進みサンプルデコーダ213Aから重み付けビン230Aおよび230Bの入力部Aに供給される。さらに、
図2Aに示されているように、遅れビンイネーブル出力216Bは、遅れサンプルデコーダ213Bから重み付けビン230Aおよび230Bの入力部Bに供給される。
【0063】
一実施形態では、複素回転されたサンプル215Aおよび215Bを、少なくとも1.5個のコードチップ、例えば2個のコードチップにわたる1つのウィンドウ内に累積して、積分信号を追跡することができる。
【0064】
特に、重み付けビン230Aは、重み付けベクトルを格納することができ、この重み付けベクトルを利用して、追跡のために利用することができる定時(P)信号(punctual signal)を生成することができる。一実装形態では、プロセッサ125は、重み付けビン230AがP信号のための重み付けベクトルを格納するように、重み付けビン230Aを初期化することができる。一実装形態では、追跡のためのP信号についての値を、
【数3】
のように生成することができ、ここで、
w
P=[W
b1,W
b2,・・・,W
bN]
であり、215A
iは、サンプルiに対する進み複素回転されたサンプルであり、216A
iは、サンプルiに対する進みビンイネーブル出力であり、215B
iは、サンプルiに対する遅れ複素回転されたサンプルであり、216B
iは、サンプルiに対する遅れビンイネーブル出力であり、w
Pは、イネーブルされたサンプルに適用される重み付けベクトルであり、Nは、ビンの総数であり、Tは、累積すべきサンプルの数である。ドット積「・」は、等しい長さの2つのベクトルの対応するエントリの積の和として、すなわち、
【数4】
として定義され、ここで、nは、ベクトルaおよびbの長さである。
【0065】
この式の総和の部分は、加算器242において実施可能である。したがって、20個のビンを有するこの例では、wPは、長さ20のベクトルであってよく、wPにおけるそれぞれの重み値は、それぞれ異なるビンに対応することができる。例えば、wPにおける第1の値(Wb1)は、ビン0のための重みであってよく、wPにおける第2の値(Wb2)は、ビン1のための重みであってよく、以下も同様である。wPにおける重みは、種々異なる要因に基づくことができ、これらの要因には、限定するわけではないが、積分信号の特定の型(例えば、ACE-BOCのI型信号、ACE-BOCのII型信号、またはACE-BOCのIII型信号)、積分信号の電力比、積分信号の実装等が含まれる。
【0066】
引き続き、上述の例では、上記の式に基づいて、進み複素回転されたサンプル215Aと、ビン12に対応するwPからの重みを有する進みビンイネーブル出力216Aとを利用して、かつ遅れ複素回転されたサンプル215Bと、ビン17に対応するwPからの重みを有する遅れビンイネーブル出力216Bとを利用して、Piを生成することができる。加算器242においてPi値を総和(すなわち、累積)して、P信号を生成することができる。
【0067】
さらに、重み付けビン230Bは、重み付けベクトルを格納することができ、この重み付けベクトルを利用して、追跡のために利用することができる進み-遅れ(E-L)信号(early-late signal)を生成することができる。一実装形態では、プロセッサ125は、重み付けビン230BがE-L信号のための重み付けベクトルを格納するように、重み付けビン230Bを初期化することができる。一実装形態では、追跡のためのE-L信号の値(E-L
i)を、
【数5】
のように生成することができ、ここで、
w
E-L=[W
b1,W
b2,・・・,W
bN]
であり、215A
iは、サンプルiに対する進み複素回転されたサンプルであり、216A
iは、サンプルiに対する進みビンイネーブル出力であり、215B
iは、サンプルiに対する遅れ複素回転されたサンプルであり、216B
iは、サンプルiに対する遅れビンイネーブル出力であり、W
E-Lは、イネーブルされたサンプルに適用される重み付けベクトルであり、Nは、ビンの総数であり、Tは、累積すべきサンプルの数である。ドット積「・」は、等しい長さの2つのベクトルの対応するエントリの積の和として、すなわち、
【数6】
として定義され、ここで、nは、ベクトルaおよびbの長さである。
【0068】
したがって、20個のビンを有するこの例では、WE-Lは、長さ20のベクトルであってよく、wE-Lにおけるそれぞれの重み値は、それぞれ異なるビンに対応することができる。例えば、WE-Lにおける第1の値(Wb1)は、ビン0のための重みであってよく、WE-Lにおける第2の値(Wb2)は、ビン1のための重みであってよく、以下も同様である。wE-Lにおける重みは、種々異なる要因に基づくことができ、これらの要因には、限定するわけではないが、積分信号の特定の型(例えば、ACE-BOCのI型信号、ACE-BOCのII型信号、またはACE-BOCのIII型信号)、積分信号の電力比、積分信号の実装等が含まれる。
【0069】
引き続き、上述の例では、上記の式に基づいて、進み複素回転されたサンプル215Aと、ビン12に対応するwE-Lからの重みを有する進みビンイネーブル出力216Aとを利用して、かつ遅れ複素回転されたサンプル215Bと、ビン17に対応するwE-Lからの重みを有する遅れビンイネーブル出力216Bとを利用して、E-Liを生成することができる。加算器244においてE-Li値を総和(すなわち、累積)して、E-L信号を生成することができる。したがって、加算器242,244は、それぞれP累積信号およびE-L累積信号を生成するために、いくらかの所定の期間の間、Pi値およびE-Li値を累積(総和)する。
【0070】
242および244からのP累積信号およびE-L累積信号は、
図2Aに示されているように追跡モジュール252に供給可能であり、この追跡モジュール252は、積分信号処理ユニット200の外部にあってよい。一実施形態では、追跡モジュールは、コード追跡ループ253を含むことができ、このコード追跡ループ253は、従来の方式で動作することができる遅延ロックループ(DLL)であってよい。これに加えて、追跡モジュールは、搬送波追跡ループ254を含むことができ、この搬送波追跡ループ254は、それぞれ従来の方式で動作することができる位相ロックループ(PLL)または周波数ロックループ(FLL)であってよい。
【0071】
一実装形態では、追跡モジュールは、コードエラー信号(Code
Error)を、
【数7】
のように計算することができ、ここで、I
PおよびQ
Pは、加算器242によって生成される定時信号の同相成分および直交相成分であり、I
E-LおよびQ
E-Lは、加算器244によって生成されるE-L信号の同相成分および直交相成分であり、chipsizeは、種々のコードがそれぞれ異なるチップサイズを有する可能性があるが故に、コードエラー値を正規化するために計算に含めることができるチップサイズである。Code
Errorを、コード追跡ループ253(例えば、DLL)に供給することができ、このコード追跡ループ253自体は、当業者に公知のように、追跡する目的でコードレート205の新しい推定値を供給する。Code
Errorを、上記の式を利用して計算することに言及されているが、積分信号を追跡するために使用されるCode
Error信号を、当業者に公知のように任意の種々異なる手法で計算してよいことが明確に想定されている。
【0072】
同様に、本明細書で説明される1つまたは複数の実施形態によれば、加算器242によって生成される定時信号の同相成分および直交相成分を搬送波追跡ループ254(例えば、PLLまたはFLL)に供給し、これらの成分を搬送波追跡ループ254(例えば、PLLまたはFLL)によって利用して、当業者に公知のように、搬送波ドップラー周波数209の新しい推定値を生成することができる。
【0073】
図2Bは、本明細書で説明される1つまたは複数の実施形態による、積分信号201の1つのサンプルに対して複数の複素回転されたサンプルを並列に生成することによって積分信号を処理することができる別の積分信号処理ユニット200Bの概略ブロック図である。
図2Bは、
図2Aに類似しているが、積分信号処理ユニット200Bは、ビン220を含んでいない。したがって、
図2Bに示されているように、サンプル201に対して並列に生成された、進み複素回転されたサンプル215Aおよび遅れ複素回転されたサンプル215Bは、上述したように積分信号を追跡するために、重み付けビン230Aおよび230Bの両方に供給される。
図2Bの積分信号処理ユニット200Bは、ビン220を含んでいないが、重み付けビン230Aおよび230Bを利用して、
図2Aを参照して上述したように、P累積信号およびE-L累積信号を生成することができる。P累積信号およびE-L累積信号を追跡モジュール252に供給して、
図2Aを参照して上述したように、追跡のためのCode
Error、コードレート205、および/または搬送波ドップラー周波数209を計算することができる。
【0074】
図2Cは、本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプル215Aおよび215Bを並列に生成することによって積分信号を処理することができる別の積分信号処理ユニット200Cの概略ブロック図である。
図2Cは、
図2Aに類似しているが、積分信号処理ユニット200Cは、重み付けビン230Aおよび230Bと、加算器242および244とを含んでいない。したがって、
図2Cの積分信号処理ユニット200Cは、
図2Aを参照して上述したように、複素回転されたサンプルを、選択されたビン220内および/またはビン220の選択されたグループ内に累積して、1つまたは複数の相関技術、および/または1つまたは複数のマルチパス緩和技術、および/またはコードレート(例えば、DLL)および搬送波ドップラー周波数推定値(例えば、PLLまたはFLL)を生成するための1つまたは複数の手法を実施するために必要とされ得る相関値を生成することができる。
【0075】
図5は、本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを並列に生成することによって積分信号を処理するための例示的なフローチャートである。プロシージャ500は、ステップ505において開始し、GNSSアンテナにおいて積分信号が受信されるステップ510に進む。一実施形態では、積分信号は、ACE-BOC多重化に基づくことができ、任意の電力割り当てを有する複数の信号成分を有することができる。
【0076】
プロシージャは、ステップ515に進み、積分信号のサンプル201に対してローカルコードが生成され、このローカルコードは、受信した積分信号内のコードのうちの1つに対応する。一実装形態では、このローカルコードは、積分信号内のコードの進みバージョンであってよい。プロシージャは、ステップ520に進み、ローカルコードに基づいて位相回転値およびコードシフト値が選択される。例えば、位相回転値およびコードシフト値は、
図3を参照して上述したようなシフト/位相ルックアップテーブル206から選択可能である。
【0077】
プロシージャは、ステップ525に進み、
図2Aを参照して上述したように、位相回転値(例えば、進み位相回転値、および1PRN遅延部212Aからの遅れ位相回転値)と、搬送波位相NCO208によって推定された搬送波位相値とに基づいて、進み複素回転されたサンプル215Aと、遅れ複素回転されたサンプル215Bとが並列に生成される。プロシージャは、ステップ530に進み、
図2Aを参照して上述したような進みコードシフト値および遅れコードシフト値を利用して、進みコード位相値と、遅れコード位相値とが並列に生成される。一実施形態では、遅れコードシフト値は、
図2Aを参照して上述したように、1PRN遅延部212Bを利用して1PRNコードチップの期間の分だけ時間的にオフセットされた進みコードシフト値である。
【0078】
プロシージャは、ステップ535に進み、進みコード位相値および遅れコード位相値を利用して、ベクトルであってよい最終的なビンイネーブル出力216ABが生成される。したがって、進みコード位相値および遅れコード位相値は、少なくとも1.5個のコードチップ(例えば、2個のコードチップ)にわたっているので、最終的なビンイネーブル出力のベクトルは、少なくとも1.5個のコードチップ(例えば、2個のコードチップ)にわたっている。プロシージャは、ステップ540に進み、PRNコードシーケンス内のコードチップの数以下のあらゆる任意の幅にわたるウィンドウのために生成された最終的なビンイネーブル出力216ABを利用して、単一のサンプルに対して複数の複素回転されたサンプル(例えば、進み複素回転されたサンプル215Aと、遅れ複素回転されたサンプル215Bと)が並列に累積される。例えば、ウィンドウは、少なくとも1.5個のコードチップ(例えば、2個のコードチップ)にわたることができる。
【0079】
例えば、最終的なビンイネーブル出力216ABを利用して、少なくとも1.5個のコードチップ(例えば、2個のコードチップ)にわたる複数のビン220のうちの1つまたは2つのビン内に、進み複素回転されたサンプルと、遅れ複素回転されたサンプルとを並列に累積することができる(またはいずれのビン内にも累積しないようにすることができる)。複数のビン220を使用して、1つまたは複数の相関技術、および/または1つまたは複数のマルチパス緩和技術、および/または1つまたは複数の搬送波ドップラー周波数推定技術を実施するために必要とされ得る相関値を生成することができる。
【0080】
追加的または代替的に、進みビンイネーブル出力216Aおよび遅れビンイネーブル出力216Bを利用して、重み付けビン230Aおよび230Bを利用して、少なくとも1.5個のコードチップ(2個のコードチップ)にわたるウィンドウのために、サンプル201に対する進み複素回転されたサンプル215Aと、遅れ複素回転されたサンプル215Bとを並列に累積することができる。重み付けビン230Aおよび230Bは、いくらかの所定の期間の間、信号を累積するために利用可能であり、その後、補正された信号をコードレート205および搬送波ドップラー周波数209に供給する積分信号のコードおよび搬送波の両方を追跡するために利用可能である。
【0081】
その後、ステップ510に戻り、積分信号201の次の1つのサンプルに対して複数の複素回転されたサンプルを並列に生成および累積することができるように、プロシージャ500が繰り返される。
【0082】
図2A~
図2Cを参照して上述したように、それぞれのサンプル201に対して進み複素回転されたサンプルと、遅れ複素回転されたサンプルとを並列に生成および累積することに加えて、本明細書で説明される1つまたは複数の実施形態は、それぞれのサンプル201に対して複数の複素回転されたサンプル615(例えば、進み複素回転されたサンプル215A、および/または遅れ複素回転されたサンプル215B)を順次に生成および累積することもできる。
図6Aは、本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプル201に対して複数の複素回転されたサンプル615を順次に生成することによって積分信号を処理することができる積分信号処理ユニット200Dの概略ブロック図である。
【0083】
本明細書に記載の1つまたは複数の実施形態によれば、
図6Aを参照して以下でさらに詳細に説明されるように、それぞれのサンプル201に対して複数の複素回転されたサンプル(例えば、進み複素回転されたサンプルと、定時複素回転されたサンプルと、遅れ複素回転されたサンプルと)を順次に生成することによって、サンプルクロック204に同期された積分信号201のサンプルを処理することができる。サンプル201に対する複素回転されたサンプル615は、PRNコードシーケンス内のコードチップの数以下のあらゆる任意の幅にわたるN個のビン220内に順次に累積可能である。例えば、ウィンドウは、少なくとも1.5個のコードチップ(例えば、3個または10個のコードチップ)にわたることができる。
【0084】
例示的な例として、
図6Aのビン220が、3個のコードチップのスパンにわたって均等に離間された21個のビンを含むものと仮定する。さらに、第1の7個のビン(例えば、ビン0~ビン6)が、第1のコードチップにわたる「進みビン」であり、第2の7つのビン(例えば、ビン7~ビン13)が、第2のコードチップにわたる「定時ビン(punctual bins)」であり、第3の7個のビン(例えば、ビン14~ビン20)が、第3のコードチップにわたる「遅れビン」であると仮定する。
【0085】
以下でさらに詳細に説明されるように、進み複素回転されたサンプル615を、サンプル201に対して生成して、3つのコードチップにわたる複数のビン220のうちの1つのビン内に累積することができる。その後、定時複素回転されたサンプルを、サンプル201に対して生成して、3つのコードチップにわたる複数のビン220のうちの1つのビン内に累積することができる。その後、遅れ複素回転されたサンプルを、サンプル201に対して生成して、3つのコードチップにわたる複数のビン220のうちの1つのビン内に累積することができる。したがって、本明細書で説明される1つまたは複数の実施形態によれば、単一のサンプル201に対して3つの複素回転されたサンプルを、3つのコードチップにわたる1つのウィンドウ内に順次に生成および累積することができる。
図6Aの例は、3つのコードチップにわたる複数の均等に離間されたビン220を含んでいるが、説明された1つまたは複数の実施形態が、不均等に離間されていて、かつPRNコードシーケンスのコードチップの数以下のあらゆる任意の幅にわたる複数のビン220を含んでいてよいことが明確に想定されている、例えば、複数のビンは、少なくとも1.5個のコードチップまたは3個より多くのコードチップ(例えば、10個のコードチップ)にわたることができる。
【0086】
図6Aを参照すると、4×PRNコード生成器202は、受信した積分信号内のコードに対応する複数のローカルコード(例えば、PRNコード)を生成することができる。一実施形態では、複数のローカルコードは、積分信号内のコードの進みバージョン、積分信号内のコードの定時バージョン、および積分信号内のコードの遅れバージョンであってよい。
【0087】
上述したように、4ビットのコードのうちの第1のビット(例えば、最上位ビット)は、積分信号に関連する上部周波数の同相信号(SUI)に対応することができる。4ビットのコードのうちの第2のビットは、積分信号に関連する下部周波数の同相信号(SLI)に対応することができる。4ビットのコードのうちの第3のビットは、積分信号に関連する上部周波数の直交相信号(SUQ)に対応することができる。4ビットのコードのうちの第4のビット(例えば、最下位ビット)は、積分信号に関連する下部周波数の直交相信号(SLQ)に対応することができる。
【0088】
図6Aに示されているように、ローカルに生成された3つのコードがシフトテーブル233に供給される。さらに、
図6Aに示されているように、3×サンプルクロック222がシフトテーブル233に供給される。以下でさらに詳細に説明されるように、サンプル201に対するコードの進みバージョン、定時バージョン、および遅れバージョンの各々について(シフトテーブル233の)シフト/位相ルックアップテーブル206からコードシフト値および位相回転値を順次に選択することができるように、3×サンプルクロック222が供給される。さらに、上述したような(シフトテーブル233の)シフト/位相ルックアップテーブル206の初期化と同様に、GNSS受信機120のプロセッサ125は、シフトテーブル233を初期化することもできる。
【0089】
図7Aは、本明細書で説明される1つまたは複数の実施形態によるシフトテーブル233の概略ブロック図である。
図7Aに示されているように、3×サンプルクロック222は、シフトテーブル233のカウンタ601への入力として供給される。したがって、カウンタ601は、(
図6Aの)サンプル201に対して3つの異なる値(例えば、0,1,および2)を順次に(すなわち、連続的に)生成することができる。3×サンプルクロック222に基づいて、それぞれのサンプル201に対して3つの異なるカウンタ値が順次に生成されるように、カウンタ601は、0で開始し、1に増分し、2に増分し、その後、次のサンプル201のために0に戻るようにリセットされる。
【0090】
カウンタ601の値は、サンプル201に対してローカルコードのどのバージョン(例えば、進みバージョン、定時バージョン、または遅れバージョン)が、
図7Aに示されているようなシフト/位相ルックアップテーブル206に供給されるかを決定することができる。例えば、カウンタ601が0の値を生成すると、この0の値が2ビットエンコーダ602に入力として供給されて、2ビットエンコーダ602が00のバイナリ値を生成する。2ビットエンコーダ602によるバイナリ値00の生成に応答して、サンプル201に対して、ローカルコードの進みバージョンをシフト/位相ルックアップテーブル206に供給することができる。したがって、ローカルコードの進みバージョンに関して、
図3を参照して上述したように、位相/シフトルックアップテーブル206から位相回転値およびコードシフト値を選択することができる。
【0091】
カウンタ601が1の値に増分すると、この1の値が2ビットエンコーダ602に入力として供給されて、2ビットエンコーダ602が01のバイナリ値を生成する。2ビットエンコーダ602によるバイナリ値01の生成に応答して、サンプル201に対して、ローカルコードの定時バージョンを位相/シフトルックアップテーブル206に供給することができる。したがって、ローカルコードの定時バージョンに関して、
図3を参照して上述したように、位相/シフトルックアップテーブル206から位相回転値およびコードシフト値を選択することができる。
【0092】
カウンタ601が2の値に増分すると、この2の値が2ビットエンコーダ602に入力として供給されて、2ビットエンコーダ602が10のバイナリ値を生成する。2ビットエンコーダ602によるバイナリ値10の生成に応答して、サンプル201に対して、ローカルコードの遅れバージョンを位相/シフトルックアップテーブル206に供給することができる。したがって、ローカルコードの遅れバージョンに関して、
図3を参照して上述したように、位相/シフトルックアップテーブル206から位相回転値およびコードシフト値を選択することができる。
【0093】
さらに、
図7Aに示されているように、XORゲート604からの出力も、
図3を参照して上述した手法と同様の手法で、コードチップが偶数であるか奇数であるかを示すために位相/シフトルックアップテーブル206に入力として供給される。特に、カウンタ601の出力、例えばカウンタ601の出力の最下位ビットを、XORゲート604に供給することができる。複数のビンは、本実施例では3つのコードチップにわたっているので、カウンタ601の最下位ビットをチップカウント207の最下位ビットと組み合わせて利用して、コードチップが偶数であるか奇数であるかを示すことができる。より具体的には、カウンタ601の最下位ビットと、チップカウント207の最下位ビットとをXORゲート604に供給することができる。コードチップが偶数であるか奇数であるかを示すために、XORゲート604の出力をシフト/位相ルックアップテーブル206に供給することができ、これにより、
図3を参照して上述したように、シフト/位相ルックアップテーブルから選択された位相回転値を、奇数チップに対して180度調整することができる。
【0094】
したがって、1つのサンプル201に対して位相回転値とコードシフト値との3つのペアが、シフト/位相ルックアップテーブル206から、ローカルコードの3つのバージョン(例えば、コードの進みバージョン、定時バージョン、または遅れバージョン)に基づいて順次に生成される。以下でさらに詳細に説明されるように、搬送波位相NCO208によって推定された搬送波位相値に加えて、選択されたペアの位相回転値を利用して、複素回転されたサンプル615を生成することができ、その一方で、選択されたペアのコード位相値(B)を利用して、ビンイネーブル出力616を生成することができ、このビンイネーブル出力616自体は、3つのコードチップにわたる複数のビン220のうちの1つのビンをイネーブルするものである。
【0095】
特に、それぞれのペアのそれぞれのコード位相値(B)を、シフト/位相ルックアップテーブル206から、
図7Bに示されているようなサンプルイネーブルデコーダ613の加算器210Fに供給することができ、なお、
図7Bは、本明細書で説明される1つまたは複数の実施形態によるサンプルイネーブルデコーダ613の概略ブロック図である。さらに、カウンタ601からの値(A)を、2つの最上位ビットとしてコード位相サブチップ値と組み合わせることができ、なお、このコード位相サブチップ値は、コード位相NCO203によって供給され、サンプル201に対するコードチップにおけるタイムスロットを表す。選択されたコード位相を、必要に応じて時間的にオフセットするために、カウンタ601の値を、2つの最上位ビットとして組み合わせることができる。
【0096】
カウンタ601が0の値であって、かつローカルコードの進みバージョンがシフト/位相ルックアップテーブル206に供給されると、(0の値を表す)「00」が、コード位相サブチップ値の2つの最上位ビットとして組み合わせられる。「00」は、2つの最上位ビットとして組み合わせられているので、(コードの進みバージョンに対応するペアの)選択されたコードシフト値は、サンプルイネーブルデコーダ613の加算器210Fが、コード位相サブチップ値を選択されたコードシフト値に加算する際に、時間的にオフセットされない。加算器210Fの出力は、進みサンプルコード位相値であってよい。
【0097】
カウンタが1の値であって、かつローカルコードの定時バージョンがシフト/位相ルックアップテーブル206に供給されると、(1の値を表す)「01」が、コード位相サブチップ値の2つの最上位ビットとして組み合わせられる。「01」は、2つの最上位ビットとして組み合わせられているので、(コードの定時バージョンに対応するペアの)選択されたコードシフト値は、サンプルイネーブルデコーダ613の加算器210Fが、組み合わせられた値を選択されたシフト位相値に加算する際に、コード位相の1PRNチップ相当の分だけ時間的にオフセットされる(すなわち、3つのコードチップにわたるウィンドウの第2のコードチップのために)。加算器210Fの出力は、定時サンプルコード位相値であってよい。
【0098】
カウンタが2の値であって、かつローカルコードの遅れバージョンがシフト/位相ルックアップテーブル206に供給されると、「10」が、コード位相サブチップ値の2つの最上位ビットとして組み合わせられる。「10」は、2つの最上位ビットとして組み合わせられているので、(コードの遅れバージョンに対応するペアの)選択されたコードシフト値は、サンプルイネーブルデコーダ613の加算器210Fが、組み合わせられた値を選択されたコードシフト値に加算する際に、コード位相の2PRNチップ相当の分だけ時間的にオフセットされる(すなわち、3つのコードチップにわたるウィンドウの第3のコードチップのために)。加算器210Fの出力は、遅れサンプルコード位相値であってよい。
【0099】
図4を参照して上述したように、3つのコードチップにわたる複数のビン220のうちのどのビンがイネーブルされるかを順次に決定するために、
図7Bのサンプルイネーブルデコーダ613の複数の比較器405の各々によって、サンプルコード位相値(例えば、進みコード位相値、定時コード位相値、および遅れコード位相値)を利用することができる。一実装形態では、サンプルコード位相値(例えば、進みコード位相値、定時コード位相値、および遅れコード位相値)は、サンプルコード位相値が1.0未満である場合には、進みビン、例えばビン0~6のうちの1つをイネーブルすることができる。一実装形態では、サンプルコード位相値(例えば、進みコード位相値、定時コード位相値、および遅れコード位相値)は、サンプルコード位相値が1.0よりも大きく2.0よりも小さい場合には、定時ビン、例えばビン7~13のうちの1つをイネーブルすることができる。一実装形態では、サンプルコード位相値(例えば、進みコード位相値、定時コード位相値、および遅れコード位相値)は、サンプルコード位相値が2.0よりも大きい場合には、遅れビン、例えばビン8~20のうちの1つをイネーブルすることができる。
【0100】
特に、進みサンプルコード位相値は、21個の比較器405の各々によって利用可能であり、それぞれの比較器は、
図4の信号216Aを参照して上述したように、ビンイネーブル出力616(例えば、0および1のベクトル)の1つのビットを生成する。以下で説明されるようにサンプル201に対して生成された進み複素回転されたサンプルが、イネーブルされたビン内に累積されるように、ビンイネーブル出力616を利用して、ビンをイネーブルすることができる。
【0101】
同様に、定時サンプルコード位相値は、21個の比較器405の各々によって利用可能であり、それぞれの比較器は、
図4の信号216Bを参照して上述したように、ビンイネーブル出力616(例えば、0および1のベクトル)の1つのビットを生成する。以下で説明されるようにサンプル201に対して生成された定時複素回転されたサンプルが、イネーブルされたビン内に累積されるように、ビンイネーブル出力616を再び利用して、ビンをイネーブルすることができる。さらに、遅れサンプルコード位相値は、21個の比較器405の各々によって利用可能であり、それぞれの比較器は、上述したように、ビンイネーブル出力616(例えば、0および1のベクトル)の1つのビットを生成する。以下で説明されるようにサンプル201に対して生成された遅れ複素回転されたサンプルが、イネーブルされたビン内に累積されるように、ビンイネーブル出力616を再び利用して、ビンをイネーブルすることができる。
【0102】
図6Aに戻ると、サンプル201に対するローカルコードのそれぞれのバージョンに基づいて、位相回転値およびビンイネーブル出力616が、シフトテーブル233からの出力として順次に供給される。コードの進みバージョンの場合には、シフト/位相ルックアップテーブル206から生成された位相回転値と、進みビンイネーブル出力616とが、シフトテーブル233からの出力として供給される。コードの定時バージョンの場合には、シフト/位相ルックアップテーブル206から生成された位相回転値と、定時ビンイネーブル出力616とが、シフトテーブル233からの出力として供給される。コードの遅れバージョンの場合には、シフト/位相ルックアップテーブル206から生成された位相回転値と、遅れビンイネーブル出力616とが、シフトテーブル233からの出力として供給される。
【0103】
ビンイネーブル出力(例えば、進みビンイネーブル出力、定時イネーブル出力、および遅れビンイネーブル出力)は、(
図7Bのシフトテーブル233の)ビンイネーブル出力616を形成するためのイネーブラ410Bから順次に供給可能であり、このイネーブラ410Bは、
図2Aを参照して上述したようにビンを順次にイネーブルするために、
図6Aのビン220に接続されている。特に、イネーブラ655は、3×サンプルクロック222と、カウンタ601からのイネーブル信号とを入力として受信するので、イネーブラ655は、信号(C)をイネーブラ410Bに供給し、イネーブラ410Bは、単一のサンプル201に対して3つのコードチップにわたるビン220のうちの3つのビンを順次にイネーブルするために、ビンイネーブル出力616(例えば、進みビンイネーブル出力、定時イネーブル出力、および遅れビンイネーブル出力に対応する3つの値)を順次に供給する。
【0104】
シフトテーブル233から出力されたそれぞれの位相回転値を利用して、複素回転されたサンプル615を生成することができる。特に、
図2Aを参照して上述したようなドップラー効果を除去するために、それぞれの位相回転値を、搬送波位相NCO208によって推定された搬送波位相値と共に加算器210Aに供給することができる。この加算の結果を、複素ミキサ211Aに供給して、サンプル201(例えば、マルチビットのIおよびQサンプル)と混合して、
図2Aの信号215Aおよび216Bを参照して上述したような複素回転されたサンプル615を取得することができる。
【0105】
例えば、コードの進みバージョンに基づいて生成された位相回転値を利用して、サンプル201に対して進み複素回転されたサンプル615を生成することができる。コードの定時バージョンに基づいて生成された位相回転値を利用して、サンプル201に対して定時複素回転されたサンプル615を生成することができる。コードの遅れバージョンに基づいて生成された位相回転値を利用して、サンプル201に対して遅れ複素回転されたサンプル615を生成することができる。
【0106】
したがって、積分信号処理ユニット200Dは、単一のサンプル201に対して複数の複素回転されたサンプルを順次に生成することができ、これらの複素回転されたサンプルを、3つのコードチップにわたる複数のビン220内に順次に累積することができる。特に、生成された進み複素回転されたサンプルを、3つのコードチップにわたる複数のビン220のうちの、ビンイネーブル出力616内の進みビンイネーブルデータに基づいてイネーブルされたビン内に累積することができる。その後、生成された定時複素回転されたサンプルを、3つのコードチップにわたる複数のビン220のうちの、ビンイネーブル出力616内の定時ビンイネーブルデータに基づいてイネーブルされたビン内に累積することができる。その後、生成された遅れ複素回転されたサンプルを、3つのコードチップにわたる複数のビン220のうちの、ビンイネーブル出力616内の遅れビンイネーブルデータに基づいてイネーブルされたビン内に累積することができる。したがって、単一のサンプル201に対して生成された進み複素回転されたサンプルと、定時複素回転されたサンプルと、遅れ複素回転されたサンプルとを、本明細書で説明される1つまたは複数の実施形態に従って、3つのコードチップにわたるイネーブルされたビン内に順次に生成および累積することができる。
【0107】
より一般的には、それぞれのビン220は、以下の式:
【数8】
を使用して各自の信号を生成し、ここで、IT
jは、j位置における1を除く全ての0を含む長さNのビンjのためのバイナリベクトル(0および1)であり、Nは、ビンの総数であり、kは、チップオフセット(カウンタ601の出力であり、チップオフセットは、この例では0,1,または2である)であり、それぞれのチップオフセットkは、サンプルクロックレート222で処理される。さらに、Kは、順次プロセスにおけるチップの数(この実施例では、K=3)であり、Tは、累積すべきサンプルの数であり、616
ikは、サンプルiおよびチップオフセットkに対するビンイネーブル出力であり、615
ikは、サンプルiおよびチップオフセットkに対する複素回転されたサンプルである。ドット積「・」は、等しい長さの2つのベクトルの対応するエントリの積の和として、すなわち、
【数9】
として定義され、ここで、nは、ベクトルaおよびbの長さである。
【0108】
したがって、本明細書で説明される1つまたは複数の実施形態によれば、サンプルクロック204に同期された積分信号の複数のサンプルは、それぞれのサンプル201に対して進み複素回転されたサンプルと、定時複素回転されたサンプルと、遅れ複素回転されたサンプルとを順次に生成し、これらの複素回転されたサンプルを3つのコードチップにわたる複数のビン220内に累積することによって、処理可能である。GNSS受信機120は、選択されたビン220内および/またはビン220の選択されたグループ内に累積された複素回転されたサンプルを使用して、1つまたは複数の相関技術、および/または1つまたは複数のマルチパス緩和技術、および/または搬送波ドップラー周波数推定技術を実施するために必要とされ得る相関値を生成することができる。
【0109】
さらに、複素回転されたサンプルを利用して、例えば、重み付けビン630Aおよび630Bを利用して、相関測定値を計算することができる。
【0110】
特に、重み付けビン630Aは、重み付けベクトルを格納することができ、この重み付けベクトルを利用して、追跡のために利用することができるP信号を生成することができる。一実装形態では、
図6Aの追跡のためのP信号についてのP
ikを、
【数10】
のように生成することができ、ここで、
w
P=[W
b1,W
b2,・・・,W
bN]
であり、615
ikは、サンプルiに対する複素回転されたサンプルであり、616
ikは、サンプルiおよびチップオフセットkに対するビンイネーブル出力であり、Kは、順次プロセスにおけるチップの数(この実施例では、K=3)であり、Tは、累積すべきサンプルの数であり、w
Pは、イネーブルされたサンプルに適用される重み付けベクトルであり、Nは、ビンの総数である。ドット積「・」は、等しい長さの2つのベクトルの対応するエントリの積の和として、すなわち、
【数11】
として定義され、ここで、nは、ベクトルaおよびbの長さである。
【0111】
したがって、21個のビンを有するこの例では、wpは、長さ21のベクトルであってよく、wpにおけるそれぞれの重み値は、それぞれ異なるビンに対応することができる。例えば、wpにおける第1の値(Wb1)は、ビン0のための重みであってよく、wpにおける第2の値(Wb2)は、ビン1のための重みであってよく、以下も同様である。wpにおける重みは、種々異なる要因に基づくことができ、これらの要因には、限定するわけではないが、積分信号の特定の型(例えば、ACE-BOCのI型信号、ACE-BOCのII型信号、またはACE-BOCのIII型信号)、積分信号の電力比、積分信号の実装等が含まれる。加算器242においてPi値を総和して、P信号を生成することができる。
【0112】
さらに、
図6Aの重み付けビン630Bは、重み付けベクトルを格納することができ、この重み付けベクトルを利用して、追跡のために利用することができるE-L信号を生成することができる。一実装形態では、追跡のためのE-L信号のE-L
ikを、
【数12】
のように生成することができ、ここで、
w
E-L=[W
b1,W
b2,・・・,W
bN]
であり、615
ikは、サンプルiに対する複素回転されたサンプルであり、616
ikは、サンプルiおよびチップオフセットkに対するビンイネーブル出力であり、Kは、順次プロセスにおけるチップの数(この実施例では、K=3)であり、Tは、累積すべきサンプルの数であり、w
E-Lは、イネーブルされたサンプルに適用される重み付けベクトルであり、Nは、ビンの総数である。ドット積「・」は、等しい長さの2つのベクトルの対応するエントリの積の和として、すなわち、
【数13】
として定義され、ここで、nは、ベクトルaおよびbの長さである。
【0113】
したがって、21個のビンを有するこの例では、wE-Lは、長さ21のベクトルであってよく、wE-Lにおけるそれぞれの重み値は、それぞれ異なるビンに対応することができる。例えば、wE-Lにおける第1の値(Wb1)は、ビン0のための重みであってよく、wE-Lにおける第2の値(Wb2)は、ビン1のための重みであってよく、以下も同様である。wE-Lにおける重みは、種々異なる要因に基づくことができ、これらの要因には、限定するわけではないが、積分信号の特定の型(例えば、ACE-BOCのI型信号、ACE-BOCのII型信号、またはACE-BOCのIII型信号)、積分信号の電力比、積分信号の実装等が含まれる。加算器244においてE-Li値を総和して、E-L信号を生成することができる。
【0114】
P信号および/またはE-L信号は、
図2Aを参照して上述したように、コード追跡ループ253および搬送波追跡ループ254によって利用可能である。
【0115】
図6Bは、本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを順次に生成することによって積分信号を処理することができる積分信号処理ユニット200Eの概略ブロック図である。
図6Bは、
図6Aに類似しているが、積分信号処理ユニット200Eは、ビン220を含んでいない。したがって、
図6Bに示されているように、サンプル201に対して連続的に生成された複数の複素回転されたサンプル(例えば、進み複素回転されたサンプル、定時複素回転されたサンプル、および遅れ複素回転されたサンプル)は、上述したように積分信号を追跡するために、重み付けビン630Aおよび630Bの両方に供給される。
図6Bの積分信号処理ユニット200Eは、ビン220を含んでいないが、重み付けビン630Aおよび630Bを利用して、複数の複素回転されたサンプルベクトル(例えば、遅れ複素回転されたサンプル、定時複素回転されたサンプル、および遅れ複素回転されたサンプル)を順次に定式化して、
図6Aを参照して上述したように、P累積信号およびE-L累積信号を生成することができる。P累積信号およびE-L累積信号を追跡モジュール252に供給して、積分信号を追跡するためのCode
Errorを計算することができ、かつ/または追跡モジュール252は、定時信号を利用して、
図2Aを参照して上述したように、搬送波ドップラー周波数209の新しい推定値を生成することができる。
【0116】
図6Cは、本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプル615を順次に生成することによって積分信号を処理することができる積分信号処理ユニット200Fの概略ブロック図である。
図6Cは、
図6Aに類似しているが、積分信号処理ユニット200Fは、重み付けビン630Aおよび630Bと、加算器242および244とを含んでいない。したがって、
図6Cの積分信号処理ユニット200Fは、
図6Aを参照して上述したように、単一のサンプル201に対して進み複素回転されたサンプルと、定時複素回転されたサンプルと、遅れ複素回転されたサンプル615とを、選択されたビン220内および/またはビン220の選択されたグループ内に順次に生成および累積することができる。ビン220を使用して、1つまたは複数の相関技術、および/または1つまたは複数のマルチパス緩和技術、および/または搬送波ドップラー周波数推定技術を実施するために必要とされ得る相関値を生成することができる。
【0117】
図8は、本明細書で説明される1つまたは複数の実施形態による、積分信号の1つのサンプルに対して複数の複素回転されたサンプルを順次に生成することによって積分信号を処理するための例示的なフローチャートである。プロシージャ800は、ステップ805において開始し、GNSSアンテナにおいて積分信号が受信されるステップ810に進む。一実施形態では、積分信号は、ACE-BOC多重化に基づくことができ、任意の電力割り当てを有する複数の信号成分を有することができる。
【0118】
プロシージャは、ステップ815に進み、積分信号のサンプル201に対して複数のローカルコード(PRNコード)が生成され、これらのローカルコードは、受信した積分信号内のコードに対応する。一実装形態では、これらのローカルコードは、積分信号内のコードの進みバージョン、積分信号内のコードの定時バージョン、および積分信号内のコードの遅れバージョンであってよい。
【0119】
プロシージャは、ステップ820に進み、複数のローカルコードのうちの1つのローカルコードがシフト/位相ルックアップテーブルに供給される。例えば、
図6Aを参照すると、カウンタ601によって0のカウンタ値が生成され、この0のカウンタ値は、サンプル201に対して、コードの進みバージョンをシフト/位相ルックアップテーブル206に供給させることができる。
【0120】
プロシージャは、ステップ825に進み、
図6A、
図7A、および
図7Bを参照して上述したように、供給されたローカルコードに基づいて位相回転値およびコードシフト値が選択される。プロシージャは、ステップ830に進み、選択された位相回転値と、搬送波位相NCO208によって推定された搬送波位相値とを利用して、複素回転されたサンプルが生成される。例えば、
図6A、
図7A、および
図7Bを参照して上述したように、コードの進みバージョンに基づいて選択された位相回転値を利用して、進み複素回転されたサンプルを生成することができる。
【0121】
プロシージャは、ステップ835に進み、ウィンドウがPRNコードシーケンス内のコードチップの数以下のあらゆる任意の幅にわたるように、カウンタの値に基づいて選択されたコードシフト値を時間的にオフセットさせることにより、選択されたコードシフト値に基づいて、コード位相値が生成される。例えば、ウィンドウは、少なくとも1.5個のコードチップ(例えば、3個のコードチップまたは10個のコードチップ)にわたることができる。例えば、コードの進みバージョンに基づいて選択されたコードシフト値は、カウンタが0の値を有するので、時間的にオフセットされてはならない。したがって、進みコード位相値を生成するために、選択されたコードシフト値をコード位相サブチップ値に加算することができる。しかしながら、
図6A、
図7A、および
図7Bを参照して上述したように、コードの遅れバージョンに基づいて選択されたコードシフト値は、カウンタが2の値であるので、コード位相の2PRNチップ相当の分だけ時間的にオフセット可能である。したがって、「10」は、コード位相サブチップ値の2つの最上位ビットとして組み合わせられ、この組み合わせられた値は、遅れコード位相値を生成するために、選択されたコードシフト値と加算される。
【0122】
プロシージャは、ステップ840に進み、コード位相値に基づいて、ビンイネーブル出力616が生成される。例えば、
図6A、
図7A、および
図7Bを参照して上述したように、進みコード位相値を利用して、進みビンイネーブル出力616を決定することができる。
【0123】
プロシージャは、ステップ845に進み、PRNコードシーケンス内のコードチップの数以下のあらゆる任意の幅にわたるウィンドウのために、ビンイネーブル出力616を利用して、単一のサンプルに対して複素回転されたサンプル615が累積される。例えば、ウィンドウは、少なくとも1.5個のコードチップ(例えば、3個のコードチップまたは10個のコードチップ)にわたることができる。例えば、複素回転されたサンプル615は、ビンイネーブル出力616を利用して、少なくとも1.5個のコードチップ(例えば、3個のコードチップまたは10個のコードチップ)にわたる複数のビン220のうちの1つのビン内に累積可能である。追加的または代替的に、ビンイネーブル出力616を利用して、重み付けビン630Aおよび630Bを利用して、少なくとも1.5個のコードチップ(例えば、3個のコードチップ)にわたるウィンドウのために、複素回転されたサンプルを累積することができる。重み付けビン630Aおよび630Bは、いくらかの所定の期間の間、信号を累積するために利用可能であり、その後、補正された信号をコードレート205および搬送波ドップラー周波数209に供給する積分信号のコードおよび搬送波の両方を追跡するために利用可能である。
【0124】
プロシージャは、ステップ850に進み、カウンタが限界に達したかどうかが決定される。カウンタが限界に達していない場合には、ステップ855においてカウンタが増分され、その後、プロシージャが820に戻り、これにより、積分信号処理ユニット(例えば、200D~F)は、サンプル201に対して複数の複素回転されたサンプル615を順次に生成することができる。例えば、プロシージャは、ステップ820に戻って、上述したコードの定時バージョンに基づいて選択されたコードシフト値および位相回転値に基づいて、定時複素回転されたサンプルを生成および累積することができる。その後、プロシージャは、再びステップ820に戻って、上述したコードの遅れバージョンに基づいて選択されたコードシフト値および位相回転値に基づいて、遅れ複素回転されたサンプルを生成および累積することができる。したがって、PRNコードシーケンス内のコードチップ数以下のあらゆる任意の幅、例えば、少なくとも1.5個のコードチップ(3個のコードチップまたは10個のコードチップ)にわたるウィンドウのために、単一のサンプル201に対して進み複素回転されたサンプルと、定時複素回転されたサンプルと、遅れ複素回転されたサンプルとが順次に生成および累積される。
【0125】
ステップ850においてカウンタが限界に達すると、ステップ860においてカウンタをリセットすることができ、プロシージャは、ステップ810に戻ることができ、これにより、次のサンプル201に対して複数の複素回転されたサンプル(例えば、進み複素回転されたサンプル、定時複素回転されたサンプル、および遅れ複素回転されたサンプル)を順次に生成および累積することができる。
【0126】
有利には、GNSS受信機120は、選択されたビン220内および/またはビン220の選択されたグループ内に順次に生成および累積された複素回転されたサンプル615を使用して、1つまたは複数の相関技術、および/または1つまたは複数のマルチパス緩和技術、および/または搬送波ドップラー周波数推定技術を実施するために必要とされ得る相関値を生成することができる。追加的または代替的に、順次に生成された複素回転されたサンプル615を、重み付けビン630Aおよび630Bによって使用して、相関値を生成することができ、この相関値を利用して、積分信号を追跡することができる。
【0127】
各実施形態の前述した説明は、例示および説明を提供することを意図しているが、網羅的であること、または本開示を開示された正確な形式に限定することを意図したものではない。修正形態および変形形態は、上記の教示に照らして可能であるか、または本開示の実践から獲得可能である。例えば、一連の行動をフローチャートに関連して上述してきたが、他の実装形態において、これらの行動の順序を変更してよい。さらに、行動、動作、およびステップを、追加的または他のモジュールまたはエンティティによって実行してよく、これらの追加的または他のモジュールまたはエンティティを、他のモジュールまたはエンティティを形成するために組み合わせてもよいし、または分離してもよい。さらに、従属関係のない複数の行動を並列に実行してよい。さらに、本明細書で説明される特定の実施形態を、1つまたは複数の機能を実行するロジックとして実装してよい。このロジックは、ハードウェアベース、ソフトウェアベース、またはハードウェアベースとソフトウェアベースとの組み合わせであってよい。ロジックの一部または全部を、1つまたは複数の有形の非一時的なコンピュータ可読記憶媒体に格納することができ、このロジックは、コンピュータによって実行することができるコンピュータ実行可能命令を含むことができる。コンピュータ実行可能命令は、本明細書で説明される1つまたは複数の実施形態を実施する命令を含むことができる。有形の非一時的なコンピュータ可読記憶媒体は、揮発性または不揮発性であってよく、例えば、フラッシュメモリ、ダイナミックメモリ、リムーバブルディスク、および非リムーバブルディスクを含むことができる。とりわけ、上記の説明は、単なる例として解釈されることを意図していることが理解されるべきである。
【外国語明細書】