(57)【要約】【課題】航法メッセージを従来よりも正しくデコードするための新しい手法の提案。【解決手段】ＧＰＳ衛星信号の受信データに対して、第１の予測周波数に基づいて第１の相関演算を行う。第１の相関演算の結果に基づくＧＰＳ衛星信号の搬送波位相を用いて、第１の予測周波数の誤差周波数を推定し、当該誤差周波数を用いて第１の予測周波数を補正して第２の予測周波数を算出する。そして、第２の予測周波数に基づいて、同一の受信データに対して第２の相関演算を行い、その第２の相関演算の結果を用いて、ＧＰＳ衛星信号に搬送されている航法メッセージをデコードする。【選択図】図５
2014055786.tif 000002
【特許請求の範囲】
【請求項１】
測位用信号の受信データに対して、第１の予測周波数に基づいて第１の相関演算を行うことと、
前記第１の相関演算の結果に基づく前記測位用信号の搬送波位相を用いて、前記第１の予測周波数の誤差周波数を推定することと、
前記誤差周波数を用いて前記第１の予測周波数を補正して第２の予測周波数を算出することと、
前記第２の予測周波数に基づいて、同一の前記受信データに対して第２の相関演算を行うことと、
前記第２の相関演算の結果を用いて、前記測位用信号に搬送されている航法メッセージをデコードすることと、
を含むデコード方法。
【請求項２】
前記誤差周波数を推定することは、前記搬送波位相と所与の基準位相との位相差に基づいて前記誤差周波数を推定することを含む、
請求項１に記載のデコード方法。
【請求項３】
前記受信データは、前記測位用信号を受信したデータを単位期間毎に区切ったデータであり、
直前の単位期間に係る受信データに対して行った前記第２の相関演算の結果に基づく搬送波位相を用いて前記基準位相を定めること、
を更に含む請求項２に記載のデコード方法。
【請求項４】
前記第２の予測周波数を算出することは、前記位相差又は前記誤差周波数が許容範囲外である場合に、前記第２の予測周波数を算出することであり、
前記位相差又は前記誤差周波数が許容範囲内である場合に、前記第１の相関演算の結果を用いて前記航法メッセージをデコードすること、
を更に含む請求項２又は３に記載のデコード方法。
【請求項５】
前記許容範囲は、前記位相差を前記誤差周波数に換算した周波数の大きさが閾値周波数以下であり、
前記閾値周波数は、４Ｈｚ以下の所定周波数に定められた、
請求項４に記載のデコード方法。
【請求項６】
前記受信データは、前記測位用信号を受信したデータを単位期間毎に区切ったデータであり、
前記第２の予測周波数に基づいて、次の単位期間に係る受信データについて前記第１の相関演算を行う際の前記第１の予測周波数を算出することを更に含む、
請求項１〜５の何れか一項に記載のデコード方法。
【請求項７】
前記第２の相関演算の結果に基づく前記測位用信号の搬送波位相を用いて、前記第２の予測周波数の誤差周波数を推定し、前記第２の予測周波数を更新することと、
前記更新された前記第２の予測周波数に基づいて、前記第２の相関演算を再度行うことと、
を更に含む請求項１〜６の何れか一項に記載のデコード方法。
【請求項８】
測位用信号の受信データに対して、第１の予測周波数に基づく第１の相関演算の実行を制御する第１の相関演算制御部と、
前記第１の相関演算の結果に基づく前記測位用信号の搬送波位相を用いて、前記第１の予測周波数の誤差周波数を推定する誤差周波数推定部と、
前記誤差周波数を用いて前記第１の予測周波数を補正して第２の予測周波数を算出する第２の予測周波数算出部と、
前記第２の予測周波数に基づいて、同一の前記受信データに対する第２の相関演算の実行を制御する第２の相関演算制御部と、
前記第２の相関演算の結果を用いて、前記測位用信号に搬送されている航法メッセージをデコードするデコード部と、
を備えた受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、測位用信号に搬送されている航法メッセージをデコードする方法等に関する。
【背景技術】
【０００２】
測位用信号を利用した衛星測位システムとしては、ＧＰＳ（Global Positioning System）が広く知られており、携帯型電話機やカーナビゲーション装置等に内蔵された受信装置に利用されている。ＧＰＳでは、ＧＰＳ受信装置の位置を算出するために擬似距離を求める。擬似距離とはＧＰＳ衛星からＧＰＳ受信装置までの距離のことであり、擬似距離を求めるためには、衛星軌道や正確な時刻情報等が必要となる。この衛星軌道等の情報は航法メッセージとして５０ｂｐｓ（bit per second）のビットレートで測位用信号に搬送されている。
【０００３】
測位用信号から航法メッセージをデコードするための手法として、例えば特許文献１には、ＩＱ内積値（Ｄｏｔ値）と呼ばれる指標値の正負の符号に基づいて航法メッセージのビット値の変化の有無を判定する手法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２００８／００６９２７１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ＧＰＳ受信装置が短い周期で速度変化する状況下では、従来の手法を用いて航法メッセージを正しくデコードできない場合がある。その典型的な場面は、ＧＰＳ受信装置を保持或いは装着した腕を振ってユーザーが歩行したり走行したりする場面である。例えば、ＧＰＳ受信装置を具備した電子機器として携帯型電話機を考えた場合、携帯型電話機を持った手を振ってユーザーが歩行する場面が考えられる。他には、ＧＰＳ受信装置を具備した電子機器としてランナーズウォッチを考えた場合、ランナーズウォッチを腕に装着してユーザーがランニングを行う場面が考えられる。
【０００６】
これらの場面では、ユーザーの腕振りに応じて、ＧＰＳ受信装置の速度が短い周期で変化する。ＧＰＳ受信装置の速度が変化すると、ＧＰＳ衛星信号（測位用信号）を受信する際のドップラー周波数が変化する。ドップラー周波数はＧＰＳ衛星信号の受信周波数を定める主要因の１つである。一方、一旦ＧＰＳ衛星信号を捕捉した後は、受信周波数の変化を予測して追尾する追尾ループの処理に入る。従って、ドップラー周波数が変化するのであれば、その変化に合わせて受信周波数を予測すればよい。
【０００７】
しかしながら、一般的な信号追尾処理と同様、従来のＧＰＳ衛星信号の追尾用のループフィルターは、短い周期での周波数変化に追従できる設計とはなっていない。追尾中に受信周波数が大きく変化し、ＧＰＳ衛星信号を受信できなくなれば、追尾ロックが外れたとみなし、再度捕捉する処理を行えばよいという設計である。なお、ＧＰＳ衛星信号を受信できなくなったことは、Ｃ／Ａコードとレプリカコードとの相関演算の結果から判断できる。
【０００８】
ところが、ユーザーの腕振りによる受信周波数の変化は周期的であり、且つ、その周期も短く、更に、受信周波数に対する変化周波数の相対的な大きさも小さい。そのため、追尾ロックが外れることはほとんどない。しかし、追尾用の受信周波数と、実際の受信周波数との間にはズレが生じている。このズレが、航法メッセージのデコードエラーを生じさせる要因となることが明らかとなった。
【０００９】
本発明は上記の問題に鑑みてなされたものであり、航法メッセージを従来よりも正しくデコードするための新しい手法を提案することを目的とする。
【課題を解決するための手段】
【００１０】
以上の課題を解決するための第１の発明は、測位用信号の受信データに対して、第１の予測周波数に基づいて第１の相関演算を行うことと、前記第１の相関演算の結果に基づく前記測位用信号の搬送波位相を用いて、前記第１の予測周波数の誤差周波数を推定することと、前記誤差周波数を用いて前記第１の予測周波数を補正して第２の予測周波数を算出することと、前記第２の予測周波数に基づいて、同一の前記受信データに対して第２の相関演算を行うことと、前記第２の相関演算の結果を用いて、前記測位用信号に搬送されている航法メッセージをデコードすることと、を含むデコード方法である。
【００１１】
また、他の発明として、測位用信号の受信データに対して、第１の予測周波数に基づく第１の相関演算の実行を制御する第１の相関演算制御部と、前記第１の相関演算の結果に基づく前記測位用信号の搬送波位相を用いて、前記第１の予測周波数の誤差周波数を推定する誤差周波数推定部と、前記誤差周波数を用いて前記第１の予測周波数を補正して第２の予測周波数を算出する第２の予測周波数算出部と、前記第２の予測周波数に基づいて、同一の前記受信データに対する第２の相関演算の実行を制御する第２の相関演算制御部と、前記第２の相関演算の結果を用いて、前記測位用信号に搬送されている航法メッセージをデコードするデコード部と、を備えた受信装置を構成することとしてもよい。
【００１２】
この第１の発明等によれば、測位用信号の受信データに対して、第１の予測周波数に基づいて第１の相関演算を行う。しかし、測位用信号の受信装置の速度が短い周期で変化する状況等においては、ドップラー周波数が短い周期で変化することにより、第１の相関演算を行った際の第１の予測周波数が正しい周波数であるとは限らない。そこで、第１の相関演算の結果に基づく測位用信号の搬送波位相を用いて、第１の予測周波数の誤差周波数を推定する。そして、当該誤差周波数を用いて第１の予測周波数を補正して第２の予測周波数を算出する。
【００１３】
第１の予測周波数を補正することで、補正を行わない場合よりも受信装置の速度変化に依らずに周波数を正しく推定することができる。そこで、このようにして算出した第２の予測周波数に基づいて同一の受信データに対する第２の相関演算を行う。これにより、周波数誤差に相当する誤差分が低減された第２の相関演算の結果を得ることができる。そして、このようにして取得した第２の相関演算の結果を用いることで、測位用信号に搬送されている航法メッセージを従来よりも正しくデコードすることが可能となる。
【００１４】
第２の発明として、第１の発明のデコード方法において、前記誤差周波数を推定することは、前記搬送波位相と所与の基準位相との位相差に基づいて前記誤差周波数を推定することを含むデコード方法としてもよい。
【００１５】
この場合、第３の発明として、第２の発明のデコード方法における前記受信データは、前記測位用信号を受信したデータを単位期間毎に区切ったデータであり、直前の単位期間に係る受信データに対して行った前記第２の相関演算の結果に基づく搬送波位相を用いて前記基準位相を定めること、を更に含むデコード方法を構成するようにすると効果的である。
【００１６】
第２の発明によれば、搬送波位相と所与の基準位相との位相差に基づいて誤差周波数を推定する。この際、第３の発明のように、直前の単位期間に係る受信データに対して行った第２の相関演算の結果に基づく搬送波位相を用いて基準位相を定めることで、直前の単位期間を基準として周波数がどの程度変動したかを見積もり、第１の予測周波数の誤差周波数を適切に推定することが可能となる。
【００１７】
また、第４の発明として、第２又は第３の発明のデコード方法において、前記第２の予測周波数を算出することは、前記位相差又は前記誤差周波数が許容範囲外である場合に、前記第２の予測周波数を算出することであり、前記位相差又は前記誤差周波数が許容範囲内である場合に、前記第１の相関演算の結果を用いて前記航法メッセージをデコードすること、を更に含むデコード方法を構成することとしてもよい。
【００１８】
この第４の発明によれば、位相差又は誤差周波数が許容範囲外である場合に、第２の予測周波数を算出する。その一方、位相差又は誤差周波数が許容範囲内である場合に、第１の相関演算の結果を用いて航法メッセージをデコードする。位相差又は誤差周波数が許容範囲内であれば、第１の相関演算の結果を信頼することができるため、第２の相関演算は実行しなくともよい。この場合、第２の相関演算を省略できるため、演算量を削減することができる。
【００１９】
また、第５の発明として、第４の発明のデコード方法において、前記許容範囲は、前記位相差を前記誤差周波数に換算した周波数の大きさが閾値周波数以下であり、前記閾値周波数は、４Ｈｚ以下の所定周波数に定められた、デコード方法を構成することとしてもよい。
【００２０】
この第５の発明によれば、位相差又は誤差周波数に対する許容範囲は、位相差を誤差周波数に換算した周波数の大きさが閾値周波数以下であり、閾値周波数は、４Ｈｚ以下の所定周波数に定められる。本願発明者が行った実験により、航法メッセージのデコードが失敗する可能性は、４Ｈｚを超える周波数変動が生じた場合に高くなることが分かった。そこで、４Ｈｚ以下の所定周波数を閾値周波数として定め、この閾値周波数を用いて、位相差又は前記誤差周波数が許容範囲内であるか否かを判定する。
【００２１】
また、第６の発明として、第１〜第５の何れかの発明のデコード方法において、前記受信データは、前記測位用信号を受信したデータを単位期間毎に区切ったデータであり、前記第２の予測周波数に基づいて、次の単位期間に係る受信データについて前記第１の相関演算を行う際の前記第１の予測周波数を算出することを更に含む、デコード方法を構成することとしてもよい。
【００２２】
この第６の発明によれば、第２の予測周波数に基づいて、次の単位期間に係る受信データについて第１の相関演算を行う際の第１の予測周波数を算出することで、次の単位期間では適切な第１の予測周波数に基づき第１の相関演算を行うことができる。
【００２３】
また、第７の発明として、第１〜第６の何れかの発明のデコード方法において、前記第２の相関演算の結果に基づく前記測位用信号の搬送波位相を用いて、前記第２の予測周波数の誤差周波数を推定し、前記第２の予測周波数を更新することと、前記更新された前記第２の予測周波数に基づいて、前記第２の相関演算を再度行うことと、を更に含むデコード方法を構成することとしてもよい。
【００２４】
この第７の発明によれば、第２の相関演算の結果に基づく測位用信号の搬送波位相を用いて、第２の予測周波数の誤差周波数を推定し、第２の予測周波数を更新する。そして、更新された第２の予測周波数に基づいて、第２の相関演算を再度行う。これにより、第２の予測周波数を可及的に真の周波数に近付けることができ、第２の相関演算の正確性を向上させることができる。その結果、航法メッセージのデコードの正確性が向上する。
【図面の簡単な説明】
【００２５】
【図１】従来手法による航法メッセージのデコードの説明図。
【図２】（１）停止時のドップラー周波数と予測ドップラー周波数との関係の模式図。（２）腕振り時のドップラー周波数と予測ドップラー周波数との関係の模式図。
【図３】（１）誤差周波数が０Ｈｚの場合の説明図。（２）誤差周波数が１Ｈｚの場合の説明図。（３）誤差周波数が５Ｈｚの場合の説明図。
【図４】誤差周波数とＩＱ内積値との関係を示す実験結果。
【図５】本発明の手法による航法メッセージのデコードの説明図。
【図６】誤差周波数の推定方法の説明図。
【図７】ランナーズウォッチの機能構成の一例を示すブロック図。
【図８】ベースバンド処理回路部の回路構成の一例を示す図。
【図９】デコード処理の流れを示すフローチャート。
【図１０】誤差周波数推定処理の流れを示すフローチャート。
【図１１】第２のデコード処理の流れを示すフローチャート。
【発明を実施するための形態】
【００２６】
以下、本発明を適用した好適な実施形態の一例について説明する。本実施形態は、衛星測位システムとしてＧＰＳ（Global Positioning System）を適用した実施形態である。但し、本発明を適用可能な形態が以下説明する実施形態に限定されるわけでないことは勿論である。
【００２７】
１．原理
本実施形態における航法メッセージのデコード方法について説明する。本実施形態は、ＧＰＳ衛星から発信されるＧＰＳ衛星信号に搬送された航法メッセージをデコードする実施形態である。本実施形態のデコード方法は、例えば身体装着型の受信装置における航法メッセージのデコード方法に適用することが可能である。身体装着型の受信装置は、人間の所定部位（例えば腕や脚）に着脱可能に構成された受信装置であり、例えば手首や上腕に装着して利用される小型電子機器（例えばランナーズウォッチ）に内蔵される受信装置がこれに相当する。
【００２８】
測位用衛星の一種であるＧＰＳ衛星は、アルマナックやエフェメリス等の衛星軌道データを含む航法メッセージを、測位用衛星信号の一種であるＧＰＳ衛星信号に乗せて発信している。ＧＰＳ衛星信号は、拡散符号の一種であるＣ／Ａ（Coarse and Acquisition）コードによって、スペクトラム拡散方式として知られるＣＤＭＡ（Code Division Multiple Access）方式によって変調された１．５７５４２［ＧＨｚ］の通信信号である。Ｃ／Ａコードは、コード長１０２３チップを１ＰＮフレームとする繰返し周期１ｍｓの擬似ランダム雑音符号であり、各ＧＰＳ衛星に固有のコードである。
【００２９】
ＧＰＳ衛星がＧＰＳ衛星信号を発信する際の周波数（規定キャリア周波数）は、１．５７５４２［ＧＨｚ］と予め規定されているが、ＧＰＳ衛星及びＧＰＳ受信装置の移動により生ずるドップラーの影響等により、ＧＰＳ受信装置がＧＰＳ衛星信号を受信する際の周波数は、必ずしも規定キャリア周波数とは一致しない。そのため、ＧＰＳ受信装置は、受信信号と、装置内部で発生させた擬似的なＣ／Ａコードであるレプリカコードとの相関演算を周波数方向及び位相方向それぞれについて実行して、ＧＰＳ衛星信号を捕捉する。
【００３０】
周波数方向の相関演算は、受信した搬送波（キャリア）の信号である受信キャリア信号の周波数（以下、「受信周波数」と称す。）を特定するための演算（いわゆる周波数サーチ）である。また、位相方向の相関演算は、受信信号に含まれるＣ／Ａコードである受信Ｃ／Ａコードの位相（以下、「コード位相」と称す。）を特定するための演算（いわゆる位相サーチ）である。
【００３１】
具体的には、ＧＰＳ受信装置は、受信キャリア信号からキャリアを除去するために、キャリア周波数の信号であるキャリア除去用信号を受信キャリア信号に乗算する。そして、その乗算結果として得られた受信コード信号とレプリカコードとの相関演算を行い、その演算結果として得られる相関値のピークを検出することで、受信周波数及びコード位相を特定する。これがＧＰＳ衛星信号の捕捉である。
【００３２】
ところで、ＧＰＳ衛星信号は、拡散符号であるＣ／Ａコードが航法メッセージデータのビット値に応じてＢＰＳＫ（Binary Phase Shift Keying）変調されている。具体的には、５０ｂｐｓ（bit per second）での変調のため、航法メッセージの１ビット分の時間は２０ミリ秒である。つまり、航法メッセージのビット値は、２０ミリ秒毎に“０→１”又は“１→０”に変化（遷移）する可能性がある。可能性があるというのは、“０→０”又は“１→１”のようにビット値が変化しない場合もあるということである。
【００３３】
本実施形態では、この２０ミリ秒毎に到来するタイミングであって、航法メッセージデータのビット値が変化（遷移）し得るタイミングのことを「ビット遷移タイミング」と定義する。本実施形態では、ビット遷移タイミングはわかっているが、ビット遷移タイミングでのビット値の変化の有無は分かっておらず、このビット値の変化の有無を正しく判定するための方法（すなわち、デコード方法）について説明する。ＧＰＳ衛星信号を受信したデータを２０ミリ秒毎に区切り、それぞれの２０ミリ秒の期間を「単位期間」として、各単位期間に係る受信データに対してレプリカコードとの相関演算を行うこととして説明する。また、単位期間を定める２０ミリ秒の時間のことを「単位時間」として説明する。
【００３４】
図１は、航法メッセージの従来のデコード方法の説明図である。隣接する単位期間の境目で航法メッセージのビット値が変化したかどうかを判定できれば、航法メッセージをデコードすることができる。本実施形態では、このビット値の変化の有無を、ＩＱ内積値（Ｄｏｔ）と称する指標値に基づいて判定する場合を例に挙げて説明する。
【００３５】
最初に、ＩＱ分離された受信信号をデジタル化した受信データに対してレプリカコードとの相関演算を行う。これにより、Ｉ相の相関値であるＩ相相関値及びＱ相の相関値であるＱ相相関値が得られる。但し、Ｉ相は受信信号の同相成分（実部）を示し、Ｑ相は受信信号の直交成分（虚部）を示す。図１において、Ｉ相相関値及びＱ相相関値の時間軸の上に示した下向きの矢印は、相関値の算出タイミング（サンプルタイミング）を示す。相関値の算出タイミングは、例えば所定時間間隔（例えば１ミリ秒）毎のタイミングである。
【００３６】
次いで、Ｉ相相関値とＱ相相関値とのそれぞれについて、各単位期間の受信データに対する相関値を当該単位期間分（２０ミリ秒分）積算して、各単位期間についてＩ相相関積算値“ＳｕｍＩ”及びＱ相相関積算値“ＳｕｍＱ”を得る。各相関積算値に対応する単位期間の番号“ｎ＝１，２，３，・・・”を括弧書きで示す。例えば、第１番目（ｎ＝１）の単位期間のＩ相相関積算値及びＱ相相関積算値を、それぞれ“ＳｕｍＩ（１）”及び“ＳｕｍＱ（１）”と表記する。
【００３７】
図１に示すように、第ｎ番目の単位期間と第ｎ＋１番目の単位期間との境目における航法メッセージのビット値の変化の有無を判定する場合を考える。この場合、次式（１）に従ってＩＱ内積値Ｄｏｔ（ｎ｜ｎ＋１）を算出する。
【数１】
2014055786.tif 000003
【００３８】
式（１）に従って算出されるＩＱ内積値Ｄｏｔ（ｎ｜ｎ＋１）がゼロか正である場合は（Ｄｏｔ（ｎ｜ｎ＋１）≧０）、第ｎ番目の単位期間と第ｎ＋１番目の単位期間との境目において航法メッセージのビット値が変化しなかった（ビット変化なし）と判定する。それに対し、ＩＱ内積値Ｄｏｔ（ｎ｜ｎ＋１）が負である場合は（Ｄｏｔ（ｎ｜ｎ＋１）＜０）、第ｎ番目の単位期間と第ｎ＋１番目の単位期間との境目において航法メッセージのビット値が変化した（ビット変化あり）と判定する。
【００３９】
この手法では、各単位期間について、式（１）に従ってＩＱ内積値を算出してその正負の符号を判定するという簡易な手法により、航法メッセージのビット値の変化の有無を判定することができる。しかし、この手法には問題がある。ＧＰＳ受信装置がＧＰＳ衛星信号を追尾している周波数（以下、「追尾周波数」と称す。）と実際のＧＰＳ衛星信号の受信周波数とが一定以上乖離している場合に単純にＩＱ内積値に基づいてビット値の変化の有無を判定すると、高い確率で誤判定が生ずるという問題である。
【００４０】
ＧＰＳ受信装置は、ＧＰＳ衛星信号を捕捉すると、捕捉したＧＰＳ衛星信号を追尾する。ＧＰＳ衛星信号の追尾は、コード位相を追尾する遅延ロックループＤＬＬ（Delay Locked Loop）や、搬送波の位相を追尾する位相ロックループＰＬＬ（Phase Locked Loop）、搬送波の周波数を追尾する周波数ロックループＦＬＬ（Frequency Locked Loop）といった追尾用のロックループによって実現することができる。本実施形態では、これらのロックループのうちのＦＬＬに着目し、ＦＬＬを用いて搬送波の周波数を追尾する場合に着目して説明する。
【００４１】
ＦＬＬは、キャリア除去用信号（キャリアレプリカ信号とも言う。）を生成する発振器（例えばキャリアＮＣＯ（Numerical Controlled Oscillator））を制御対象とし、受信信号の位相とキャリア除去用信号の位相とを一致させるように発振器を制御する。ＦＬＬは、周波数弁別器及びループフィルターによって、例えば過去の追尾周波数の履歴に基づいて線形的にドップラー周波数を予測するように設計される。
【００４２】
図２は、実際のドップラー周波数と、ＦＬＬによって予測されるドップラー周波数（以下、「予測ドップラー周波数」と称す。）との関係を模式化した図である。実際のドップラー周波数を実線で、予測ドップラー周波数を点線でそれぞれ示している。図２（１）は、ＧＰＳ受信装置が停止している場合におけるドップラー周波数と予測ドップラー周波数との関係を示す図である。横軸は時間を示し、縦軸は周波数を示す。ここでは、ＧＰＳ衛星がＧＰＳ受信装置に近付く方向に移動している場合のドップラー周波数の時間変化を模式化して示している。
【００４３】
図２（１）を見ると、ＧＰＳ衛星がＧＰＳ受信装置に近付くにつれて、ドップラー周波数が増加する方向に変化し、その変化の傾向はおよそ線形的な傾向を示していることがわかる。一方、ＦＬＬはドップラー周波数を線形的に予測するため、予測ドップラー周波数も線形的に増加している。その結果、真のドップラー周波数と予測ドップラー周波数とはほぼ一致している。この状態は、キャリア周波数が適切に追尾できている状態である。
【００４４】
図２（２）は、ＧＰＳ受信装置を腕に装着したユーザーが腕を振りながら歩行している場合における実際のドップラー周波数と予測ドップラー周波数との関係を模式化した図である。図の見方は図２（１）と同じであるが、図２（２）では、ＧＰＳ衛星がＧＰＳ受信装置から遠ざかる方向に移動している場合のドップラー周波数の時間変化を模式化した図を示している。
【００４５】
図２（２）を見ると、ＧＰＳ衛星がＧＰＳ受信装置から遠ざかるにつれて、予測ドップラー周波数は減少する方向に変化している。図２（１）と大きく異なるのは、真のドップラー周波数が短い周期で大きく振動している点である。ユーザーが腕を振ることで、短い周期でＧＰＳ受信装置の移動速度が変化する。その結果、ＧＰＳ衛星とＧＰＳ受信装置の相対速度ベクトルが短い周期で変化し、これに伴いドップラー周波数が短い周期で変化している。
【００４６】
ＦＬＬは、フィルターによって過去のドップラー周波数を平均化した上で予測ドップラー周波数を求めるため、短い周期のドップラー周波数の変化に追従することができず、線形的にドップラー周波数を予測してしまっている。これが問題である。つまり、予測ドップラー周波数と実際のドップラー周波数との間に乖離が生じており、キャリア周波数の追尾が適切になされていない状態である。この状態でＩＱ内積値を算出して航法メッセージをデコードすると、デコードに失敗する可能性が高くなる。
【００４７】
なお、ドップラー周波数が大きく変化した場合には、Ｃ／Ａコードとレプリカコードとの相関演算の結果が不良（相関が取れていないことを示すゼロに近い値）となるため、追尾ループのロックから外れたと判断できる。しかし、ユーザーの腕振り程度の周波数変化は、受信周波数全体に対する変化量が小さく、且つ、その変化は周期的であって、更に、その周期も短いため、追尾ループのロックから外れることがほとんどない。このため、追尾自体は正常に実行できていると判断されてしまう。
【００４８】
図３は、誤差周波数と相関値との関係を調べる実験を行った実験結果の一例を示す図である。真の受信周波数とＦＬＬが予測した予測周波数との差を「誤差周波数」とし、異なる誤差周波数に対してどのような相関値（Ｉ相相関値及びＱ相相関値）が得られるのかを検証する実験を行った。
【００４９】
図３（１）、図３（２）及び図３（３）は、それぞれ誤差周波数を０Ｈｚ、１Ｈｚ及び５Ｈｚとした場合の実験結果である。また、各図において、横軸は時間を示し、縦軸は正規化した相関値（Ｉ相相関値及びＱ相相関値）を示す。Ｉ相相関値を一点鎖線で、Ｑ相相関値を点線でそれぞれ示している。また、航法メッセージのビット値と相関値との関係を明確にするために、航法メッセージのビット値の変化を実線で併せて図示している。
【００５０】
真のドップラー周波数と予測ドップラー周波数とが一致していれば、キャリア除去（以下、「キャリアワイプオフ」と称す。）によって受信キャリア信号からキャリアが完全に除去される。しかし、ドップラー周波数と予測ドップラー周波数とが一致していない場合は、キャリアワイプオフによってキャリアが完全に除去されず、ドップラー周波数と予測ドップラー周波数との差（誤差周波数）に相当する周波数の信号成分が受信信号に残存する。この状態で受信信号とレプリカコードとの相関演算を行うと、誤差周波数に応じた信号成分が相関値に現れることになる。
【００５１】
誤差周波数が０Ｈｚの場合は、キャリアワイプオフによってキャリアが完全に除去され、直流成分のみが残る。このため、受信信号とレプリカコードとの相関演算を行うと、図３（１）に示すように、相関値の波形は矩形波となる。但し、信号成分は直交成分のみであったため、Ｉ相相関値はゼロで一定となっている。なお、航法メッセージのビット値が変化するタイミングで相関値の位相が反転するが、これは、ＧＰＳ衛星信号では、Ｃ／Ａコードが航法メッセージデータのビット値に応じてＢＰＳＫ変調されていることによる。
【００５２】
誤差周波数が１Ｈｚの場合は、キャリアワイプオフによって１Ｈｚの周波数成分が受信信号に残存する。このため、受信信号とレプリカコードとの相関演算を行うと、図３（２）に示すように、相関値の波形は１Ｈｚの周波数成分を含む波形となっている。
【００５３】
誤差周波数が５Ｈｚの場合は、キャリアワイプオフによって５Ｈｚの周波数成分が受信信号に残存する。このため、受信信号とレプリカコードとの相関演算を行うと、図３（３）に示すように、相関値の波形は５Ｈｚの周波数成分を含む波形となっている。
【００５４】
このように、相関値（Ｉ相相関値及びＱ相相関値）の波形には、誤差周波数に応じた周波数成分が含まれることになる。従って、誤差周波数が大きくなるに従って、相関値の振動周期が短くなり、航法メッセージのビット遷移周期よりも短い周期で相関値が振動することとなる。
【００５５】
図４は、誤差周波数とＩＱ内積値との関係を調べる実験を行った実験結果の一例を示す図である。航法メッセージのビット値が変化する場合（ビット変化あり）と、ビット値が変化しない場合（ビット変化なし）とのそれぞれについて、異なる誤差周波数に対してＩＱ内積値がどのように変化するかを調べる実験を行った。図４において、横軸は誤差周波数（単位はＨｚ）を示し、縦軸はＩＱ内積値（Ｄｏｔ）を示す。ビット変化ありの場合のＩＱ内積値をダイヤ形のプロット＋実線で、ビット変化なしの場合のＩＱ内積値を矩形のプロット＋点線でそれぞれ示している。
【００５６】
図１で説明したように、ビット変化ありの場合は、ＩＱ内積値は負の値となり、ビット変化なしの場合は、ＩＱ内積値は０または正の値となるはずである。そこで、図４の実験結果を見ると、誤差周波数が０Ｈｚ〜４Ｈｚの範囲では、上記の符号と合致する符号のＩＱ内積値が得られていることがわかる。しかし、誤差周波数が４Ｈｚを超えると、特に１３Ｈｚ近傍までの周波数範囲において、本来得られるべき符号とは真逆の符号のＩＱ相関値が得られてしまっている。従って、誤差周波数が４Ｈｚを超えると、ＩＱ内積値に基づいて航法メッセージのビット値の変化の有無を判定した場合に誤判定することになる。
【００５７】
本願発明者が行った実験によれば、ＧＰＳ受信装置を装着したユーザーが腕を振って歩行や走行している場合、４Ｈｚを超える周波数変動が定常的に生ずることがわかった。そこで、本実施形態では、以下説明する手順で航法メッセージをデコードすることで、航法メッセージのデコード率の向上を実現する。
【００５８】
図５は、本実施形態における航法メッセージのデコードの流れを模式化した図である。ここでは、第ｎ番目の単位期間と第ｎ＋１番目の単位期間との境目での航法メッセージのビット値の変化の有無を判定する場合について説明する。ここでは、第ｎ番目の単位期間に係るＩ相相関積算値ＳｕｍＩ（ｎ）及びＱ相相関積算値ＳｕｍＱ（ｎ）が既に得られている状態として図示・説明する。
【００５９】
まず、第ｎ＋１番目の単位期間のＧＰＳ衛星信号の受信データに対して、第１の予測周波数に基づいて第１の相関演算を行う（ステップＴ１）。第１の予測周波数は、ＦＬＬによって予測されたドップラー周波数をキャリア周波数に加算／減算した周波数であり、キャリア除去用信号の生成部に生成させるキャリア除去用信号の周波数である。ＧＰＳ衛星信号の追尾周波数とも言える。
第１の相関演算の結果を２０ミリ秒分積算することで、第ｎ＋１番目の単位期間に係るＩ相相関積算値ＳｕｍＩ（ｎ＋１）及びＱ相相関積算値ＳｕｍＱ（ｎ＋１）を得る（ステップＴ３）。
【００６０】
次いで、第ｎ番目の単位期間に係るＩ相相関積算値ＳｕｍＩ（ｎ）及びＱ相相関積算値ＳｕｍＱ（ｎ）と、第ｎ＋１番目の単位期間に係るＩ相相関積算値ＳｕｍＩ（ｎ＋１）及びＱ相相関積算値ＳｕｍＱ（ｎ＋１）とを用いて、第ｎ＋１番目の単位期間における第１の予測周波数の誤差周波数Δｆ（ｎ＋１）を推定する。
【００６１】
図６は、誤差周波数の推定方法の説明図である。ＩＱ座標系において、第ｎ番目の単位期間における第１のＩ相相関積算値ＳｕｍＩ１（ｎ）及びＱ相相関積算値ＳｕｍＱ１（ｎ）を成分とするＩＱベクトル（ｎ）を基準ＩＱベクトル（第１のＩＱベクトル）とする。ＩＱベクトルの位相は、受信キャリア信号の位相（搬送波位相）を示す。本実施形態では、直前の単位期間に係る受信データに対して行った第２の相関演算の結果に基づく搬送波位相を用いて基準位相を定める。具体的には、基準ＩＱベクトルの搬送波位相を基準位相とする。
【００６２】
次に、第ｎ＋１番目の単位期間における第１のＩ相相関積算値ＳｕｍＩ１（ｎ＋１）及びＱ相相関積算値ＳｕｍＱ１（ｎ＋１）を成分とするＩＱベクトル（ｎ＋１）をＩＱ座標上に描く。このＩＱベクトル（ｎ＋１）の搬送波位相と、基準ＩＱベクトル（ｎ）の搬送波位相（基準位相）との位相差に基づいて、第ｎ番目の単位期間での予測周波数からの誤差周波数を推定する。位相差は、基準ＩＱベクトルＩＱ（ｎ）とＩＱベクトル（ｎ＋１）との成す角度Δθとして計算することができる。角度Δθは、例えば基準ＩＱベクトルに対して反時計回りを正の角度、時計回りを負の角度として計算することができる。
【００６３】
角度Δθを周波数に換算することで誤差周波数を推定する。位相差から周波数への変換は、例えば次のようにして行うことができる。航法メッセージのＢＰＳＫ変調は５０ｂｐｓ（５０Ｈｚ）であるため、５０Ｈｚの周波数変化を３６０°の位相変化に対応付けて、位相差を誤差周波数に換算する。つまり、１°の位相変化につき５０／３６０Ｈｚの周波数変化が生じたとして、位相差を誤差周波数に換算する。
【００６４】
第ｎ番目の単位期間と第ｎ＋１番目の単位期間との境目で航法メッセージのビット値が変化しなければ、ＩＱベクトル（ｎ＋１）は、基準ＩＱベクトル（ｎ）からそれほど大きく回転しないはずである。しかし、第ｎ番目の単位期間と第ｎ＋１番目の単位期間との境目で航法メッセージのビット値が変化した場合は、基準ＩＱベクトル（ｎ）に対して正負の何れかの方向に１８０°程度回転したＩＱベクトル（ｎ＋１）が得られることになる。これは、航法メッセージのビット値が変化することで、相関値の極性が逆極性になるためである。
【００６５】
従って、基準ＩＱベクトル（ｎ）に対してＩＱベクトル（ｎ＋１）が正負の何れかの方向に１８０°程度回転している場合は、航法メッセージのビット値が変化している可能性が高いと判断し、これを考慮して誤差周波数を推定する。具体的には、基準ＩＱベクトル（ｎ）を原点の周りに１８０°回転させた回転基準ＩＱベクトルを考える。そして、この回転基準ＩＱベクトルとＩＱベクトル（ｎ＋１）との成す角度Δθを算出し、この角度Δθから誤差周波数を求める。
【００６６】
図５の説明に戻り、誤差周波数Δｆ（ｎ＋１）を推定したならば（ステップＴ５）、当該誤差周波数Δｆ（ｎ＋１）が許容範囲内の値か否かを判定する（ステップＴ７）。前述したように、誤差周波数が４Ｈｚ以上になると、ＩＱ内積値を用いたビット値の変化の有無の判定が正しく行われなくなる可能性がある。そこで、例えば、４Ｈｚに１Ｈｚ分の余裕を持たせた３Ｈｚを閾値周波数とし、誤差周波数Δｆ（ｎ＋１）がこの閾値周波数未満（或いは以下）である場合に、許容範囲内と判定する。
【００６７】
なお、本実施形態では閾値周波数を３Ｈｚとして説明するが、閾値周波数はこれに限定されないことは勿論である。４Ｈｚ以下の所定周波数を閾値周波数として定めるようにすればよい。
【００６８】
再び図６を参照すると、基準ＩＱベクトルを中心とする所定の角度範囲（図中にハッチングを施した範囲）が、誤差周波数の許容範囲に相当する角度範囲である。位相差の許容範囲と言うこともできる。つまり、図６においてハッチングを施した範囲にＩＱベクトルが含まれる場合は、誤差周波数が許容範囲内であるということになる。従って、誤差周波数に対する閾値判定を行う代わりに、位相差に対する閾値判定を行うことにしてもよく、位相差と誤差周波数との何れに対して許容範囲内か否かの判定を行うかは、適宜選択することができる。
【００６９】
誤差周波数Δｆ（ｎ＋１）が許容範囲内であると判定した場合は（ステップＴ７：Ｙｅｓ）、第ｎ番目の単位期間に係るＩ相相関積算値ＳｕｍＩ（ｎ）及びＱ相相関積算値ＳｕｍＱ（ｎ）と、第ｎ＋１番目の単位期間に係るＩ相相関積算値ＳｕｍＩ（ｎ＋１）及びＱ相相関積算値ＳｕｍＱ（ｎ＋１）とを用いてＩＱ内積値を計算し（ステップＴ１３）、ＩＱ内積値の正負の符号に基づいてビット値の変化の有無を判定する。これは、位相差又は誤差周波数が許容範囲内である場合に、第１の相関演算の結果を用いて航法メッセージをデコードすることに相当する。
【００７０】
一方、許容範囲内ではない（許容範囲外である）と判定した場合は（ステップＴ７：Ｎｏ）、第１の予測周波数を補正して第２の予測周波数を算出する。具体的には、第１の予測周波数に誤差周波数を加算することで第１の予測周波数を補正し、補正後の周波数を新たな追尾周波数（第２の予測周波数）とする。これは、位相差又は誤差周波数が許容範囲外である場合に、第２の予測周波数を算出することに相当する。この場合は、第２の予測周波数のキャリア除去用信号（キャリアレプリカ信号）をキャリア発振器に生成させる。そして、このキャリア除去用信号を受信キャリア信号に乗算することでキャリアワイプオフを行い、その結果として得られる信号に対してレプリカコードを用いた相関演算（第２の相関演算）を行う（ステップＴ９）。
【００７１】
次いで、第２の相関演算で得られた相関値を所定時間分（例えば２０ミリ秒分）積算する。つまり、Ｉ相相関積算値ＳｕｍＩ（ｎ＋１）及びＱ相相関積算値ＳｕｍＱ（ｎ＋１）を算出する（ステップＴ１１）。そして、算出したＩ相相関積算値ＳｕｍＩ（ｎ＋１）及びＱ相相関積算値ＳｕｍＱ（ｎ＋１）を用いてＩＱ内積値を算出し（ステップＴ１３）、その正負の符号に基づいて、第ｎ番目の単位期間と第ｎ＋１番目の単位期間との境目での航法メッセージのビット値の変化の有無を判定する。
【００７２】
上記の手順を全ての単位期間について行うことで、各単位期間の境目における航法メッセージのビット値の変化の有無を判定する。これにより、ＧＰＳ衛星信号に搬送されている航法メッセージをデコードすることが可能となる。
【００７３】
２．実施例
次に、ＧＰＳ衛星信号を受信する受信装置の実施例について説明する。本実施例では、身体装着型の小型電子機器として、ランナーズウォッチの実施例について説明する。
【００７４】
２−１．機能構成
図７は、ランナーズウォッチ１の機能構成の一例を示すブロック図である。ランナーズウォッチ１は、ＧＰＳアンテナ５と、ＧＰＳ受信部１０と、ホスト処理部３０と、操作部４０と、表示部５０と、音出力部６０と、通信部７０と、時計部８０と、記憶部９０とを備えて構成される。
【００７５】
ＧＰＳアンテナ５は、ＧＰＳ衛星から発信されているＧＰＳ衛星信号を含むＲＦ（Radio Frequency）信号を受信するアンテナであり、受信信号をＧＰＳ受信部１０に出力する。
【００７６】
ＧＰＳ受信部１０は、ＧＰＳアンテナ５から出力された信号に基づいてランナーズウォッチ１の位置を算出する回路或いは装置であり、いわゆるＧＰＳ受信装置に相当する機能ブロックである。但し、ＧＰＳ受信部１０を有するランナーズウォッチ１全体が受信装置に相当するとも言える。
【００７７】
ＧＰＳ受信部１０は、ＲＦ受信回路部１１と、ベースバンド処理回路部２０とを備えて構成される。なお、ＲＦ受信回路部１１と、ベースバンド処理回路部２０とは、それぞれ別のＬＳＩ（Large Scale Integration）として製造することも、１チップとして製造することも可能である。
【００７８】
ＲＦ受信回路部１１は、ＲＦ信号の受信回路であり、航法メッセージを搬送するＧＰＳ衛星信号を受信する受信部に相当する。ＲＦ受信回路部１１の回路構成としては、例えば、ＧＰＳアンテナ５から出力されたＲＦ信号をＡ／Ｄ（Analog／Digital）変換器でデジタル信号に変換し、デジタル信号を処理する受信回路を構成してもよい。また、ＧＰＳアンテナ５から出力されたＲＦ信号をアナログ信号のまま信号処理し、最終的にＡ／Ｄ変換することでデジタル信号をベースバンド処理回路部２０に出力する構成としてもよい。
【００７９】
後者の場合には、例えば、次のようにＲＦ受信回路部１１を構成することができる。すなわち、所定の発振信号を分周或いは逓倍することで、ＲＦ信号乗算用の発振信号を生成する。そして、生成した発振信号を、ＧＰＳアンテナ５から出力されたＲＦ信号に乗算することで、ＲＦ信号を中間周波数の信号（以下、「ＩＦ（Intermediate Frequency）信号」と称す。）にダウンコンバートする。そして、ＩＦ信号を増幅等した後、Ａ／Ｄ変換器でデジタル信号に変換して、ベースバンド処理回路部２０に出力する。
【００８０】
ベースバンド処理回路部２０は、ＲＦ受信回路部１１から出力されるデジタル化された受信データを利用して、キャリア除去や相関演算等のＧＰＳ衛星信号の捕捉・追尾に係る処理動作を行って、ＧＰＳ衛星信号を捕捉・追尾する回路部である。ベースバンド処理回路部２０は、上記の原理に従って、ＧＰＳ衛星信号に搬送されている航法メッセージをデコードする。そして、デコードした航法メッセージを用いて衛星位置を推測する。また、受信信号とレプリカコードとの相関演算（信号捕捉）によって得られたコード位相を用いて擬似距離を算出し、この擬似距離と衛星位置とから、公知の位置計算を行って、ランナーズウォッチ１の位置を算出する。
【００８１】
ホスト処理部３０は、記憶部９０に記憶されているシステムプログラム等の各種プログラムに従ってランナーズウォッチ１の各部を統括的に制御するプロセッサーであり、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）等のプロセッサーを有して構成される。ホスト処理部３０は、ＧＰＳ受信部１０から出力される位置情報に基づいて自装置の累積移動距離を算出し、ユーザーの走行距離として表示部５０に表示させる制御を行う。
【００８２】
操作部４０は、例えばタッチパネルやボタンスイッチ等を有して構成される入力装置であり、押下されたキーやボタンの信号をホスト処理部３０に出力する。この操作部４０の操作により、走行距離の測定開始や測定終了といった各種指示操作がなされる。
【００８３】
表示部５０は、ＬＣＤ（Liquid Crystal Display）等を有して構成される表示装置であり、ホスト処理部３０から出力される表示信号に基づいた各種表示を行う。表示部５０には、ユーザーの走行距離やラップタイム、ペース等の各種情報が表示される。
【００８４】
音出力部６０は、スピーカー等を有して構成される音出力装置であり、ホスト処理部３０から出力される音出力信号に基づいた各種音出力を行う。音出力部６０からは、音声ガイダンスやペース音等が音出力される。
【００８５】
通信部７０は、ホスト処理部３０の制御に従って、装置内部で利用される情報を外部の情報処理装置（例えばパソコン）との間で送受するための通信装置である。通信部７０の通信方式としては、所定の通信規格に準拠したケーブルを介して有線接続する形式や、クレイドルと呼ばれる充電器と兼用の中間装置を介して接続する形式、近距離無線通信を利用して無線接続する形式等、種々の方式を適用可能である。
【００８６】
時計部８０は、ランナーズウォッチ１の内部時計であり、水晶振動子及び発振回路でなる水晶発振器等を有して構成される。時計部８０の計時時刻はホスト処理部３０に随時出力される。
【００８７】
記憶部９０は、ＲＯＭ（Read Only Memory）やフラッシュＲＯＭ、ＲＡＭ（Random Access Memory）等の記憶装置を有して構成され、ホスト処理部３０がランナーズウォッチ１を制御するためのシステムプログラムや、各種アプリケーション処理を実行するための各種プログラムやデータ等を記憶する。
【００８８】
２−２．ベースバンド処理回路部の回路構成
図８は、ベースバンド処理回路部２０の回路構成の一例を示すブロック図である。
ベースバンド処理回路部２０は、サンプルメモリ２１と、乗算部２２と、キャリア除去用信号生成部２３と、相関演算部２４と、レプリカコード生成部２５と、処理部２７と、記憶部２９とを有して構成される。
【００８９】
サンプルメモリ２１は、ＲＦ受信回路部１１から出力されるデジタル化されたＧＰＳ衛星信号の受信データが記憶される記憶回路である。サンプルメモリ２１は、例えば、単位期間３つ分以上の受信信号のデータを格納可能なメモリ量を有するリングバッファとして構成することができる。勿論、格納容量はこれ以上でもよい。
【００９０】
乗算部２２は、キャリア除去用信号生成部２３によって生成されたキャリア除去用信号を受信信号に乗算することで受信信号からキャリアを除去し、受信コード信号（受信データ）を相関演算部２４に出力する。乗算部２２は、例えば乗算器を有して構成される。
【００９１】
キャリア除去用信号生成部２３は、ＧＰＳ衛星信号のキャリア信号と同一の周波数の信号であるキャリア除去用信号を生成する回路である。ＲＦ受信回路部から出力される信号がＩＦ信号である場合には、ＩＦ周波数をキャリア周波数として信号を生成する。何れにしろ、ＲＦ受信回路部から出力される信号の周波数と同一の周波数のキャリア除去用信号を生成するための回路である。
【００９２】
キャリア除去用信号生成部２３は、処理部２７から出力される周波数指示信号に従って指示された周波数のキャリア除去用信号を生成して、乗算部２２に出力する。キャリア除去用信号生成部２３は、同相成分の信号であるＩ相キャリア除去用信号及び直交成分の信号であるＱ相キャリア除去用信号を乗算部２２にそれぞれ出力する。
【００９３】
相関演算部２４は、例えば複数の相関器（コリレーター）を有して構成され、乗算部２２から出力される受信データと、レプリカコード生成部２５によって生成されたレプリカコードとの相関演算を行う。
【００９４】
レプリカコード生成部２５は、ＧＰＳ衛星信号の拡散符号であるＣ／Ａコードのレプリカコード（コードレプリカ）を生成する回路部である。レプリカコード生成部２５は、処理部２７から出力されるＰＲＮ（Pseudo Random Noise）番号及び移相量に従って、指示されたＰＲＮ番号のレプリカコードを指示された移相量で生成して、相関演算部２４に出力する。
【００９５】
処理部２７は、ベースバンド処理回路部２０の各機能部を統括的に制御する制御装置及び演算装置であり、ＣＰＵやＤＳＰ（Digital Signal Processor）等のプロセッサーを有して構成される。
【００９６】
処理部２７は、主要な機能部として、第１の相関演算制御部２７１と、誤差周波数推定部２７２と、第２の予測周波数算出部２７３と、第２の相関演算制御部２７４と、デコード部２７５と、キャリア周波数追尾部２７６と、位置算出部２７７とを有する。但し、これらの機能部は、一実施例として記載したに過ぎず、必ずしもこれら全ての機能部を必須構成要素としなければならないわけではない。また、これら以外の機能部を必須構成要素として追加することとしてもよい。
【００９７】
第１の相関演算制御部２７１は、ＧＰＳ衛星信号の受信データに対して、第１の予測周波数に基づいて、相関演算部２４に第１の相関演算を実行させる。
誤差周波数推定部２７２は、第１の相関演算の結果に基づいて算出されたＧＰＳ衛星信号の搬送波位相を用いて、第１の予測周波数の誤差周波数を推定する。
【００９８】
第２の予測周波数算出部２７３は、誤差周波数推定部２７２によって推定された誤差周波数を用いて第１の予測周波数を補正して第２の予測周波数を算出する。
第２の相関演算制御部２７４は、第２の予測周波数算出部２７３によって算出された第２の予測周波数に基づいて、第１の相関演算の処理対象と同一の受信データに対する第２の相関演算の実行を制御する。
デコード部２７５は、第１の相関演算の結果または第２の相関演算の結果を用いて、ＧＰＳ衛星信号に搬送されている航法メッセージをデコードする。
【００９９】
キャリア周波数追尾部２７６は、受信信号のキャリアを追尾する機能部である。キャリア周波数追尾部２７６は、キャリア周波数と、キャリア除去用信号生成部２３により生成されるキャリア除去用信号の周波数との周波数差（以下、「キャリア周波数差」と称す。）を所定の周波数弁別関数に従って算出する。
【０１００】
位置算出部２７７は、デコード部２７５によってデコードされた航法メッセージを利用して、例えば擬似距離を用いた所定の位置計算を行って、ランナーズウォッチ１の位置（位置座標）及び時計誤差（クロックバイアス）を算出する。そして、その算出結果をホスト処理部３０に出力する。
【０１０１】
記憶部２９は、ベースバンド処理回路部２０のシステムプログラムや、衛星信号捕捉・追尾機能、デコード機能、位置算出機能といった各種機能を実現するための各種プログラム、データ等を記憶する。また、各種処理の処理中データ、処理結果などを一時的に記憶するワークエリアを有する。
【０１０２】
記憶部２９には、プログラムとして、処理部２７によって読み出され、ベースバンド処理として実行されるベースバンド処理プログラム２９１が記憶されている。ベースバンド処理プログラム２９１は、デコード処理（図９参照）として実行されるデコードプログラム２９１Ａと、誤差周波数推定処理（図１０参照）として実行される誤差周波数推定プログラム２９１Ｂと、位置算出処理として実行される位置算出プログラム２９１Ｃとをサブルーチンとして含む。
【０１０３】
また、記憶部２９には、主要なデータとして、積算データ２９３と、デコード航法メッセージデータ２９５と、算出結果データ２９７とが記憶される。
【０１０４】
積算データ２９３は、相関演算部２４から出力される相関値を積算して求めた相関積算値のデータである。Ｉ相相関積算値及びＱ相相関積算値がこれに含まれる。
【０１０５】
デコード航法メッセージデータ２９５は、デコード部２７５がデコードした航法メッセージのデータである。
【０１０６】
算出結果データ２９７は、位置算出部２７７が位置算出処理を行うことで取得した算出結果のデータであり、算出したランナーズウォッチ１の位置（位置座標）や時計誤差（クロックバイアス）がこれに含まれる。
【０１０７】
２−３．処理の流れ
図９は、処理部２７が、記憶部２９に記憶されているデコードプログラム２９１Ａに従って実行するデコード処理の流れを示すフローチャートである。このデコード処理は、ベースバンド処理プログラム２９１に従って実行されるベースバンド処理の中で常駐的に実行される処理である。また、このデコード処理では、単位時間である２０ミリ秒が経過する毎に、直近の単位期間と当該単位期間の１つ前の単位期間との境目におけるビット値の変化の有無を判定することとして説明する。
【０１０８】
処理部２７は、単位時間（２０ミリ秒）が経過するまで待機する（ステップＡ１；Ｎｏ）。そして、単位時間が経過したならば（ステップＡ１；Ｙｅｓ）、第１の相関演算制御部２７１が、相関演算部２４による第１の相関演算の実行を制御する（ステップＡ３）。
【０１０９】
具体的には、サンプルメモリ２１に対してデータの出力制御信号を出力して、直近の単位期間に係る受信データを出力させるように制御する。また、１回前のデコード処理においてステップＡ１７またはステップＡ２３で算出された第１の予測周波数のキャリア除去用信号を生成させるための周波数指示信号をキャリア除去用信号生成部２３に出力する。また、捕捉対象とするＧＰＳ衛星（以下、「捕捉対象衛星」と称す。）に係るＰＲＮ番号及びレプリカコードの移相量をレプリカコード生成部２５に出力する。これにより、サンプルメモリ２１から受信データが出力され、乗算部２２でキャリアワイプオフが実行され、相関演算部２４で第１の相関演算が実行される。
【０１１０】
次いで、処理部２７は、記憶部２９に記憶されている誤差周波数推定プログラム２９１Ｂに従って誤差周波数推定処理を行う（ステップＡ５）。
【０１１１】
図１０は、誤差周波数推定処理の流れを示すフローチャートである。
最初に、誤差周波数推定部２７２は、相関演算部２４から出力される相関値（Ｉ相相関値及びＱ相相関値）をそれぞれ単位期間分（２０ミリ秒分）積算して相関積算値（Ｉ相相関積算値及びＱ相相関積算値）を算出し、積算データ２９３として記憶部２９に記憶させる（ステップＢ１）。
【０１１２】
次いで、誤差周波数推定部２７２は、ステップＢ１で算出した相関積算値に基づいてＩＱベクトルを求める（ステップＢ３）。そして、求めたＩＱベクトルと基準ＩＱベクトルとの成す角度を算出する（ステップＢ５）。ここで求めるＩＱベクトルは、１つ前の単位期間に係る相関積算値から求まるベクトルであり、基準ＩＱベクトルは、２つ前の単位期間に係る相関積算値から求まるベクトルである。
【０１１３】
次いで、誤差周波数推定部２７２は、ステップＢ５で算出した角度の大きさ（絶対値）が９０°未満であるか否かを判定し（ステップＢ７）、この条件を満たすと判定した場合は（ステップＢ７；Ｙｅｓ）、ステップＢ５で算出した角度を誤差周波数に換算する（ステップＢ９）。そして、誤差周波数推定部２７２は、誤差周波数推定処理を終了する。
【０１１４】
一方、ステップＢ７において条件を満たさないと判定したならば（ステップＢ７；Ｎｏ）、誤差周波数推定部２７２は、ステップＢ３で求めたＩＱベクトルと基準ＩＱベクトルを１８０°回転させた回転基準ＩＱベクトルとの成す角度を算出する（ステップＢ１１）。そして、誤差周波数推定部２７２は、算出した角度を誤差周波数に換算した後（ステップＢ１３）、誤差周波数推定処理を終了する。
【０１１５】
図９のデコード処理に戻り、誤差周波数推定処理を行ったならば、処理部２７は、誤差周波数推定処理で推定された誤差周波数が所定の閾値周波数（例えば３Ｈｚ）を超えているか否かを判定する（ステップＡ７）。この条件を満たすと判定したならば（ステップＡ７；Ｙｅｓ）、処理部２７は、誤差周波数を用いて第１の予測周波数を補正して第２の予測周波数を算出する（ステップＡ９）。つまり、第１の予測周波数に誤差周波数を加算して第２の予測周波数とする。
【０１１６】
次いで、第２の相関演算制御部２７４が、相関演算部２４による第２の相関演算の実行を制御する（ステップＡ１１）。具体的には、サンプルメモリ２１に対してデータの出力制御信号を出力し、ステップＡ３と同一の受信データ（直近の単位期間に係る受信データ）を出力させるように制御する。また、ステップＡ９で算出した第２の予測周波数のキャリア除去用信号を生成させるための周波数指示信号をキャリア除去用信号生成部２３に出力するとともに、捕捉対象衛星に係るＰＲＮ番号及びレプリカコードの移相量をレプリカコード生成部２５に出力する。これにより、サンプルメモリ２１から同一の受信データが出力され、乗算部２２でキャリアワイプオフが実行され、相関演算部２４で第２の相関演算が実行される。
【０１１７】
その後、デコード部２７５は、第２の相関演算の結果を用いてＩＱ内積値を計算する（ステップＡ１３）。具体的には、ステップＡ１１の第２の相関演算で求められた相関値を単位期間分積算して相関積算値（Ｉ相相関積算値及びＱ相相関積算値）を算出する。そして、算出した相関積算値と、１回前に算出した相関積算値とを用いて、式（１）に従ってＩＱ内積値を計算する。
【０１１８】
次いで、デコード部２７５は、ステップＡ１３で算出したＩＱ内積値の正負の符号に基づいてビット変化判定を行う（ステップＡ１５）。そして、キャリア周波数追尾部２７６は、第２の予測周波数を用いて、次の単位期間に係る次の受信データに対する第１の相関演算に用いる次の第１の予測周波数を算出する（ステップＡ１７）。つまり、過去に算出された予測周波数（第１の予測周波数又は第２の予測周波数）と、ステップＡ９で算出された第２の予測周波数とを用いて、例えば次の単位期間に係る第１の予測周波数を線形予測する。その後、処理部２７は、ステップＡ１に戻る。
【０１１９】
一方、ステップＡ７において条件を満たさないと判定したならば（ステップＡ７；Ｎｏ）、デコード部２７５は、第１の相関演算の結果を用いてＩＱ内積値を計算する（ステップＡ１９）。具体的には、ステップＢ１で算出した相関積算値と、１回前に算出した相関積算値とを用いて、式（１）に従ってＩＱ内積値を計算する。
【０１２０】
次いで、デコード部２７５は、ステップＡ１９で算出したＩＱ内積値の正負の符号に基づいてビット変化判定を行う（ステップＡ２１）。つまり、直近の単位期間と当該単位期間の１つ前の単位期間との境目でのビット値の変化の有無を判定する。そして、その判定結果に基づいて航法メッセージのビット値を判定し、そのビット値を記憶部２９のデコード航法メッセージデータ２９５に記憶させる。
【０１２１】
その後、キャリア周波数追尾部２７６は、第１の予測周波数を用いて、次の単位期間に係る次の受信データに対する第１の相関演算に用いる次の第１の予測周波数を算出する（ステップＡ２３）。つまり、過去に算出された予測周波数（第１の予測周波数又は第２の予測周波数）と、今回の第１の予測周波数とを用いて、例えば次の単位期間に係る第１の予測周波数を線形予測する。その後、処理部２７は、ステップＡ１に戻る。
デコード処理は以上である。
【０１２２】
フローチャートについては図示を省略するが、ベースバンド処理では、位置算出部２７７が、記憶部２９１に記憶されている位置算出プログラム２９１Ｃに従って位置算出処理を行う。具体的には、デコード処理によってデコードされた航法メッセージと、相関演算の結果に基づいて演算・取得したメジャメント情報とを用いて、例えば最小二乗法やカルマンフィルターのアルゴリズムを適用した位置計算を行って、ランナーズウォッチ１の位置及び時計誤差を算出する。そして、これらの算出結果を算出結果データ２９７として記憶部２９に記憶させる。
【０１２３】
２−４．作用効果
ランナーズウォッチ１において、第１の相関演算制御部２７１は、ＧＰＳ衛星信号の受信データに対して、第１の予測周波数に基づく第１の相関演算の実行を制御する。誤差周波数推定部２７２は、第１の相関演算の結果に基づくＧＰＳ衛星信号の搬送波位相を用いて第１の予測周波数の誤差周波数を推定し、第１の予測周波数算出部は、誤差周波数推定部２７２によって推定された誤差周波数を用いて第１の予測周波数を補正して第２の予測周波数を算出する。第２の相関演算制御部２７４は、第２の予測周波数算出部２７３によって算出された第２の予測周波数に基づいて、第１の相関演算で処理対象とした受信データと同一の受信データに対する第２の相関演算の実行を制御する。そして、デコード部２７５は、第２の相関演算制御部２７４の制御に従って実行された第２の相関演算の結果を用いて、ＧＰＳ衛星信号に搬送されている航法メッセージをデコードする。
【０１２４】
ユーザーの腕振りにより、ランナーズウォッチ１の速度が短い周期で変化し、これに伴いドップラー周波数が短い周期で変化する。このため、ＦＬＬ等によって実際のドップラー周波数に追従するように周波数を予測することは困難である。そこで、１つの単位期間の間に第１の相関演算と第２の相関演算との２回の相関演算を行う。具体的には、第１の相関演算で得られた相関値を用いて第１の予測周波数の誤差周波数を推定し、当該誤差周波数を用いて第１の予測周波数を補正して第２の予測周波数を算出する。そして、この第２の予測周波数に基づいて第２の相関演算を行い、その相関演算結果を用いて計算したＩＱ内積値の正負の符号に基づいて、航法メッセージのビット値の変化の有無を判定する。
【０１２５】
上記の手順で航法メッセージのビット値の変化の有無を判定することで、ランナーズウォッチ１の速度の変化に伴いドップラー周波数が短い周期で変化した場合であっても、これに追従するように周波数を予測して相関演算を行うことが可能となる。これにより、キャリアワイプオフ後の信号に不要な周波数成分が残存することを防止し、信頼性の高い相関値を得ることが可能となる。その結果、航法メッセージのビット値の変化の有無を適確に判定することができるようになり、航法メッセージを従来よりも正しくデコードすることが可能となる。本願発明者が行った実験によれば、本実施形態のデコード方法を用いて航法メッセージをデコードすることで、５〜１５％程度のデコード率の向上が実現できた。
【０１２６】
本実施形態では搬送波位相と所与の基準位相との位相差に基づいて誤差周波数を推定する。具体的には、直前の単位期間に係る受信データに対して行った第２の相関演算の結果に基づく搬送波位相を用いて基準位相を定め、搬送波位相と基準位相との位相差を周波数に換算することで誤差周波数を推定する。ＩＱ平面でＩＱベクトルがどれだけ回転したかを判定するといった簡易な手法によって、誤差周波数を適切に推定することができる。
【０１２７】
位相差又は誤差周波数が許容範囲内である場合は、第２の相関演算を抑止し、第１の相関演算の結果を用いて航法メッセージをデコードする。位相差又は誤差周波数が許容範囲内であれば、第１の相関演算の結果は信頼することができるため、第２の相関演算は実行せずともよい。
【０１２８】
４Ｈｚ以上の周波数誤差が存在する場合にＩＱ内積値に基づいて航法メッセージのビット値の変化の有無を判定すると、誤判定する可能性が高くなる。また、身体装着型の受信装置では、ユーザーの歩行時や走行時に４Ｈｚを超える周波数変動が高い頻度で生じ得る。このため、４Ｈｚ以下の所定周波数を閾値周波数として定めておくことで、実環境での装置の使用を考慮した適切な判定を行うことが可能となる。
【０１２９】
３．変形例
本発明を適用可能な実施例は、上記の実施例に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能であることは勿論である。以下、変形例について説明する。なお、上記実施形態と同一の構成については同一の符号を付して再度の説明を省略する。
【０１３０】
３−１．周波数追尾
上記の実施形態では、ベースバンド処理回路部２０の処理部２７が、キャリア周波数の追尾処理を行うこととして説明したが、キャリア周波数の追尾を行うためのループ回路を電子回路で構成し、このループ回路によってキャリア周波数の追尾を行うこととしてもよい。
【０１３１】
具体的には、相関演算部２４の後段に相関値を積算する積算部を設け、この積算部の出力を、ループ回路にフィードバック入力する。ループ回路は、例えば周波数弁別器とループフィルターとによって構成し、ループフィルターの出力がキャリア除去用信号生成部２３に出力されるように構成する。この場合、処理部２７は、ループフィルターから出力される周波数を第１の予測周波数として、上記のデコード処理と同様の処理を行えばよい。
【０１３２】
３−２．デコード処理
上記の実施形態では、１つの単位期間について２回の相関演算（第１及び第２の相関演算）を行うこととして説明したが、３回以上の相関演算を行って航法メッセージのデコードを行うようにすることも可能である。具体的には、第２の相関演算の結果に基づくＧＰＳ衛星信号の搬送波位相を用いて、第２の予測周波数の誤差周波数を推定し、第２の予測周波数を更新する。そして、更新した第２の予測周波数に基づいて、第２の相関演算を再度行うようにする。
【０１３３】
図１１は、この場合に上記の実施例の処理部２７が、図９のデコード処理に代えて実行する第２のデコード処理の流れを示すフローチャートである。なお、デコード処理と同一のステップについては同一の符号を付して再度の説明を省略し、デコード処理とは異なる部分に着目して説明する。
【０１３４】
ステップＡ１１において第２の相関演算の実行制御を行ったならば、処理部２７は、ステップＡ５に戻り、再度誤差周波数推定処理（図１０）を行う。つまり、最新の第２の相関演算の結果に基づくＧＰＳ衛星信号の搬送波位相を用いて、第２の予測周波数の誤差周波数を推定する。この処理を、ステップＡ７において誤差周波数が閾値周波数以下となるまで繰り返す。
【０１３５】
誤差周波数が閾値周波数以下となったならば（ステップＡ７；Ｎｏ）、デコード部２７５は、最新の第２の相関演算の結果を用いてＩＱ内積値を算出する（ステップＢ１５）。そして、デコード部２７５は、算出したＩＱ内積値の正負の符号に基づいてビット値の変化の有無を判定した後（ステップＢ１７）、ステップＡ１に戻る。
【０１３６】
この第２のデコード処理では、誤差周波数が閾値周波数以下となるまで第２の相関演算及び誤差周波数の推定を繰り返すため、必ず誤差周波数が許容範囲内となった際の第２の相関演算の結果がＩＱ内積値の計算に用いられることになる。このため、ノイズ等に起因する誤差の影響を限りなく抑えることが可能となり、航法メッセージのデコードの正確性を一層向上させることができる。
【０１３７】
３−３．基準位相
上記の実施形態では、１つ前の単位期間について得られた相関積算値（Ｉ相相関値及びＱ相相関値）から求まる搬送波位相を基準位相とした。つまり、直前の単位期間に係る受信データに対して行った第２の相関演算の結果に基づく搬送波位相を用いて基準位相を定めることとして説明した。しかし、基準位相の定め方はこれに限られるわけではない。例えば、過去所定期間分の単位期間（例えば過去２個分の単位期間）に係る相関積算値から求まる搬送波位相を平均処理することで得られる搬送波位相を基準位相として定めることとしてもよい。
【０１３８】
３−４．ビット変化判定用指標値
上記の実施形態では、航法メッセージのビット変化の有無を判定するための指標値としてＩＱ内積値を例に挙げて説明したが、指標値はこれに限られるわけではない。ＩＱ内積値以外の指標値として、パワー値と称する指標値を用いて航法メッセージのビット値の変化の有無を判定する場合について以下説明する。
【０１３９】
隣接する単位期間の相関積算値を加算或いは減算の組合せを異ならせて合算し、その合算結果を用いてパワー値を算出する。具体的には、第ｎ番目の単位期間に係る相関積算値を「正」とし、第ｎ＋１番目の単位期間に係る相関積算値を「正」とする合算方法である第１の組合せ「（正，正）」と、第１番目の単位期間に係る相関積算値を「正」とし、第２番目の単位期間に係る相関積算値を「負」とする合算方法である第２の組合せ「（正、負）」との２種類の組合せ（合算方法）に従ってパワー値を算出する。
【０１４０】
第１の組合せ「（正，正）」に従って算出したパワー値のことを「加算パワー値」と称し、「Ｐｏｗｅｒ＋」と表記する。また、第２の組合せ「（正，負）」に従って算出したパワー値のことを「減算パワー値」と称し、「Ｐｏｗｅｒ−」と表記する。例えば、第ｎ番目の単位期間に係る相関積算値と第ｎ＋１番目の単位期間に係る相関積算値とを用いて算出した加算パワー値及び減算パワー値を、それぞれ「Ｐｏｗｅｒ＋（ｎ｜ｎ＋１）」及び「Ｐｏｗｅｒ−（ｎ｜ｎ＋１）」と表記する。
【０１４１】
加算パワー値Ｐｏｗｅｒ＋（ｎ｜ｎ＋１）及び減算パワー値Ｐｏｗｅｒ−（ｎ｜ｎ＋１）は、それぞれ次式（２）及び（３）に従って算出される。
【数２】
2014055786.tif 000004
【数３】
2014055786.tif 000005
【０１４２】
次いで、加算パワー値の大きさと減算パワー値の大きさとを比較する。そして、加算パワー値Ｐｏｗｅｒ＋（ｎ｜ｎ＋１）が減算パワー値Ｐｏｗｅｒ−（ｎ｜ｎ＋１）よりも大きければ（Ｐｏｗｅｒ＋（ｎ，ｎ＋１）＞Ｐｏｗｅｒ−（ｎ｜ｎ＋１））、第ｎ番目の単位期間と第ｎ＋１番目の単位期間との境目において航法メッセージデータのビット値が変化しなかったと判定する（ビット変化なし）。逆の場合には（Ｐｏｗｅｒ−（ｎ｜ｎ＋１）＞Ｐｏｗｅｒ＋（ｎ｜ｎ＋１））、第ｎ番目の単位期間と第ｎ＋１番目の単位期間との境目において航法メッセージのビット値が変化したと判定する（ビット変化あり）。
【０１４３】
３−５．デコード処理の切替
上記の実施例のランナーズウォッチ１に、例えば加速度センサーやジャイロセンサーといったセンサーを具備することとし、これらのセンサーの検出結果に基づいて、ユーザーの腕振りを判定することとしてもよい。
【０１４４】
この場合、腕振りを検出した場合は、上記の実施例で説明したデコード処理を行って航法メッセージをデコードすることとし、腕振りを検出しなかった場合は、従来のデコード手法に基づくデコード処理を行って航法メッセージをデコードするなどしてもよい。つまり、腕振りの検出結果に基づいて、本実施形態のデコード方法に基づくデコード処理と、従来のデコード方法に基づくデコード処理とを切り替えることとしてもよい。
【０１４５】
３−６．処理の主体
上記の実施例では、航法メッセージのデコード処理をベースバンド処理回路部２０の処理部２７が実行するものとして説明したが、これを電子機器のホスト処理部３０が実行することとしてもよい。また、航法メッセージのデコード処理は処理部２７が実行し、位置算出処理はホスト処理部３０が実行するといったように、ベースバンド処理回路部のプロセッサーと電子機器のプロセッサーとで処理を分散させることとしてもよい。
【０１４６】
３−７．電子機器
上記の実施例では、電子機器の一種であるランナーズウォッチに本発明を適用した場合を例に挙げて説明したが、本発明を適用可能な電子機器はこれに限られるわけではない。例えば、携帯型電話機（スマートフォンを含む。）や携帯型ナビゲーション装置、ノート型パソコン、ＰＤＡ（Personal Digital Assistant）、腕時計といった他の電子機器についても同様に適用することが可能である。
【０１４７】
３−８．衛星測位システム
また、上記の実施形態では、衛星測位システムとしてＧＰＳを例に挙げて説明したが、ＷＡＡＳ（Wide Area Augmentation System）、ＱＺＳＳ（Quasi Zenith Satellite System）、ＧＬＯＮＡＳＳ（GLObal NAvigation Satellite System）、ＧＡＬＩＬＥＯ等の他の衛星測位システムであってもよい。
【符号の説明】
【０１４８】
１  ランナーズウォッチ、  １０  ＧＰＳ受信部、  １１  ＲＦ受信回路部、  ２０  ベースバンド処理回路部、  ２１  サンプルメモリ、  ２２  乗算部、  ２３  キャリア除去用信号生成部、  ２４  相関演算部、  ２５  レプリカコード生成部、  ２７  処理部、  ２９  記憶部、  ３０  ホスト処理部、  ４０  操作部、  ５０  表示部、  ６０  音出力部、  ７０  通信部、  ８０  時計部、  ９０  記憶部
【図１】
2014055786.tif 000006
【図２】
2014055786.tif 000007
【図３】
2014055786.tif 000008
【図４】
2014055786.tif 000009
【図５】
2014055786.tif 000010
【図６】
2014055786.tif 000011
【図７】
2014055786.tif 000012
【図８】
2014055786.tif 000013
【図９】
2014055786.tif 000014
【図１０】
2014055786.tif 000015
【図１１】
2014055786.tif 000016