(57)【要約】【課題】ＧＰＳ信号等の直接スペクトラム拡散方式の信号（拡散信号）を受信し、逆拡散により信号を取得する受信装置において、拡散符号（単位信号）の開始時点のタイミングが不明の場合には、受信した信号からこのタイミングを検出する。このため受信信号と自身で発生した拡散符号との相関をとるが、受信した信号のＳ／Ｎ比が小さい場合には、変調信号のビット長よりも長い時間にわたる相関をとる必要があるため、変調信号の値がわからないと相関をとれず、タイミングを検出できない。【解決手段】変調信号の値の仮定を二値符号列記憶部１５１に記憶し、その仮定に基づいて集積相関関数算出部１５２が信号の相関をとる。その結果に基づいて、仮検出部１６１が開始時点の候補を検出する。検出結果に基づいて、再集積相関関数算出部１６２が更に長時間の相関をとり、それに基づいて、本検出部１７１が、開始時点を検出する。【選択図】        図２
2006345128.tif 000002
【特許請求の範囲】
【請求項１】
所定の単位信号の１回以上の繰り返しを第一の反復信号とし、上記第一の反復信号の極性を反転したものを第二の反復信号とし、上記第一および第二の反復信号を任意の順序で連ねたものを拡散信号とし、
上記拡散信号を取得し、
取得した上記拡散信号と上記単位信号の相関を取ることによって、上記拡散信号に含まれる上記単位信号の開始時点を検出する検出装置において、
上記拡散信号を取得する拡散信号取得部と、
上記単位信号を記憶する単位信号記憶部と、
上記拡散信号取得部が取得した拡散信号と、上記単位信号記憶部が記憶した単位信号との相関をとって、積算相関関数とする積算相関関数算出部と、
所定の長さの二値符号列を複数記憶する二値符号列記憶部と、
上記二値符号列記憶部が記憶した二値符号列に基づいて、上記積算相関関数の値の極性を補正し、補正した値を積算し、集積相関関数とする集積相関関数算出部と、
上記集積相関関数算出部が算出した集積相関関数に基づいて、上記単位信号の繰り返しの開始時点の候補を検出し、開始時点候補とする仮検出部と、
上記仮検出部が検出した開始時点候補について、上記集積相関関数算出部が算出した集積相関関数の値を積算し、再集積相関関数とする再集積相関関数算出部と、
上記再集積相関関数算出部が算出した再集積相関関数に基づいて、上記単位信号の開始時点を検出する本検出部と、
を有することを特徴とする検出装置。
【請求項２】
所定の単位信号の１回以上の繰り返しを第一の反復信号とし、上記第一の反復信号の極性を反転したものを第二の反復信号とし、上記第一および第二の反復信号を任意の順序で連ねたものを拡散信号とし、
上記拡散信号を取得し、
取得した上記拡散信号と上記単位信号の相関を取ることによって、上記拡散信号に含まれる上記単位信号の開始時点を検出する検出装置において、
上記拡散信号を取得する拡散信号取得部と、
上記単位信号を記憶する単位信号記憶部と、
上記拡散信号取得部が取得した拡散信号と、上記単位信号記憶部が記憶した単位信号との相関をとって、積算相関関数とする積算相関関数算出部と、
所定の長さの二値符号列を複数記憶する二値符号列記憶部と、
上記二値符号列記憶部が記憶した二値符号列に基づいて、上記積算相関関数の値の極性を補正し、補正した値を積算し、集積相関関数とする集積相関関数算出部と、
上記集積相関関数算出部が算出した集積相関関数に基づいて、上記単位信号の繰り返しの開始時点の候補を検出し、開始時点候補とする仮検出部と、
上記仮検出部が検出した複数の開始時点候補が互いに対応するか否かを判断し、対応すると判断した場合に、上記開始時点候補を、上記単位信号の開始時点として検出する本検出部と、
を有することを特徴とする検出装置。
【請求項３】
所定の単位信号の１回以上の繰り返しを第一の反復信号とし、上記第一の反復信号の極性を反転したものを第二の反復信号とし、上記第一および第二の反復信号を任意の順序で連ねたものを拡散信号とし、
上記拡散信号を取得し、
取得した上記拡散信号と上記単位信号の相関を取ることによって、上記拡散信号に含まれる上記単位信号の開始時点を検出する検出装置において、
上記拡散信号を取得する拡散信号取得部と、
上記単位信号を記憶する単位信号記憶部と、
上記拡散信号取得部が取得した拡散信号と、上記単位信号記憶部が記憶した単位信号との相関をとって、積算相関関数とする積算相関関数算出部と、
所定の長さの二値符号列を複数記憶する二値符号列記憶部と、
上記二値符号列記憶部が記憶した二値符号列に基づいて、上記積算相関関数の値の極性を補正し、補正した値を積算し、集積相関関数とする集積相関関数算出部と、
上記集積相関関数算出部が算出した集積相関関数に基づいて、上記単位信号の繰り返しの開始時点の候補を複数検出し、それぞれ開始時点候補とする仮検出部と、
上記仮検出部が検出した複数の開始時点候補が互いに対応するか否かを判断し、対応すると判断したものについて、上記集積相関関数算出部が算出した集積相関関数の値を積算し、再集積相関関数とする再集積相関関数算出部と、
上記再集積相関関数算出部が算出した再集積相関関数に基づいて、上記単位信号の開始時点を検出する本検出部と、
を有することを特徴とする検出装置。
【請求項４】
上記積算相関関数算出部は、
上記第一の反復信号の継続時間に相当する期間について、上記拡散信号取得部が取得した拡散信号と、上記単位信号記憶部が記憶した単位信号との相関をとって、積算相関値とし、
上記単位信号の開始時点を変数とし、上記積算相関値を値とする関数を、積算相関関数とする
ことを特徴とする請求項１乃至請求項３のいずれかに記載の検出装置。
【請求項５】
上記積算相関関数算出部は、
上記単位信号の継続時間に相当する期間について、上記拡散信号取得部が取得した拡散信号と、上記単位信号記憶部が記憶した単位信号との相関をとって、相関値とし、
上記単位信号の開始時点を変数とし、上記相関値を値とする関数を、単位相関関数とする単位相関関数算出部と、
上記相関関数算出部が算出した単位相関関数に基づいて、上記単位信号の開始時点の差と、上記単位信号の継続時間とが等しい単位相関関数の値を積算して、積算相関値とし、
上記単位信号の開始時点を変数とし、上記積算相関値を値とする関数を、積算相関関数とする相関関数積算部と、
を有することを特徴とする請求項１乃至請求項３のいずれかに記載の検出装置。
【請求項６】
上記二値符号列記憶部は、
所定の長さの二値符号列のうち、符号反転をしても同一とならないものを記憶する
ことを特徴とする請求項１乃至請求項３のいずれかに記載の検出装置。
【請求項７】
上記集積相関関数算出部は、
上記積算相関関数算出部が算出した積算相関関数に基づいて、上記単位信号の開始時点の差と、上記第一の反復信号の継続時間とが等しい積算相関関数の値を、上記二値符号列記憶部が記憶する二値符号列の長さと等しい数取得し、
上記二値符号列の各符号に、取得した上記積算相関関数の値を対応させ、上記二値符号列の各符号が所定の値である場合に、対応する上記積算相関関数の値の極性を反転し、
上記値を積算して、集積相関関数とする
ことを特徴とする請求項１乃至請求項３のいずれかに記載の検出装置。
【請求項８】
上記集積相関関数算出部は、
上記第一の反復信号の継続時間に相当する期間の範囲内で、上記単位信号の開始時点を変化させる上記集積相関関数を算出する第一集積部と、
算出した上記集積相関関数の開始時点に、上記第一の反復信号の継続時間の整数倍を加えた時点を開始時点とする上記集積相関関数を算出する第二集積部と、
を有することを特徴とする請求項１乃至請求項３のいずれかに記載の検出装置。
【請求項９】
上記集積相関関数算出部は、
上記第一の反復信号の継続時間に相当する期間の範囲内で、上記単位信号の開始時点を変化させる上記集積相関関数を算出する第一集積部と、
上記第一集積部が算出した集積相関関数の開始時点に、上記第一の反復信号の継続時間の上記二値符号列の長さ倍を加えた時点を開始時点とする上記集積相関関数を算出する第二集積部と、
を有することを特徴とする請求項７に記載の検出装置。
【請求項１０】
上記集積相関関数算出部は、
上記第一の反復信号の継続時間に相当する期間の範囲内で、上記単位信号の開始時点を変化させる上記集積相関関数を算出する第一集積部と、
上記仮検出部が検出した開始時点候補における開始時点に、上記第一の反復信号の継続時間の整数倍を加えた時点を開始時点とする上記集積相関関数を算出する第二集積部と、
を有することを特徴とする請求項１乃至請求項３のいずれかに記載の検出装置。
【請求項１１】
上記集積相関関数算出部は、
上記第一の反復信号の継続時間に相当する期間の範囲内で、上記単位信号の開始時点を変化させる上記集積相関関数を算出する第一集積部と、
上記仮検出部が検出した開始時点候補における開始時点に、上記第一の反復信号の継続時間の上記二値符号列の長さ倍を加えた時点を開始時点とする上記集積相関関数を算出する第二集積部と、
を有することを特徴とする請求項７に記載の検出装置。
【請求項１２】
上記仮検出部は、
上記集積相関関数算出部が算出した集積相関関数に基づいて、上記集積相関関数の値の絶対値と、所定の閾値とを比較し、上記絶対値が上記閾値を超える場合に、上記集積相関関数の値に対応する上記単位信号の繰り返しの開始時点を、開始時点候補として検出する
ことを特徴とする請求項１乃至請求項３のいずれかに記載の検出装置。
【請求項１３】
上記仮検出部は、
上記集積相関関数算出部が算出した集積相関関数に基づいて、上記集積相関関数の値の絶対値が大きいものから順に、所定の個数取得し、取得した集積相関関数の値に対応する上記単位信号の繰り返しの開始時点を、開始時点候補として検出する
ことを特徴とする請求項１乃至請求項３のいずれかに記載の検出装置。
【請求項１４】
上記再集積相関関数算出部は、
上記集積相関関数算出部が算出した集積相関関数に基づいて、上記仮検出部が検出した開始時点候補に対応する上記集積相関関数の値を積算して、再集積相関関数とする
ことを特徴とする請求項１または請求項３に記載の検出装置。
【請求項１５】
上記本検出部は、
上記再集積相関関数算出部が算出した再集積相関関数に基づいて、上記再集積相関関数の値の絶対値が最も大きいものを取得し、取得した再集積相関関数の値に対応する上記単位信号の繰り返しの開始時点を検出する
ことを特徴とする請求項１または請求項３に記載の検出装置。
【請求項１６】
上記本検出部は、
上記仮検出部が検出した複数の開始時点候補における開始時点の差が、上記第一の反復信号の継続時間の整数倍であるか否かを判断し、整数倍である場合に、上記複数の開始時点候補が互いに対応すると判断する
ことを特徴とする請求項２に記載の検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、直接スペクトラム拡散方式の通信に関する。
【背景技術】
【０００２】
直接スペクトラム拡散方式では、送信側で拡散符号を用いて信号をスペクトラム拡散する。受信側では、この信号を受信し、送信側と同じ拡散符号を用いて、送信側と同期するタイミングで逆拡散することで、信号を読み出している。
【０００３】
ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ：全地球測位システム）において、ＧＰＳ衛星から送信される信号は、Ｃ／Ａコード（Ｃｏａｒｓｅ／Ａｑｃｕｉｓｉｔｉｏｎ  Ｃｏｄｅ）と呼ばれる拡散符号を用いて直接スペクトラム拡散した信号である。
ＧＰＳ衛星ごとにＣ／Ａコードが決まっているので、受信側は、受信したいＧＰＳ衛星のＣ／Ａコードを用いて受信信号を逆拡散することで、所望のＧＰＳ衛星からの信号を受信する。
【０００４】
ＧＰＳにおいては、信号の遅延時間を利用してＧＰＳ衛星とＧＰＳ測位装置との間の距離を測定し、複数のＧＰＳ衛星からの距離に基づいて、ＧＰＳ測位装置の位置を割り出す。
初期状態においては、ＧＰＳ衛星とＧＰＳ測位装置との間の距離が不明であるため、遅延時間も不明である。したがって、受信側で、逆拡散のタイミングを同期させることができない。
【０００５】
一般に、直接スペクトラム拡散には、擬似乱数符号を拡散符号として用いる。ＧＰＳ信号の拡散に用いられているＣ／Ａコードは、ゴールド系列と呼ばれる擬似乱数符号である。
擬似乱数符号を用いて直接スペクトラム拡散した信号は、逆拡散のタイミングが同期していれば受信側で信号を検出できるが、タイミングがずれると、信号が検出できないという特性を持つ。
したがって、逆拡散のタイミングを少しずつずらして、信号が検出できるタイミングを探すことで、逆拡散のタイミングを同期させる。
すなわち、同期のタイミングを変数として、受信信号と、自身で発生させた拡散符号との相関値を求め（相互相関関数ＣＣＦ：Ｃｒｏｓｓ  Ｃｏｒｒｅｌａｔｉｏｎ  Ｆｕｎｃｔｉｏｎ、以下単に「相関関数」という。）、相関値の絶対値が最大になるタイミングを求めれば、タイミングを同期させることができる。
【０００６】
室内等、電波が微弱な場所にＧＰＳ測位装置がある場合、Ｓ／Ｎ比（Ｓｉｇｎａｌ／Ｎｏｉｓｅ  Ｒａｔｉｏ：信号雑音比）が小さく、信号が雑音に埋もれてしまっているので、逆拡散のタイミングが同期できた場合であっても、必ずしも相関値の絶対値が最大になるとは限らない点が課題となる。
【０００７】
この課題を解決する手段として、従来、長時間にわたる相関をとることが行われている。
直接スペクトラム拡散された信号は、基本的に拡散符号の繰り返しであるから、拡散符号の複数の周期にわたって相関をとれば、信号は相乗し、雑音は打ち消し合うので、Ｓ／Ｎ比が向上し、信号の検出が可能になるからである。
【０００８】
しかし、直接スペクトラム拡散された信号は、単純に拡散符号の繰り返しではない。
例えば、二値符号化された信号を直接スペクトラム拡散した場合、元の信号の「０」に拡散符号の繰り返しが対応し、元の信号の「１」に拡散符号の極性を逆転させたものの繰り返しが対応する。
例えば、ＧＰＳ信号においては、Ｃ／Ａコードの一周期は１ミリ秒である。Ｃ／Ａコード２０周期で一単位となり、これが航法データ１ビットに対応する。したがって、２０ミリ秒ごとに、Ｃ／Ａコードの極性が反転している可能性がある。
【０００９】
元の信号の値が変化する境界を超えて相関をとると、拡散符号の極性が逆なので、信号が打ち消し合ってしまう。その結果、信号の検出が困難になる点が課題となる。
【００１０】
この課題を解決する手段として、例えば、特許文献１に記載の技術がある。
【００１１】
特許文献１に記載の技術によれば、良好な受信状態にある本部サーバがＧＰＳ信号を受信し、航法データを得る。
ＧＰＳ測位装置では、電波が微弱で、逆拡散のタイミングを同期させることが困難な場合、本部サーバから航法データを受信する。
ＧＰＳ測位装置は、本部サーバから受信した航法データを用いて、受信したＧＰＳ信号の極性を反転させた上で、相関をとる。
これにより、元の信号の値が変化する境界を超えて長時間にわたる相関をとっても、信号が打ち消し合うことなく、逆拡散の同期タイミングを検出することが可能になる。
【特許文献１】特開２００１−３４９９３５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
このように、特許文献１に記載の技術では、ＧＰＳ測位装置の受信状態が悪い場合に、本部サーバが代わりに航法データを受信し、その航法データを用いてＧＰＳ測位装置が逆拡散の同期タイミングを検出する。
したがって、あらかじめそのような本部サーバを設置しておく必要があり、設置コストがかかる点が課題となる。
また、ＧＰＳ測位装置と本部サーバとが通信する必要があるので、ＧＰＳ測位装置がそのための通信機能を有する必要が生じる。これにより、ＧＰＳ測位装置の製造コストが高くなり、また、ＧＰＳ測位装置自体が重くなるので、携帯性が悪くなる。また、なんらかの障害によって本部サーバと通信できない場合には、逆拡散の同期タイミングを検出できなくなってしまう。
【００１３】
本発明は、例えば、上記のような課題を解決し、電波の状態が悪くＳ／Ｎ比が小さい場合であっても、直接スペクトラム拡散された信号から逆拡散の同期タイミングを効率よく検出することを目的とする。
【課題を解決するための手段】
【００１４】
本発明に係る検出装置は、
所定の単位信号の１回以上の繰り返しを第一の反復信号とし、上記第一の反復信号の極性を反転したものを第二の反復信号とし、上記第一および第二の反復信号を任意の順序で連ねたものを拡散信号とし、
上記拡散信号を取得し、
取得した上記拡散信号と上記単位信号の相関を取ることによって、上記拡散信号に含まれる上記単位信号の開始時点を検出する検出装置において、
上記拡散信号を取得する拡散信号取得部と、
上記単位信号を記憶する単位信号記憶部と、
上記拡散信号取得部が取得した拡散信号と、上記単位信号記憶部が記憶した単位信号との相関をとって、積算相関関数とする積算相関関数算出部と、
所定の長さの二値符号列を複数記憶する二値符号列記憶部と、
上記二値符号列記憶部が記憶した二値符号列に基づいて、上記積算相関関数の値の極性を補正し、補正した値を積算し、集積相関関数とする集積相関関数算出部と、
上記集積相関関数算出部が算出した集積相関関数に基づいて、上記単位信号の繰り返しの開始時点の候補を検出し、開始時点候補とする仮検出部と、
上記仮検出部が検出した開始時点候補について、上記集積相関関数算出部が算出した集積相関関数の値を積算し、再集積相関関数とする再集積相関関数算出部と、
上記再集積相関関数算出部が算出した再集積相関関数に基づいて、上記単位信号の開始時点を検出する本検出部と、
を有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、反復信号の極性反転を考慮して、複数の可能性について相関をとり、集積相関関数とする。求めた集積相関関数に基づいて単位信号の開始時点の候補を絞り込むので、反復信号の極性反転についてあらかじめ知る必要がないとの効果を奏する。
また、絞り込んだ候補のなかから、更に長時間にわたる相関をとり、再集積相関関数とする。再集積相関関数に基づいて単位信号の開始時点を検出するので、反復信号の極性反転について調べなければならない可能性の候補が比較的少なくて済み、計算量が抑えられるとの効果を奏する。
【発明を実施するための最良の形態】
【００１６】
実施の形態１．
実施の形態１を、図１〜図７を用いて説明する。
【００１７】
図１は、ＧＰＳ測位装置１００（検出装置の一例）のシステム構成の一例を示す図である。
【００１８】
図１は、この実施の形態におけるＧＰＳ測位装置のハードウェア構成の一例を示す図である。
図１において、ＧＰＳ測位装置１００は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１１を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）表示装置９０１、磁気ディスク装置９２０と接続されている。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、磁気ディスク装置９２０は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
ＣＲＴ表示装置９０１は、出力部の一例である。
【００１９】
磁気ディスク装置９２０には、オペレーティングシステム（ＯＳ）９２１、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３は、ＣＰＵ９１１、ＯＳ９２１、ウィンドウシステム９２２により実行される。
【００２０】
上記プログラム群９２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明するものが、「〜ファイル」として記憶されている。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータの入出力を示し、そのデータの入出力のためにデータは、ＲＡＭ９１４もしくは磁気ディスク装置９２０、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体に記録される。あるいは、信号線やその他の伝送媒体により伝送される。
【００２１】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
【００２２】
以下に述べる実施の形態を実施するプログラムは、また、ＲＡＭ９１４もしくは磁気ディスク装置９２０、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体による記録装置を用いて記憶されても構わない。
【００２３】
図２は、ＧＰＳ測位装置１００の機能ブロックの構成の一例を示すブロック図である。
ＧＰＳ測位装置１００は、拡散信号取得部１１０、拡散信号記憶部１１３、単位信号生成部１２１、単位信号記憶部１２２、周波数差補正記憶部１３１、積算相関関数算出部１４０、二値符号列記憶部１５１、集積相関関数算出部１５２、仮検出部１６１、再集積相関関数算出部１６２、本検出部１７１、測位部１８１を有する。
【００２４】
図３は、ＧＰＳ信号（拡散信号の一例）の構成を示す図である。横軸は時刻を示す。
ＧＰＳ信号は、搬送波周波数Ｌ１（１５７５．４２ＭＨｚ（メガヘルツ））の信号を、二値位相変調した信号である。
変調の基本となるのが、Ｃ／Ａコード２０１（単位信号の一例）と呼ばれる信号である。Ｃ／Ａコードの継続時間（周期）は１ミリ秒であり、その間に１，０２３ビットを有する（１．０２３Ｍｂｐｓ（メガビットパーセカンド））。
Ｃ／Ａコードの２０回の繰り返し２２０が一つの単位（反復信号の一例）となる。
これが、航法データ１ビット２５１に対応し、信号２２０またはその極性反転である信号２４０（変調されたＧＰＳ信号でいえば、位相が１８０°異なる）によって、航法データを表す。したがって、航法データ１ビットは２０ミリ秒である。
【００２５】
拡散信号取得部１１０は、受信部１１１、アナログデジタル変換部１１２を有する。
【００２６】
図４は、拡散信号取得部１１０が取得する拡散信号の一例を示す図である。横軸は取得時刻を示す。なお、実際には、拡散信号は雑音を含んでいるが、ここでは省略している。
【００２７】
受信部１１１は、ＧＰＳ信号を受信し、周波数変換する。
すなわち、アンテナが信号を受信する。バンドパスフィルタが搬送波周波数Ｌ１（１５７５．４２ＭＨｚ）の前後約２ＭＨｚの帯域以外の信号を除去する。搬送波周波数Ｌ１と同じ周波数の正弦波を乗じて、ローパスフィルタで高調波成分を除去することで、拡散信号を取り出す。
このとき、位相が９０度異なる２つの正弦波を用いて、２つの信号（実部３０１、虚部３０２）を取り出す。この２つの信号は位相が９０度異なるので、以下、これを実部及び虚部の絶対値として持つ複素数として捉え、位相と振幅の情報を持つ１つの信号として扱う。また、信号がある閾値を超えたかどうかにより信号検出する構成でも構わない。この場合，取り出した信号は実数となる。以下の説明において、取り出した信号は複素数であるとしている。
【００２８】
受信した信号の搬送波周波数と、これに乗じた正弦波の周波数が一致していれば、拡散信号の位相は一定である。
しかし、ＧＰＳ衛星とＧＰＳ測位装置１００との相対速度に起因して、受信した信号の搬送波周波数は、ＧＰＳ衛星が送信した周波数（１５７５．４２ＭＨｚ）と一致しない。
また、受信部１１１が有する発振器の発振周波数にも誤差があるので、受信した信号に乗じる正弦波も、１５７５．４２ＭＨｚとは異なる周波数を有する。
この周波数の差の影響で、受信部１１１が変換した信号の位相３０３が、図４に示すように変化する。すなわち、変換した信号の位相は、上記周波数の差を周波数として回転する。
受信部１１１は、このことを考慮し、あとで周波数の差を補正できるよう、位相と振幅の情報を持つ信号を出力する。
【００２９】
アナログデジタル変換部１１２は、受信部１１１が出力した信号を所定のサンプリング周波数でサンプリングし、デジタル信号に変換する。
受信部１１１が出力する信号の実部３０１及び虚部３０２をそれぞれ変換し、実部・虚部のペアによって表される複素数を出力する。
Ｃ／Ａコードは、一周期が１０２３ビットで構成されている。Ｃ／Ａコードの一周期は１ミリ秒であるから、１．０２３ＭＨｚ以上の周波数でサンプリングを行う必要がある。
【００３０】
拡散信号記憶部１１３は、アナログデジタル変換部１１２が変換したデジタルデータ（複素数：実部３０１、虚部３０２）を記憶する。例えば、２２０ミリ秒（Ｃ／Ａコード２２０周期、航法データ１１ビットに相当）分のデータを記憶する。
【００３１】
単位信号生成部１２１は、受信したＧＰＳ衛星の番号から、そのＧＰＳ衛星が用いているＣ／Ａコード（単位信号の一例）を生成する（１または−１の二値）。このとき、拡散信号記憶部１１３が記憶したデジタルデータのサンプリング周波数と同期するよう、データ数を調整する。例えば、サンプリング周波数が２．０４６ＭＨｚであれば、Ｃ／Ａコードの１ビットに対してデータを２つ生成する。
単位信号記憶部１２２は、単位信号生成部１２１が生成したＣ／Ａコードを記憶する。
【００３２】
なお、単位信号生成部１２１がＣ／Ａコードを生成するのではなく、あらかじめ生成したＣ／Ａコードを単位信号記憶部１２２が記憶しておく構成としてもよい。
【００３３】
周波数差補正記憶部１３１は、上述した周波数の差に基づく拡散信号の位相を補正するためのデータを記憶する。
具体的には、絶対値が１、位相がθの複素単位ベクトルｅｘｐ（ｊθ）（＝ｃｏｓθ＋ｊｓｉｎθ。ｊは虚数単位（√−１）。）を記憶する。例えば、−π≦θ＜πの範囲で、π／１０２４ラジアン刻みに２０４６個のデータを記憶する。
なお、記憶領域を節約するため、０≦θ≦π／２の範囲のｓｉｎθを記憶し、ｅｘｐ（ｊθ）を計算で求めることとしてもよい。
【００３４】
積算相関関数算出部１４０は、単位相関関数算出部１４１、相関関数積算部１４２を有する。
【００３５】
単位相関関数算出部１４１は、拡散信号記憶部１１３が記憶した拡散信号と、単位信号記憶部１２２が記憶したＣ／Ａコードとの相関関数を算出し、単位相関関数ＵＣＣＦとする。相関をとる区間はＣ／Ａコード一周期（１ミリ秒）分である。
【００３６】
なお、Ｃ／Ａコードは、周波数差による補正をする必要があり、周波数差は未知であるから、単位相関関数ＵＣＣＦは相関区間の開始時点τ及び周波数差ｆｄの関数となる。すなわち、
【００３７】
【数１】
2006345128.tif 000003
【００３８】
ただし、ＵＣＣＦ（τ，ｆｄ）は単位相関関数（複素数）、τは相関区間の開始時点（サンプリングデータの数を単位とする整数。τ＝０〜２１９Ｎ−１）、ｆｄは周波数差、ＮはＣ／Ａコード一周期あたりのサンプリングデータ数（自然数。Ｃ／Ａコード一周期は１ミリ秒なので、サンプリング周波数は１０００Ｎ）、ｓ（ｘ）は拡散信号記憶部１１３が記憶したｘ＋１番目のサンプリングデータ（複素数）、Ｃｃａ（ｘ）は単位信号記憶部１２２が記憶したｘ＋１番目のＣ／Ａコード、ｅは自然対数の底、ｊは虚数単位、πは円周率である。また、単位相関関数ＵＣＣＦはＦＦＴ（Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ：高速フーリエ変換）により計算しても構わない。その場合、計算量が削減されるという効果を持つ。
【００３９】
ここで、ｅｘｐ（−ｊ２πｆｄｎ／１０００Ｎ）は、拡散信号の位相補正である。
すなわち、周波数差がｆｄあると、サンプリングデータ１つあたり拡散信号の位相は２πｆｄ／１０００Ｎ（ラジアン）進む。ｎ番目のサンプリングデータであれば、位相のずれは２πｆｄｎ／１０００Ｎである。したがって、ｅｘｐ（−ｊ２πｆｄｎ／１０００Ｎ）を乗じることにより、位相を−ｊ２πｆｄｎ／１０００Ｎずらし、位相のずれを補正する。
【００４０】
相関をとる区間のなかで位相が２πずれると、区間の前半の相関と、区間の後半の相関とが打ち消しあってしまい、有意なデータを得ることができない。したがって、区間内での位相の誤差はπ以下である必要がある。
この場合であれば、相関をとる区間は１ミリ秒なので、ｆｄは１ｋＨｚ刻みで変化させる必要がある。これは最低限の値であり、もっと細かい刻み幅としてもよいことはもちろんである。その分計算量は増えるが、検出感度が高くなり、好ましい。
【００４１】
なお、拡散信号の初期位相は不明であるが、周波数差ｆｄが実際の周波数差と等しければ、位相差は一定に保たれる。したがって、初期位相と等しい位相を持つ相関値が算出されることになる。
【００４２】
図５は、単位相関関数算出部１４１が算出する単位相関関数ＵＣＣＦの一例を示す図である。
【００４３】
拡散信号３００は、拡散信号取得部１１０が取得し、拡散信号記憶部１１３が記憶している。横軸は取得時刻である。なお、拡散信号３００は、実部しか図示していないが、図示していない虚部を有する複素数である。
【００４４】
Ｃ／Ａコード４０１は、単位信号記憶部１２２が記憶している。横軸は、開始時点τからの経過時間である。
【００４５】
周波数差補正値４１１は、周波数差補正記憶部１３１が記憶している補正データを読み出して、単位相関関数算出部１４１が、周波数差ｆｄに基づく補正値を求めたものである。横軸は開始時点τからの経過時間である。なお、周波数差補正値４１１は、実部しか図示していないが、図示していない虚部を有する複素数である。
【００４６】
単位相関関数ＵＣＣＦ５００は、単位相関関数算出部１４１が算出する。単位相関関数ＵＣＣＦ５００は、実部及び虚部を有する複素数であるが、ここでは、理解を容易にするため、その複素数の絶対値５０４及び位相５０３を図示している。横軸は、相関区間の開始時点τを示す。
単位相関関数ＵＣＣＦ５００は、開始時点τ及び周波数差ｆｄを変数とする関数である。図５では、周波数差ｆｄをある値に固定し、開始時点τを変化させた場合の単位相関関数ＵＣＣＦ５００を図示している。
周波数差ｆｄが実際の周波数差と一致する場合、単位相関関数ＵＣＣＦ５００は、図５に示すようなピークを有する。このピークは、相関区間の開始時点τと実際のＣ／Ａコードの開始時点とが一致するところに現れる。しかし、周波数差ｆｄが実際の周波数差と一致しない場合には、このようなピークは出てこない。
【００４７】
なお、実際には、拡散信号が雑音を含んでいるため、単位相関関数ＵＣＣＦはこのようにきれいな形とはならず、ピークが雑音５９４に埋もれている。
【００４８】
単位相関関数算出部１４１は、単位信号記憶部１２２が記憶したＣ／Ａコード４０１を読み出す。
次に、周波数差ｆｄを所定の範囲内で変化させ、ｆｄに対応する周波数差補正値４１１を、周波数差補正記憶部１３１からＣ／Ａコードの継続時間分（＝１ミリ秒）読み出し、Ｃ／Ａコード４０１に乗じる。
こうして得た信号（図示せず）を、その開始時点τを変化させ、拡散信号記憶部１１３が記憶した拡散信号３００に乗じ、その結果を積算することで、単位相関関数ＵＣＣＦを得る。
【００４９】
相関関数積算部１４２は、単位相関関数算出部１４１が算出した単位相関関数ＵＣＣＦを積算することにより、Ｃ／Ａコード２０周期（２０ミリ秒）分の区間についての相関をとる。この２０周期という区間は、航法データ１ビット分に相当する区間である。
航法データの境界がどこだかわからないので、２０ミリ秒分の相関をとると、航法データの境界を途中に含む可能性が高い。しかし、開始時点をずらしていけば、ちょうど航法データの境界にかからない区間を見つけることができる。
【００５０】
これ以上長い区間にわたって相関をとると、必ず航法データの境界を含むこととなってしまう。
しかし、これよりも短い区間（例えば、１４ミリ秒、１７ミリ秒など）について相関を取る場合には、航法データの境界を含まない区間が必ずあるので、これよりも短い区間について相関をとることとしてもよい。その場合、相関をとるデータの数が減るので、開始時点を検出できるＳ／Ｎ比の最小値は大きくなるが、相関をとる区間が航法データの境界とぴったり一致しなくても、航法データの変化による相殺効果のないデータを得ることができて、好ましい場合もある。
したがって、電波の状態に合わせて、相関をとる区間の長さを可変できる構成としてもよい。
【００５１】
相関関数積算部１４２が算出する積算相関関数ＳＣＣＦは、以下の式で表される。
【００５２】
【数２】
2006345128.tif 000004
【００５３】
ただし、ＳＣＣＦ（τ，ｆｄ）は積算相関関数（複素数）、τは相関区間の開始時点（サンプリングデータの数を単位とする整数。τ＝０〜２００Ｎ−１）、ｆｄは周波数差、ＮはＣ／Ａコード一周期あたりのサンプリングデータ数（自然数）、ｓ（ｘ）は拡散信号記憶部１１３が記憶したｘ＋１番目のサンプリングデータ（複素数）、Ｃｃａ（ｘ）は単位信号記憶部１２２が記憶したｘ＋１番目のＣ／Ａコード、ｅは自然対数の底、ｊは虚数単位、πは円周率である。
【００５４】
ここで、ｎをｎ＋ｋＮ（ｎ，ｋは整数。ｎ＝０〜Ｎ−１。ｋ＝０〜１９。ＮはＣ／Ａコード一周期あたりのサンプリングデータ数）で置き換えると、Ｃｃａ（ｎ＋ｋＮ）＝Ｃｃａ（ｎ）であるから、
【００５５】
【数３】
2006345128.tif 000005
【００５６】
したがって、Ｃ／Ａコード２０周期分の相関関数（積算相関関数）ＳＣＣＦは、Ｃ／Ａコード１周期分の単位相関関数ＵＣＣＦを位相補正しつつ２０個合計すればよい。
【００５７】
このように、Ｃ／Ａコード１周期分の単位相関関数ＵＣＣＦを求めておくことで、Ｃ／Ａコード数周期にわたる相関関数（積算相関関数）ＳＣＣＦは、単位相関関数ＵＣＣＦを位相補正しつつ合計するだけで求めることができ、計算量が少なくてすむので、好ましい。
【００５８】
しかし、このような計算方法ではなく、数２を直接計算してもよい。
【００５９】
積算相関関数ＳＣＣＦにおいては、相関をとる区間の長さが単位相関関数ＵＣＣＦの２０倍の２０ミリ秒になっている。したがって、周波数差ｆｄの刻み幅は、５０Ｈｚ以下にする必要がある。
単位相関関数ＵＣＣＦを５０Ｈｚ刻みで求めてもよい。そうすれば、より検出感度が高くなり、好ましい。
【００６０】
しかし、単位相関関数ＵＣＣＦは１ｋＨｚ刻みで求めて、積算相関関数ＳＣＣＦの算出には、周波数差ｆｄが最も近い単位相関関数ＵＣＣＦの値を用い、積算するときの補正値ｅｘｐ（−ｊ２πｆｄ・ｋ／１０００）だけを５０Ｈｚ刻みとしても、十分に有意な積算相関関数ＳＣＣＦを算出することができる。
そうすれば、単位相関関数ＵＣＣＦの計算量が少なくてすむので、相関関数を計算する負荷が減り、好ましい。
【００６１】
図６は、相関関数積算部１４２が算出する積算相関関数ＳＣＣＦの一例を示す図である。
【００６２】
単位相関関数ＵＣＣＦ５００は、単位相関関数算出部１４１が算出する。横軸は、相関区間の開始時点である。なお、単位相関関数ＵＣＣＦ５００は、相関区間の開始時点と周波数差ｆｄとを変数とする関数であるが、図６ではｆｄをある値に固定し、開始時点を変化させた場合の単位相関関数ＵＣＣＦ５００を図示している。
【００６３】
積算相関関数ＳＣＣＦ５２０は、相関関数積算部１４２が算出する。横軸は、積算相関区間の開始時点である。
【００６４】
航法データ２５０は、ＧＰＳ信号２００に情報として含まれているものである。横軸は、時刻である。航法データ２５０が変化すると、航法データの境界２５３でＧＰＳ信号２００の位相が１８０°ずれるので、単位相関関数ＵＣＣＦ５００の位相も１８０°ずれる。
【００６５】
相関関数積算部１４２は、単位相関関数算出部１４１が算出した単位相関関数ＵＣＣＦ５００（絶対値５０４、位相５０３）を、数３にしたがって積算して、積算相関関数ＳＣＣＦ５２０（絶対値５２４、位相５２３）を算出する。
このとき、単位相関関数ＵＣＣＦは、周波数差ｆｄの影響で位相５０３が異なるため、周波数差ｆｄに基づく補正をした上で、積算する。
また、単位相関関数ＵＣＣＦ５００は、航法データの値によっても位相が１８０°ずれる。
積算相関関数ＳＣＣＦの算出において、航法データの変化は考慮していない。したがって、航法データが変化する境界をまたぐ区間について算出した積算相関関数ＳＣＣＦは、信号が相殺してしまう。
【００６６】
これに対し、航法データの変化する境界をまたがない区間について算出した積算相関関数ＳＣＣＦは、信号が相乗し、絶対値のピークが高くなる。
一方、雑音５９４は、互いに相乗する場合もあれば互いに相殺する場合もある。したがって、積算により雑音レベルは少し上がるものの、信号のピークを検出しやすくなる。
【００６７】
電波の状態が良ければ、２０ミリ秒分の相関で、Ｃ／Ａコードの開始時点を検出することが可能である。
しかし、電波の状態が悪い場合には、更に長い区間の相関をとることにより、更に信号のピークを検出しやすくする必要がある。
【００６８】
２０ミリ秒よりも長い区間の相関をとる場合、上述したように、その区間内には必ず航法データの境界が含まれる。この境界で航法データが変化している場合、変化の前後にわたって相関をとると、信号が相殺してしまうことになるので、逆に感度が下がってしまう。
【００６９】
そこで、この実施の形態では、航法データの値を仮定し、仮定に基づいて相関を求める。
【００７０】
二値符号列記憶部１５１は、二値符号列を記憶する。
二値符号列記憶部１５１が記憶している二値符号列は、航法データの仮定に用いるものである。したがって、相関をとる区間の長さに相当する航法データのビット数と等しい長さの二値符号列である。
例えば、１００ミリ秒分の相関をとる場合には、１００ミリ秒は航法データの５ビットに相当するため、５ビット長の二値符号列を記憶する。
【００７１】
５ビット長の二値符号列は、全部で２の５乗＝３２通りある。航法データは不明であるため、３２通りすべての可能性がある。
【００７２】
しかし、３２通りすべての場合について計算する必要はない。
【００７３】
仮定した航法データに対して、実際の航法データのすべてのビットが反転している場合には、信号全体の極性が反転しているだけなので、信号同士が打ち消しあうことなく、相関関数による検出が可能である。
したがって、１６通りの場合について相関を求めればよく、二値符号列記憶部１５１は、１６通りの二値符号列を記憶する。
例えば、５ビットの二値符号列のうち、最上位の１ビットは０に固定し、他の４ビットを変化させた１６通りの二値符号列を記憶する。
【００７４】
あるいは、符号間距離が２以上の二値符号列だけを記憶することとしてもよい。
仮定した航法データと、実際の航法データとが１ビットだけ違っている場合、その１ビットに相当する分の信号は、極性が反転した状態で積算されるので、その分、信号が相殺され、感度が悪くなる。
例えば、航法データ６ビット（１２０ミリ秒）分の相関をとり、仮定した６ビットの航法データと、実際の航法データとが１ビットだけ違っている場合、１ビット分相殺されるので、４ビット分のデータを積算したのと同じ効果しか得られない。
【００７５】
しかし、例えば、（０，０，０，０，０，０）、（０，０，０，１，１，１）、（０，０，１，０，０，１）、（０，０，１，１，１，０）の４種類のデータを仮定したとすると、６ビットの二値符号列はすべて、このうちのどれかと一致するか、１ビット違いか、ビット反転か、ビット反転と１ビット違いかのいずれかである。
【００７６】
したがって、この４通りの場合を計算すれば、４ビット分のデータについて、すべての場合を計算したのと同じ効果が得られる。４ビット分のデータについてすべての場合（ビット反転を除く）を仮定して計算するには８通り計算する必要があるので、仮定の数が半分で済む。
【００７７】
集積相関関数算出部１５２は、二値符号列記憶部１５１が記憶した二値符号列が航法データであると仮定して、更に長時間の相関をとる。例えば、１００ミリ秒（航法データ５ビット）分の区間について、相関をとる。
【００７８】
図７は、集積相関関数算出部１５２が算出する集積相関関数ＩＣＣＦの一例を示す図である。
集積相関関数ＩＣＣＦ５４０は、仮定α、相関区間の開始時点τ、周波数差ｆｄの３つを変数とする関数である。図７における桝目１つが、ある（α，τ，ｆｄ）の組に対応する集積相関関数ＩＣＣＦの１つの値を示している。
【００７９】
集積相関関数算出部１５２は、第一集積部１５３と第二集積部１５４を有する。第一集積部１５３は、相関区間の開始時点τが所定の範囲（例えば、τ＝０〜２０Ｎ−１）にある集積相関関数ＩＣＣＦを求める。第二集積部１５４は、相関区間の開始時点τが別の範囲（例えば、τ＝１００Ｎ〜１２０Ｎ−１）にある集積相関関数ＩＣＣＦを求める。
【００８０】
この例において、第一集積部１５３が求める集積相関関数と、第二集積部１５４が求める集積相関関数との間には、相関区間の開始時点τが１００Ｎ離れた関係がある。これは、航法データ１ビット（２０ミリ秒）分のＣ／Ａコード（反復信号）の継続時間（２０Ｎ）の５倍に相当する。この間隔は、航法データ１ビットの継続時間の整数倍であればよい。そうすれば、一方で航法データの境界が見つかれば、他方のそれに対応する位置に航法データの境界があることになるからである。
また、この間隔は、集積相関関数ＩＣＣＦが相関をとる区間の長さ（航法データ５ビット分＝１００ミリ秒）と等しい。この間隔が、集積相関関数ＩＣＣＦが相関をとる区間の長さより短いと、のちに再集積する際に、同じデータを二度積算することになってしまうからである。したがって、それより長い間隔を空けることしても構わない。
【００８１】
二値符号列から読み出した二値符号列αのｘビット目（ｘは整数。ｘ＝０〜４）が「０」の場合、ｐｓα（ｘ）＝１、「１」の場合、ｐｓα（ｘ）＝−１とする。集積相関関数ＩＣＣＦは、以下の式により求められる。
【００８２】
【数４】
2006345128.tif 000006
【００８３】
ただし、ＩＣＣＦα（τ，ｆｄ）は仮定α（二値符号列）に基づく集積相関関数（複素数）、τは相関区間の開始時点（サンプリングデータの数を単位とする整数。τ＝０〜２０Ｎ−１、１００Ｎ〜１２０Ｎ−１）、ｆｄは周波数差、ＮはＣ／Ａコード一周期あたりのサンプリングデータ数（自然数）、ｓ（ｘ）は拡散信号記憶部１１３が記憶したｘ＋１番目のサンプリングデータ（複素数）、Ｃｃａ（ｘ）は単位信号記憶部１２２が記憶したｘ＋１番目のＣ／Ａコード、ｅは自然対数の底、ｊは虚数単位、πは円周率、［ｘ］はガウス記号でｘを超えない最大の整数を表す。
【００８４】
ここで、ｎをｎ＋（ｋ＋２０ｉ）Ｎ（ｎ，ｋ，ｉは整数。ｎ＝０〜Ｎ−１。ｋ＝０〜１９。ｉ＝０〜４。ＮはＣ／Ａコード一周期あたりのサンプリングデータ数）で置き換えると、［（ｎ＋（ｋ＋２０ｉ）Ｎ）／２０Ｎ］＝ｉであるから、
【００８５】
【数５】
2006345128.tif 000007
【００８６】
周波数差ｆｄの刻み幅は、相関をとる区間が積算相関関数ＳＣＣＦの５倍（１００ミリ秒）になったので、１０Ｈｚ以下にする。
【００８７】
集積相関関数算出部１５２は、積算相関関数算出部１４０が算出した積算相関関数ＳＣＣＦを、数５にしたがって積算する。
このとき、積算相関関数ＳＣＣＦは、周波数差ｆｄの影響で位相５２３が異なるため、周波数差ｆｄに基づく補正をした上で、積算する。
また、航法データに基づく位相のずれを補正するため、仮定αに基づく補正をした上で、積算する。
【００８８】
したがって、周波数差ｆｄおよび仮定αが合っていれば、積算相関関数ＳＣＣＦのピークが相乗し、ピークが検出しやすくなる。
【００８９】
電波強度が十分であれば、１００ミリ秒分の相関で、Ｃ／Ａコードの開始時点を検出できる。しかし、電波の状態が悪い場合には、更に長い区間についての相関が必要になる。
【００９０】
集積相関関数算出部１５２が相関をとる区間の長さをもっと長くしてもよい。
しかし、その場合、その区間に含まれる航法データのビット数が多くなるので、仮定しなければならない場合の数が増えて、計算量が多くなる。
例えば、倍の２００ミリ秒について相関をとることとすると、その区間に含まれる航法データは、１０ビットである。ビット反転を除いたすべての場合について計算する場合、仮定の数は２の９乗＝５１２通りになる。
【００９１】
そこで、この実施の形態では、集積相関関数算出部１５２が相関をとる区間を長くする代わりに、複数の開始時点の候補を仮に検出する。
【００９２】
仮検出部１６１は、集積相関関数算出部１５２が算出した集積相関関数ＩＣＣＦに基づいて、Ｃ／Ａコードの開始時点の候補（開始時点候補）を検出する。
ここでは、開始時点候補を、仮定α、開始時点τ、周波数ｆｄの組として、Ｃ（α、τ、ｆｄ）と表現することにする。
【００９３】
すなわち、集積相関関数ＩＣＣＦの値の絶対値を求め、所定の閾値と比較する。
集積相関関数ＩＣＣＦの値の絶対値が所定の閾値を超える（α，τ，ｆｄ）が１つしかない場合には、これが開始時点である。本検出部１７１は、この（α，τ，ｆｄ）を、Ｃ／Ａコードの開始時点として検出する。
【００９４】
しかし、集積相関関数ＩＣＣＦの値の絶対値が所定の閾値を超えるものが複数ある場合には、電波の状態が悪いため、信号が雑音に埋もれてしまっている。
そこで、仮検出部１６１は、所定の閾値を超える複数の（α，τ，ｆｄ）を開始時点候補として検出する。
【００９５】
また、集積相関関数ＩＣＣＦの値の絶対値が所定の閾値を超えるものがない場合も、やはり、電波の状態が悪いため、信号が雑音に埋もれてしまっている。
そこで、仮検出部１６１は、閾値を下げて、下げた閾値を超える複数の（α，τ，ｆｄ）を開始時点候補として検出する。
【００９６】
なお、最初から低い閾値を設定しておいてもよい。
あるいは、所定の数の開始時点候補を検出するまで、閾値を徐々に下げていってもよい。
あるいは、集積相関関数ＩＣＣＦの値の絶対値が大きい順に並べ替えて、そのなかで上位のものを開始時点候補としてもよい。
【００９７】
図７では、集積相関関数ＩＣＣＦ５４０のうち、仮検出部１６１が検出したものを、桝目を塗ることで表現している。
【００９８】
再集積相関関数算出部１６２は、仮検出部１６１が検出した開始時点候補について、更に長い区間の相関をとる。例えば、２００ミリ秒（航法データ１０ビット）分の区間について相関をとる。もちろん、この区間はもっと長くてもよい。
再集積区間の前半の１００ミリ秒における航法データの仮定をα、後半の１００ミリ秒における航法データの仮定をβとすると、再集積相関関数ＲＣＣＦは、以下の式により求められる。
【００９９】
【数６】
2006345128.tif 000008
【０１００】
ただし、ＲＣＣＦα，β（τ，ｆｄ）は仮定α及びβに基づく再集積相関関数（複素数）、τは相関区間の開始時点（サンプリングデータの数を単位とする整数。τ＝０〜２０Ｎ−１）、ｆｄは周波数差、ＮはＣ／Ａコード一周期あたりのサンプリングデータ数（自然数）、ｅは自然対数の底、ｊは虚数単位。
【０１０１】
周波数差ｆｄの刻み幅は、５Ｈｚ以下である。
また、仮定したデータが航法データのビット反転である場合、集積相関関数ＩＣＣＦの極性が逆になるため、集積相関関数ＩＣＣＦαと集積相関関数ＩＣＣＦβとの和を求めると、信号が打ち消しあってしまう可能性がある。そこで、集積相関関数ＩＣＣＦαと集積相関関数ＩＣＣＦβとの差も求める必要がある。
したがって、再集積相関関数ＲＣＣＦの値は、１組の（α，β，τ，ｆｄ）につき、２つある。あるいは、集積相関関数ＩＣＣＦαと集積相関関数ＩＣＣＦβの和と差のうち、どちらか絶対値の大きいほうを使うものとしてもよい。
【０１０２】
あるいは、位相差を考慮する必要をなくすため、集積相関関数ＩＣＣＦαと集積相関関数ＩＣＣＦβの絶対値を積算することで、再集積相関関数としてもよい。すなわち、
【０１０３】
【数７】
2006345128.tif 000009
【０１０４】
ただし、ＲＣＣＦ’α，β（τ，ｆｄ）は仮定α及びβに基づく再集積相関関数（実数）、τは相関区間の開始時点（サンプリングデータの数を単位とする整数。τ＝０〜２０Ｎ−１）、ｆｄは周波数差、ＮはＣ／Ａコード一周期あたりのサンプリングデータ数（自然数）。
【０１０５】
仮検出部１６１が検出した開始時点候補のなかから１つを選択する。
選択した開始時点候補Ｃ（α、τ、ｆｄ）について、再集積相関関数ＲＣＣＦα，β（τ，ｆｄ）を算出する（ただし、τ＝０〜２０Ｎ−１の場合。τ＝１００Ｎ〜１２０Ｎ−１の場合は、再集積相関関数ＲＣＣＦβ，α（τ−１００Ｎ，ｆｄ）を算出する）。
再集積相関関数ＲＣＣＦの変数のうち、α、τ、ｆｄは開始時点候補Ｃにより定まっているが、βは変数である。したがって、１６通り計算する必要がある。
また、ｆｄの精度を２倍にあげるため、２通り計算する必要がある。
和と差の両方を計算するため、２通り計算する必要がある。
したがって、再集積相関関数ＲＣＣＦは、１つの開始時点候補につき、１６×２×２＝６４通りの値を計算する。
【０１０６】
例えば、図７に示す開始時点候補６０１において、仮定がα、開始時点がτ、周波数差がｆｄだとすると、再集積相関関数ＲＣＣＦα，β（τ，ｆｄ）を算出する。すなわち、図７において矢印で示した集積相関関数ＩＣＣＦのそれぞれと積算することにより、再集積相関関数ＲＣＣＦ５６０を求める。
【０１０７】
以上を繰り返し、すべての開始時点候補についての再集積相関関数ＲＣＣＦ５６０を算出する。
【０１０８】
本検出部１７１は、再集積相関関数算出部１６２が算出した再集積相関関数ＲＣＣＦに基づいて、Ｃ／Ａコードの開始時点を検出する。
すなわち、再集積相関関数算出部１６２が算出した再集積相関関数ＲＣＣＦの値の絶対値を求め、もっとも絶対値が大きいものを検出する。この再集積相関関数ＲＣＣＦの（α，β，τ，ｆｄ）から、検出すべきＣ／Ａコードの開始時点τが検出できる。
もちろん、周波数差ｆｄも検出できる。
【０１０９】
測位部１８１は、本検出部１７１が検出したＣ／Ａコードの開始時点に基づいて、ＧＰＳ衛星とＧＰＳ測位装置１００との距離（擬似距離）を求め、ＧＰＳ測位装置１００の位置を算出する。
【０１１０】
このように、この実施の形態によれば、Ｃ／Ａコードの開始時点の検出に必要な計算量が削減できるという効果を奏する。
【０１１１】
具体的な計算量がどれくらいかを検証する。
【０１１２】
ここで、Ｃ／Ａコード一周期あたりのサンプリングデータ数Ｎは２０４６（サンプリング周波数２．０４６ＭＨｚ）、周波数差ｆｄは±１０ｋＨｚの範囲内であるとする。
また、集積相関関数ＩＣＣＦの相関を求める区間は航法データ５ビット分（１００ミリ秒）、再集積相関関数ＲＣＣＦの相関を求める区間は集積相関関数ＩＣＣＦ２つ分（２００ミリ秒）とする。
【０１１３】
単位相関関数算出部１４１が単位相関関数ＵＣＣＦを１つ求めるには、数１において、ｓ（τ＋ｎ）Ｃｃａ（ｎ）ｅｘｐ（−ｊ２πｆｄ・ｎ／１０００Ｎ）をＮ個（ｎ＝０〜Ｎ−１）求め、これを合計する。
【０１１４】
まず、単位相関関数算出部１４１は、ｆｄ・ｎをインデックスとして、周波数差補正記憶部１３１が記憶したテーブルを参照し、周波数差補正値Ａ＝ｅｘｐ（−ｊ２πｆｄ・ｎ／１０００Ｎ）を求める。この計算量をＩＡとする。
【０１１５】
次に、単位相関関数算出部１４１は、ｎをインデックスとして、単位信号記憶部１２２が記憶したテーブルを参照し、Ｃｃａ（ｎ）を求める。これに上記で求めた周波数差補正値Ａを乗じて、補正済Ｃ／ＡコードＢ＝Ａ・Ｃｃａ（ｎ）を求める。この計算量をＩＢとする。
ここで、Ｃｃａ（ｎ）の値は１または−１なので、Ｃｃａ（ｎ）の値によって、Ｂ＝ＡまたはＢ＝−Ａとなる。
すなわち、単位相関関数算出部１４１は、Ｃｃａ（ｎ）が−１か否かを判断し、−１であると判断した場合には、−Ａを求め、Ｂとする。−１でない（＝１）と判断した場合には、ＡをそのままＢとする。
【０１１６】
そして、単位相関関数算出部１４１は、τ＋ｎをインデックスとして、拡散信号記憶部１１３が記憶したデーブルを参照し、ｓ（τ＋ｎ）を求める。これに上記で求めた補正済Ｃ／ＡコードＢを乗じて、Ｃ＝ｓ（τ＋ｎ）・Ｂを求める。この計算量をＩＣとする。
ここで、ｓ（τ＋ｎ）およびＢはともに複素数なので、複素数の乗算をする。ただし、ｎ＝０の場合は、Ｂは１または−１の実数なので、複素数の乗算は必要ない。したがって、ｎ＝０の場合だけは計算量が異なるので、この計算量をＩＣ’とする。
【０１１７】
単位相関関数算出部１４１は、ＣをＮ個計算して合計してＵＣＣＦを求める。
ｎ＝０の場合のＣを計算するのに必要な計算量は、ＩＡ＋ＩＢ＋ＩＣ’である。
それ以外のＮ−１個のＣを計算するのに必要な計算量は、ＩＡ＋ＩＢ＋ＩＣである。
したがって、すべてのＣを計算するのに必要な計算量の合計は、Ｎ（ＩＡ＋ＩＢ）＋（Ｎ−１）ＩＣ＋ＩＣ’である。
【０１１８】
ＣをＮ個合計するには、Ｎ−１回の加算が必要である。１回の加算に必要な計算量をＩＤとすると、合計に必要な計算量は、（Ｎ−１）ＩＤである。
【０１１９】
したがって、単位相関関数ＵＣＣＦを１つ求めるのに必要な計算量は、Ｎ（ＩＡ＋ＩＢ）＋（Ｎ−１）（ＩＣ＋ＩＤ）＋ＩＣ’である。
【０１２０】
ここで、ＩＡは、整数の乗算（ｆｄ・ｎ）に必要な計算量である。
ＩＢは、条件判断と複素数の符号反転に必要な計算量である。
ＩＣは、整数の加算（τ＋ｎ）と複素数の乗算に必要な計算量である。
ＩＣ’は、複素数の符号反転に必要な計算量である。
ＩＤは、複素数の加算に必要な計算量である。
【０１２１】
一般に、複素数の乗算・加算は、実数あるいは整数の乗算・加算に比べて計算量が多い。したがって、Ｉ＝ＩＡ＋ＩＢ＋ＩＣ＋ＩＤとすると、Ｉ＞＞ＩＡ＋ＩＢ＋ＩＣ’であると仮定してよいので、単位相関関数ＵＣＣＦを１つ求めるのに必要な計算量は、（Ｎ−１）Ｉ＋（ＩＡ＋ＩＢ＋ＩＣ’）≒（Ｎ−１）Ｉである。
【０１２２】
この例では、Ｎ＝２０４６なので、２０４５Ｉとなる。
【０１２３】
単位相関関数ＵＣＣＦは、τ及びｆｄを変数としている。
したがって、単位相関関数ＵＣＣＦは全部で、τの数×ｆｄの数、計算する必要がある。
【０１２４】
τは０〜２１９Ｎ−１の整数なので、２１９×２，０４６＝４４８，０７４通りである。
ｆｄは、±１０ｋＨｚの範囲内で１ｋＨｚ刻みなので、２０通りである。
【０１２５】
したがって、単位相関関数ＵＣＣＦの総数は４４８，０７４×２０＝約８９６万であり、すべての単位相関関数ＵＣＣＦを計算するときの計算量は、２，０４５Ｉ×８９６万＝約１８３億Ｉとなる。
【０１２６】
相関関数積算部１４２が積算相関関数ＳＣＣＦを１つ求めるには、数３において、ＵＣＣＦ（τ＋ｋＮ，ｆｄ）ｅｘｐ（−ｊ２πｆｄ・ｋ／１０００）を２０個（ｋ＝０〜１９）求め、これを合計する。
【０１２７】
まず、相関関数積算部１４２は、ｆｄ・ｋをインデックスとして、単位信号記憶部１２２が記憶したテーブルを参照し、周波数差補正値Ａ＝ｅｘｐ（−ｊ２πｆｄ・ｋ／１０００）を求める。この計算量はＩＡである。
【０１２８】
次に、相関関数積算部１４２は、τ＋ｋＮおよびｆｄをインデックスとして、単位相関関数算出部１４１が算出した単位相関関数ＵＣＣＦを一時的に記憶したテーブルを参照し、単位相関関数ＵＣＣＦ（τ＋ｋＮ，ｆｄ）を求める。これに上記で求めた周波数差補正値Ａを乗じて、ＵＣＣＦ（τ＋ｋＮ，ｆｄ）・Ａを求める。Ａ、ＵＣＣＦはともに複素数なので、この計算量はＩＣとほぼ等しい。ただし、ｋ＝０の場合は、Ａ＝１なので、複素数の乗算は不用であり、計算量はＩＣ’とほぼ等しい。
【０１２９】
相関関数積算部１４２は、これを２０個合計して単位相関関数ＵＣＣＦを求める。１回の加算に必要な計算量はＩＤである。
【０１３０】
したがって、積算相関関数ＳＣＣＦを１つ求めるのに必要な計算量は、２０ＩＡ＋１９（ＩＣ＋ＩＤ）＋ＩＣ’≒１９Ｉである。
【０１３１】
積算相関関数ＳＣＣＦは、τ及びｆｄを変数としている。
したがって、積算相関関数ＳＣＣＦは全部で、τの数×ｆｄの数、計算する必要がある。
【０１３２】
τは０〜２００Ｎ−１の整数なので、２００×２，０４６＝４０９，２００通りである。
ｆｄは、±１０ｋＨｚの範囲内で５０Ｈｚ刻みなので、４００通りである。
【０１３３】
したがって、積算相関関数ＳＣＣＦの総数は４０９，２００×４００＝約１．６億であり、すべての積算相関関数ＳＣＣＦを計算するときの計算量は、１９Ｉ×１．６億＝約３１億Ｉとなる。
【０１３４】
集積相関関数算出部１５２が集積相関関数ＩＣＣＦを１つ求めるには、数５において、ｐｓα（ｉ）ＳＣＣＦ（τ＋２０ｉＮ，ｆｄ）ｅｘｐ（−ｊ２πｆｄ・ｉ／５０）を５個（ｉ＝０〜４）求め、これを合計する。
【０１３５】
まず、集積相関関数算出部１５２は、ｆｄ・ｉをインデックスとして、周波数差補正記憶部１３１が記憶したテーブルを参照し、周波数差補正値Ａ＝ｅｘｐ（−ｊ２πｆｄ・ｉ／５０）を求める。この計算量はＩＡである。
【０１３６】
次に、集積相関関数算出部１５２は、τ＋２０ｉＮ及びｆｄをインデックスとして、相関関数積算部１４２が算出した積算相関関数ＳＣＣＦを一時的に記憶したテーブルを参照し、積算相関関数ＳＣＣＦ（τ＋２０ｉＮ，ｆｄ）を求める。これに上記で求めたＡを乗じて、Ｄ＝ＳＣＣＦ（τ＋２０ｉＮ，ｆｄ）・Ａを求める。Ａ、ＳＣＣＦはともに複素数なので、この計算量はＩＣとほぼ等しい。ただし、ｉ＝０の場合は、Ａ＝１なので、複素数の乗算は不用であり、計算量はＩＣ’とほぼ等しい。
【０１３７】
そして、集積相関関数算出部１５２は、ｉとαをインデックスとして、二値符号列記憶部１５１が記憶したテーブルを参照し、ｐｓα（ｉ）を求める。これに上記で求めたＤを乗じて、ｐｓα（ｉ）・Ｄを求める。Ｄは複素数であるが、ｐｓα（ｉ）の値は１または−１なので、この計算量はＩＢである。
【０１３８】
集積相関関数算出部１５２は、これを５個合計して集積相関関数ＩＣＣＦを求める。
【０１３９】
したがって、集積相関関数ＩＣＣＦを１つ求めるのに必要な計算量は、５ＩＡ＋４ＩＣ＋ＩＣ’＋５ＩＢ＋４ＩＤ＝４（ＩＡ＋ＩＢ＋ＩＣ＋ＩＤ）＋（ＩＡ＋ＩＢ＋ＩＣ’）≒４Ｉである。
【０１４０】
なお、αだけが異なる集積相関関数ＩＣＣＦを求めるには、既に集積相関関数ＩＣＣＦを求めるときに計算したＤを再利用できる。その場合には、計算量は、５ＩＢ＋４ＩＤになる。
【０１４１】
集積相関関数ＩＣＣＦは、α、τ、ｆｄを変数としている。
したがって、集積相関関数ＩＣＣＦは全部で、αの数×τの数×ｆｄの数、計算する必要がある。
【０１４２】
αは、ビット反転を除いたすべての５ビットの二値符号列を仮定するとして、１６通りである。
τは０〜２０Ｎ−１または１００Ｎ〜１２０Ｎ−１の整数なので、４０×２，０４６＝８１，８４０通りである。
ｆｄは、±１０ｋＨｚの範囲内で１０Ｈｚ刻みなので、２０００通りである。
【０１４３】
したがって、集積相関関数ＩＣＣＦの総数は、１６×８１，８４０×２０００＝約２６億であり、計算量は、４Ｉ×２６億＝約１０４億Ｉとなる。
【０１４４】
再集積相関関数算出部１６２が再集積相関関数ＲＣＣＦを１つ求めるには、数６を計算する。
まず、再集積相関関数算出部１６２は、ｆｄをインデックスとして、周波数差補正記憶部１３１が記憶したテーブルを参照し、周波数差補正値Ａ＝ｅｘｐ（−ｊ２πｆｄ／１０）を求める。この計算量はＩＡである。
【０１４５】
次に、再集積相関関数算出部１６２は、β、τ＋１００Ｎ及びｆｄをインデックスとして、集積相関関数算出部１５２が算出した集積相関関数ＩＣＣＦを一時的に記憶したテーブルを参照し、集積相関関数ＩＣＣＦβ（τ＋１００Ｎ，ｆｄ）を求める。これに上記で求めたＡを乗じて、Ｅ＝ＩＣＣＦβ（τ＋１００Ｎ，ｆｄ）・Ａを求める。Ａ、ＩＣＣＦはともに複素数なので、この計算量はＩＣとほぼ等しい。
【０１４６】
そして、再集積相関関数算出部１６２は、α、τ及びｆｄをインデックスとして、集積相関関数算出部１５２が算出した集積相関関数ＩＣＣＦを一時的に記憶したテーブルを参照し、集積相関関数ＩＣＣＦα（τ，ｆｄ）を求める。これに上記で求めたＥを加算して、再集積相関関数ＲＣＣＦを求める。複素数の加算なので、この計算量はＩＤである。
【０１４７】
したがって、再集積相関関数ＲＣＣＦを１つ求めるのに必要な計算量は、ＩＡ＋ＩＣ＋ＩＤ≒Ｉである。
【０１４８】
再集積相関関数ＲＣＣＦを１つ求めるのに必要な計算量は、Ｉである。
再集積相関関数ＲＣＣＦは、開始時点候補１つあたり６４通り計算する。
仮検出部１６１が検出する開始時点候補の数をＭ個とすると、再集積相関関数ＲＣＣＦの数は６４Ｍであるから、計算量は、６４Ｍ×Ｉとなる。
【０１４９】
電波の状態が比較的良ければ、開始時点候補の数Ｍは少なくなる。しかし、ここでは電波の状態がかなり悪い場合を想定して計算する。
例えば、仮検出部１６１が検出する開始時点候補が集積相関関数ＩＣＣＦ全体の約０．１％だとすると、Ｍは２６億×０．１％＝２６０万である。その場合、計算量は約１．７億Ｉとなる。
【０１５０】
したがって、以上の計算をすべてした場合の計算量は、１８３億Ｉ＋３１億Ｉ＋１０５億Ｉ＋１．７億Ｉ＝約３２０億Ｉとなる。
【０１５１】
ちなみに、仮検出、再集積、本検出の手順を取らず、同じ２００ミリ秒の区間について集積相関関数ＩＣＣＦを求め、これに基づいて本検出する構成とした場合の計算量は、以下のとおりとなる。
集積相関関数ＩＣＣＦを１つ求めるのに必要な計算量は、約９Ｉである。
集積相関関数ＩＣＣＦは、α、τ、ｆｄを変数としている。
αは、ビット反転を除いたすべての１０ビットの二値符号列を仮定するとして、５１２通りである。
τは０〜２０Ｎ−１の整数なので、２０×２，０４６＝４０，９２０通りである。
ｆｄは、±１０ｋＨｚの範囲内で５Ｈｚ刻みなので、４０００通りである。
したがって、集積相関関数ＩＣＣＦの総数は、５１２×４０，９２０×４０００＝約８４０億であり、計算量は、９Ｉ×８４０億＝７５００億Ｉとなる。
すなわち、全体の計算量は、約７７００億Ｉとなる。
【０１５２】
したがって、この実施の形態によれば、全体の計算量が約２３分の１になるという効果を奏する。
この例では、航法データ５ビット（１００ミリ秒）分の区間について集積相関関数ＩＣＣＦを求め、集積相関関数ＩＣＣＦ２つ（２００ミリ秒）分の区間について再集積相関関数ＲＣＣＦを求めたが、相関を求める区間をもっと長くすれば、更に大きな削減効果が得られる。
【０１５３】
例えば、航法データ６ビット（１２０ミリ秒）分の区間について集積相関関数ＩＣＣＦを求め、集積相関関数ＩＣＣＦ２つ（２４０ミリ秒）分の区間について再集積相関関数ＲＣＣＦを求める場合には、総計算量は約５８０億Ｉであるが、２４０ミリ秒を１つの区間として集積相関関数ＩＣＣＦを求めた場合の総計算量は約４．５兆Ｉなので、総計算量は約８０分の１になる。
【０１５４】
あるいは、航法データ５ビット（１００ミリ秒）分の区間について集積相関関数ＩＣＣＦを求め、集積相関関数ＩＣＣＦ３つ（３００ミリ秒）分の区間について再集積相関関数ＲＣＣＦを求める場合には、総計算量は約７１０億Ｉであるが、３００ミリ秒を１つの区間として集積相関関数ＩＣＣＦを求めた場合の総計算量は約５６兆Ｉなので、総計算量は約８００分の１になる。
【０１５５】
実施の形態２．
実施の形態２を、図１〜図８を用いて説明する。
この実施の形態におけるＧＰＳ測位装置１００（検出装置の一例）のハードウェア構成、機能ブロック構成は、実施の形態１で説明したものと同一であるので、ここでは説明を省略する。
【０１５６】
また、各ブロックの動作のうち、再集積相関関数算出部１６２以外のブロックの動作も、実施の形態１で説明したものと同一であるので、ここでは説明を省略する。
【０１５７】
再集積相関関数算出部１６２は、仮検出部１６１が検出した開始時点候補のなかに、互いに対応するものがあるか否かを判断し、対応するものがあると判断したものについて、再集積相関関数ＲＣＣＦを算出する。
【０１５８】
Ｃ／Ａコードの継続時間は１ミリ秒であるから、Ｃ／Ａコードの開始時点は１ミリ秒ごとにあり、航法データによる相殺を考慮しても、２０ミリ秒（航法データの１ビットに相当）ごとに検出できるピークがあるはずである。
仮検出部１６１が検出に用いる閾値が十分低ければ、たとえ信号が雑音に埋もれていても、このピークが必ず開始時点候補のなかに含まれる。
しかし、閾値が低いと、雑音も検出してしまう確率が高くなる。その結果、開始時点候補が多くなり、実施の形態１の方式による計算量の削減効果が低くなってしまう。
【０１５９】
そこで、この実施の形態では、開始時点候補を絞り込むことで、計算量の削減効果を高める。
【０１６０】
図８は、再集積相関関数算出部１６２の動作の概念を説明するための説明図である。
図８に示す集積相関関数ＩＣＣＦ５４０は、図７において説明したものと同一であるので、ここでは説明を省略する。
図８において、仮検出部１６１が検出した開始時点候補は、桝目の内部を塗ることで表現してある。
【０１６１】
再集積相関関数算出部１６２は、τ１＝０〜２０Ｎ−１の範囲で検出した開始時点候補Ｃ１（α，τ１，ｆｄ１）と、τ２＝１００Ｎ〜１２０Ｎ−１の範囲で検出した開始時点候補Ｃ２（β，τ２，ｆｄ２）とについて、τ２−τ１＝１００Ｎかつｆｄ１＝ｆｄ２となる（Ｃ１，Ｃ２）の組を探す。
【０１６２】
図８では、このように対応する開始時点候補の組を矢印で結ぶことによって表現している。
【０１６３】
再集積相関関数算出部１６２は、このようにして検出した開始時点候補の組（Ｃ１，Ｃ２）のなかから１つを選択し、それについての再集積相関関数ＲＣＣＦα，β（τ，ｆｄ）を算出する。
再集積相関関数ＲＣＣＦの変数、α、β、τ（＝τ１）、ｆｄ（＝ｆｄ１＝ｆｄ２）は、開始時点候補の組（Ｃ１，Ｃ２）により定まっている。
ｆｄの精度を上げるために２通り、集積相関関数ＩＣＣＦの和と差の２通りを算出するので、１つの開始時点候補の組（Ｃ１，Ｃ２）について、再集積相関関数ＲＣＣＦは、４通りの値を計算する。
【０１６４】
これを繰り返し、すべての開始時点候補の組について、再集積相関関数ＲＣＣＦ５６０を算出する。
【０１６５】
この方式による場合、Ｃ／Ａコードの開始時点を、必ず仮検出部１６１が開始時点候補として検出する必要があるため、仮検出部１６１の検出閾値を低めに設定する必要がある。
したがって、仮検出部１６１が検出する開始時点候補は、実施の形態１と比較して多くなる。
しかし、再集積相関関数算出部１６２は、開始時点候補が組になる場合についてのみ、再集積相関関数ＲＣＣＦを算出するので、実際に計算する再集積相関関数ＲＣＣＦの計算量は、実施の形態１と比較して少なくなることが期待できる。
【０１６６】
したがって、この実施の形態によれば、Ｃ／Ａコードの開始時点の検出に必要な計算量を、更に削減できるという効果を奏する。
【０１６７】
この例において、対応する開始時点候補の組（Ｃ１，Ｃ２）を探す条件は、τ２−τ１＝１００Ｎかつｆｄ１＝ｆｄ２としている。
【０１６８】
しかし、再集積相関関数ＲＣＣＦが相関をとる区間が長い場合には、以下の理由により、この条件を緩める必要がある。
【０１６９】
理由の１つは、周波数差ｆｄの影響である。周波数差ｆｄは、位相だけでなく、全体の周期にも影響するからである。
例えば、周波数差ｆｄが４ｋＨｚである場合、もとのＧＰＳ信号の搬送波周波数Ｌ１＝１５７５．４２ＭＨｚであるから、周期の誤差は４ｋＨｚ／１５７５．４２ＭＨｚ＝約２．５ｐｐｍ存在する。したがって、１秒につき、信号の周期が２．５マイクロ秒ずれる。サンプリングデータの数に換算すると、２．５Ｎ／１０００個分である（Ｎは、Ｃ／Ａコード一周期（１ミリ秒）あたりのサンプリングデータの数）。
Ｎ＝２０４６、対応する開始時点候補の開始時点の差が１００ミリ秒の場合なら、ずれはサンプリングデータ０．５個分である。
【０１７０】
一般に、以下の式が成り立つ。
【０１７１】
【数８】
2006345128.tif 000010
【０１７２】
ただし、Δτはサンプリングデータ数に換算した周期のずれ、ＮはＣ／Ａコード一周期（１ミリ秒）あたりのサンプリングデータの数、ΔＴは比較する開始時点候補の開始時点の差（秒）、ｆｄは周波数差、ｆＬ１はＧＰＳ信号の搬送波周波数（１５７５．４２ＭＨｚ）である。
【０１７３】
したがって、再集積相関関数算出部１６２は、τ１とτ２との差がこの誤差を考慮に入れた範囲内であれば、２つの開始時点候補を対応するものと判断する構成とする。例えば、τ２−τ１＜１００Ｎ＋Δτ、｜Δτ｜＜Δτｍ（Δτはサンプリングデータ数に換算した周期のずれ。ΔτｍはΔτの最大値）である場合に、対応するものと判断する。
あるいは、数８に基づいて周期のずれを計算し、対応するτ１，τ２を求めてもよい。
【０１７４】
また、時間が経過することにより、ＧＰＳ衛星とＧＰＳ測位装置１００との相対的な位置関係や相対速度が変化する。
その結果、周波数差ｆｄのうち、ドップラー効果に起因する成分が変化するため、ｆｄ１とｆｄ２は一致しない可能性がある。
しかし、経過時間が短ければ周波数差ｆｄの変化もごくわずかである。
【０１７５】
したがって、再集積相関関数算出部１６２は、ｆｄ１とｆｄ２との差が所定の範囲内であれば、２つの開始時点候補を対応するものと判断する構成とする。例えば、ｆｄ１−ｆｄ２＝Δｆｄ、｜Δｆｄ｜＜Δｆｄｍ（Δｆｄは周波数差の変化、ΔｆｄｍはΔｆｄの最大値）である場合に、対応するものと判断する。
【０１７６】
具体的な計算量がどれくらいかを検証する。
【０１７７】
ここで、Ｃ／Ａコード一周期あたりのサンプリングデータ数Ｎは２０４６（サンプリング周波数２．０４６ＭＨｚ）、周波数差ｆｄは±１０ｋＨｚの範囲内であるとする。
また、集積相関関数ＩＣＣＦの相関を求める区間は航法データ５ビット分（１００ミリ秒）、再集積相関関数ＲＣＣＦの相関を求める区間は集積相関関数ＩＣＣＦ２つ分（２００ミリ秒）とする。
【０１７８】
単位相関関数ＵＣＣＦ、積算相関関数ＳＣＣＦ、集積相関関数ＩＣＣＦを求めるための計算量は、実施の形態１の場合と等しい。
【０１７９】
再集積相関関数ＲＣＣＦを１つ求めるのに必要な計算量は、Ｉである。
再集積相関関数ＲＣＣＦは、開始時点候補の組１つあたり４通り計算する。
開始時点候補の組の数をＰ個とすると、再集積相関関数ＲＣＣＦの数は４Ｐであるから、計算量は、４Ｐ×Ｉとなる。
確実に開始時点候補の組を検出するために、仮検出部１６１の閾値を下げ、仮検出部１６１は開始時点候補として集積相関関数ＩＣＣＦ全体の約０．５％を検出するものとすると、組になる開始時点候補は、（０．５％×１６）２＝０．６％である。したがって、Ｐは１３億×０．６％＝７８０万であるから、計算量は、約３２００万Ｉとなる。
【０１８０】
したがって、再集積相関関数ＲＣＣＦを求めるのに必要な計算量は、実施の形態１と比べて、約５分の１になる。
【０１８１】
このように、この実施の形態によれば、Ｃ／Ａコードの開始時点の検出に必要な計算量が、更に削減できるとの効果を奏する。
【０１８２】
相関を求める区間が更に長い場合には、更に大きな削減効果を得られる。
例えば、航法データ６ビット分の集積相関関数ＩＣＣＦと、集積相関関数ＩＣＣＦ２つ分の再集積相関関数ＲＣＣＦとを求める場合、総計算量は約５７０億Ｉになる。
また、航法データ５ビット分の集積相関関数ＩＣＣＦと、集積相関関数ＩＣＣＦ３つ分の再集積相関関数ＲＣＣＦとを求める場合、仮検出部１６１の検出率Ｍを約１％とすると、開始時点候補の３つ組ができる確率は約０．３％なので、総計算量は約４７０億Ｉになる。
【０１８３】
実施の形態３．
実施の形態３を、図１〜図７を用いて説明する。
この実施の形態におけるＧＰＳ測位装置１００（検出装置の一例）のハードウェア構成、機能ブロック構成は、実施の形態１で説明したものと同一であるので、ここでは説明を省略する。
【０１８４】
また、各ブロックの動作も、実施の形態１で説明したものと共通するものについては、説明を省略する。
【０１８５】
この実施の形態では、Ｃ／Ａコードの開始時点の検出に必要な計算量を、更に削減する方法について説明する。
【０１８６】
実施の形態２においては、仮検出部１６１が検出した開始時点候補が組になるものを求め、その開始時点候補について再集積相関関数ＲＣＣＦを算出している。
したがって、開始時点候補が組になる可能性のないものについては、集積相関関数ＩＣＣＦを計算する必要がない。
【０１８７】
そこで、この実施の形態では、先に、仮検出部１６１が開始時点候補を検出し、その開始時点候補と組になる可能性のあるものについて、集積相関関数ＩＣＣＦを計算し、組になるかを判断する。
【０１８８】
例えば、集積相関関数算出部１５２では、第一集積部１５３が開始時点τ＝０〜２０Ｎ−１の範囲内で集積相関関数ＩＣＣＦを算出する。
そのための準備として、積算相関関数算出部１４０は、開始時点τ＝０〜１００Ｎ−１の範囲内で積算相関関数ＳＣＣＦを算出する。
【０１８９】
そのため、単位相関関数算出部１４１は、開始時点τ＝０〜１１９Ｎ−１の範囲内で単位相関関数ＵＣＣＦを算出しておけばよい。しかし、τ＝１１９Ｎ〜２１９Ｎ−１の範囲の単位相関関数ＵＣＣＦもあとで使うので、先に計算しておいてもよい。
【０１９０】
次に、仮検出部１６１は、集積相関関数算出部１５２が算出した集積相関関数ＩＣＣＦに基づいて、開始時点候補を検出する。検出の方法については、実施の形態１で説明したので、ここでは説明を省略する。
【０１９１】
そして、集積相関関数算出部１５２では、第二集積部１５４が開始時点τ＝１００Ｎ〜１２０Ｎ−１の範囲内で、仮検出部１６１が検出した開始時点候補に対応する可能性のあるものについて、集積相関関数ＩＣＣＦを算出する。
積算相関関数算出部１４０は、そのために必要な集積相関関数ＳＣＣＦを算出する。
【０１９２】
その後、再集積相関関数算出部１６２が再集積相関関数ＲＣＣＦを求める。このとき、仮検出部１６１が検出した開始時点候補すべてについて、再集積相関関数ＲＣＣＦを求めてもよい。あるいは、第二集積部１５４が算出した集積相関関数ＩＣＣＦについて、仮検出部１６１が検出を行い、開始時点候補として検出した場合に、再集積相関関数ＲＣＣＦを算出してもよい。
【０１９３】
本検出部１７１は、再集積相関関数算出部１６２が算出した再集積相関関数ＲＣＣＦに基づいて、Ｃ／Ａコードの開始時点を検出する。
【０１９４】
このように、最初の区間について開始時点候補を検出し、次の区間については、開始時点候補に対応する可能性のあるものだけ、集積相関関数ＩＣＣＦを算出するので、その分計算量を削減できる。
【０１９５】
この実施の形態によれば、Ｃ／Ａコードの開始時点の検出に必要な計算量を、更に大幅に削減することができるとの効果を奏する。
【０１９６】
具体的な計算量がどれくらいかを検証する。
【０１９７】
ここで、Ｃ／Ａコード一周期あたりのサンプリングデータ数Ｎは２０４６（サンプリング周波数２．０４６ＭＨｚ）、周波数差ｆｄは±１０ｋＨｚの範囲内であるとする。
また、集積相関関数ＩＣＣＦの相関を求める区間は航法データ５ビット分（１００ミリ秒）、再集積相関関数ＲＣＣＦの相関を求める区間は集積相関関数ＩＣＣＦ２つ分（２００ミリ秒）とする。
【０１９８】
まず、仮検出前の計算量を求める。
【０１９９】
単位相関関数ＵＣＣＦを１つ求めるのに必要な計算量は、約２，０４５Ｉである。
τが０〜１１９Ｎ−１の整数で２４３，４７４通り、ｆｄが２０通りなので、単位相関関数ＵＣＣＦの総数は約４９０万、計算量は約１００億Ｉとなる。
【０２００】
積算相関関数ＳＣＣＦを１つ求めるのに必要な計算量は、約１９Ｉである。
τは０〜１００Ｎ−１の整数で２０４，６００通り、ｆｄが４００通りなので、積算相関関数ＳＣＣＦの総数は約８２００万、計算量は約１６億Ｉとなる。
【０２０１】
集積相関関数ＩＣＣＦを１つ求めるのに必要な計算量は、約４Ｉである。
αが１６通り、τが０〜２０Ｎ−１の整数で４０，９２０通り、ｆｄが２０００通りなので、集積相関関数ＩＣＣＦの総数は約１３億、計算量は約５２億Ｉとなる。
【０２０２】
したがって、仮検出前の計算量は、１００億Ｉ＋１６億Ｉ＋５２億Ｉ＝約１６８億Ｉとなる。
【０２０３】
次に、仮検出後の計算量を求める。
【０２０４】
単位相関関数ＵＣＣＦは、仮検出前に計算していなかった残りを全部計算するとしても、τが１１９Ｎ〜２１９Ｎ−１の整数で２０４，６００通り、ｆｄが２０通りなので、単位相関関数ＵＣＣＦの総数は約４１０万、計算量は約８３億Ｉとなる。
【０２０５】
積算相関関数ＳＣＣＦは、開始時点候補１つにつき５つ計算する。
集積相関関数ＩＣＣＦは、開始時点候補１つにつき１６通り計算する。集積相関関数ＩＣＣＦの変数のうち、開始時点τと周波数差ｆｄが定まっているからである。
再集積相関関数ＲＣＣＦを１つ求めるのに必要な計算量は、Ｉである。
再集積相関関数ＲＣＣＦは、開始時点候補１つにつき１６×４＝６４通り計算する。
【０２０６】
したがって、開始時点候補１つあたりの計算量は、１９Ｉ×５＋４Ｉ×１６＋Ｉ×６４＝２２３Ｉである。
仮検出部１６１が検出する開始時点候補の数をＭ個とすると、仮検出後の計算量は（２２３Ｍ＋８３億）Ｉである。
【０２０７】
例えば、仮検出部１６１が検出する開始時点候補が集積相関関数ＩＣＣＦ全体の約０．５％だとすると、Ｍは１３億×０．５％＝６５０万であるから、計算量は約９７億Ｉとなる。
【０２０８】
したがって、総計算量は、１６８億Ｉ＋９７億Ｉ＝約２６５億Ｉとなる。
【０２０９】
このように、この実施の形態によれば、Ｃ／Ａコードの開始時点の検出に必要な計算量を、更に大幅に削減することができるとの効果を奏する。
【０２１０】
相関を求める区間が更に長い場合には、更に大きな削減効果が得られる。
例えば、航法データ６ビット分の集積相関関数ＩＣＣＦと、集積相関関数ＩＣＣＦ２つ分の再集積相関関数ＲＣＣＦとを求める場合、総計算量は約４６０億Ｉとなる。
【０２１１】
なお、再集積相関関数ＲＣＣＦからＣ／Ａコードの開始時点が検出できない場合に、更に次の区間についての集積相関関数ＩＣＣＦを算出して、再集積相関関数ＲＣＣＦに積算する構成としてもよい。
【０２１２】
例えば、再集積相関関数ＲＣＣＦに基づいて、仮検出部１６１が再び開始時点候補を検出することにより、開始時点候補を絞り込む。
本検出部１７１は、仮検出部１６１が検出した開始時点候補が１つに絞られた場合には、その開始時点候補をＣ／Ａコードの開始時点として検出する。
開始時点候補が複数検出された場合には、更に次の１区間（この例では航法データ５ビット分＝１００ミリ秒）について、単位相関関数ＵＣＣＦ、積算相関関数ＳＣＣＦ、集積相関関数ＩＣＣＦを求めて、再集積相関関数算出部１６２が、再集積相関関数ＲＣＣＦに積算する。
これを繰り返して、徐々に相関を求める区間を長くして、Ｃ／Ａコードの開始時点を検出する。
【０２１３】
これにより、信号の受信状態にあわせて、相関を求める区間を変えることができるので、信号が微弱であっても、Ｃ／Ａコードの開始時点を検出できる。しかも、そのために必要な計算量は、あまり増えないという効果を奏する。
【０２１４】
例えば、航法データ５ビット分の集積相関関数ＩＣＣＦをもとにして再集積相関関数ＲＣＣＦを求める場合、集積相関関数ＩＣＣＦ２区間までの計算量は、仮検出率を０．５％とすると、約２６５億Ｉである。
求めた再集積相関関数ＲＣＣＦの総数は約４．２億であるから、そこから更に０．５％を仮検出すると、開始時点候補の数は、約２１０万に減る。
次の１区間を再集積相関関数ＲＣＣＦに積算するための計算量は約８８億Ｉであるから、総計算量は約３５３億Ｉとなる。
【０２１５】
実施の形態４．
実施の形態４を、図１〜図７を用いて説明する。
この実施の形態におけるＧＰＳ測位装置１００（検出装置の一例）のハードウェア構成、機能ブロック構成は、実施の形態１で説明したものと同一であるので、ここでは説明を省略する。
【０２１６】
また、各ブロックの動作も、実施の形態１で説明したものと共通するものについては、説明を省略する。
【０２１７】
この実施の形態では、航法データによる位相のずれの影響を排除するため、二乗積算相関関数ＤＣＣＦを用いて、長区間の相関を求める。
【０２１８】
二乗積算相関関数ＤＣＣＦは、例えば、２００ミリ秒の区間について、以下の式により算出する。
【０２１９】
【数９】
2006345128.tif 000011
【０２２０】
ただし、ＤＣＣＦ（τ，ｆｄ）は二乗積算相関関数（複素数）、τは相関区間の開始時点（サンプリングデータの数を単位とする整数。τ＝０〜Ｎ−１）、ｆｄは周波数差、ＵＣＣＦは単位相関関数算出部１４１が算出した単位相関関数、ＮはＣ／Ａコード一周期あたりのサンプリングデータ数（自然数）、ｅは自然対数の底、ｊは虚数単位である。
【０２２１】
周波数差ｆｄの刻み幅は、５Ｈｚ以下である。
【０２２２】
二乗積算相関関数ＤＣＣＦは、単位相関関数ＵＣＣＦの値を二乗して積算する点で、積算相関関数ＳＣＣＦと異なっている。
【０２２３】
図６に示したように、航法データの値が変化すると、単位相関関数ＵＣＣＦの位相が１８０°ずれる。これをそのまま積算すると、航法データが変化する前後の単位相関関数ＵＣＣＦが相殺してしまい、感度が落ちる。
二乗積算相関関数ＤＣＣＦは、単位相関関数ＵＣＣＦを二乗して積算する。このため、単位相関関数ＵＣＣＦの位相が１８０°ずれている場合には、位相のずれが倍の３６０°になり、もとに戻る。
したがって、これをそのまま積算しても、航法データの影響を受けず、単位相関関数ＵＣＣＦのピークを相乗することができる。
【０２２４】
なお、二乗積算相関関数ＤＣＣＦを求めるに際して、これをいくつかの区間に分割して積算し、その積算結果を更に積算する方法によれば、分割した区間における周波数差ｆｄの刻み幅を大きくとることができるので、計算量は更に減る。
【０２２５】
図示していない二乗積算相関関数算出部は、単位相関関数算出部１４１が算出した単位相関関数ＵＣＣＦを、数９にしたがって、二乗して積算する。
このとき、単位相関関数ＵＣＣＦは、周波数差ｆｄの影響で位相が異なるため、周波数差ｆｄに基づく補正をした上で、積算する。
【０２２６】
二乗積算相関関数算出部が算出した二乗積算相関関数ＤＣＣＦに基づいて、本検出部１７１が、Ｃ／Ａコードの開始時点を検出してもよい。
その場合には、航法データの境界は検出できないので、必要であれば、他の方法を併用することにより、航法データの境界を検出する。
【０２２７】
しかし、二乗積算相関関数ＤＣＣＦでは、雑音も二乗して積算されているので、位相が１８０°異なる雑音は相乗する。したがって、実施の形態１などで再集積相関関数ＲＣＣＦにより同じ２００ミリ秒の区間についての相関を用いた検出と比べると、検出感度が落ちる可能性がある。
【０２２８】
そこで、二乗積算相関関数ＤＣＣＦに基づいて、仮検出部１６１が開始時点候補を検出する。
【０２２９】
次に、仮検出部１６１が検出した開始時点候補について、積算相関関数ＳＣＣＦ、集積相関関数ＩＣＣＦなどを求める。実施の形態１〜実施の形態３で説明した方法により、Ｃ／Ａコードの開始時点を検出する。
【０２３０】
したがって、この実施の形態によれば、Ｃ／Ａコードの開始時点の検出に必要な計算量を更に削減できるという効果を奏する。
【０２３１】
具体的な計算量がどれくらいかを検証する。
【０２３２】
ここで、Ｃ／Ａコード一周期あたりのサンプリングデータ数Ｎは２０４６（サンプリング周波数２．０４６ＭＨｚ）、周波数差ｆｄは±１０ｋＨｚの範囲内であるとする。
また、集積相関関数ＩＣＣＦの相関を求める区間は航法データ５ビット分（１００ミリ秒）、再集積相関関数ＲＣＣＦの相関を求める区間は集積相関関数ＩＣＣＦ２つ分（２００ミリ秒）とする。二乗積算相関関数ＤＣＣＦの相関を求める区間はこの全区間と等しい２００ミリ秒（Ｃ／Ａコード２００周期）である。
【０２３３】
まず、二乗積算相関関数ＤＣＣＦによる検出段階の計算量を求める。
【０２３４】
単位相関関数ＵＣＣＦを求めるのに必要な計算量は、実施の形態１で試算したのと同じなので、約１８３億Ｉである。
【０２３５】
二乗積算相関関数算出部は、数９を計算して、二乗積算相関関数ＤＣＣＦを求める。
まず、二乗積算相関関数算出部は、二乗積算相関関数ＤＣＣＦを求める前段階として、単位相関関数ＵＣＣＦを二乗する。
すなわち、二乗積算相関関数算出部は、τ＋ｋＮ及びｆｄをインデックスとして、単位相関関数算出部１４１が算出した単位相関関数ＵＣＣＦを一時的に記憶したテーブルを参照し、単位相関関数ＵＣＣＦ（τ＋ｋＮ，ｆｄ）を求め、これを二乗して、一時的なテーブルに記憶する。ＵＣＣＦは複素数なので、１つあたりの必要な計算量はＩＣとほぼ等しい。
単位相関関数ＵＣＣＦの総数は約８９６万であるから、計算量は約８９６万ＩＣである。
【０２３６】
二乗積算相関関数算出部は、ｆｄ・２ｋをインデックスとして、周波数差補正記憶部１３１が記憶したテーブルを参照し、ｅｘｐ（−２πｆｄ・２ｋ／１０００）を求める。これに上記で算出した単位相関関数ＵＣＣＦの二乗を乗じる。これは複素数の乗算なので、１つあたりの必要な計算量はＩＣとほぼ等しい。ただし、ｋ＝０の場合は、ＩＣ’とほぼ等しい。
【０２３７】
二乗積算相関関数算出部は、これを２００個計算し、合計する。これは複素数の加算なので、１回の加算につき必要な計算量はＩＤである。
【０２３８】
したがって、二乗積算相関関数ＤＣＣＦを１つ求めるのに必要な計算量は、１９９（ＩＣ＋ＩＤ）＋ＩＣ’≒１９９Ｉである。
【０２３９】
二乗積算相関関数ＤＣＣＦは、τ及びｆｄを変数としている。
したがって、二乗積算相関関数は全部で、τの数×ｆｄの数、計算する必要がある。
【０２４０】
τは０〜Ｎ−１の整数なので、２，０４６通りである。
ｆｄは、±１０ｋＨｚの範囲内で５Ｈｚ刻みなので、４０００通りである。
したがって、二乗積算相関関数ＤＣＣＦの総数は２，０４６×４０００＝約８２０万であり、計算量は１９９Ｉ×８２０万＝約１６億Ｉとなる。
【０２４１】
したがって、二乗積算相関関数ＤＣＣＦによる検出段階の計算量は、１８３億Ｉ＋８９６万ＩＣ＋１６億Ｉ＝約２００億Ｉとなる。
【０２４２】
次に、二乗積算相関関数ＤＣＣＦに基づく仮検出後の計算量を求める。
【０２４３】
積算相関関数ＳＣＣＦは、開始時点候補１つにつき２０×１０＝２００通り計算する。
集積相関関数ＩＣＣＦは、開始時点候補１つにつき２０×１６×２＝６４０通り計算する。
再集積相関関数ＲＣＣＦは、開始時点候補１つにつき２０×６４＝１２８０通り計算する。
【０２４４】
したがって、開始時点候補１つあたりの計算量は、１９Ｉ×２００＋４Ｉ×６４０＋Ｉ×１２８０＝７６４０Ｉとなる。
仮検出部１６１が検出する開始時点候補の数をＭとすると、仮検出後の計算量は、７６４０Ｉ×Ｍである。
【０２４５】
仮検出率を０．５％とすると、二乗積算相関関数ＤＣＣＦの総数は約８２０万なので、Ｍ＝約４．１万となる。仮検出後の計算量は、約３．１億Ｉとなる。
【０２４６】
したがって、全体の計算量は、２００億Ｉ＋３．１億Ｉ＝約２０３億Ｉとなる。
【０２４７】
このように、この実施の形態によれば、Ｃ／Ａコードの開始時点の検出に必要な計算量を更に削減できるという効果を奏する。
【０２４８】
実施の形態５．
実施の形態５を、図１、図９〜図１１を用いて説明する。
この実施の形態におけるＧＰＳ測位装置１００（検出装置の一例）のハードウェア構成は、実施の形態１において図１を用いて説明したものと同一であるので、ここでは説明を省略する。
【０２４９】
図９は、この実施の形態におけるＧＰＳ測位装置１００の機能ブロックの構成の一例を示すブロック図である。
ＧＰＳ測位装置１００は、ＧＰＳアンテナ６１９、受信部６１１、アナログデジタル（Ａ／Ｄ）変換部６１２（拡散信号取得部の一例）、データ記憶部６１３、データ読出し部６４９、スペクトル拡散コード発生部６２２（単位信号記憶部の一例）、相関処理部６４１（積算相関関数算出部の一例）、位相変調系列発生部６５１（二値符号列記憶部の一例）、積分処理部６５２（集積相関関数算出部の一例）、仮検出部６６１、データ保持部６６９、再検出部６７１（本検出部の一例）、測位計算部６８１、位置表示部６８２を有する。
【０２５０】
この実施の形態では、受信信号を所定の区間に分割し、分割した区間内において航法データ変調系列の総当り探索とＣ／Ａコードの周波数シフト探索を行い、相関処理及びコヒーレント積分処理を行う。
【０２５１】
ここで、コヒーレント積分とは、ＧＰＳ信号系列（Ｃ／Ａコード）を任意の位置で航法データの長さで分断し、各分断したＣ／Ａコードを加算し、この加算結果を自己が検出した航法データあるいは本部サーバから受け取った航法データに基づいて極性を合わせて加算することで積み上げることをいう。
【０２５２】
コヒーレント積分の積分結果を低い閾値で仮検出し、仮検出した信号をデータ保持部に記憶させる。分割した他の区間内についても同様の処理を行い、仮検出結果を記憶させる。
データ保持部が記憶した信号は不要信号も含むことになるが、区間間の信号の相関をとる、あるいは区間間の信号を再度積分することで不要信号を抑圧し（取り除き）、ＧＰＳ信号を検出することができる。
【０２５３】
ここでは、コヒーレント積分を行う航法データビット数を１０（＝２００ミリ秒）として、その受信信号列を２つの区間に分割する場合を考える。それぞれの区間は航法データ５ビット分の信号となる。
【０２５４】
ＧＰＳ測位装置１００では、まず、ＧＰＳアンテナ６１９がＧＰＳ信号を受信し、受信部６１１が増幅や周波数の変換等の処理を行った後、Ａ／Ｄ変換部６１２がＡ／Ｄ変換を行ってデジタルデータに変換する。Ａ／Ｄ変換されたデータはデータ記憶部６１３が記録する。
【０２５５】
データ記憶部６１３は、航法データビット境界の探索のため、相関演算処理をＣ／Ａコード１周期分毎にシフトさせて２０ミリ秒まで行うことを考慮し、２２０ミリ秒の信号を保存する。
データ記憶部６１３は、この信号を０〜１２０ミリ秒と１００〜２２０ミリ秒までの区間に分割して保存する。また、それぞれの区間のデータを、更に１ミリ秒の時間長のブロックに分割して保存する。
【０２５６】
データ読出し部６４９は、データ記憶部６１３が記憶したデータを、分割した区間毎に読み出す。まずこの受信信号の０〜１２０ミリ秒までを読み出し、相関処理部６４１に送る。
【０２５７】
スペクトル拡散コード発生部６２２は、信号を受信したいＧＰＳ衛星の番号に応じたＣ／Ａコードを発生し、そのコードに対して１チップ内をサンプリング周波数に応じて補間して、記憶する。記憶したコードは、相関処理部６４１に送る。
【０２５８】
相関処理部６４１は、データ読出し部６４９が送ったデータとスペクトル拡散コード発生部６２２が送ったコードとの相関関数ＣＣＦ（ｋ、τ、ｎｆ）（単位相関関数の一例）を以下のように計算する。
【０２５９】
【数１０】
2006345128.tif 000012
【０２６０】
ここで、ｓ（ｋ、ｎ）はデータ読出し部６４９が送ったデータを表す。ｋは受信信号を１ミリ秒毎に分割したｋ番目の信号ブロックを示し、ｎはその信号ブロックにおけるｎ番目のデータを示す。Ｃｃａ（ｎ）はＧＰＳ測位装置１００の内部でスペクトル拡散コード発生部６２２が生成したＣ／Ａコード、ｆｓはＡ／Ｄ変換部のサンプリング周波数、Δｆは周波数ステップ、ＮはＣ／Ａコード１周期（＝１ミリ秒）内に含まれるサンプル数（＝ｆｓ／１０００）であり、τは１ミリ秒間の遅延時間インデックス、ｎｆは周波数インデックスである。また、＊は複素共役を意味する。ここで、遅延時間インデックスτは１〜Ｎまでの整数である。
【０２６１】
図１０は、任意のｋにおける相関関数ＣＣＦ（ｋ、τ、ｎｆ）の時間−周波数プロットを示す。
【０２６２】
次に、相関処理部６４１は、航法データ１ビット分に相当する相関関数２０個ずつの総和Ｓ＿ＣＣＦ（積算相関関数の一例）を計算する。
ところが、航法データビット境界が未知であり、位相変調を行い足し算するだけでは、ビット境界のずれによる積分損失が発生する可能性がある。したがって、航法データビット境界、すなわち相関関数の足し算を開始する位置をシフトさせながら、ＣＣＦの２０個ずつの総和を次のように計算する。
【０２６３】
【数１１】
2006345128.tif 000013
【０２６４】
ここで、ｎｂｂは航法データビット境界を探索するインデックスであり、Ｃ／Ａコード２０周期分までシフトさせれば、その中には境界が必ず含まれることになるので、ｎｂｂは０〜１９までの整数である。
【０２６５】
相関処理部６４１は、このようにして計算した相関関数の総和Ｓ＿ＣＣＦを積分処理部６５２に送る。
【０２６６】
位相変調系列発生部６５１は、航法データ５ビット分に相当する位相変調系列を総当りで発生させ、記憶する。反転したビット系列による積分結果の絶対値は同じであるから発生させる位相変調系列のパターンは２の４乗通りになる。以下に航法データ５ビット分の位相変調系列Ｐｓを示す。
【０２６７】
【数１２】
2006345128.tif 000014
【０２６８】
ここで、０は０位相変調、１はπ位相変調を示す。
以下、Ｐｓの各要素をｐｓ（ｎｐ、ｉ）と表現する。ここで、ｎｐ及びｉは、それぞれＰｓの行番号と列番号であり、またそれぞれ、位相変調系列の総当りインデックスと航法データビットのインデックスを表している。
位相変調系列発生部６５１は、以上のようにして発生させた位相変調系列を積分処理部６５２に送る。
【０２６９】
積分処理部６５２は、相関処理部６４１が送った相関関数の総和Ｓ＿ＣＣＦ（ｋ、τ、ｎｆ）と位相変調系列発生部６５１が送った位相変調系列とを用いて、ブロック間のコヒーレント積分を行うことにより感度向上を図る。
すなわち、そのＳ＿ＣＣＦに対して位相変調を行い、足し算することで、複数の航法データビットに及ぶコヒーレント積分を実行する。
【０２７０】
積分処理部６５２は、相関処理部６４１が送った相関関数の２０個ずつの和Ｓ＿ＣＣＦに対して、位相変調系列発生部６５１が送ったｐｓ（ｎｐ、ｉ）による位相変調を行った後、足し算を以下のように実行する。
【０２７１】
【数１３】
2006345128.tif 000015
【０２７２】
ここで、ｎｐは位相変調系列の総当りインデックスである。
【０２７３】
図１１は、相関関数の積算動作の概略を示す説明図である。
【０２７４】
積分処理部６５２が、このようにして相関関数のコヒーレント積分を行ったＩ＿ＣＣＦ（集積相関関数の一例）は、位相変調系列のインデックス、遅延時間インデックス、周波数インデックス、航法データビット境界インデックスの４つのパラメータを持つ関数である。
積分処理部６５２は、これら全てのインデックスを変化させて計算したＩ＿ＣＣＦの値を仮検出部６６１に送る。
【０２７５】
仮検出部６６１は、積分処理部６５２が送った相関関数Ｉ＿ＣＣＦの絶対値の中で、低めに設定した閾値を超えた相関値を検出する。
仮検出部６６１は、検出した相関値ＩＣＰ＿ｔ１とその時の各インデックス、遅延時間τ＿ｔ１、周波数インデックスｎｆ＿ｔ１、位相変調系列ｎｐ＿ｔ１、ビット境界インデックスｎｂｂ＿ｔ１をデータ保持部６６９に送る。
相関値検出の閾値は、信号の分割数に応じて設定する。
例えば、受信信号列をＮ個のブロックに分割した場合、最大ピークより２０ｌｏｇ√ＮｄＢ（デシベル）低いレベルを閾値とする。これは、分割後の信号振幅は分割前の振幅Ｖｓの１／Ｎになり、ノイズ振幅は分割前の１／√Ｎになるので、分割後のＳＮ比は、分割前と比較して２０ｌｏｇ√ＮｄＢだけ劣化するからである。ここでは、二つのブロックに分けることを考えているので、最大ピークより３ｄＢ低いレベルを閾値とする。
【０２７６】
データ保持部６６９は、仮検出部６６１が送った信号の相関値と遅延時間、周波数、位相変調系列の総当り、ビット境界のインデックスを受信信号区間毎に保存する。
【０２７７】
次に、データ読出し部６４９は、データ記憶部６１３から１００ミリ秒〜２２０ミリ秒までの受信信号を読み出し、上記と同様の相関処理、積分処理、仮検出処理を行う。データ保持部６６９は、仮検出部６６１が検出した相関値ＩＣＰ＿ｔ２、遅延時間インデックスτ＿ｔ２、周波数インデックスｎｆ＿ｔ２、位相変調系列ｎｐ＿ｔ２、ビット境界インデックスｎｂｂ＿ｔ２を受信信号区間毎に保存する。
【０２７８】
次に、再検出部６７１が再検出を行う。
データ保持部６６９は、受信信号区間毎に閾値を超えた相関値を保存している。
【０２７９】
ここで、ＧＰＳ衛星のドップラー周波数が比較的小さい場合、全積分区間においてＧＰＳ信号の遅延時間と周波数インデックスと航法データビット境界は変化しないと考えられる。
【０２８０】
そこで、再検出部６７１は、データ保持部６６９が保存している相関値の区間間の相関をとる。
すなわち、遅延時間τ＿ｔ、周波数インデックスｎｆ＿ｔが一致するτ＿ｔ１＝τ＿ｔ２かつｎｆ＿ｔ１＝ｎｆ＿ｔ２となる信号を選択することで、ＧＰＳ信号を検出することができる。ノイズ信号は、区間毎に各インデックスが相異であることが期待されるからである。
遅延時間、周波数インデックスが同じ信号が複数検出された場合には、そのなかで、ビット境界インデックスｎｂｂ＿ｔも一致する信号を選択する。
【０２８１】
再検出部６７１は、検出した信号の遅延時間、位相変調系列を測位計算部６８１に送る。
【０２８２】
次に、測位計算部６８１、位置表示部６８２について説明する。
測位計算部６８１は、再検出部６７１が送った遅延時間、位相変調系列を用いて測位計算を行い、ＧＰＳ測位装置１００の位置座標を特定し、位置表示部６８２に送る。
位置表示部６８２は、測位計算部６８１が送った位置情報を表示する。
【０２８３】
以上のように、この実施の形態によれば、受信信号の区間毎に仮検出部６６１が低閾値でＧＰＳ信号を検出し、検出された信号の区間間の相関をとることにより、区間に分割しないで積分を行った場合よりも、低演算量でＧＰＳ信号を検出することができる。その理由について以下で説明する。
【０２８４】
航法データ１０ビット分（＝２００ミリ秒）の信号を分割しないで相関演算処理、コヒーレント積分処理を行った場合の位相変調系列の総当り数は２の９乗＝５１２通りである。
また、ＧＰＳ信号のドップラー周波数シフトの範囲はＧＰＳ測位装置１００が静止状態において±１０ｋＨｚであり、必要な周波数探索ステップは積分時間の逆数以下の値が必要になることを考えると、周波数インデックス総数は２０ｋＨｚ×２００ミリ秒＝４０００になる。
したがって、少なくとも５１２×４０００＝約２００万通りの探索が必要になる。
【０２８５】
一方、５ビット毎の二つの信号に分割して処理を行った場合、一つの区間において２の４乗×２０００＝３２０００通りの探索になるので、１０ビットの全区間の探索では３２０００×２＝６４０００通りの探索で済むことになる。
したがって、前者と比較すると探索回数が３２分の１に低減されたことになる。
【０２８６】
なおこの実施の形態では、位相変調系列発生部６５１が位相変調系列を発生しているが、外部サーバから送られた航法データビット系列を記憶しておき、これに基づいて積分処理部６５２が積分処理を行ってもよい。
【０２８７】
以上説明したＧＰＳ測位装置は、受信信号を所定の区間に分割し、分割したそれぞれの区間において相関処理とコヒーレント積分処理を行いその積分結果を低閾値で仮検出し、区間毎に仮検出した信号の相関をとることで再検出を行うことを特徴としている。
【０２８８】
これにより、ＧＰＳ測位装置の内部で航法データビット系列を推定処理する高感度方式において、受信信号の区間を分割しないでコヒーレント積分を行った場合と比較し、低演算量で同程度の感度を得ることができる。
したがって、ＧＰＳ信号の受信電力が低い室内等であっても外部から航法データを取得することなく、高感度にＧＰＳ測位を実現することができる。
【０２８９】
実施の形態６．
実施の形態６を、図１、図１２を用いて説明する。
この実施の形態におけるＧＰＳ測位装置１００（検出装置の一例）のハードウェア構成は、実施の形態１において図１を用いて説明したものと同一であるので、ここでは説明を省略する。
【０２９０】
実施の形態５では、仮検出した信号の区間間の相関を取ることで、不要信号を抑圧し、ＧＰＳ信号を検出している。しかし、遅延時間、周波数、航法データビット境界インデックスが一致する信号が複数検出された場合、ＧＰＳ信号を特定することはできない。
【０２９１】
そこで、この実施の形態では、仮検出した区間間の信号を再度積分し、積分結果の絶対値が大きくなる信号を選ぶことでＧＰＳ信号を検出する方式について説明する。
【０２９２】
図１２は、この実施の形態におけるＧＰＳ測位装置１００の機能ブロックの構成の一例を示すブロック図である。
図１２に示す機能ブロックのうち、実施の形態５において図９を用いて説明したものと同一の名称を有するものについては、実施の形態５において説明したものと共通である。
【０２９３】
この実施の形態におけるＧＰＳ測位装置１００は、再積分部６６２（再集積相関関数算出部の一例）を有している点が実施の形態５と異なっている。
以下、詳しく説明する。
【０２９４】
受信部６１１、Ａ／Ｄ変換部６１２、データ記憶部６１３、データ読出し部６４９、スペクトル拡散コード発生部６２２、位相変調系列発生部６５１、相関処理部６４１、積分処理部６５２、仮検出部６６１、データ保持部６６９、再検出部６７１の動作は、実施の形態５と同様なので、ここでは説明を省略する。
【０２９５】
再積分部６６２は、再検出部６７１が送った遅延時間、周波数、航法データビット境界インデックスが一致する区間間の信号を再度積分する。すなわち、相関値ＩＣＰ＿ｔ１と相関値ＩＣＰ＿ｔ２を加算する。
再積分部６６２は、ＩＣＰ＿ｔ１とＩＣＰ＿ｔ２を加算する際、区間間の信号の位相差を補償する。これにより、ＧＰＳ信号は区間間で積分され、ノイズ信号はＧＰＳ信号と同程度には積分されないことが期待される。
【０２９６】
再検出部６７１は、再積分部６６２が積分した結果の絶対値が最も大きくなる信号をＧＰＳ信号として検出する。
再検出部６７１は、以上のようにして検出したＧＰＳ信号の各インデックスと相関値を測位計算部６８１に送る。
【０２９７】
測位計算部６８１、位置表示部６８２の動作は、実施の形態５と同じなので、ここでは説明を省略する。
【０２９８】
以上のように、この実施の形態によれば、再検出した区間毎の信号において、遅延時間、周波数、航法データビット境界が一致する信号が複数検出された場合、再積分部６６２が再度区間間の信号の積分を行うことで、不要信号を抑圧し、ＧＰＳ信号を検出することができる。
【０２９９】
以上説明したＧＰＳ測位装置は、受信信号を所定の区間に分割し、分割したそれぞれの区間において相関処理とコヒーレント積分処理を行いその積分結果を低閾値で仮検出し、区間毎に仮検出した信号の相関をとることで再検出を行った後に、同じ遅延時間、周波数インデックスを持つ信号が複数あった場合に前記信号を再度積分し、その絶対値が最も大きい信号を検出することを特徴としている。
【０３００】
実施の形態７．
実施の形態７を図１、図１３を用いて説明する。
この実施の形態におけるＧＰＳ測位装置１００（検出装置の一例）のハードウェア構成は、実施の形態１において図１を用いて説明したものと同一であるので、ここでは説明を省略する。
【０３０１】
実施の形態５及び実施の形態６では、ある閾値を設け、仮検出部６６１は、ＩＣＣＦの絶対値がその閾値を超えた信号を検出する。
しかし、設定した閾値が低すぎると多数の信号が検出され、データ保持部６６９が保存する信号数の増大を招くので、多量のメモリが必要になる。
【０３０２】
そこで、この実施の形態では、区間毎に仮検出する信号数の上限をあらかじめ設けておき、所定の信号数に達するまで、積分結果の最大値から順に検出する。
【０３０３】
図１３は、この実施の形態におけるＧＰＳ測位装置の機能ブロックの構成の一例を示すブロック図である。
この実施の形態のＧＰＳ測位装置１００は、実施の形態５の仮検出部６６１の代わりに、判定部６６３を有する点が異なっている。
【０３０４】
判定部６６３は、データ保持部６６９が保存したデータと積分処理部６５２が送ったデータとを比較し、データ保持部６６９に保存するか否かを判定する。
【０３０５】
以下、詳しく説明する。
【０３０６】
受信部６１１、Ａ／Ｄ変換部６１２、データ記憶部６１３、データ読出し部６４９、スペクトル拡散コード発生部６２２、位相変調系列発生部６５１、相関処理部６４１、積分処理部６５２の動作は、実施の形態５と同様なので、ここでは説明を省略する。
【０３０７】
判定部６６３は、あらかじめ仮検出を行う信号数の最大値を記憶している。
ここでは、所定の信号数を１０と仮定した場合について考える。
【０３０８】
判定部６６３は、まず、積分処理部６５２が送った１〜１０番目の信号の相関値と遅延時間、周波数、航法ビット境界、位相変調系列総当りインデックスをデータ保持部６６９に送る。
データ保持部６６９は、判定部６６３が送った信号を、相関値の絶対値が大きい順に並び替える。
【０３０９】
判定部６６３は、次に、積分処理部６５２が送った１１番目の信号の相関値の絶対値と、データ保持部６６９が保存した信号のうち、絶対値の最も小さい信号の絶対値とを比較する。
１１番目の信号の絶対値の方が大きい場合、判定部６６３は、データ保持部６６９に１１番目の信号を送る。
データ保持部６６９は、絶対値の最も小さい信号を削除し、その代わりに、判定部６６３が送った１１番目の信号を保存する。そして、再び絶対値の大きい順に並び替える。
【０３１０】
以後１２番目以降の信号に対しても同様の操作を繰り返すことで、全てのインデックスが取りうる範囲の中で、相関値の大きい順に１０個の信号をデータ保持部６６９が保存することになる。
【０３１１】
再検出部６７１、測位計算部６８１、位置表示部６８２の動作は、実施の形態５と同様なので、ここでは説明を省略する。
【０３１２】
以上のように、この実施の形態によれば、仮検出を行う信号数をあらかじめ決めておくので、メモリの増大を招くことなく、低演算量で高感度にＧＰＳ信号を検出することができる。
【０３１３】
以上説明したＧＰＳ測位装置は、コヒーレント積分処理結果を低閾値で検出する代わりに、所定の信号数を満たすまで相関値の絶対値の大きい順に検出を行うことを特徴としている。
【０３１４】
実施の形態８．
実施の形態８を、図１、図１４を用いて説明する。
この実施の形態におけるＧＰＳ測位装置１００（検出装置の一例）のハードウェア構成は、実施の形態１において図１を用いて説明したものと同一であるので、ここでは説明を省略する。
【０３１５】
図１４は、この実施の形態におけるＧＰＳ測位装置の機能ブロックの構成の一例を示すブロック図である。
この実施の形態では、実施の形態６において説明した構成と、実施の形態７において説明した構成とを結合させた構成について説明する。
したがって、この実施の形態のＧＰＳ測位装置１００は、実施の形態６の仮検出部６６１の代わりに、判定部６６３を有する点が異なっている。
【０３１６】
以下、動作を説明する。
【０３１７】
受信部６１１、Ａ／Ｄ変換部６１２、データ記憶部６１３、データ読出し部６４９、スペクトル拡散コード発生部６２２、位相変調系列発生部６５１、相関処理部６４１、積分処理部６５２の動作は、実施の形態６と同様なので、ここでは説明を省略する。
【０３１８】
また、判定部６６３の動作は、実施の形態７と同様なので、ここでは説明を省略する。
【０３１９】
更に、再検出部６７１、再積分部６６２、測位計算部６８１、位置表示部６８２の動作は、実施の形態６と同様なので、ここでは説明を省略する。
【０３２０】
以上のように、この実施の形態によれば、仮検出を行う信号数をあらかじめ決めておくので、メモリの増大を招くことなく、低演算量で高感度にＧＰＳ信号を検出することができる。
【０３２１】
以上説明したＧＰＳ測位装置は、コヒーレント積分処理結果を低閾値で検出する代わりに、所定の信号数を満たすまで相関値の絶対値の大きい順に検出を行うことを特徴としている。
【０３２２】
実施の形態９．
実施の形態９を図１、図１５を用いて説明する。
この実施の形態におけるＧＰＳ測位装置１００（検出装置の一例）のハードウェア構成は、実施の形態１において図１を用いて説明したものと同一であるので、ここでは説明を省略する。
【０３２３】
図１５は、この実施の形態におけるＧＰＳ測位装置の機能ブロックの構成の一例を示すブロック図である。
【０３２４】
実施の形態５〜実施の形態８では、分割された受信信号の最初の区間と後半の区間において同様に相関処理とコヒーレント積分処理を行い、その後、区間間の信号の相関あるいは積分を行うことによりＧＰＳ信号を検出する。
【０３２５】
この実施の形態では、まず、最初の区間において相関処理とコヒーレント積分処理を行い、仮検出をする。そこで検出された信号の遅延時間、周波数、航法データビット境界インデックスを用いて、そのインデックスの値あるいはその周辺の値において後半の区間の積分処理を行うことにより、後半の区間での計算量を削減する構成について、説明する。
【０３２６】
この実施の形態におけるＧＰＳ測位装置１００は、インデックス抽出部６６８を有する。
インデックス抽出部６６８は、データ保持部６６９が保存したデータの遅延時間インデックス、周波数インデックス、位相変調系列境界インデックスを抽出し、相関処理部６４１に送る。
【０３２７】
以下、詳しく動作を説明する。
【０３２８】
ここでは、実施の形態５と同様に、全積分区間が航法データ１０ビット（＝２００ミリ秒）であり、それを５ビットの区間に分割した場合について説明する。
【０３２９】
受信した信号の最初の区間０〜１２０ミリ秒について、相関処理、積分処理、仮検出処理、データ保持の動作を実施の形態５と同様に処理し、データ保持部６６９は、相関値と各インデックスを保存する。
【０３３０】
次に、データ読出し部６４９は、受信信号の後半の区間１００〜２２０ミリ秒までの信号をデータ記憶部６１３から読み出し、相関処理部６４１に送る。
【０３３１】
インデックス抽出部６６８は、データ保持部６６９が保存した０〜１２０ミリ秒の区間において仮検出された信号の遅延時間インデックス、周波数インデックス、航法データビット境界インデックスを抽出し、相関処理部６４１及び積分処理部６５２に送る。
【０３３２】
相関処理部６４１は、相関処理を行い、インデックス抽出部６６８が送った遅延時間インデックスτ＿ｔ１と周波数インデックスｎｆ＿ｔ１の値あるいはその周辺の値においてＩ＿ＣＣＦを計算するために必要な相関関数の総和Ｓ＿ＣＣＦの値を算出する。
【０３３３】
積分処理部６５２は、相関処理部６４１が送った相関関数の総和Ｓ＿ＣＣＦに基づいて、Ｉ＿ＣＣＦを算出する。このとき、インデックス抽出部６６８が送った航法データビット境界インデックスと、位相変調系列発生部６５１が送った位相変調系列とを用いてコヒーレント積分処理を行い、積分結果をデータ保持部６６９に送る。
【０３３４】
再積分部６６２、測位計算部６８１、位置表示部６８２の動作は、実施の形態６と同じなので、ここでは説明を省略する。
【０３３５】
この実施の形態において、後半区間の相関処理、積分処理は、仮検出部６６１が検出したもの対応するものだけについて行い、それ以外は計算しない。したがって、計算量が削減できる。
【０３３６】
以上のように、この実施の形態では、受信信号の最初の区間におけるコヒーレント積分結果を低閾値で検出した後、検出された信号の遅延時間、周波数、航法データビット境界インデックスを抽出するインデックス抽出部を設け、次の区間からは、その抽出された各インデックスの値のみあるいはその周辺の値を用いて相関処理を行うことで、後半の区間における積分の演算量を低減することができる。
【０３３７】
以上説明したＧＰＳ測位装置は、分割した最初の区間の仮検出結果の遅延時間、周波数インデックスを用いて、次の区間からの相関処理とコヒーレント積分処理を行い、区間間の信号を再度積分することを特徴としている。
【０３３８】
実施の形態１０．
実施の形態１０を図１、図１６を用いて説明する。
この実施の形態におけるＧＰＳ測位装置１００（検出装置の一例）のハードウェア構成は、実施の形態１において図１を用いて説明したものと同一であるので、ここでは説明を省略する。
【０３３９】
図１６は、この実施の形態におけるＧＰＳ測位装置の機能ブロックの構成の一例を示すブロック図である。
この実施の形態では、実施の形態９において説明した構成と、実施の形態７において説明した構成とを結合させた構成について説明する。
したがって、この実施の形態のＧＰＳ測位装置１００は、実施の形態９の仮検出部６６１の代わりに、判定部６６３を有する点が異なっている。
【０３４０】
以下、動作を説明する。
【０３４１】
受信部６１１、Ａ／Ｄ変換部６１２、データ記憶部６１３、データ読出し部６４９、スペクトル拡散コード発生部６２２、位相変調系列発生部６５１、相関処理部６４１、積分処理部６５２の動作は、実施の形態９と同様なので、ここでは説明を省略する。
また、判定部６６３の動作は、実施の形態７と同様なので、ここでは説明を省略する。  更に、データ保持部６６９、インデックス抽出部６６８、再積分部６６２、測位計算部６８１、位置表示部６８２の動作は、実施の形態９と同様なので、ここでは説明を省略する。
【０３４２】
以上のように、この実施の形態によれば、仮検出を行う信号数をあらかじめ決めておくので、メモリの増大を招くことなく、低演算量で高感度にＧＰＳ信号を検出することができる。
【０３４３】
以上説明したＧＰＳ測位装置は、分割した最初の区間の仮検出結果の遅延時間、周波数インデックスを用いて、次の区間からの相関処理とコヒーレント積分処理を行い、区間間の信号を再度積分することを特徴としている。
【０３４４】
このように、以上説明した検出装置は、衛星からのＧＰＳ信号を受信して装置の位置を測位するＧＰＳ測位装置およびＧＰＳ測位方法に応用できる。
【０３４５】
従来の高感度ＧＰＳ測位装置およびＧＰＳ測位方法において、衛星からのＧＰＳ信号は、見晴らしの良い環境に受信アンテナを設置した本部サーバと、当該本部サーバと有線または無線の通信媒体を介して接続されたＧＰＳ端末によって受信される。
本部サーバはＧＰＳ信号からＧＰＳ航法データ、衛星のドップラー周波数情報を算出する。
一方、ＧＰＳ端末はＧＰＳ信号の受信電界が良好であれば自らＧＰＳ信号から航法データを抽出し、受信電界が良好でなければ本部サーバから必要な航法データを受け取る。
そして、ＧＰＳ測位装置は、ＧＰＳ信号系列（Ｃ／Ａコード）を任意の位置で航法データの長さで分断し、各分断したＣ／Ａコードを加算し、この加算結果を自己が検出した航法データあるいは本部サーバから受け取った航法データに基づいて極性を合わせて加算することで積み上げる（以下、この演算操作をコヒーレント積分と呼ぶ）。
さらに、ＧＰＳ端末はこの加算結果とＧＰＳ端末自身が有する全衛星のＣ／Ａコードとの間で相関計算を行い、相関値が最大になる点を加算開始位置として求め、Ｃ／Ａコードを加算することにより疑似距離を算出する。この擬似距離と前記抽出した航法データとによって位置計算を行う。
【０３４６】
このように、従来の高感度ＧＰＳ測位装置では、受信電界が弱い場合には外部から航法データを取得してコヒーレント積分を行う。これにより、弱いＧＰＳ信号しか受信できない室内のような環境でも測位が可能になる。
【０３４７】
従来の高感度ＧＰＳ測位装置では、高感度を実現するために、航法データビット系列を別途無線データリンク等を通じて外部のインフラ側から受信する必要がある。このため、無線データリンクが確実に受信できる範囲でしか高感度測位が実現できないという問題があった。
【０３４８】
また、航法データや衛星ドップラー周波数等のアシストデータ取得のためのインフラ構築、またはインフラサービス利用に、別途コストがかかるという問題も生じる。さらには、ＧＰＳ測位装置に、無線データリンク受信機やアンテナを別途装着する必要があり、測位装置が大型かつ重くなって携帯に不便となる、装置コストが高くなる、消費電力増大による電池交換頻度が高まる等の課題があった。
【０３４９】
このような課題を解決する方法として、ＧＰＳ測位装置の内部において航法データを仮定し、その仮定による位相変調系列を総当りで生成し、従来法に準じるようにコヒーレント積分を行うことで、アシストデータを必要とせず高感度化を図る方法が考えられる。
ところが、ＧＰＳ測位装置におけるＧＰＳ信号の受信感度を高感度化するためには、長時間のコヒーレント積分が必要であり、このような方式では積分時間が長くなるに従い演算量が指数関数的に増大する。その理由として以下の２つが挙げられる。
（Ａ）積分時間の増加に従い、生成する位相変調系列のパターンは２のべき乗で増加する。
航法データによる位相変調はＢＰＳＫ変調（Ｂｉｎａｒｙ  Ｐｈａｓｅ  Ｓｈｉｆｔ  Ｋｅｙｉｎｇ）であるので、変調系列は０あるいはπで形成されている。従って積分する航法データビット数をＩとすると生成すべき変調系列の総数は、２のＩ乗となる。
（Ｂ）また受信信号は、衛星の運動に伴うドップラー周波数やローカル発振器の周波数オフセットによる周波数シフトを受ける。この周波数シフトを補償するために、ＧＰＳ測位装置の内部で生成したＣ／Ａコードを周波数シフトさせてコヒーレント積分を実行する必要があるが、その周波数探索ステップは、積分時間の逆数以下の値が必要なため、積分時間に比例して周波数の探索数が増加する。
長時間積分に必要な全探索回数は、（Ａ）と（Ｂ）における探索回数の積になる。従って、積分時間が大きくなるにつれて演算量が指数関数的に増大する。
【０３５０】
ここで説明した各実施の形態によれば、このような課題を解決し、ＧＰＳ測位装置の内部で航法データビット系列を推定処理する高感度方式において、受信信号の区間を分割しないでコヒーレント積分を行った場合と比較し、低演算量で同程度の感度を得ることができる。
したがって、ＧＰＳ信号の受信電力が低い室内等であっても外部から航法データを取得することなく、高感度にＧＰＳ測位を実現することができる。
【図面の簡単な説明】
【０３５１】
【図１】ＧＰＳ測位装置１００のハードウェア構成の一例を示す図。
【図２】ＧＰＳ測位装置１００の機能ブロックの構成の一例を示すブロック図。
【図３】ＧＰＳ信号の構成を示す図。
【図４】拡散信号取得部１１０が取得する拡散信号の一例を示す図。
【図５】単位相関関数算出部１４１が算出する単位相関関数ＵＣＣＦの一例を示す図。
【図６】相関関数積算部１４２が算出する積算相関関数ＳＣＣＦの一例を示す図。
【図７】集積相関関数算出部１５２が算出する集積相関関数ＩＣＣＦの一例を示す図。
【図８】再集積相関関数算出部１６２の動作の概念を説明するための説明図。
【図９】実施の形態５におけるＧＰＳ測位装置１００の機能ブロックの構成の一例を示すブロック図。
【図１０】任意のｋにおける相関関数ＣＣＦ（ｋ、τ、ｎｆ）の時間−周波数プロットを示す図。
【図１１】相関関数の積算動作の概略を示す説明図。
【図１２】実施の形態６におけるＧＰＳ測位装置１００の機能ブロックの構成の一例を示すブロック図。
【図１３】実施の形態７におけるＧＰＳ測位装置１００の機能ブロックの構成の一例を示すブロック図。
【図１４】実施の形態８におけるＧＰＳ測位装置１００の機能ブロックの構成の一例を示すブロック図。
【図１５】実施の形態９におけるＧＰＳ測位装置１００の機能ブロックの構成の一例を示すブロック図。
【図１６】実施の形態１０におけるＧＰＳ測位装置１００の機能ブロックの構成の一例を示すブロック図。
【符号の説明】
【０３５２】
１００  ＧＰＳ測位装置、１１０  拡散信号取得部、１１１  受信部、１１２  アナログデジタル変換部、１１３  拡散信号記憶部、１２１  単位信号生成部、１２２  単位信号記憶部、１３１  周波数差補正記憶部、１４０  積算相関関数算出部、１４１  単位相関関数算出部、１４２  相関関数積算部、１５１  二値符号列記憶部、１５２  集積相関関数算出部、１５３  第一集積部、１５４  第二集積部、１６１  仮検出部、１６２  再集積相関関数算出部、１７１  本検出部、１８１  測位部、２００  ＧＰＳ信号、２０１  Ｃ／Ａコード、２５０  航法データ、３００  拡散信号、３０１  実部、３０２  虚部、３０３  位相、４０１  Ｃ／Ａコード、４１１  周波数差補正値、５００  単位相関関数ＵＣＣＦ、５０３  位相、５０４  絶対値、５２０  積算相関関数ＳＣＣＦ、５２３  位相、５２４  絶対値、５４０  集積相関関数ＩＣＣＦ、５６０  再集積相関関数ＲＣＣＦ、５９４  雑音、６１１  受信部、６１２  Ａ／Ｄ変換部、６１３  データ記憶部、６１９  アンテナ、６２２  スペクトル拡散コード発生部、６４１  相関処理部、６４９  データ読出し部、６５１  位相変調系列発生部、６５２  積分処理部、６６１  仮検出部、６６２  再積分部、６６３  判定部、６６８  インデックス抽出部、６６９  データ保持部、６７１  再検出部、６８１  測位計算部、６８２  位置表示部、９０１  ＣＲＴ表示装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
2006345128.tif 000016
【図２】
2006345128.tif 000017
【図３】
2006345128.tif 000018
【図４】
2006345128.tif 000019
【図５】
2006345128.tif 000020
【図６】
2006345128.tif 000021
【図７】
2006345128.tif 000022
【図８】
2006345128.tif 000023
【図９】
2006345128.tif 000024
【図１０】
2006345128.tif 000025
【図１１】
2006345128.tif 000026
【図１２】
2006345128.tif 000027
【図１３】
2006345128.tif 000028
【図１４】
2006345128.tif 000029
【図１５】
2006345128.tif 000030
【図１６】
2006345128.tif 000031