(58)【調査した分野】(Int.Cl.,DB名)
前記制御部は、測位に用いられる複数の測位衛星からの送信電波のうち少なくともいずれか一つについて前記ビットエッジ検出動作を行い、決定された前記先頭タイミングに応じて修正された現在日時を用いて測位を行うことを特徴とする請求項1記載の衛星電波受信装置。
前記制御部は、複数の測位衛星の位置情報を外部から取得して、当該位置情報と修正された現在日時とを用いて測位を行うことを特徴とする請求項2記載の衛星電波受信装置。
前記区分期間は、前記メッセージ信号をスペクトラム拡散している擬似雑音符号の一周期分の長さであり、各周期に各々同期して定められることを特徴とする請求項1〜3のいずれか一項に記載の衛星電波受信装置。
前記制御部は、前記配列部分の各々について、前記照合により得られた一致の度合及び不一致の度合のうち小さい方を不一致の度合として定め、当該不一致の度合が最も小さいものと二番目に小さいものとを用いて前記ビットエッジ検出動作を行うことを特徴とする請求項1〜5のいずれか一項に記載の衛星電波受信装置。
前記制御部は、前記不一致の度合が二番目に小さい配列部分の検出確率に対する前記不一致の度合が最も小さい配列部分の検出確率の比率が所定の基準比率以下となる場合に前記先頭タイミングを決定することを特徴とする請求項6記載の衛星電波受信装置。
前記制御部は、前記一致の度合と前記不一致の度合の差が所定の基準差以下の場合には前記先頭タイミングの決定を行わずに前記照合の結果を放棄し、前記差が前記基準差より大きくかつ前記比率が前記所定の基準比率以下ではない場合には、前記照合の結果を複数周期積算して前記所定の基準比率以下の比率が得られるまで繰り返すことを特徴とする請求項7記載の衛星電波受信装置。
前記制御部は、前記第一の配列部分及び前記第二の配列部分からそれぞれ所定数ずれた位置を先頭位置とする配列部分における前記照合ビット値配列との不一致の度合を考慮して前記誤認定の確率を算出して、前記ビットエッジ検出動作を行うことを特徴とする請求項1〜8のいずれか一項に記載の衛星電波受信装置。
前記制御部の動作時に計数される現在日時のずれの割合は、前記外部計時部が計数する現在日時のずれの割合よりも小さいことを特徴とする請求項11記載の衛星電波受信装置。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態を図面に基づいて説明する。
図1は、本実施形態の電子時計1の機能構成を示すブロック図である。
【0013】
この電子時計1は、測位衛星(衛星)、少なくとも米国のGPS(Global Positioning System)に係る測位衛星(以下、GPS衛星と記す)からの電波を受信して信号を復調し、日時情報を取得することが可能な時計である。
電子時計1は、ホストCPU41(Central Processing Unit)(表示制御部)と、ROM42(Read Only Memory)と、RAM43(Random Access Memory)と、発振回路44と、分周回路45と、計時回路46(外部計時部、計時部)と、表示部47と、表示ドライバ48と、操作受付部49と、電力供給部50と、衛星電波受信装置としての衛星電波受信処理部60と、アンテナANと、通信部70と、計測部71などを備える。
【0014】
ホストCPU41は、各種演算処理を行い、電子時計1の全体動作を統括制御する。ホストCPU41は、ROM42から制御プログラムを読み出し、RAM43にロードして日時の表示や各種機能に係る演算制御や表示などの各種動作処理を行う。また、ホストCPU41は、衛星電波受信処理部60を動作させて測位衛星からの電波を受信させ、当該衛星電波受信処理部60で受信内容に基づいて求められた日時情報や位置情報を取得する。
【0015】
ROM42は、マスクROMや書き換え可能な不揮発性メモリなどであり、制御プログラムや初期設定データが記憶されている。制御プログラムの中には、測位衛星から各種情報を取得するための各種処理の制御に係るプログラム421が含まれる。
【0016】
RAM43は、SRAMやDRAMなどの揮発性のメモリであり、ホストCPU41に作業用のメモリ空間を提供して一時データを記憶するとともに、各種設定データを記憶する。各種設定データには、電子時計1における日時の計数、表示に係る地方時設定、すなわち、タイムゾーンに係るホーム都市設定や、夏時間の適用有無に係る設定が含まれる。また、通信部70を介して外部から測位衛星の精密軌道情報を含むデータ(エフェメリスデータ)が取得される場合には、当該エフェメリスデータは、RAM43に記憶され、適切なタイミングで衛星電波受信処理部60の記憶部646にコピー又は移動される。RAM43に記憶される各種設定データの一部又は全部は、不揮発性メモリに記憶されても良い。
【0017】
発振回路44は、予め定められた所定の周波数信号を生成して出力する。この発振回路44には、例えば、水晶発振子が用いられている。
【0018】
分周回路45は、発振回路44から入力された周波数信号を計時回路46やホストCPU41が利用するクロック信号の周波数の信号に分周して出力する。この出力信号の周波数は、ホストCPU41による設定に基づいて変更されることが可能であっても良い。
【0019】
計時回路46は、分周回路45から入力された所定の周波数信号(クロック信号)の入力回数を計数して初期値に加算することで現在の日時を計数する。計時回路46としては、ソフトウェア的にRAMに記憶させる値を変化させるものであっても良いし、あるいは、専用のカウンタ回路を備えていても良い。計時回路46の計数する日時は、特には限られないが、例えば、所定のタイミングからの累積時間、UTC日時(協定世界時)、又は予め設定されたホーム都市の日時(地方時)などのうちいずれかが用いられ得る。また、この計時回路46の計数する日時自体は、必ずしも年月日、時分秒の形式で保持される必要がない。分周回路45から計時回路46に入力されるクロック信号には、正確な時間経過とは若干のずれが含まれ得る。計時回路46が計数する日時の1日当たりのずれの大きさ(歩度;ずれの割合)は、動作環境、例えば温度によって変化するが、通常では、±0.5秒以内である。
上記のホストCPU41、ROM42、RAM43、発振回路44、分周回路45及び計時回路46は、マイコンとして単一のIC基板上に形成され得る。発振回路44に用いられる水晶発振子は外付けされても良い。
【0020】
表示部47は、例えば、液晶ディスプレイ(LCD)や有機EL(Electro-Luminescent)ディスプレイなどの表示画面を備え、ドットマトリクス方式及びセグメント方式のいずれか又はこれらの組み合わせにより、計時回路46の計数する日時に基づく少なくとも時刻の表示や各種機能に係る表示をデジタル的に行う。
表示ドライバ48は、表示画面の種別に応じた駆動信号をホストCPU41からの制御信号に基づいて表示部47に出力して、表示画面上に表示を行わせる。
あるいは、表示部47及び表示ドライバ48には、デジタル表示画面に加えて又は代えて指針及び当該指針を回転動作させるステッピングモータや当該ステッピングモータに駆動信号を出力する駆動回路などが含まれていても良い。
【0021】
操作受付部49は、ユーザからの入力操作を受け付けて、当該入力操作に応じた電気信号を入力信号としてホストCPU41に出力する。この操作受付部49には、例えば、押しボタンスイッチやりゅうずスイッチが含まれる。
あるいは、表示部47の表示画面と重ねてタッチセンサが設けられ、当該タッチセンサによるユーザの接触動作に係る接触位置や接触態様の検出に応じた操作信号を出力するタッチパネルとして表示画面を機能させることで、表示部47と操作受付部49とが一体的に設けられても良い。
【0022】
通信部70は、ホストCPU41の制御に基づいて外部の電子機器との通信動作を実行、制御する。ここでは、通信部70は、例えば、Bluetooth(登録商標)による無線通信動作を制御する。Bluetooth通信としては、バージョン3の高速通信が可能であり、また、バージョン4の省電力通信が可能であっても良い。あるいは、通信部70は、無線LANなどによる通信が可能であっても良いし、接続端子を備え、通信ケーブルを介して有線での外部電子機器との通信が可能とされていても良い。
【0023】
計測部71は、電子時計1(自機)の運動状態に係る物理量を計測して計測値をホストCPU41に出力する。計測部71には、例えば、加速度センサと方位センサが含まれる。ホストCPU41は、これらの計測値を継続的に取得して電子時計1(そのユーザ)の移動方向や移動量を積算していくことで(自律航法)所定時間内の移動距離と移動方向とを算出することができる。歩行時などの特定の加速度変動パターンが計測される場合の移動量の計算方法については種々の技術が知られており、いずれか又は複数を組み合わせて用いることができる。また、計測部71には、気圧センサが含まれ、ROM42などに気圧と高度との対応関係を示すテーブルを保持させておくことで高度方向の運動(移動方向や移動量)を計測可能としても良い。
【0024】
電力供給部50は、バッテリから出力される電力を所定の電圧で各部に供給する。電力供給部50のバッテリとしては、ここでは、ソーラパネルと二次電池が用いられている。ソーラパネルは、入射した光により起電力を生じてホストCPU41などの各部に電力供給を行うとともに、余剰電力が生じた場合には、当該電力を二次電池に蓄電する。一方、ソーラパネルへの外部からの入射光量により発電可能な電力が消費電力に対して不足している場合には、二次電池から各部に電力が供給される。バッテリとしては、外部から着脱可能なボタン型乾電池などの一次電池が用いられても良い。
【0025】
衛星電波受信処理部60は、アンテナANを介して測位衛星からの送信電波に同調して受信する。衛星電波受信処理部60は、受信された送信電波に含まれる航法メッセージ(メッセージ信号)をスペクトラム拡散している擬似雑音符号(C/Aコード)及びその位相を同定し、航法メッセージの信号を捕捉する。衛星電波受信処理部60は、当該捕捉された航法メッセージを復調、符号列(各ビット)を同定して必要な処理を行い、所望の情報を取得する。衛星電波受信処理部60は、RF部63と、ベースバンド部64と、発振回路65などを備える。
【0026】
RF部63は、受信された電波(RF信号)から所望の周波数信号を選択、増幅し、中間周波数帯の信号(IF信号)に変換した後、当該IF信号を所定のサンプリング周波数でデジタル変換してベースバンド部64に出力する。
【0027】
ベースバンド部64は、デジタル離散値化されたIF信号データを処理して所望の情報を取得、算出する。ベースバンド部64は、捕捉部641と、追尾部642と、C/Aコード生成部643と、分周回路644と、モジュールCPU645(制御部、コンピュータ)と、記憶部646などを備える。
【0028】
モジュールCPU645は、ホストCPU41からの制御信号や設定データの入力に応じて衛星電波受信処理部60の動作を制御するプロセッサである。モジュールCPU645は、記憶部646から必要なプログラムや設定データを読み出して、RF部63及びベースバンド部64の各部を動作させ、受信された各測位衛星からの送信電波を受信、復調(逆スペクトラム拡散及び各ビットの同定)させて日時情報や位置情報を取得する。このモジュールCPU645は、復調された信号から所望の情報を取得する。モジュールCPU645は、復調された航法メッセージの信号を予め設定されている航法メッセージのフォーマットに従って復号して所望の情報を解読しても良いし、航法メッセージのフォーマットに従って予め設定された比較照合用のビット配列と、復調された信号のビット配列とを比較照合して一致検出することで符号列を直接解読せずに受信内容及びそのタイミングの同定を行うことができる。
【0029】
また、モジュールCPU645は、分周回路644から入力された所定の周波数のクロック信号を用いて日時の計数を行う。モジュールCPU645が現在日時のデータを有しない場合、モジュールCPU645は、ホストCPU41から入力された計時回路46の計数日時や、衛星電波受信処理部60が備える図示略のRTC(Real Time Clock)が計数する日時を初期データとして用いて日時の計数を行う。
【0030】
記憶部646は、フラッシュメモリやEEPROM(Electrically Erasable and Programmable Read Only Memory)などの各種不揮発性メモリと、RAMとを有する。記憶部646の不揮発性メモリには、測位や日時情報の取得に係る各種プログラム646a、設定データや、測位及び日時情報取得の履歴を記憶する。不揮発性メモリに記憶されるデータには、各測位衛星の精密軌道情報(エフェメリス)、予測軌道情報(アルマナック)、前回の測位日時及び位置、ビット値の同定に係る検定に用いられるBER記憶部646b(Bit error rate;ビット誤り率)、及びビットエッジの検出に用いられる比較ビット値配列Rrpを含む比較ビット値配列データ646cが含まれる。ここでは、BER記憶部646bには、衛星電波の複数段階の受信強度と各々対応付けられたビット誤り率のデータ(受信強度とビット誤り率の対応関係)が記憶されている。プログラム646aには、本発明の実施形態のプログラムであって後述の測位制御処理(ビット同期制御処理を含む)を実行するプログラムが含まれる。また、RAMは、衛星電波受信処理部60におけるモジュールCPU645に作業用のメモリ空間を提供し、各種一時データを記憶する。
【0031】
捕捉部641は、RF部63から入力されたIF信号のデジタル離散値に対して各測位衛星の各位相でのC/Aコードとの間で各々相関値を算出してそのピークを検出することで、受信されている測位衛星の種別、すなわち、C/Aコードと当該C/Aコードの位相とを同定する。この捕捉動作には、例えば、マッチドフィルタが用いられ、複数の測位衛星のC/Aコードに対して同時並列的に相関値の算出がなされる。
【0032】
追尾部642は、同定された測位衛星のC/Aコードとその位相とを維持して、当該測位衛星から送信されている航法メッセージの信号を継続的に取得する。追尾部642は、追尾している信号におけるC/Aコードの位相とC/Aコード生成部643から入力されるC/Aコードの位相との差分情報を取得してフィードバックを行い、位相ずれを微調整しながらIF信号を逆スペクトラム拡散、復調して各ビット値を同定する。追尾部642の各構成は、並列に処理可能とする測位衛星の数に応じて複数並列に設けられる。
【0033】
C/Aコード生成部643は、受信対象となり得る全ての測位衛星のC/Aコードのチップ配列情報を予め保持しており、受信候補となる測位衛星、又は同定された測位衛星のC/Aコードを順次生成して適切な速さで捕捉部641及び追尾部642のいずれかに選択的に出力する。捕捉済みの測位衛星のC/Aコードを追尾部642に出力しながら捕捉されていない測位衛星のC/Aコードを捕捉部641に出力しても良い。C/Aコード生成部643は、捕捉部641及び追尾部642に対して、複数の測位衛星に係るC/Aコードを同時に生成して並列的に出力させることが可能である。また、追尾部642に出力されるC/Aコードは、後述するように、追尾部642からの制御信号に従って位相が変更され得る。
【0034】
分周回路644は、発振回路65から入力された所定の周波数の信号を分周してベースバンド部64の各部に所定のクロック信号を供給する。分周回路644の生成するクロック信号は、例えば、追尾部642に入力されたIF信号の処理など、データの入力速度や出力速度に応じた処理速度に従った周波数に定められる。
ベースバンド部64の各部、特に、捕捉部641及び追尾部642は、専用のハードウェア構成(プロセッサ)を備えることで効率良く処理が行われるが、プロセッサとしてのCPUがソフトウェア制御により各部の機能動作の一部又は全部を行っても良い。
【0035】
発振回路65は、所定の周波数の信号を生成してRF部63やベースバンド部64に出力する。この発振回路65の出力周波数は、例えば、16MHz〜32MHzなどであって、発振回路44よりも精度の高いもの、特には限られないが、例えば、TCXO(温度補償付水晶発振器)などが用いられる。
【0036】
この衛星電波受信処理部60は、電力供給部50から直接電力が供給され、そのオンオフ及び受信動作のみの停止(スリープ)がホストCPU41の制御信号により切り替えられる。すなわち、衛星電波受信処理部60は、測位衛星からの電波受信及び日時取得や測位に係る算出動作が行われている期間以外には、常時動作しているホストCPU41などとは別個に電力供給が遮断される。
これらのうち、少なくともRF部63並びにベースバンド部64のうち捕捉部641及び追尾部642が本実施形態の電子時計1において航法メッセージを含む測位衛星からの送信電波を受信する受信部を構成する。
【0037】
次に、測位衛星からの送信電波について説明する。
上述のように、測位衛星では、所定のフォーマットで配列された複数のビットデータ(符号列)により日時、測位衛星の位置や状態などに係る情報を表現したメッセージ信号(航法メッセージ)を生成している。この航法メッセージをなすビットデータの配列は、測位衛星ごとに予め定められたC/Aコードの各チップとの排他論理和によりスペクトラム拡散され、当該スペクトラム拡散された信号によって搬送波信号が位相変調(BPSK)されて送信電波として出力(出射)、送信される。すなわち、測位衛星からの送信電波には、搬送波と、チップの配列であるC/Aコードと、ビットデータの配列からなる航法メッセージとが含まれる。
【0038】
図2は、GPS衛星における航法メッセージのフォーマットについて説明する図である。
GPS衛星では、航法メッセージは、50bps(1ビット当たりの継続時間が20msec)で出力されている。C/Aコードは、1msec周期であり、したがって、ビットデータ1個分の長さ(時間長)の間に20周期繰り返される。この航法メッセージは、30ビット0.6秒を一ワードとし、300ビット6秒を一単位(サブフレーム)として、各サブフレームの2番目のワードで17ビットの符号により表現された日時情報の一部(TOW;週内経過時間)を含む。また、この航法メッセージには、30秒(5サブフレーム、1フレーム)ごとに当該測位衛星の精密軌道情報(エフェメリス;サブフレーム2、3)と、日時情報の残り(WN:週番号;サブフレーム1)とが含まれる。
【0039】
各サブフレームは、必ず固定の8ビット符号(プリアンブル)から開始される。また、各サブフレームには、サブフレームの番号(サブフレームID)を示す符号が含まれている。航法メッセージを復号、解読する場合、まず、このプリアンブルを検出して当該プリアンブルの位置を基準とする。
【0040】
電子時計1が概略日時を保持しており、WNを受信、解読せずともWN(日付)を特定可能である場合には、いずれかのサブフレームにおけるTOWのみを受信し、解読することで、完全な日時情報が取得され得る。また、概略日時に想定されるずれが十分小さく、いずれのサブフレームであるかを同定可能である場合、すなわち、概略日時の誤差が6秒未満(ずれ方向に制限がなければ±3秒未満)である場合には、プリアンブルが同定されるだけで日時が特定され得る。さらに、電子時計1がほぼ正確な日時を保持しており、航法メッセージ中のどのビットデータであるかを特定可能である場合、すなわち、日時の誤差が20msec未満(ずれ方向に制限がなければ±10msec未満)であり、かつ受信された測位衛星と現在位置との概略距離、すなわち、電波の伝搬時間が20msecと比較して十分に小さい誤差範囲内で既知の場合には、プリアンブルをはじめとするビット配列を同定したり、符号列を解読したりする必要もなく、ビットの先頭タイミングが同定されれば、この先頭タイミングのずれ量に応じて日時のずれの修正を行うことができる。このように受信、取得が必要な情報の量を減少させていくことで、日時の算出に必要な情報の受信時間を短縮し、処理量を低減することができる。
【0041】
発振回路65にTCXOが用いられており、温度変化などが通常の使用範囲内である場合、日時の計数誤差(ずれの割合)は、1ppm以下である。したがって、±10msecのずれが生じるまでの時間は、最短でも10
4sec(2時間46分)程度となる。測位の開始前や再開前に衛星電波受信処理部60(モジュールCPU645)への電力供給がオフされていた場合には、その間モジュールCPU645の動作が停止(中断)されて日時情報を計数していないので、上述のように、ホストCPU41又はRTCから日時情報(初期値)を取得して日時の計数を開始する。この場合、モジュールCPU645による日時の計数とは独立に日時を計数する計時回路46やRTCの日時の計数誤差(ずれの割合)は、10ppm以下程度である(すなわち、TCXOを用いた日時の計数誤差は、計時回路46による日時の計数誤差よりも小さい)ので、±10msecのずれが生じるまでの時間は、最短で10
3sec(16分40秒)程度となる。モジュールCPU645が日時を計数している時間(モジュールCPU645の動作の継続期間)と計数していない時間(モジュールCPU645の動作の中断期間)とが混在する場合には、これらの組み合わせに応じて±10msecのずれが生じるまでの最短時間が10
3secから10
4secの間となる。衛星電波受信処理部60の動作期間や受信期間に係る情報は、受信履歴としてRAM43に記憶される。
【0042】
次に、本実施形態の電子時計1における電波受信動作について説明する。
電子時計1では、連続的に測位を行う連続測位と、所定の時間間隔で間欠的に測位を行って移動履歴を取得する間欠測位と、一回のみ測位を行って終了する単独測位とが可能である。連続測位や、測位間の時間間隔の短い間欠測位及び単独測位(例えば数秒〜数分程度の間隔)では、一度取得されたエフェメリスを複数回の測位にわたり継続して利用することができる。また、通信部70を介して所定のデータサーバにアクセス可能な場合には、測位衛星からエフェメリスを受信せずとも当該外部のデータサーバから取得されたエフェメリスを用いることができる。
【0043】
測位を行う場合、4機以上の測位衛星の位置座標及び信号の受信タイミングのずれ時間と、現在日時とに基づいて、現在位置の位置座標3成分及び現在日時のずれの4成分が求められる。これらの算出は、通常、所定の初期値から数値的に収束させる(例えば、ニュートン・ラフソン法などによる)ことで行われるので、初期値の設定が収束値に近いほど短時間かつより確実に正しい結果が得られやすい。また、求められる位置の精度は、複数の測位衛星からの送信電波の受信タイミングの決定精度による。電子時計1では、通常、C/Aコードの位相同期をとることで、1チップ1μsec弱程度の精度で複数の衛星からの電波受信タイミングのずれを決定することができる。
【0044】
日時のずれ量の初期値としては、通常、ゼロが設定される。前回の測位及びモジュールCPU645による計数日時の修正からの経過時間が十分に小さい、例えば、10秒から数分程度の場合には、各測位衛星の位置座標、電子時計1の現在位置及び計数日時のずれのいずれも大きく変化しないので、測位衛星からの送信電波の受信タイミング(伝搬時間)のずれの変化も微小であり、すなわち、C/Aコードの送信周期(1msec)以下程度でしか変化しない。したがって、このような頻度での間欠測位を行う場合には、航法メッセージの符号列の解読やさらにはビットデータの境界タイミング(ビットエッジ)の決定(ビット同期、ビットエッジ検出動作)を行うことなくC/Aコード周期の位相を決定しさえすれば、前回の測位衛星からの送信電波の受信タイミングのずれ時間に基づいてその微小変化を正確に同定し、より容易かつ短時間で現在位置及び計数日時のずれが同定され得る。
【0045】
一方で、上述の日時の計数誤差に基づいて生じ得る計数日時のずれは、日時修正が行われてからの経過時間に応じて大きくなり、また、測位及び計数日時のずれの修正が前回行われてからの経過時間に応じて測位衛星と現在位置との位置関係の変化も大きくなり得る。その結果、測位衛星からの電波受信タイミングのずれ時間が前回のずれ時間と比較してC/Aコードの送信周期の長さ(1msec)より大きく異なったり、さらには、実際に受信、同定されたビットデータが計数日時から想定されるビットデータと異なったりし得る。
【0046】
本実施形態の電子時計1では、前回の測位及び計数日時の修正後の経過時間及び衛星電波受信処理部60の動作状況などに基づいて計数日時の最大誤差を見積もる。そして、この最大誤差に応じて、C/Aコード周期内の同期タイミングのみを取得するか、ビットデータの境界タイミングを決定する(ビット同期を行う)必要があるか、又は更にプリアンブルなどの符号位置を同定する必要があるかを判断する。
【0047】
なお、計数日時の修正後の経過時間が長くなると、計数日時のずれが小さいままであっても測位衛星が移動して電波受信タイミングのずれ時間(伝搬時間)が1msec以上変化する場合があるので、ビット同期を行うか否かについては、計数日時の最大誤差だけではなく単純な経過時間も考慮することとして良い。また、測位時に得られる正確な日時に基づいて各測位衛星からの送信電波の伝搬時間を改めて算出し、1msec以上の桁の値が変化するか否かを毎回又は所定の間隔で判別しても良い。
【0048】
次に、ビット同期に係る動作について説明する。
図3は、ビット同期を行う場合に用いる比較ビット値配列Rrpを示す図である。
電子時計1では、C/Aコードとの位相同期がなされると、C/Aコードの一周期分の長さ(1msec長;区分期間)ごとに各周期に同期してそれぞれ航法メッセージの信号のビット値を同定して、これらを受信順に配列した同定ビット値配列を取得(生成)する。上述のように、1ビットの長さはC/Aコード20周期分であるので、すなわち、C/Aコードの一周期分(区分期間)の長さは、1ビットの継続時間(20msec長)を複数に分割した長さとなる。これにより、同定されるビット値は、20個ごとに変化し得る。したがって、同定ビット値配列の各ビット値のうち先頭位置を1つずつ(すなわち、1msecずつ)最大19個(20msec、すなわち、1ビットの継続時間に応じた数にわたって)ずらしながら得られる20通りの連続する20個(2以上の所定数、ここでは、1ビットの継続時間内におけるC/Aコードの周期数と等しい)からなるビット値の配列(配列部分)のうちいずれか1つは、ビット値の10個目と11個目の間を境界(境界位置)として10個目以前と11個目以降とでビット値が異なることになる。すなわち、この配列部分は、
図3の比較ビット値配列Rrp(照合ビット値配列)のように、予め定められた境界位置の前後で互いに異なる(すなわち、「0」と「1」)ビット値の配列パターンと完全に一致(ビット値が0→1)又は完全に不一致(ビット値が1→0)のいずれかとなる。また、配列部分の先頭位置がこの完全一致又は完全不一致となる先頭位置から1つずつ(先頭タイミングから1msecずつ)前後にずれていくごとに1つずつ一致しない(不一致とならない)ビット値の数が増えていく。
【0049】
なお、航法メッセージにおいて同一ビット値が続けて送信されている期間に得られる同定ビット値配列では同定されるビット値が途中で切り替わらない(1→1、0→0)場合があるので、この場合には、20通りの配列部分の間で一致個数や不一致個数に変化が生じない。このような状況は、比較ビット値配列Rrpと各配列部分との間で一致するビット値の数がそれぞれ全体の半分(20個のうち10個)となることで判別される。この場合には、取得した同定ビット値配列の期間より20msec又は40msec後の期間で改めて同じ処理を行う。
【0050】
しかしながら、測位衛星からの送信電波の受信強度が低下していくのに従ってビット値の同定を誤る(誤同定)頻度が徐々に高まる。本実施形態の電子時計1では、同定ビット値配列から得られる20通りの配列部分における20個のビット値を各々比較ビット値配列Rrpの20個のビット値とそれぞれ比較(照合)する処理をそれぞれ行い、確率的に所定の精度で比較ビット値配列Rrpとの一致の度合及び不一致の度合が最も大きいと認められるものに対応する配列部分の11個目のビット値のデータが取得された先頭のタイミング(比較ビット値配列Rrpの境界位置と対応する位置)をビットデータの境界タイミング(ビットエッジ)として決定する。20通りの配列部分は、各々並列に用意されて比較ビット値配列Rrpと比較されても良い。ここでは、この比較ビット値配列Rrpは、比較ビット値配列データ646cに含まれて記憶部646に記憶保持され、必要に応じて読み出されて利用される。あるいは、ベースバンド部64は、比較ビット値配列Rrpとの照合と同等の処理が可能なハードウェア構成(例えば、比較対象の配列部分の前半10ビットをそのまま出力し、後半10ビットを反転して出力して加算するなど)を有していても良い。
【0051】
ここでは、20通りの配列部分と比較ビット値配列Rrpとの一致個数及び不一致個数のうち最大のものと二番目に大きいものを抽出し、当該最大のものに対応する配列部分(第一の配列部分)と二番目に大きいものに対応する配列部分(第二の配列部分、すなわち、他の配列部分)とを入れ違えて誤認定する確率が十分に低いか否か(所定の確率以上で誤認定を生じないか)によりビットデータの境界タイミングの決定可否を判断する。N個のビット値のうち任意のm個を誤同定する確率Pは、ビット誤り率εを用いてP=(1−ε)
N−m・ε
m・
NC
mと表される。ビット誤り率εは、受信強度(CN比など)に基づいて変化するが、ここでは一例として単純にε=0.5として、P=
NC
m/2
Nと求められる。これらの演算結果は、予めNやmと対応付けられて記憶保持され、必要に応じて参照取得されても良いし、あるいは、近似式を用いて簡便に算出されることとしても良い。また、2
Nの値は比率の算出時に相殺されるので、初めから計算しないこととしても良い。
【0052】
電子時計1では、各配列部分の比較照合に係る20個のビット値における一致個数(20−m)(一致の度合)と不一致個数m(不一致の度合)のうち、大きい方が一致個数、小さい方が不一致個数(不一致の度合)として定められる。すなわち、一致個数F=|20−2×m|とされ、これに応じて不一致個数E=(20−F)/2と求められる。
【0053】
上述のように、比較ビット値配列Rrpとビット値の切り替わり境界の位置が一致する配列部分についての不一致個数Eは0となり、この不一致個数Eがそのまま誤同定されたビット値の数である。したがって、二番目に小さいm2個を誤同定した確率P2(m2個が誤同定される配列部分の検出確率)に対する最小のm1個を誤同定した確率P1(m1個が誤同定される配列部分の検出確率)の比率Pd=P1/P2が所定の基準比率以下、例えば、10
−7以下であれば、最小のm1個が誤同定された配列部分が比較ビット値配列Rrpと十分な精度で最も一致(又は不一致)したと判別され、ビットデータの境界タイミングが決定される。受信強度(CN比)が低く誤同定が増えて一度では十分な精度が得られない場合(基準比率以下ではない場合)には、比率Pdが基準比率以下となるまで複数周期積算して精度を向上させることができる。上述のように、一致個数及び不一致個数のうち大きい方が機械的に一致個数Fとして扱われるので、この一致個数Fを積算することにより、ビット値が「0」、「1」の間でいずれの向きに変化するかを考慮する必要がない。なお、確率P1、P2を別個に算出してから比率Pdを算出せず、近似式などを用いて比率Pdを直接簡便に算出しても良い。
【0054】
航法メッセージにおいて同一ビット値が続けて送信されている期間には、多少の誤同定が混入しても一致個数及び不一致個数のうち最大のものにおける当該一致個数と不一致個数の差が大きく開かないので、この差が所定の基準差以下、例えば、10以下(すなわち、一致個数及び不一致個数の両方が5以上かつ15以下)である場合には、同一ビット値が続けて送信されていると判断してビットデータの境界タイミングの決定に係る以降の処理を行わない(ビットエッジの決定を行わない)こととして、比較結果(照合の結果)を放棄することができる。また、これにより、符号の同定が困難なほど受信感度が一時的に低下した(CN比が悪化した)期間のデータを除外して精度良くビットエッジの検出を行うことができる。
【0055】
図4は、本実施形態の電子時計1で実行される位置取得処理のホストCPU41による制御手順を示すフローチャートである。この位置取得処理は、ユーザ操作に基づいて開始され、又は、ユーザの設定操作などに基づいて所定の時間間隔で周期的に呼び出されて実行される。
【0056】
位置取得処理が開始されると、ホストCPU41は、衛星電波受信処理部60への電力供給が停止されている(オフである)か否かを判別する(ステップS401)。停止されていないと判別された場合には(ステップS401で“NO”)、ホストCPU41の処理は、ステップS404に移行する。
【0057】
停止されていると判別された場合には(ステップS401で“YES”)、ホストCPU41は、衛星電波受信処理部60に電力供給部50から電力を供給させて起動させる(ステップS402)。ホストCPU41は、計数している日時の情報を衛星電波受信処理部60に送信する(ステップS403)。それから、ホストCPU41の処理は、ステップS404に移行する。
【0058】
ステップS401、S403の処理からステップS404の処理に移行すると、ホストCPU41は、衛星電波受信処理部60からエフェメリスデータの要求があったか否かを判別する(ステップS404)。要求があったと判別された場合には(ステップS404で“YES”)、ホストCPU41は、エフェメリスデータを衛星電波受信処理部60に送信する(ステップS405)。送信対象とされるエフェメリスデータは、全測位衛星のデータであっても良いし、衛星電波受信処理部60から指定された一部の(直近の計測位置と現在日時から可視状態であると想定される)測位衛星のデータのみであっても良い。それから、ホストCPU41の処理は、ステップS406に移行する。エフェメリスデータの要求がないと判別された場合には(ステップS404で“NO”)、ホストCPU41の処理は、ステップS406に移行する。
【0059】
ステップS406の処理に移行すると、ホストCPU41は、位置情報取得の終了命令が検出されたか否かを判別する(ステップS406)。この終了命令には、操作受付部49が受け付けたユーザ操作に応じたものと、ホストCPU41が設定した間欠測位時の測位の中断期間に自動的に設定出力されるものとが含まれる。終了命令が検出されていないと判別された場合には(ステップS406で“NO”)、ホストCPU41は、衛星電波受信処理部60から測位結果の入力を待ち受け、入力された測位結果を取得して当該取得された測位結果に基づく表示部47への表示制御信号を表示ドライバ48に出力する(ステップS407)。また、ホストCPU41は、測位結果とともに取得された現在日時のデータに基づいて計時回路46が計数する日時を修正することができる。それから、ホストCPU41の処理は、ステップS406に戻る。
【0060】
終了命令が検出されたと判別された場合には(ステップS406で“YES”)、ホストCPU41は、衛星電波受信処理部60に対して測位終了命令を出力する(ステップS408)。ホストCPU41は、間欠測位における測位の中断期間などで、今後再度の測位が実行される予定があるか否かを判別する(ステップS409)。予定があると判別された場合には(ステップS409で“YES”)、ホストCPU41の処理は、ステップS411に移行する。予定がないと判別された場合には(ステップS409で“NO”)、ホストCPU41は、衛星電波受信処理部60をオフさせて電力供給部50からの電力供給を中止させる(ステップS410)。それから、ホストCPU41の処理は、ステップS411に移行する。
【0061】
ステップS411の処理に移行すると、ホストCPU41は、受信履歴情報を更新してRAM43に記憶させる(ステップS411)。そして、ホストCPU41は、位置取得処理を終了する。
【0062】
図5は、衛星電波受信処理部60により実行される測位制御処理のモジュールCPU645による制御手順を示すフローチャートである。
この測位制御処理は、本発明の日時修正処理の実施形態を含み、ホストCPU41からの起動命令又は実行命令に応じて開始される。
【0063】
測位制御処理が開始されると、モジュールCPU645は、衛星電波受信処理部60が起動されて本処理の制御が開始されたか否かを判別する(ステップS601)。起動されて開始されたのではない(既に衛星電波受信処理部60自体は起動されていた)と判別された場合には(ステップS601で“NO”)、モジュールCPU645の処理は、ステップS604に移行する。衛星電波受信処理部60が起動されて開始された(すなわち、前回の測位終了に伴って不定期間中断後に再開された)と判別された場合には(ステップS601で“YES”)、モジュールCPU645は、衛星電波受信処理部60の初期設定及び起動時の初期チェックを行う(ステップS602)。モジュールCPU645は、ホストCPU41から送信された日時情報(現在日時に係る情報)を取得し、計数日時を更新して日時の計数を開始する(ステップS603)。それから、モジュールCPU645の処理は、ステップS604に移行する。
【0064】
ステップS604の処理に移行すると、モジュールCPU645は、現在日時(計数日時)において可視状態である想定される測位衛星に係る有効期間内のエフェメリスを保持しているか否かを判別する(ステップS604)。可視状態の判定は、例えば、現在位置からみて測位衛星の仰角が所定の基準角度以上であるかなどによって行われ、実際の地形の起伏や建築構造物などは考慮されなくて良い。保持していると判別された場合には(ステップS604で“YES”)、モジュールCPU645の処理は、ステップS606に移行する。有効なエフェメリスを保持していないと判別された場合には(ステップS604で“NO”)、モジュールCPU645は、ホストCPU41に対してエフェメリスデータを要求し、取得されたエフェメリスデータを記憶部646に記憶させる(ステップS605)。それから、モジュールCPU645の処理は、ステップS606に移行する。
【0065】
ステップS606の処理に移行すると、モジュールCPU645は、RF部63やベースバンド部64の捕捉部641などの動作を開始させて、測位衛星からの電波受信動作を開始する(ステップS606)。モジュールCPU645は、受信された電波の信号(デジタルサンプリングされたIF信号)とC/Aコードの照合を捕捉部641により行わせ、また、同期を取ることで、測位衛星からの送信電波を捕捉する(ステップS607)。このとき、モジュールCPU645は、保持しているエフェメリスと前回の測位結果(現在位置)とに基づいて、捕捉されると想定される測位衛星を優先的に捕捉対象とするように捕捉動作の順番を設定することができる。
【0066】
モジュールCPU645は、ホストCPU41から測位動作の終了命令が入力されているか否かを判別する(ステップS608)。入力されていると判別された場合には(ステップS608で“YES”)、モジュールCPU645は、RF部63や追尾部642の動作を停止させて、測位衛星からの電波受信動作を終了する(ステップS630)。そして、モジュールCPU645は、測位制御処理を終了する。
【0067】
ホストCPU41から測位動作の終了命令が入力されていないと判別された場合には(ステップS608で“NO”)、モジュールCPU645は、捕捉された測位衛星の追尾動作を行い、また、追尾されている測位衛星からの信号の受信タイミングのずれ(擬似距離)と計数している現在日時(計数日時)とに基づいて現在位置及び正確な現在日時の算出を行う(ステップS609)。
【0068】
モジュールCPU645は、前回の測位後の経過時間や日時の計数状況に基づいて、計数日時(現在日時)のずれの最大見積もり値である想定誤差dTeが基準時間dTc以上であるか否かを判別する(ステップS610)。ここでは、TCXOのずれの割合(1ppm)や計時回路46のずれの割合(10ppm)の情報を予め保持しておき、例えば、モジュールCPU645は、前回の測位及び計数日時の修正を行ってからの衛星電波受信処理部60がオン状態での経過時間Tn(sec)とオフ状態での経過時間Tf(sec)(モジュールCPU645の動作の中断期間の長さ)とを用いて求められる想定誤差dTe=10
−6Tn+10
−5Tfが基準時間dTc=10
−2(sec)以上であるか否かを判別する。
【0069】
想定誤差dTeが基準時間dTc以上ではない(未満である)と判別された場合には(ステップS610で“NO”)、モジュールCPU645は、今回の測位制御処理で既にビット同期を行ったか否かを判別する(ステップS611)。ビット同期を行ったか否かについては、初期状態ではリセットされており(セットされていない状態であり)、後述のビット同期制御処理に成功した場合にセット状態とされるフラグなどを定めることで判別可能とすることができる。
【0070】
ビット同期を行っていないと判別された場合には(ステップS611で“NO”)、モジュールCPU645は、捕捉済みの測位衛星から一機(測位に用いられる複数の測位衛星からの送信電波のうちいずれか一つ)を選択して(ステップS612)、当該一機の測位衛星について、後述するビット同期制御処理を呼び出して実行する(ステップS613)。モジュールCPU645は、決定されたビットデータの境界タイミングに応じて(必要に応じて当該測位衛星からの伝搬時間を補正して)計数日時を±10msecの範囲で前後させる更新を行う(ステップS614;日時ずれ修正ステップ、日時ずれ修正手段)。それから、モジュールCPU645の処理は、ステップS626に移行する。ビット同期を行ったと判別された場合には(ステップS611で“YES”)、モジュールCPU645の処理は、ステップS628に移行する。
【0071】
ステップS610の判別処理で、想定誤差dTeが基準時間dTc以上であると判別された場合には(ステップS610で“YES”)、モジュールCPU645は、捕捉した全ての測位衛星をビット同期制御処理の対象として選択し(ステップS621)、各々ビット同期制御処理を実行する(ステップS622)。モジュールCPU645は、ビットデータの境界タイミングが決定された各測位衛星から受信、復調された航法メッセージにおける各ビット値を順番に同定する動作を行う(ステップS623)。モジュールCPU645は、同定されたビット値の配列からプリアンブルを検出し、更にTOWを取得する。モジュールCPU645は、TOWが取得されたか否かを判別し(ステップS624)、取得されていないと判別された場合には(ステップS624で“NO”)、処理をステップS608に戻す。
【0072】
TOWが取得されたと判別された場合には(ステップS624で“YES”)、モジュールCPU645は、当該TOWの取得タイミング及びTOWの解読内容(日時)に基づいて計数日時を更新する(ステップS625)。この場合に得られる日時は、測位衛星からの送信電波の正確な伝搬時間が求められていないので、若干(最大で±10〜15msec程度)のずれが含まれ得る。それから、モジュールCPU645の処理は、ステップS626に移行する。
【0073】
ステップS614、S625の処理からステップS626の処理に移行すると、モジュールCPU645は、更新された計数日時を用いて現在位置の算出を行う(ステップS626;測位実行ステップ、測位実行手段)。モジュールCPU645は、現在位置の算出に成功したか否かを判別する(ステップS627)。成功していないと判別された場合には(ステップS627で“NO”)、モジュールCPU645の処理は、ステップS608に戻る。成功したと判別された場合には(ステップS627で“YES”)、モジュールCPU645の処理は、ステップS628に移行する。
【0074】
ステップS611、S627の処理からステップS628の処理に移行すると、モジュールCPU645は、計数日時を更新する(ステップS628)。モジュールCPU645は、測位結果をホストCPU41に出力する(ステップS629)。それから、モジュールCPU645の処理は、ステップS608に戻る。なお、ステップS608の処理に戻った後、測位動作を行う間隔は、適宜定められる。
【0075】
図6は、測位制御処理で呼び出されるビット同期制御処理のモジュールCPU645による制御手順を示すフローチャートである。
ビット同期制御処理が呼び出されると、モジュールCPU645は、取得された入力信号をC/Aコード周期に同期して1msecごとに分割し、当該1msec間のビット値を同定して、同定ビット値配列pにおけるi番目のビット値p(i)とする。モジュールCPU645は、この処理を40msec分(i=0〜39)続けて行う(ステップS651;ビット値同定ステップ、ビット値同定手段)。
【0076】
モジュールCPU645は、変数nを初期値「0」に設定し、また、20個の不一致個数E(j)(配列番号j;0≦j≦19)をそれぞれ初期値として「0」に設定する(ステップS652)。モジュールCPU645は、ビット値p(j+n)と比較ビット値配列のj番目のビット値Rrp(j)との排他論理和を取ってE(j)に加算していく。モジュールCPU645は、変数nに1を加算し、また、カウント数Nに1を加算する(ステップS653)。
【0077】
モジュールCPU645は、変数nが20であるか否かを判別する(ステップS654)。変数nが20ではないと判別された場合には(ステップS654で“NO”)、モジュールCPU645の処理は、ステップS653に戻る。変数nが20であると判別された場合には(ステップS654で“YES”)、モジュールCPU645は、得られた20個の不一致個数E(j)のうち最小値が5以下又は最大値が15以上であるか否かを判別する(ステップS655)。いずれでもないと判別された場合には(ステップS655で“NO”)、モジュールCPU645は、ビット同期制御処理を終了して処理を測位制御処理に戻す。このとき、モジュールCPU645は、ビット同期制御処理で設定されている各値を消去、初期化しない。
【0078】
不一致個数E(j)のうち最小値が5以下又は最大値が15以上であると判別された場合には(ステップS655で“YES”)、モジュールCPU645は、不一致個数が「10」以上の場合に不一致個数と一致個数を反転させて、積算一致個数F(j)に加算する(ステップS656)。すなわち、モジュールCPU645は、一致個数を|20−2×E(j)|として、もともと定められていた積算一致個数F(j)に加算する。
【0079】
モジュールCPU645は、積算一致個数F(j)のうち最も大きい値max1(F(j))を最大積算一致個数Fm1とし、また、二番目に大きい値max2(F(j))を次点積算一致個数Fm2とする(ステップS657)。最大のものが2個以上ある場合には、最大積算一致個数Fm1及び次点積算一致個数Fm2は同一の値になる。モジュールCPU645は、最大積算一致個数Fm1を最小積算不一致個数Em1=(N−Fm1)/2に換算し、また、次点積算一致個数Fm2を次点積算不一致個数Em2=(N−Fm2)/2に換算する(ステップS658)。
【0080】
モジュールCPU645は、最小積算不一致個数Em1、次点積算不一致個数Em2の不一致箇所がそれぞれ生じる配列パターンの発生確率として、Pmax=
NC
Em1/2
N、Pmax2=
NC
Em2/2
Nを求める(ステップS659)。モジュールCPU645は、それぞれの発生確率の比率Pd=Pmax/Pmax2を算出する(ステップS660)。モジュールCPU645は、比率Pdが所定の基準値以下であるか否かを判別する(ステップS661)。基準値以下であると判別された場合には(ステップS661で“YES”)、モジュールCPU645は、最小積算不一致個数Em1に応じた不一致個数E(j)の配列番号jの配列部分における11個目のビット値の取得タイミング先頭をビットデータの境界タイミング(ビットエッジ)として決定する(ステップS662)。そして、モジュールCPU645は、ビット同期制御処理を終了し、処理を測位制御処理に戻す。このとき、モジュールCPU645は、上述のビット同期実施に係るフラグをセットすることができる。基準値以下ではないと判別された場合には(ステップS661で“NO”)、モジュールCPU645は、ビット同期制御処理を終了し、処理を測位制御処理に戻す。
上述のステップS653、S656〜S662の各処理により本実施形態の測位制御方法におけるビットエッジ検出ステップが構成され、日時修正に係るプログラムにおけるビットエッジ検出手段が構成される。
【0081】
なお、上述のように、ビット同期制御処理におけるカウント数N及び積算一致個数F(j)はリセットされず、必要に応じて積算される。したがって、測位制御処理でビット同期制御処理が呼び出される場合には、当該ビット同期制御処理は、最初に設定された20msec周期に同期して行われる必要がある。
【0082】
以上のように、第1実施形態の衛星電波受信処理部60は、測位衛星から送信されるビットデータの配列からなる航法メッセージを含む送信電波を受信するRF部63、捕捉部641及び追尾部642を含む受信部と、モジュールCPU645と、を備え、モジュールCPU645は、航法メッセージにおける各ビットデータの継続時間(20msec)をそれぞれC/A周期(1msec)ごとに20個に分割した区分期間ごとに当該航法メッセージのビット値を同定して、同定されたビット値を受信順に配列した同定ビット値配列を取得し、当該同定ビット値配列における複数のビット値の配列に基づいて、受信された送信電波においてビット値が切り替わる先頭タイミングを決定するビットエッジ検出動作を行い、計数されて(して)いる現在日時に対する決定された先頭タイミングのずれ量に応じて20msec未満の現在日時のずれを修正し、修正された現在日時を用いて測位を行う。
このように、航法メッセージの各ビットデータの境界を検出して微小な日時のずれを検出することで、容易かつ速やかに日時の微小なずれを修正することができる。そして、この修正された日時に基づいて測位を行うことで、より迅速かつ簡便に正確な測位を実行することができる。特に、C/Aコードとの同期を通常通り行った後、各ビットデータの継続時間を複数の区分期間に分割してビット値の切り替わりの検出を行うので、ビットエッジの検出に関してC/Aコードのチップ単位で多くのデータを保持して高速処理する必要がない。
【0083】
また、モジュールCPU645は、測位に用いられる複数の測位衛星からの送信電波のうち少なくともいずれか一つについてビットエッジ検出動作を行い、決定された先頭タイミングに応じて修正された現在日時を用いて測位を行う。このように、測位を行う前に迅速かつ簡便に現在日時の修正がなされるので、当該現在日時を用いて測位演算を行うことで、より確実かつ迅速に現在位置に収束させることができる。これにより、衛星電波受信処理部60では、精度良く正確な現在位置を取得することができる。
【0084】
また、モジュールCPU645は、複数の測位衛星のエフェメリスを外部から取得して、当該エフェメリスと修正された現在日時とを用いて測位を行う。
これにより、測位衛星からの送信電波の受信再開後、擬似距離が取得され次第速やかに測位が行われる。そして、この測位に係る最初の演算の際に、通常最初の測位演算がなされる場合よりも正確な現在日時を用いることができるので、より確実かつ迅速に正確な現在位置に収束させて測位演算を終了させることができる。
【0085】
また、区分期間は、航法メッセージをスペクトラム拡散しているC/Aコードの一周期分の長さ(1msec)であり、各周期に各々同期して定められる。初めに測位衛星からの送信電波を捕捉するためにC/Aコードの位相同期が必要であり、また、ビットエッジはC/Aコードに同期しているので、このように、C/Aコード周期に同期した区分期間を設定することで、ビットエッジの検出を迅速かつ容易に行うことができる。
【0086】
また、ビットエッジ検出動作において、モジュールCPU645は、20個のビット値の配列からなり、当該20個のビット値が予め定められた境界位置(10個目と11個目の間)の前後で「0」と「1」とで互いに異なる比較ビット値配列Rrpと、取得された同定ビット値配列をなす各ビット値のうち連続する20個からなる配列部分とを、当該配列部分の先頭位置を航法メッセージにおける一つビット値の継続時間に応じた数(すなわち、20msecに応じた20個)にわたって一つずつ比較ビット値配列Rrpに対してずらしながらそれぞれ比較照合し、比較照合の結果、配列部分のうち比較ビット値配列Rrpとの一致個数及び不一致個数のうち最も大きいものに対応する第一の配列部分が、他の配列部分に対して所定の確率以上で誤認定を生じない当該第一の配列部分における前記境界位置と対応する位置に基づいて、受信された送信電波におけるビットデータの先頭タイミングを決定する。
このように、ビットエッジの検出時に複数の区分期間におけるビット値配列の先頭位置をずらしながら単一の比較ビット値配列Rrpと比較して、一致個数と不一致個数のうち少ない方を不一致個数とするので、ビット値に応じた位相反転の向きを考慮せずとも画一的な処理で容易にビットエッジを同定することができる。また、比較ビット値配列Rrp及び同定ビット値配列の記憶容量を小さく抑えながら、配列部分ごとに一致個数や不一致個数のみ記憶させていけば良いので、大容量のメモリを必要としない。
【0087】
また、比較ビット値配列Rrpの配列数(所定数)は、各ビットデータの継続時間(20msec)内における区分期間(1msec)の数と等しく定められていることで、処理を冗長化しない範囲で十分なビット数を比較照合することができ、これにより、ビットエッジ自体が検出されなかったり、検出されたビットエッジの確率精度が不足してかえって処理時間が長引いたりするおそれを適切に低減させることができる。
【0088】
また、モジュールCPU645は、配列部分のうち比較ビット値配列Rrpとの間の一致の度合及び不一致の度合のうち二番目に大きいものに対応する第二の配列部分に対して最も大きいものに対応する第一の配列部分が所定の確率以上で誤認定を生じない当該第一の配列部分におけるビット値の切り替わり境界位置と対応する位置に基づいて、受信された送信電波におけるビットデータの先頭タイミングを決定する。
このように、二番目に不一致が小さいものとの間で誤認定する確率が十分に低ければ、その他の配列部分と誤認定する確率は更に低いので、考慮する必要がなく、単純な2つの候補の比較で十分な精度が得られるか否かを容易に判断することができる。
【0089】
また、モジュールCPU645は、配列部分の各々について、比較照合により得られた一致個数及び不一致個数のうち小さい方を不一致個数として定め、当該不一致個数が最も小さいものと二番目に小さいものとを用いてビットエッジ検出動作を行う。
このように、単純に一致個数と不一致個数のうち小さい方を不一致個数とすることで、容易な処理で符号の反転の方向を意識することなく容易に処理を行うことができる。また、本実施形態のようにビット誤り率εを0.5とすることで、一致個数と不一致個数との取り違えが問題を及ぼさない。また、ビット誤り率εが別途定められたとしても、一致個数と不一致個数の大小が反転するほどビット値の誤同定が多い場合には、十分に精度の高いビットエッジの決定ができないので、結局問題を生じない。したがって、このような処理により符号の反転を考慮した処理を大幅に軽減し、容易かつ迅速にビットエッジを決定することができる。
【0090】
また、モジュールCPU645は、不一致個数が二番目に小さい配列部分の検出の確率P2に対する不一致個数が最も小さい配列部分の検出の確率P1の比率Pdが所定の基準比率以下となる場合に先頭タイミングを決定する。このように、検出確率の確率比に基づいてビットエッジの決定可否を定めるので、定量的に十分な精度でビットエッジが定められる。また、確率の比率Pdのみを算出すれば良く、検出確率P1、P2を二項分布に従って求める場合などに演算処理を簡略化することができる。
【0091】
また、モジュールCPU645は、一致個数と不一致個数の差が所定の基準差(10個)以下の場合には先頭タイミングの決定を行わずに比較照合の結果を放棄する。これにより、電波受信強度(CN比)が低い場合には、初めからビットエッジの検出処理を行わないことで、無駄な処理量を低減させることができる。
また、差が基準差より大きくかつ比率Pdが所定の基準比率以下ではない場合には、比較照合の結果を複数周期積算して所定の基準比率以下の比率Pdが得られるまで繰り返す。上記のように、一致個数と不一致個数と意識する必要のない処理を行っているので、電波受信強度(CN比)が低く、十分な精度でビットエッジが決定できない場合でも、短時間で容易に複数周期分の比較照合結果を積算して精度を高めたビットエッジの決定が可能となる。
【0092】
また、モジュールCPU645は、測位が前回行われてからの経過時間と計数されている現在日時に生じ得るずれの割合(歩度)に係る予め保持された情報とに基づいて、現在日時のずれがビットデータの継続時間(20msec)以下の基準時間未満であると判別された場合に、ビットエッジ検出動作に基づく継続時間未満の現在日時の修正を行う。
計数日時のずれの割合は、発振回路65の発振器により定まるものであり、前回の測位からの経過時間とこの歩度とに応じて計数日時の最大ずれ量が容易に想定される。したがって、計数日時に想定される最大ずれ量がビットエッジの検出のみで修正可能な範囲内、すなわち、どのビット間のビットエッジであるかを一意に特定可能である場合に容易な日時修正処理を行うこととすることで、かえって不正確な日時に変更されることを防ぎつつ、適切な範囲で処理を軽減して速やかに正確な日時に修正することができる。
【0093】
また、モジュールCPU645は、計数する現在日時を修正した場合には、独立に現在日時を計数する計時回路46が計数する現在日時を修正させるための日時情報をホストCPU41に出力し、モジュールCPU645の動作が中断後に再開された場合には、計時回路46からホストCPU41を介して現在日時に係る情報を取得して現在日時の計数を開始し、計時回路46が計数する日時に生じ得るずれの割合(歩度)に係る情報とモジュールCPU645の動作の中断期間の長さとに応じて現在日時のずれが基準時間未満であるか否かを判別して、ビットエッジ検出動作に基づく継続時間(20msec)未満の現在日時の修正を行う。
衛星電波受信処理部60のように測位動作に応じて間欠的に動作と停止が切り替えられる場合、モジュールCPU645が計数する日時は、動作再開時に外部から取得する必要があるが、当該取得先の外部の計時回路46の計時誤差を適切に認識し、また、衛星電波受信処理部60の動作に応じて適切に正しい日時に修正しておくことで、計時回路46の歩度に応じた範囲で有効にビットエッジ検出動作に基づく現在日時のずれの修正を容易に行うことができる。
【0094】
また、モジュールCPU645の動作時に計数される(する)現在日時のずれの割合は、計時回路46が計数する現在日時のずれの割合よりも小さい。したがって、測位動作に係る測位衛星からの電波受信を行わない場合でもモジュールCPU645が動作している場合には、当該期間内に計数される現在日時の歩度を考慮し、より長い時間容易な現在日時の修正を行うことができる。特に、短い間隔で間欠的に測位を行う場合などは、受信部のみ電力供給をオフすることで、測位時の処理をかえって効率化することが可能になる。
【0095】
また、本実施形態の電子時計1は、衛星電波受信処理部60と、現在日時を計数する計時回路46と、計時回路46が計数する現在日時に基づいて少なくとも時刻の表示を行う表示部47と、を備える。そして、モジュールCPU645は、日時情報が修正された場合に計時回路46が計数する日時を修正するための日時情報を出力し、当該モジュールCPU645の動作が中断後に再開された場合には、計時回路46が計数する日時を取得して現在日時の計数を開始する。
このように、電子時計1では、測位衛星からの電波受信に基づいて表示日時を正確に保つとともに、不要な場合には衛星電波受信処理部60への電力供給をオフしつつ動作の再開時に計時回路46から日時を取得することで、特に短期間のインターバルで測位を繰り返す場合に確実かつ速やかに正確な測位を行うことが可能になる。これにより電力消費の増大を抑制し、また、特殊な構成や複雑な処理の追加を要さずに、効率的な日時や位置の取得動作を行うことができる。
【0096】
また、電子時計1は、衛星電波受信処理部60による測位結果を表示部47により行わせるホストCPU41を備える。すなわち、この電子時計1では、現在日時だけでなく、現在位置に係る情報を表示部47による表示からユーザが知得することができる。
【0097】
また、本実施形態の衛星電波受信処理部60の測位制御方法は、衛星から送信されるビットデータの配列からなる航法メッセージを含む送信電波を受信する受信部(RF部63、捕捉部641及び追尾部642)を備える衛星電波受信処理部60の測位制御方法であって、航法メッセージにおける各ビットデータの継続時間(20msec)をそれぞれ複数に分割した区分期間(1msec)ごとに当該航法メッセージのビット値を同定して、同定されたビット値を受信順に配列した同定ビット値配列を取得するビット値同定ステップ(ビット同期制御処理におけるステップS651)、当該同定ビット値配列における複数のビット値の配列に基づいて、受信された送信電波においてビット値が切り替わる先頭タイミングを決定するビットエッジ検出動作を行うビットエッジ検出ステップ(ビット同期制御処理におけるステップS653、S656〜S662)、計数されて(して)いる現在日時に対する決定された先頭タイミングのずれ量に応じて継続時間(20msec)未満の現在日時のずれを修正する日時ずれ修正ステップ(測位制御処理におけるステップS614)、修正された現在日時を用いて測位を行う測位実行ステップ(測位制御処理におけるステップS626)、を含む。
このような日時修正を行うことで、構成の拡大や処理の増大を抑えつつより迅速かつ簡便に日時の微小なずれを修正することができる。
【0098】
また、本実施形態のプログラム646aは、衛星から送信されるビットデータの配列からなる航法メッセージを含む送信電波を受信する受信部(RF部63、捕捉部641及び追尾部642)を備える衛星電波受信処理部60のコンピュータ(モジュールCPU645)を、航法メッセージにおける各ビットデータの継続時間(20msec)をそれぞれ複数に分割した区分期間(各C/Aコード周期)ごとに当該航法メッセージのビット値を同定して、同定されたビット値を受信順に配列した同定ビット値配列を取得するビット値同定手段(ビット同期制御処理におけるステップS651)、当該同定ビット値配列における複数のビット値の配列に基づいて、受信された送信電波においてビット値が切り替わる先頭タイミングを決定するビットエッジ検出動作を行うビットエッジ検出手段(ビット同期制御処理におけるステップS653、S656〜S662)、計数されて(して)いる現在日時に対する決定された先頭タイミングのずれ量に応じて継続時間(20msec)未満の現在日時のずれを修正する日時ずれ修正手段(測位制御処理におけるステップS614)、修正された現在日時を用いて測位を行う測位実行手段(測位制御処理におけるステップS626)、として機能させる。
このようなプログラム646aをインストールしてソフトウェア的に制御処理を行うことで、構成の拡大や処理の増大を抑えつつより迅速かつ簡便に日時の微小なずれを修正することができる。
【0099】
[第2実施形態]
次に、本発明の第2実施形態の電子時計について説明する。
第2実施形態の電子時計1は、第1実施形態の電子時計1と同一の構成であるので、説明を省略して同一の符号を用いることとする。
【0100】
次に、第2実施形態の電子時計1における測位動作について説明する。
本実施形態の電子時計1では、間欠的に測位衛星からの電波受信に基づく測位動作を行う場合に、当該測位動作が休止されている間、計測部71の計測値に基づいて移動量を算出する。この移動量に係る情報(移動情報)は、表示部47による表示に用いられても良い。ここでは、移動量が予め定められた基準距離以上となった場合には、航法メッセージのビット配列を同定し、現在日時情報を取得して擬似距離(送信電波の伝搬時間)を取得しなおすこととする。基準距離としては、擬似距離がC/A周期以上(又は符号周期以上)変化しない範囲で適宜定められる。なお、計測部71の計測値に基づく移動量が表示などに用いられない場合には、移動量が基準距離を超過した時点で以降の移動量の算出を中止しても良い。
【0101】
また、本実施形態の電子時計1では、ビット同期を行う場合に、ビット誤り率εを受信状況に基づいて変動させる。
【0102】
図7は、本実施形態の電子時計1で実行される位置取得処理のホストCPU41による制御手順を示すフローチャートである。
この位置取得処理は、第1実施形態の電子時計で実行される位置取得処理に対してステップS421が追加された点を除いて同一であり、同一の処理内容には同一の符号を付して説明を省略する。
【0103】
ステップS401の処理で衛星電波受信処理部60がオフではないと判別された場合(ステップS401で“NO”)、及びステップS403の処理で日時情報を送信した後、ホストCPU41は、計測部71の計測結果に基づいて得られた前回の測位からの移動情報を衛星電波受信処理部60に送信する(ステップS421)。それから、ホストCPU41の処理は、ステップS404に移行する。
【0104】
図8は、本実施形態の電子時計1の衛星電波受信処理部60で実行される測位制御処理のモジュールCPU645による制御手順を示すフローチャートである。
この測位制御処理は、第1実施形態の電子時計1における位置取得処理で呼び出される測位制御処理と比較して、ステップS641の処理が追加され、また、ステップS610、S624の処理がそれぞれステップS610a、S624aの処理に置き換えられている。その他の処理は、第1実施形態の電子時計1と第2実施形態の電子時計1とで同一であり、同一の処理内容には同一の符号を付して説明を省略する。
【0105】
ステップS601の処理で衛星電波受信処理部60が測位制御処理に伴って起動されたのではないと判別された場合(ステップS601で“NO”)、及びステップS603の処理で日時情報が取得されて計時日時が更新された後、モジュールCPU645は、ホストCPU41から移動情報を取得する(ステップS641)。それから、モジュールCPU645の処理は、ステップS604に移行する。
【0106】
また、ステップS609の処理に続いて、モジュールCPU645は、計数日時の前回の測位後における想定誤差が基準値以上であるか、又は前回の測位やビット同期実施のタイミングから自機(現在位置)が所定の基準距離以上移動したか否かを判別する(ステップS610a)。ここでは、ステップS641の処理で取得された移動情報に加えて、測位衛星からの送信電波に基づく連続測位が実施されている場合における当該測位期間中の移動距離も考慮対象とすることができる。いずれかであると判別された場合には(ステップS610aで“YES”)、モジュールCPU645の処理はステップS621に移行し、いずれでもないと(想定誤差が基準値未満かつ移動量が所定の基準距離未満)判別された場合には(ステップS610aで“NO”)、モジュールCPU645の処理は、ステップS611に移行する。
【0107】
ステップS623で受信、復調された航法メッセージの各ビット値を順番に同定していく処理を進め、モジュールCPU645は、ビット配列から日時を取得したか否かを判別する(ステップS624a)。この日時の取得には、第1実施形態のようにTOWを直接解読する場合のほか、計数日時の誤差が±3秒以内などで、プリアンブルを同定するだけでどのサブフレームのプリアンブルであるか、すなわち、プリアンブルの受信日時を一意に定める場合などを含む。日時を取得したと判別された場合には(ステップS624aで“YES”)、モジュールCPU645の処理はステップS625に移行し、日時が取得されていないと判別された場合には(ステップS624aで“NO”)、モジュールCPU645の処理は、ステップS608に戻る。
【0108】
図9は、本実施形態の電子時計1の測位制御処理で呼び出されるビット同期制御処理のモジュールCPU645による制御手順を示すフローチャートである。
このビット同期制御処理は、第1実施形態の電子時計1の測位制御処理で呼び出されるビット同期制御処理と比較して、ステップS671の処理が追加され、また、ステップS659の処理がステップS659aの処理に置き換えられている点が異なる。その他の処理は第1実施形態の電子時計1と第2実施形態の電子時計1とで同一であり、同一の処理内容には同一の符号を用いることとして説明を省略する。
【0109】
ステップS658の処理の後、モジュールCPU645は、受信状況に応じたビット誤り率εを取得する(ステップS671)。このビット誤り率εは、厳密な実測値に限られるものではなく、例えば、受信された電波の受信強度(CN比)とビット誤り率εとの平均的な対応関係を予めテーブルデータとして記憶部646に記憶保持させておき、実際のCN比に基づいてビット誤り率εを取得しても良い。また、必ずしもリアルタイムな受信状況が反映されていなくても良く、例えば、前回の間欠測位に係る受信時の受信強度(CN比)に基づいてビット誤り率εが決定されても良い。また、ビット誤り率εとしては、CN比に対応する本来の値よりも高い値に設定されることで急激かつ一時的な受信状況の悪化などを見込んでも良い。
【0110】
モジュールCPU645は、このビット誤り率εに基づいて、カウント数Nのビット値のうち、最小積算不一致個数Em1のビット値が誤同定される確率Pmaxと、次点積算不一致個数Em2のビット値が誤同定される確率Pmax2とを算出する(ステップS659a)。すなわち、ステップS660で算出される比率Pdは、比較ビット値配列Rrpと完全一致する期間における20個のビット値の配列と、その他の期間における20個のビット値の配列とが誤認定される確率の下限値であり、この誤認定の確率が十分に小さいか否かがステップS661で判別される。
【0111】
以上のように、第2実施形態の電子時計1は、自機の運動状態を計測する計測部71を備え、モジュールCPU645は、前回の測位により得られた現在位置(電子時計1の位置)からの移動量が所定の基準距離未満である場合に、ビットエッジ検出動作に基づく航法メッセージの1ビット長継続時間(20msec)未満の現在日時の修正を行う。
このように、計数日時のずれだけではなく、測位衛星と現在位置との間の距離変化に応じた伝搬時間の変化を考慮に入れてビットエッジ検出動作のみで日時の修正が可能か否かを判断するので、より適切に簡便かつ短時間で日時の修正が可能になる。
【0112】
[第3実施形態]
次に、第3実施形態の電子時計について説明する。
この第3実施形態の電子時計1の構成は、第1実施形態の電子時計1の構成と同一であり、同一の符号を用いることとして説明を省略する。
【0113】
次に、第3実施形態の電子時計1の測位動作について説明する。
本実施形態の電子時計1における測位動作は、モジュールCPU645が制御する測位制御処理で呼び出されるビット同期制御処理の制御内容が異なる点を除き、第1実施形態の電子時計1における測位動作と同一である。ビット同期制御処理において、この電子時計1では、同定ビット値配列の各タイミング(位置)で開始された20msec分(20個)のビット値の配列部分と、これらの配列部分に対して各々タイミングが±1msec(先頭位置が±1個)異なる20msec分のビット値の配列部分(前後配列部分)とをそれぞれ合わせて考慮してビットエッジを決定する。全てのビット値が正確に同定された場合には、比較ビット値配列Rrpと完全一致(又は完全不一致)するいずれか一つの配列部分の前後配列部分では、一致個数が「1」(又は不一致個数が「1」)となる。また、一致個数(又は不一致個数)がm(1≦m≦19)の配列部分の前後配列部分では、一致個数がそれぞれ「m±1」となる。
【0114】
ここでは、積算一致個数F(j)が最大となる開始位置(j=jm1)で特定される配列部分(積算誤同定数Em1c=最小積算不一致個数Em1)に対して1つずつ前後の(所定数ずれた)開始位置(j=jm1±1)で特定される前後配列部分における積算一致個数F(jm1±1)の「N−1」からのずれ(すなわち、誤同定数の「1」からのずれ)、|(N−F(jm1±1))/2−1|を積算誤同定数Em1n、Em1pとしてそれぞれ用いる。すなわち、これら3つの配列部分について、誤同定の発生確率は、次の数式(数式1)で表される。
Pmax=(1−ε)
(N−Em1c+N−Em1n+N−Em1p)・ε
(Em1c+Em1n+Em1p)・
NC
Em1c・
NC
Em1n・
NC
Em1p … (数式1)
第1実施形態と同様に、ε=0.5とすると、以下の数式(数式2)となる。
Pmax=(1/2)
3N・
NC
Em1c・
NC
Em1n・
NC
Em1p … (数式2)
【0115】
積算一致個数F(j)が二番目に大きい配列部分の開始位置(j=jm2)に対しても同様に、積算誤同定数Em2c、Em2n、Em2pを用いて誤同定の発生確率を求めると、次の数式(数式3)のようになる。
Pmax2=(1/2)
3N・
NC
Em2c・
NC
Em2n・
NC
Em2p … (数式3)
なお、j=0の配列部分(すなわち、同定ビット値配列の最初の20ビット)よりも1msec前の配列部分としては、j=19の配列部分(すなわち、同定ビット値配列の最後の20ビット)が利用され、j=19の配列部分よりも1msec後の配列部分には、j=0の配列部分が利用されれば良い。
【0116】
よって、これらの誤同定発生確率Pmax、Pmax2の比率Pdが十分に小さければ、開始位置(j=jm1)の配列部分における11個目のビット値のデータ受信開始タイミング(先頭のタイミング)がビットエッジとして決定される。
【0117】
図10は、本実施形態の電子時計1で実行される測位制御処理で呼び出されるビット同期制御処理のモジュールCPU645による制御手順を示すフローチャートである。
このビット同期制御処理は、第1実施形態の電子時計1で実行されるビット同期制御処理と比較して、ステップS657〜S659の処理がそれぞれステップS657a〜S659aに置き換えられた点を除いて同一である。同一の処理内容については同一の符号を用いることとして説明を省略する。
【0118】
ビット同期制御処理においてステップS656の処理が終了すると、モジュールCPU645は、最大積算一致個数Fm1と次点積算一致個数Fm2とを同定し、また、これらが得られる配列部分の同定ビット値配列における先頭位置を示す配列番号jをそれぞれ第1番号jm1、第2番号jm2とする(ステップS657a)。
【0119】
モジュールCPU645は、最大積算一致個数Fm1、次点積算一致個数Fm2をそれぞれ最小積算不一致個数Em1、次点積算不一致個数Em2に換算し、これらをそれぞれ積算誤同定数Em1c、Em2cとする。また、モジュールCPU645は、第1番号jm1、第2番号jm2の各々前後のタイミングの配列部分における積算誤同定数Em1n、Em1p、Em2n、Em2pをそれぞれ求める(ステップS658a)。
【0120】
モジュールCPU645は、積算誤同定数Em1c、Em1n、Em1pを用いて誤同定発生確率Pmaxを求め、また、積算誤同定数Em2c、Em2n、Em2pを用いて誤同定発生確率Pmax2を求める(ステップS659a)。それから、モジュールCPU645の処理は、ステップS660に移行する。
【0121】
以上のように、第3実施形態の電子時計1では、モジュールCPU645は、不一致個数が最も少ない第一の配列部分及び不一致個数が二番目に少ない第二の配列部分からそれぞれ1ビットずつ前後にずれた位置を先頭位置とする配列部分の比較ビット値配列Rrpとの不一致の度合を考慮して誤認定の確率を算出して、ビットエッジ検出動作を行う。
比較ビット値配列Rrpと完全一致(又は完全不一致)の配列部分と±1ビット先頭位置がずれた配列部分では、比較ビット値配列Rrpとの不一致(又は一致)が必ず1ビットになるので、この特性を利用して照合ビット数を増やすことで、より確実にビットエッジの正確な決定を行うことができる。特に、完全一致(又は完全不一致)となる配列部分に1ビットの誤同定が生じた場合などでも短時間で適切にビットエッジの決定が可能になる。
【0122】
なお、本発明は、上記実施の形態に限られるものではなく、様々な変更が可能である。
例えば、上記実施の形態では、40ビットのビット値が同定されて同定ビット値配列が完全に取得されてから、当該同定ビット値配列から20ビットずつ先頭をずらしながら比較ビット値配列Rrpと比較照合を行ったが、先頭から20ビットのビット値が同定された後、同定ビット値配列を更に延長しながら並行で比較ビット値配列Rrpとの比較照合を行っても良い。また、同定ビット値配列のうち先頭付近のビット値で既に配列部分として用いられなくなったものは全ての配列部分と比較ビット値配列Rrpとの比較照合が終了する前に消去されても良い。
【0123】
また、20通りの配列部分の生成順は特に限られず、後ろから順に比較ビット値配列Rrpと比較されていっても良い。
【0124】
また、上記実施の形態では、一の比較ビット値配列Rrpに対して同定ビット値配列から配列部分をずらしながら比較照合することとしたが、ビット境界位置の異なる複数の比較ビット値配列に対して単一の20ビット同定ビット値配列と比較照合することでも同様にビットの切り替わり位置が決定可能である。あるいは、確率的な処理を行わずに、単純に切り替わり位置(誤同定がある場合には、複数周期で最も切り替わり回数が多かった位置など)を特定するだけであっても良い。
【0125】
また、ビット値が各々同定される区分期間は、C/Aコード一周期単位ではなく、半周期単位(0.5msecごと)にビット値を同定しても良い。この場合、C/Aコードの前半側と後半側との間にビットエッジが来ないように処理を限定しても良い。
【0126】
また、ビットデータの長さ(20msec)に応じて20個のビット値を比較ビット値配列Rrpと比較照合することとしたが、これよりも比較されるビット数が少なくても適切にビットエッジを検出することができる。ただし、確率的に誤認定を除外する精度に応じた最低ビット数以上とされる必要があり、また、20ビットに近い(ビット数が多い)方がより好ましい。また、比較ビット値配列Rrpにおけるビット値の切り替わり位置は、中央に限られない。多少ずれていても一致する配列部分を検出することができる。また、いずれの側のビット値が「0」であっても良い。
【0127】
また、40ビットの同定ビット値配列を取得して、先頭位置を1つずつずらしながら20通りの配列部分を得ることとしたが、20ビットの同定ビット値配列の最後尾と先頭とをつなげて最後尾のビットの次のビットを先頭のビットとして配列部分を得ることとしても良い。
【0128】
また、上記実施の形態では、積算一致個数F(j)が最も大きいものと二番目に大きいものの二つが単純に選択可能として説明したが、二番目に大きいものが複数ある場合に最大のものと二番目に大きいものとの位置関係などを考慮しても良い。また、当初は第1実施形態や第2実施形態で示したように各配列部分についての比較照合結果を各々用い、十分な精度が得られない場合に第3実施形態で示したように前後の配列部分を追加して考慮する形態であっても良い。
【0129】
また、上記実施の形態では、間欠測位の場合には、モジュールCPU645の動作を中断させないこととしたが、中断させても良いし、測位間隔に応じて中断有無を切り替えても良い。
【0130】
また、上記実施の形態では、ビット同期を行う場合にいずれか一機の測位衛星を選択することとしたが、測位衛星の移動に伴い1msec以上移動している可能性のある測位衛星がある場合には、当該測位衛星についても同時にビット同期を行うこととしても良い。計数日時の修正は、いずれか一機の測位衛星について行われたビット同期に基づいて行われ得る。
【0131】
また、上記実施の形態では、エフェメリスを外部機器から取得可能としたが、取得可能でなくても短い時間間隔で測位を繰り返すような場合には本発明を好適に用いることができる。
【0132】
また、上記実施の形態で示したフローチャートでは、一度ビットエッジが決定されると、連続的に測位が行なわれている間は、時間が経過したり現在位置が移動したりしてTOWの取得が必要になるまでC/Aコードの周期内でのみ日時の微修正及び擬似距離の修正が行われることとしたが、このような連続的な測位が継続される場合でも現在位置や測位衛星の移動などに伴ってC/Aコードの周期をまたいで擬似距離が変化する場合に当該測位衛星についてビットエッジの再同定を行うことができる。
【0133】
また、上記実施の形態では、GPS及びこれを補完するみちびきなどの測位衛星からの送信電波を受信する場合の航法メッセージの送信フォーマットを例に挙げて説明したが、ロシアのGLONASSなどについても本発明を適用することができる。GLONASSでは、L1帯の標準精度信号(SP)では、100bps(10msec長)で生成される航法メッセージが511KbpsのPRN符号(1μsec長の511チップ)により1msec周期でスペクトラム拡散されている。したがって、この場合には、PRN符号に同期して1msecごとに10個のビット値を配列した同定ビット値配列と、前半5個と後半5個のビット値が異なる10ビット長の比較ビット値配列とが比較照合されることで、上記実施形態と同様にビットエッジが検出される。比較数が足りない場合には、2周期分を積算したり、第3実施形態のように前後の配列部分を考慮に入れたりして精度を向上させることができる。
【0134】
また、上記実施の形態では、衛星電波受信装置の一例として電子時計1が備える衛星電波受信処理部60を挙げて説明したが、衛星電波受信装置は、電子時計1に内蔵されるものに限られない。時計機能をメインとしない各種電子機器、例えば、測位機器やナビゲーション機器などに搭載されるものであっても良い。
【0135】
また、測位の結果が必ずしも電子時計1で表示可能である必要はなく、地方時を設定するための情報として用いられたり、履歴のみを保持して詳細な表示は外部機器でのみ可能とされたりしても良い。
【0136】
また、以上の説明では、本発明に係るモジュール制御部52の処理動作に係るビット同期制御処理を含む測位制御処理の動作処理のプログラム646aのコンピュータ読み取り可能な媒体としてフラッシュメモリやEEPROMなどの各種不揮発性メモリを有する記憶部646を例に挙げて説明したが、これに限定されない。その他のコンピュータ読み取り可能な媒体として、HDD(Hard Disk Drive)や、CD−ROMやDVDディスクなどの可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウェーブ(搬送波)も本発明に適用される。
【0137】
また、各実施形態で示した種々の処理の内容は、互いに矛盾したり効果を相殺したりしない限りにおいて任意に組み合わせて実施することができる。
その他、上記実施の形態で示した構成、制御内容や手順などの具体的な細部は、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
【0138】
本発明のいくつかの実施形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。
以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記に記載した請求項の項番は、この出願の願書に最初に添付した特許請求の範囲の通りである。
【0139】
[付記]
<請求項1>
衛星から送信されるビットデータの配列からなるメッセージ信号を含む送信電波を受信する受信部と、
制御部と、
を備え、
前記制御部は、
前記メッセージ信号における各ビットデータの継続時間をそれぞれ複数に分割した区分期間ごとに当該メッセージ信号のビット値を同定して、同定されたビット値を受信順に配列した同定ビット値配列を取得し、
当該同定ビット値配列における複数のビット値の配列に基づいて、受信された前記送信電波においてビット値が切り替わる前記ビットデータの先頭タイミングを決定するビットエッジ検出動作を行い、
計数されている現在日時に対する決定された前記先頭タイミングのずれ量に応じて前記継続時間未満の現在日時のずれを修正し、
修正された現在日時を用いて測位を行う
ことを特徴とする衛星電波受信装置。
<請求項2>
前記制御部は、測位に用いられる複数の測位衛星からの送信電波のうち少なくともいずれか一つについて前記ビットエッジ検出動作を行い、決定された前記先頭タイミングに応じて修正された現在日時を用いて測位を行うことを特徴とする請求項1記載の衛星電波受信装置。
<請求項3>
前記制御部は、複数の測位衛星の位置情報を外部から取得して、当該位置情報と修正された現在日時とを用いて測位を行うことを特徴とする請求項2記載の衛星電波受信装置。
<請求項4>
前記区分期間は、前記メッセージ信号をスペクトラム拡散している擬似雑音符号の一周期分の長さであり、各周期に各々同期して定められることを特徴とする請求項1〜3のいずれか一項に記載の衛星電波受信装置。
<請求項5>
前記制御部は、前記ビットエッジ検出動作において、
2以上の所定数のビット値の配列からなり、当該所定数のビット値が予め定められた境界位置の前後で互いに異なる照合ビット値配列と、取得された前記同定ビット値配列をなす各ビット値のうち連続する前記所定数からなる配列部分とを、当該配列部分の先頭位置を前記継続時間に応じた数にわたって一つずつ前記照合ビット値配列に対してずらしながらそれぞれ照合し、
当該照合の結果、前記配列部分のうち前記照合ビット値配列との一致の度合及び不一致の度合のうち最も大きいものに対応する第一の配列部分における前記境界位置と対応する位置に基づいて前記先頭タイミングを決定する
ことを特徴とする請求項1〜4のいずれか一項に記載の衛星電波受信装置。
<請求項6>
前記所定数は、前記継続時間内における前記区分期間の数と等しく定められていることを特徴とする請求項5記載の衛星電波受信装置。
<請求項7>
前記制御部は、前記配列部分のうち前記照合ビット値配列との間の一致の度合及び不一致の度合のうち二番目に大きいものに対応する第二の配列部分に対して前記第一の配列部分が所定の確率以上で誤認定を生じない当該第一の配列部分における前記境界位置と対応する位置に基づいて、受信された前記送信電波における前記ビットデータの先頭タイミングを決定することを特徴とする請求項5又は6記載の衛星電波受信装置。
<請求項8>
前記制御部は、前記配列部分の各々について、前記照合により得られた一致の度合及び不一致の度合のうち小さい方を不一致の度合として定め、当該不一致の度合が最も小さいものと二番目に小さいものとを用いて前記ビットエッジ検出動作を行うことを特徴とする請求項7記載の衛星電波受信装置。
<請求項9>
前記制御部は、前記不一致の度合が二番目に小さい配列部分の検出確率に対する前記不一致の度合が最も小さい配列部分の検出確率の比率が所定の基準比率以下となる場合に前記先頭タイミングを決定することを特徴とする請求項8記載の衛星電波受信装置。
<請求項10>
前記制御部は、前記一致の度合と前記不一致の度合の差が所定の基準差以下の場合には前記先頭タイミングの決定を行わずに前記照合の結果を放棄し、前記差が前記基準差より大きくかつ前記比率が前記所定の基準比率以下ではない場合には、前記照合の結果を複数周期積算して前記所定の基準比率以下の比率が得られるまで繰り返すことを特徴とする請求項9記載の衛星電波受信装置。
<請求項11>
前記制御部は、前記第一の配列部分及び前記第二の配列部分からそれぞれ所定数ずれた位置を先頭位置とする配列部分における前記照合ビット値配列との不一致の度合を考慮して前記誤認定の確率を算出して、前記ビットエッジ検出動作を行うことを特徴とする請求項7〜10のいずれか一項に記載の衛星電波受信装置。
<請求項12>
前記制御部は、測位が前回行われてからの経過時間と計数されている現在日時に生じ得るずれの割合に係る予め保持された情報とに基づいて、現在日時のずれが前記継続時間以下の基準時間未満であると判別された場合に、前記ビットエッジ検出動作に基づく前記継続時間未満の現在日時のずれを修正することを特徴とする請求項1〜11のいずれか一項に記載の衛星電波受信装置。
<請求項13>
前記制御部は、
計数する現在日時を修正した場合には、独立に現在日時を計数する所定の外部計時部が計数する当該現在日時を修正させるための日時情報を出力し、
当該制御部の動作が中断後に再開された場合には、前記外部計時部から現在日時に係る情報を取得して現在日時の計数を開始し、
前記外部計時部が計数する日時に生じ得るずれの割合に係る情報と前記動作の中断期間の長さとに応じて前記現在日時のずれが前記基準時間未満であるか否かを判別して、前記ビットエッジ検出動作に基づく前記継続時間未満の現在日時のずれを修正する
ことを特徴とする請求項12記載の衛星電波受信装置。
<請求項14>
前記制御部の動作時に計数される現在日時のずれの割合は、前記外部計時部が計数する現在日時のずれの割合よりも小さいことを特徴とする請求項13記載の衛星電波受信装置。
<請求項15>
自機の運動状態を計測する計測部を備え、
前記制御部は、前回の測位により得られた現在位置からの移動量が所定の基準距離未満である場合に、前記ビットエッジ検出動作に基づく前記継続時間未満の現在日時のずれを修正する
ことを特徴とする請求項1〜14のいずれか一項に記載の衛星電波受信装置。
<請求項16>
請求項1〜15のいずれか一項に記載の衛星電波受信装置と、
現在日時を計数する計時部と、
前記計時部が計数する現在日時に基づいて少なくとも時刻の表示を行う表示部と、
を備え、
前記制御部は、日時情報が修正された場合に前記計時部が計数する日時を修正するための日時情報を出力し、当該制御部の動作の中断後に再開された場合には、前記計時部が計数する日時を取得して現在日時の計数を開始する
ことを特徴とする電子時計。
<請求項17>
前記衛星電波受信装置による測位結果を前記表示部により行わせる表示制御部を備えることを特徴とする請求項16記載の電子時計。
<請求項18>
衛星から送信されるビットデータの配列からなるメッセージ信号を含む送信電波を受信する受信部を備える衛星電波受信装置の測位制御方法であって、
前記メッセージ信号における各ビットデータの継続時間をそれぞれ複数に分割した区分期間ごとに当該メッセージ信号のビット値を同定して、同定されたビット値を受信順に配列した同定ビット値配列を取得するビット値同定ステップ、
当該同定ビット値配列における複数のビット値の配列に基づいて、受信された前記送信電波においてビット値が切り替わる前記ビットデータの先頭タイミングを決定するビットエッジ検出動作を行うビットエッジ検出ステップ、
計数されている現在日時に対する決定された前記先頭タイミングのずれ量に応じて前記継続時間未満の現在日時のずれを修正する日時ずれ修正ステップ、
修正された現在日時を用いて測位を行う測位実行ステップ、
を含むことを特徴とする測位制御方法。
<請求項19>
衛星から送信されるビットデータの配列からなるメッセージ信号を含む送信電波を受信する受信部を備える衛星電波受信装置のコンピュータを
前記メッセージ信号における各ビットデータの継続時間をそれぞれ複数に分割した区分期間ごとに当該メッセージ信号のビット値を同定して、同定されたビット値を受信順に配列した同定ビット値配列を取得するビット値同定手段、
当該同定ビット値配列における複数のビット値の配列に基づいて、受信された前記送信電波においてビット値が切り替わる前記ビットデータの先頭タイミングを決定するビットエッジ検出動作を行うビットエッジ検出手段、
計数されている現在日時に対する決定された前記先頭タイミングのずれ量に応じて前記継続時間未満の現在日時のずれを修正する日時ずれ修正手段、
修正された現在日時を用いて測位を行う測位実行手段、
として機能させることを特徴とするプログラム。