説明

衛星電波受信装置

【課題】回路規模を大型化せずに測位衛星からの電波受信時間を短縮する衛星電波受信装置を提供する。
【解決手段】A/D変換された受信電波信号のデジタルデータから所定の受信周波数の衛星信号の検出演算を行う検出演算手段と、検出演算手段に1データサンプル当たり第1のビット数で1の受信周波数ずつ順番にデータ取得、演算を行わせて衛星信号の検出周波数を検索する捕捉手段と、検出された衛星信号の受信強度に応じた第1のビット数以下の第2のビット数及び検出演算手段による並列処理数を設定する設定手段と、検出演算手段に1データサンプル当たり第2のビット数で並列処理数個の受信周波数ずつ並列にデータ取得、演算を行わせて衛星信号の受信周波数を特定する特定手段と、を備え、並列処理数は、検出演算手段の最大並列処理数以下且つこの並列処理数個のデータサンプルの合計ビット数が最大ビット数以下とする。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、測位衛星から電波を受信して衛星信号を取得する衛星電波受信装置に関する。
【背景技術】
【0002】
従来、GPS(Global Positioning System)をはじめとするGNSS(Global Navigation Satellite System)に係る測位衛星から送信された電波を受信する受信装置を備え、時刻情報や位置情報を取得することのできる電子腕時計といった携帯型装置がある。このような携帯型装置では、取得された時刻情報や位置情報に基づいて表示時刻の修正を行ったり、タイムゾーンの設定を行ったりすることが出来る。
【0003】
測位衛星から出力される衛星信号は、測位衛星ごとに設定された固有の拡散コード(擬似雑音)を用いて拡散変調されて電波送信されている。この電波を受信する際には、受信する測位衛星で設定されている拡散コードを用いて逆拡散することで、この測位衛星からの衛星信号を復号、取得することができる。測位衛星は、所定の軌道上を各々移動しており、測位衛星の軌道情報を持たず、何れの測位衛星が可視状態であって電波を受信可能であるかが事前に分からない受信装置では、受信された受信電波信号に対して全ての測位衛星の拡散コードにより総当りで逆拡散処理を行って衛星信号を検出し、受信可能な測位衛星を識別する捕捉処理を行う。
【0004】
このような捕捉処理には、以前より、マッチドフィルタ(スライディング相関器)が用いられ、また、複数衛星の拡散コードによる逆拡散処理が並列的に行われることで、捕捉処理の高速化が図られている。更に、特許文献1には、データの読み書きを行うメモリを複数備え、同時並列的に行われる逆拡散処理のデータをこれら複数のメモリに対して並列的に読み書きさせることで演算処理に対するI/O処理での遅延を防ぐ技術が開示されている。
【0005】
また、特許文献2には、捕捉処理を行う相関部と、取得されたデータに基づいて位置や時刻の計算処理を行うマイクロプロセッサとにそれぞれ供給される電力やクロック信号を各々必要な期間および周波数に設定することによって電力消費を低減させる技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2001−159670号公報
【特許文献2】特開2002−122655号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
測位衛星から送信された電波は、測位衛星が高速で地球の周りを移動することによるドップラー効果により、送信周波数とは異なる周波数で受信される。従って、予め現在位置データや測位衛星の軌道情報を有しない受信装置で測位衛星からの電波を受信する際には、ドップラー効果により変化しうる周波数範囲で測位衛星からの電波の受信周波数を検索する必要がある。この結果、捕捉処理に要する時間は、検索を行う受信周波数の幅に比例して長くなるという問題がある。
【0008】
しかしながら、マッチドフィルタなどにおいて受信データを記憶する記憶部は、捕捉処理に用いられる他の部分と比較して捕捉処理回路のサイズ上で占める割合が大きい。従って、複数の受信周波数に係る受信データを並列的に処理するための記憶部を各々設けて捕捉処理の高速化を図ろうとすると、捕捉処理を行う回路規模が大きくなってしまうという課題があった。
【0009】
この発明の目的は、回路規模を大型化させずに測位衛星からの電波を受信する時間を短縮することの出来る衛星電波受信装置を提供することにある。
【課題を解決するための手段】
【0010】
本発明は、上記目的を達成するため、
測位衛星から電波送信された衛星信号の送信周波数を含む周波数帯の電波信号を受信可能な受信手段と、
前記受信手段により受信された前記電波信号をデジタルデータに変換する変換手段と、
前記デジタルデータから所定の受信周波数における前記衛星信号を検出するための所定の演算を行う検出演算手段と、
前記検出演算手段に、第1の周波数範囲に亘り第1の周波数間隔で設定された受信周波数に係る入力信号データを、前記デジタルデータから1データサンプル当たり予め設定された最大ビット数以下の第1のビット数で1の受信周波数ずつ順番に取得させて前記所定の演算を行わせ、当該所定の演算の結果に基づいて前記衛星信号が検出される受信周波数を検索する捕捉手段と、
前記捕捉手段により前記衛星信号が検出された際の受信強度に応じて定められる前記第1のビット数以下の第2のビット数と、1データサンプル当たり当該第2のビット数の前記入力信号データから前記検出演算手段が並列に前記所定の演算を実行可能な並列処理数と、を設定する設定手段と、
前記検出演算手段に、前記捕捉手段により前記衛星信号が検出された受信周波数を含む第2の周波数範囲に亘り前記第1の周波数間隔より狭い第2の周波数間隔で設定された受信周波数に係る入力信号データを、前記デジタルデータから1データサンプル当たり前記第2のビット数で前記並列処理数個の受信周波数ずつ取得させて並列に前記所定の演算を行わせ、当該所定の演算の結果に基づいて前記衛星信号の前記受信周波数を特定する特定手段と
を備え、
前記検出演算手段は、予め定められた最大並列処理数以下の受信周波数に係る前記入力信号データに対して並列に前記所定の演算を実行可能であり、
前記並列処理数は、当該並列処理数個のデータサンプルの合計ビット数が前記最大ビット数以下であり、且つ、前記最大並列処理数以下であるように定められる
ことを特徴とする衛星電波受信装置である。
【発明の効果】
【0011】
本発明に従うと、衛星電波受信装置において、回路規模を大型化させずに測位衛星からの電波を受信する時間を短縮することが出来るという効果がある。
【図面の簡単な説明】
【0012】
【図1】本発明の実施形態の衛星電波受信装置の構成及び信号の流れを示すブロック図である。
【図2】捕捉エンジン及びこれに関連する部分の構成を示す図である。
【図3】捕捉エンジンにおけるI/Q変換部、積分器、及び、二乗回路を説明する図である。
【図4】捕捉エンジンにおける相関器を説明する図である。
【図5】二回目の検索動作における相関器の動作形態を説明する図である。
【図6】中間周波数生成部が備えるNCOの構成を説明する図である。
【図7】捕捉エンジンにおいて、一のGPS衛星のC/Aコードを生成して一の受信周波数で当該一のGPS衛星からの電波を受信した場合の捕捉エンジンからの出力データの例を示す図である。
【図8】検索処理においてコントローラのCPUが実行する制御処理の手順を示すフローチャートである。
【図9】検索処理においてコントローラのCPUが実行する制御処理の手順を示すフローチャートである。
【図10】検索処理においてコントローラのCPUが実行する制御処理の手順を示すフローチャートである。
【図11】検索処理においてコントローラのCPUが実行する制御処理の手順を示すフローチャートである。
【図12】検出動作処理の制御手順を示すフローチャートである。
【図13】検索処理内でメモリに記憶されるデータの配列パターンを示した図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態の衛星電波受信装置を図面に基づいて説明する。
【0014】
図1は、本実施形態の衛星電波受信装置の構成および信号の流れを示すブロック図である。
【0015】
この衛星電波受信装置1は、例えば、携帯型時計に搭載されて、GPS衛星からの受信電波に基づいて時刻情報を出力するものである。衛星電波受信装置1は、受信アンテナANTと、低雑音増幅器(LNA)11と、狭帯域フィルタ12と、発振回路13と、RF部14と、ベースバンド部15などを備えている。
【0016】
受信アンテナANTは、GPS衛星から送信されているL1帯(1.57542GHz)の電波が受信可能なアンテナである。また、狭帯域フィルタ12は、例えば、SAWフィルタ(表面弾性波フィルタ)であり、1〜10MHz程度の帯域を有する。この帯域幅は、ドップラー効果や衛星電波受信装置1の計器誤差によるGPS衛星からの送信周波数と衛星電波受信装置1による受信周波数との間のずれの大きさに比べて十分に広い。これらの受信アンテナANT、低雑音増幅器11、及び、狭帯域フィルタ12により受信手段が構成される。
【0017】
発振回路13には、例えば、温度補償回路を備えた水晶発振器(TCXO)が一般的に用いられている。この発振回路13は、基準周波数として、例えば、16.368MHzの信号を生成して出力する。
【0018】
RF部14は、受信した電波に基づく搬送波周波数の受信信号(電波信号)を中間周波数帯の信号に変換し、デジタルデータ化して出力する。このRF部14は、ダウンコンバータ141と、PLL(Phase Locked Loop)142と、ADC(アナログ・デジタル変換器)143(変換手段)などを備えている。
【0019】
ダウンコンバータ141は、受信電波信号を中間周波数の信号に変換する回路であり、例えば、ミキサや狭帯域フィルタを備えている。中間周波数IF0は、例えば、4MHz程度の値である。
【0020】
PLL142は、発振回路13の出力信号に同期してダウンコンバータ141のミキサに所定のローカル周波数の信号を入力する回路であり、例えば、VCO(Voltage Controlled Oscillator)、プリスケーラ、および、位相比較器などを備えている。VCOは、入力される直流電圧によって定められる周波数の信号を生成してダウンコンバータ141のミキサに出力する。プリスケーラは、このVCOの出力信号を分周して、位相比較器に出力する。位相比較器は、VCOが出力する分周信号の位相と、発振回路の出力信号の位相とを比較して、これらの位相差に基づいてVCOへ出力する直流電圧を変化させる。このような構成によりローカル周波数を制御することで、一定の周波数信号を安定してダウンコンバータ141へ出力することが可能となる。
【0021】
ADC143は、中間周波数帯の信号に変換されてダウンコンバータ141から出力された受信電波信号を所定のサンプリング周波数でデジタル値に変換してデジタルデータとしてベースバンド部15へ出力する。ADC143から出力される各デジタル値は、特に制限されないが、後述するベースバンド部15の記憶容量及び処理能力に応じて適宜設定される。本実施形態の衛星電波受信装置1では、1つのデジタル値(データサンプル)は、それぞれ12ビットのデータである。
【0022】
ベースバンド部15は、捕捉エンジン151と、追尾エンジン152と、中間周波数生成部153(ローカル周波数発振手段)と、逆拡散コード生成部154と、演算処理部155などを備えている。また、ベースバンド部15には、ベースバンド部15の動作を統括し、CPU(Central Processing Unit)などを含むコントローラ156(捕捉手段、設定手段、特定手段)と、一時データを記憶するRAM(Random Access Memory)などのメモリ157(演算結果記憶手段)とが含まれている(図2参照)。
【0023】
捕捉エンジン151は、RF部14から入力したデジタル信号(入力信号データ)から衛星信号を検出して、その受信周波数と衛星識別番号とを特定するための演算処理を行う回路であり、後に詳述する。
【0024】
追尾エンジン152は、捕捉エンジン151による演算処理で特定された受信周波数および衛星識別番号により受信される衛星信号と、衛星電波受信装置1の内部クロックとの間で位相同期点を検出し、また、この位相同期を維持して復調した衛星信号を継続的に出力する回路である。
【0025】
中間周波数生成部153は、中間周波数ローカル信号(周波数信号)を生成して、捕捉エンジン151、又は、追尾エンジン152に出力する。本実施形態の衛星電波受信装置1におけるベースバンド部15に設けられた中間周波数生成部153は、3個のNCO(Numerically-Controlled Oscillator、数値制御発振器)153a、153b、153cにより構成されている(図2参照)。これらのNCO153a〜153cにより生成される中間周波数ローカル信号の周波数は、NCO153a〜153cに対して各々別個に入力される設定値により、独立に細かく制御される。また、NCO153a〜153cは、それぞれI相(In Phase)ローカル信号と、このI相ローカル信号に直交するQ相(Quadrature Phase)ローカル信号とを出力可能に構成されている。
【0026】
逆拡散コード生成部154は、拡散コードを生成し、この拡散コードを捕捉エンジン151、又は、追尾エンジン152に出力する。本実施形態の衛星電波受信装置1における逆拡散コード生成部154では、衛星識別番号が指定されると、この衛星識別番号に対応する測位衛星で拡散コードとして用いられているC/Aコードが生成される。C/Aコードは、一周期1msの期間に送信される1023個の二値符号データ(チップ)の配列により構成されている。
これらの捕捉エンジン151および逆拡散コード生成部154により、検出演算手段が構成される。
【0027】
演算処理部155は、追尾エンジン152で復調されて出力された衛星信号を復号して時刻データを取得する。また、演算処理部155は、必要に応じてGPS衛星の位置の算出、および、衛星電波受信装置1の現在位置の算出を行って、これらの取得データや算出データを所定のフォーマットで出力する。
【0028】
次に、捕捉エンジン151の内部構成について説明する。
【0029】
図2は、捕捉エンジン151およびこれに関連する部分の構成を示す図である。
【0030】
捕捉エンジン151は、I/Q変換部1511と、積分部1512と、相関器1513と、二乗回路1514などを備えている。
【0031】
I/Q変換部1511は、RF部14で中間周波数帯のデジタル信号に変換された受信電波信号から直交する2成分のベースバンド信号を分離して出力する。I/Q変換部1511には、第1I/Q変換部1511a、第2I/Q変換部1511b、及び、第3I/Q変換部1511cが含まれている。このうち、第1I/Q変換部1511aには、常に信号が入力されるのに対し、第2I/Q変換部1511b、及び、第3I/Q変換部1511cには、それぞれ、コントローラ156により制御されるスイッチ1510a、1510bのオン、オフにより、信号入力の有無が制御される。
【0032】
積分部1512は、I/Q変換部1511から出力されたベースバンド信号をそれぞれC/Aコード1チップの長さ、即ち、1/1023ms(〜1μs)に亘って積分して、それぞれI相データ、Q相データとして出力する。積分部1512は、第1積分器1512a、第2積分器1512b、及び、第3積分器1512cを備え、各々、第1I/Q変換部1511a、第2I/Q変換部1511b、及び、第3I/Q変換部1511cから出力されたベースバンド信号をそれぞれC/Aコード1チップの長さに亘って積分して、それぞれI相データFI1〜FI3、Q相データFQ1〜FQ3として出力する。或いは、これらの積分部1512は、C/Aコード1チップの長さに比して周期の短い交流成分をカットするローパスフィルタであってもよい。
【0033】
図3は、第1I/Q変換部1511a、第1積分器1512a、及び、第1二乗回路1514aを説明する図である。
【0034】
図3(a)に示すように、第1I/Q変換部1511aは、2個のミキサにおいて、入力されたデジタル信号と、NCO153aから出力された中間周波数IF1のI相ローカル信号およびQ相ローカル信号とをそれぞれ混合して、中間周波数IF1に対応する受信周波数のI相のベースバンド信号及びQ相のベースバンド信号を出力する。出力された信号は、第1積分器1512aに送られて、積分された1チップ分のデータがI相データFI1、Q相データFQ1として出力される。第2I/Q変換部1511b、及び、第3I/Q変換部1511cは、何れも第1I/Q変換部1511aと同一の内部構成を有し、2個のミキサにおいて、それぞれ、入力されたデジタル信号と、NCO153b及びNCO153cから出力された中間周波数IF2、IF3のI相ローカル信号およびQ相ローカル信号とを混合する。そして、これらのミキサで生成され、出力された中間周波数IF2、IF3に対応する受信周波数のI相のベースバンド信号及びQ相のベースバンド信号は、第2積分器1512b及び第3積分器1512cに送られて、積分された1チップ分のデータがI相データFI2、FI3、及び、Q相データFQ2、FQ3としてそれぞれ出力される。
【0035】
図4、図5は、捕捉エンジン151における相関器1513を説明する図である。
【0036】
相関器1513は、例えば、マッチドフィルタである。この相関器1513は、積分部1512の出力データ(I相データFI1〜FI3、Q相データFQ1〜FQ3)と、逆拡散コード生成部154で生成されたC/AコードとをC/Aコード1周期分(1023個)ずつ保持して、I相データFI1〜FI3の各値及びQ相データFQ1〜FQ3の各値と、C/Aコードの各値との間の相関をそれぞれ求める。図4、図5に示すように、相関器1513は、シフトレジスタ1513a、1513b、RAM1513c、セレクタ1513d、乗算器群1513e、1513f、および、加算器1513g〜1513lを備えている。このうち、加算器1513h、1513i、1513k、1513lは、後述するように、シフトレジスタ1513a、1513b、及び、乗算器群1513e、1513fにおける処理動作の内容によって使われない場合がある。
【0037】
シフトレジスタ1513a、1513bには、12ビット(最大ビット数)のデータが1023段に亘って保持される。シフトレジスタ1513aには、I相データFI1〜FI3が積分部1512から入力される。また、シフトレジスタ1513bには、Q相データFQ1〜FQ3が積分部1512から入力される。シフトレジスタ1513a、1513bは、それぞれ1個(1データサンプル)当たり12ビットのデータを1023個保持する形態と、1データサンプル当たり6ビットのデータを2列並列に1023個ずつ保持する形態と、1データサンプル当たり4ビットのデータを3列並列的に1023個ずつ保持する形態との間で切り替えることが出来るようになっている。
【0038】
シフトレジスタ1513a、1513bにおけるデータ保持形態の切り替えは、スイッチ1510a、1510bのオンオフと連動して制御される。スイッチ1510a、1510bが何れもオフの期間には、図4に示すように、第1積分器1512aから出力された12ビットのI相データFI1および12ビットのQ相データFQ1がそのまま順番にそれぞれシフトレジスタ1513a、1513bに入力され、1023個ずつ蓄積される。このとき、第2積分器1512b及び第3積分器1512cからは、シフトレジスタ1513a、1513bにデータが入力されない。
【0039】
一方、スイッチ1510aがオン、スイッチ1510bがオフの期間には、図5(a)に示すように、第1積分器1512a及び第2積分器1512bからそれぞれ出力された12ビットのI相データFI1、FI2に基づく6ビットのデータが並列にシフトレジスタ1513aへ入力され、また、第1積分器1512a及び第2積分器1512bからそれぞれ出力された12ビットのQ相データFQ1、FQ2に基づく6ビットのデータが並列にシフトレジスタ1513bへ入力される。そして、それぞれ1023個のデータがシフトレジスタ1513a、1513bに入力された順に直列に蓄積されていく。このとき第3積分器1512cからは、シフトレジスタ1513a、1513bにデータが入力されない。
【0040】
また、スイッチ1510a、1510bが何れもオンの期間には、図5(b)に示すように、第1積分器1512a、第2積分器1512b、及び、第3積分器1512cからそれぞれ出力された12ビットのI相データFI1〜FI3に基づく4ビットのデータが並列にシフトレジスタ1513aへ入力され、また、第1積分器1512a、第2積分器1512b、及び、第3積分器1512cからそれぞれ出力された12ビットのQ相データFQ1〜FQ3に基づく4ビットのデータが並列にシフトレジスタ1513bへ入力される。そして、それぞれ、1023個のデータがシフトレジスタ1513a、1513bに入力された順に直列に蓄積されていく。
【0041】
第1積分器1512a及び第2積分器1512bからシフトレジスタ1513a、1513bへ入力されるデータを12ビットから6ビットに変換する際には、例えば、12ビットデータのうち上位6ビットのみを取得するように構成することが出来る。また、第1積分器1512a、第2積分器1512b、及び、第3積分器1512cからシフトレジスタ1513a、1513bへ入力されるデータを12ビットから4ビットに変換する際には、例えば、12ビットデータのうち上位4ビットのみを取得するように構成することが出来る。
【0042】
RAM1513cには、C/Aコード一周期分に当たる1023チップの二値符号データが逆拡散コード生成部154から入力される。本実施形態のRAM1513cは、最大4衛星分のC/Aコードを一度に記憶可能であり、これら記憶された4衛星分のC/Aコードの中から何れか一つのGPS衛星のC/Aコードがセレクタ1513dにより選択される。RAM1513cに格納される各符号データは、特に制限されないが、衛星電波受信装置1の小型化及び演算の簡略化のため、1ビットで表される。
【0043】
乗算器群1513eは、RAM1513cに記憶されたC/Aコードの中からセレクタ1513dにより選択されたGPS衛星のC/Aコードを表す各チップデータと、第1積分器1512a、第2積分器1512b、及び、第3積分器1512cからそれぞれ入力されてシフトレジスタ1513aに記憶された同位相、即ち、同一順番に入力された各I相データとを乗算し、それぞれ加算器1513g〜1513iに出力する。一方、乗算器群1513fは、RAM1513cに記憶されたC/Aコードの中からセレクタ1513dにより選択されたGPS衛星のC/Aコードを表す各チップデータと、第1積分器1512a、第2積分器1512b、及び、第3積分器1512cから入力されてシフトレジスタ1513bに記憶された同位相の各Q相データとを乗算し、加算器1513j〜1513lにそれぞれ出力する。
【0044】
図5(b)に示すように、加算器1513g、1513jは、乗算器群1513e、1513fから入力された第1積分器1512aからのI相データFI1及びQ相データFQ1に係る乗算値の総和をそれぞれ求めて、I相データの相関値RI1、および、Q相データの相関値RQ1として第1二乗回路1514aに出力する。また、加算器1513h、1513kは、乗算器群1513e、1513fから入力された第2積分器1512bからのI相データFI2及びQ相データFQ2に係る乗算値の総和をそれぞれ求めて、I相データの相関値RI2、及び、Q相データの相関値RQ2として第2二乗回路1514bに出力する。また、加算器1513i、1513lは、乗算器群1513e、1513fから入力された第3積分器1512cからのI相データFI3及びQ相データFQ3に係る乗算値の総和を求めて、I相データの相関値RI3、及び、Q相データの相関値RQ3として第3二乗回路1514cに出力する。
【0045】
ここで、スイッチ1510a、1510bが何れもオフの期間には、図4に示すように、第1積分器1512aからの出力に基づく加算器1513g、1513jのみにデータが入力され、加算器1513h、1513i、1513k、1513lは利用されない。また、スイッチ1510aがオンであり、スイッチ1510bがオフの期間には、図5(a)に示すように、加算器1513g、1513jに加えて、第2積分器1512bからの出力に基づく加算器1513h、1513kにもデータが入力され、加算器1513i、1513lは利用されない。
【0046】
二乗回路1514は、第1二乗回路1514a、第2二乗回路1514b、及び、第3二乗回路1514cにより構成される。
図3(b)に示すように、第1二乗回路1514aは、相関器1513から出力されたI相データの相関値RI1及びQ相データの相関値RQ1をそれぞれ二乗して加算する。また、第2二乗回路1514bは、I相データの相関値RI2及びQ相データの相関値RQ2をそれぞれ二乗して加算する。また、第3二乗回路1514cは、I相データの相関値RI3及びQ相データの相関値RQ3をそれぞれ二乗して加算する。これらの計算結果は、ベースバンド部15のメモリ157へそれぞれ独立に送られて後述する所定のアドレスに記憶される。なお、加算器1513g〜1513lは、求められた二乗和の平方根を出力することとしても良い。
【0047】
図6は、中間周波数生成部153が備えるNCO153a〜153cの構成を示すブロック図である。
【0048】
NCO153a〜153cは、同一の構成であり、ここでは一つのNCO153aについて説明する。本実施形態のNCO153aは、DDS(Direct Digital Synthesizer)の回路構成をとり、加算器1531、1532と、レジスタ1533と、COS_ROM1534と、SIN_ROM1535などを備えている。
【0049】
加算器1531は、設定されたIFタイミングの値およびオフセットの値が入力されてこれらの値を加算する。加算器1531で加算された値は、加算器1532に送られる。加算器1532は、この加算器1531から入力された値とレジスタ1533から入力された値とを加算して、COS_ROM1534およびSIN_ROM1535に出力するとともに、レジスタ1533に記憶させる。即ち、加算器1532およびレジスタ1533は、位相アキュムレータとして機能する構成であり、レジスタ1533に記憶される値は、予め定められた時間間隔で、加算器1531から加算器1532に入力された値ずつ増加していく。そして、レジスタ1533に記憶された値が最大値となった後に再び0に戻ることで、一周期の経過が示されることになる。加算器1532およびレジスタ1533は、特に限られないが、例えば、32ビットのデータ容量を有する。
【0050】
COS_ROM1534およびSIN_ROM1535は、それぞれ、振幅が1の余弦関数および正弦関数の一周期を、例えば、8ビットで表される256の位相に等分割し、各位相での余弦関数および正弦関数の値を位相に対応するアドレスに格納したROM(Read Only Memory)である。COS_ROM1534およびSIN_ROM1535は、位相の値が入力されると対応するアドレスから余弦関数および正弦関数の値を読み出し、出力するルックアップテーブルとして用いられる。本実施形態のNCOでは、加算器1532からCOS_ROM1534およびSIN_ROM1535に32ビットの数値が入力されると、例えば、そのうちの上位8ビットの値によって示される位相に対応するアドレスから余弦関数および正弦関数の値が読み出される。そして、これらの値が予め定められた位相間隔及び時間間隔で次々に読み出されていくことで、これら位相間隔及び時間間隔に対応する周波数のI相ローカル信号LoIおよびQ相ローカル信号LoQが生成される。なお、入力された数値のうち、下位24ビットの値に基づいてCOS_ROM1534およびSIN_ROM1535から読み出された値を線形補間し、例えば、12ビットの値として出力することとしてもよい。
【0051】
ここで、IFタイミングの設定入力値は、標準の中間周波数、即ち、本実施形態のNCO153a〜153cでは、中間周波数IF0=4.092MHzに対応する値である。従って、中間周波数のオフセット値(周波数チャンネル)が0の場合には、NCO153a〜153cからは、4.092MHzのローカル周波数信号が出力される。一方、オフセット値を0から変化させることにより、出力するローカル周波数を4.092MHzからデジタル的に増減させることが可能となる。本実施形態のNCO153a〜153cでは、周波数チャンネルの変化1に対応する周波数変化量Δfを100Hzとする。従って、周波数チャンネルが1増加するごとに出力されるローカル周波数が中間周波数IF0から100Hzずつ上昇し、周波数チャンネルが1減少するごとに出力されるローカル周波数が中間周波数IF0から100Hzずつ低下する。従って、例えば、±15kHzの範囲内で捕捉処理を行う場合には、−150チャンネルから+150チャンネルまでの範囲で周波数チャンネルを変化させることになる。
【0052】
上記の構成により、本実施形態の捕捉エンジン151では、最大3つ(最大並列処理数)の周波数のデータを並列的に処理することが出来る。
【0053】
次に、本実施形態の衛星電波受信装置1の捕捉エンジン151における衛星電波の検索手順について説明する。
【0054】
図7は、捕捉エンジン151において、一のGPS衛星のC/Aコードを生成して一の受信周波数で当該一のGPS衛星からの電波を受信した場合の捕捉エンジン151からの出力データの例を示す図である。
【0055】
シフトレジスタ1513a、1513bに記憶された一の中間周波数に係るベースバンドデータ2046個(I相データ1023個及びQ相データ1023個)と、逆拡散コード生成部154からRAM1513cに入力されてセレクタ1513dにより選択された一のC/Aコードを示す1023個のチップデータとの間の位相差は、シフトレジスタ1513a、1513bに1データずつ入力するごとに1つずつずれていき、C/Aコードの1周期に1回1チップ未満となる。拡散コードでは、異なる位相のデータ配列間での自己相関はとても低く、従って、位相差が1チップ分以上ある場合には、出力値は、常に非常に小さいノイズレベルの値となる。これに対し、位相差が1チップ分未満となったときには、出力値が急激に増大する。即ち、第1二乗回路1514a及び第2二乗回路1514bから出力される相関値において、一周期の中でこの出力値の増大が検出されたか否かによって衛星信号が検出されたか否かを判断することができる。そこで、本実施形態の捕捉エンジン151では、一周期分取得された相関値における最大値を選択し、この最大値と、非最大の各値の平均値との比により算出されるS/N値を用いて衛星信号の検出有無を判断する。また、S/N値として、例えば、上記算出された値の対数を利用してもよい。或いは、最大値自体を所定の基準値と比較することとしても良い。
【0056】
上記相関値の算出は、各GPS衛星のC/Aコードおよび各受信周波数に対して行われる必要がある。GPS衛星からの電波の受信周波数は、GPS衛星からの送信周波数に対してGPS衛星の移動速度によるドップラー速度、及び、発振回路13の発振周波数に含まれるオフセット誤差といった計器誤差の影響の範囲内で変化する。この周波数変化量Δfは、通常の状態では、最大で±15kHz程度である。従って、ダウンコンバータ141により中間周波数帯に変換された受信電波信号からベースバンド信号を抽出する際にNCO153a〜153cからそれぞれ出力される中間周波数IF1〜IF3のローカル周波数信号も、中間周波数IF0からの周波数変化量Δfを同じ範囲で変化させることで受信周波数を特定する必要がある。受信周波数を100Hz程度の精度で特定するには、周波数変化量Δfを300回程度切り換えて繰り返し捕捉エンジン151による演算を行わせることで検索動作を行わなければならない。
【0057】
そこで、本実施形態の衛星電波受信装置1では、先ず、一度目の検索動作として、±15kHzの範囲内(第1の周波数範囲)において500Hzの周波数間隔(第1の周波数間隔)で1衛星当たり60回の検索を行う。そして、最大のS/N値が得られたC/Aコード、および、周波数に基づき、二度目の検索動作として、当該C/Aコードにおいて当該周波数を中心とした±400Hz程度の範囲内(第2の周波数範囲)で周波数変化量Δfを100Hz間隔(第2の周波数間隔)として再度検索を行うことにより、受信周波数を特定する。
【0058】
次に、捕捉エンジン151を用いた衛星電波の検索処理の動作手順についてフローチャートを用いて説明する。
【0059】
図8〜図11は、全てのGPS衛星、及び、設定された周波数範囲全体の中からGPS衛星からの電波の検索を行う検索処理において、コントローラ156のCPUが実行する制御処理の手順を示したフローチャートである。また、図12は、図8〜図11内でそれぞれ呼び出される検出動作処理の制御手順を示すフローチャートである。また、図13は、検索処理内でメモリ157に記憶されるデータの配列パターンを示した図である。
【0060】
検索処理が開始されると、コントローラ156のCPUは、先ず、捕捉エンジン151における演算設定を12ビット(第1のビット数)分解能、4衛星同時サーチとする(ステップS1)。具体的には、CPUは、スイッチ1510a、1510b、第2積分器1512b、第3積分器1512c、及び、NCO153b、153cをオフし、また、第1積分器1512aから12ビットのI相データFI1及びQ相データFQ1をそれぞれシフトレジスタ1513a、1513bに入力させるように設定する。
【0061】
次に、CPUは、初期値として周波数チャンネルchを「−150」に設定し、また、衛星識別番号nを「1」に設定する(ステップS2)。
【0062】
CPUは、逆拡散コード生成部154に検出衛星番号として衛星識別番号n〜n+3を順番に入力し、衛星識別番号n〜n+3に対応するGPS衛星におけるC/Aコードを生成、出力させて、それぞれRAM1513cに記憶させる(ステップS3)。また、CPUは、設定された周波数チャンネルchをNCO153aへ入力するオフセット値として設定する(ステップS4)。
【0063】
ステップS1〜S4における変数の設定が完了すると、コントローラ156のCPUは、検出動作処理を呼び出して、GPS衛星から送信された信号の一度目の検索動作を行う(ステップS5)。図12に示すこの検出動作処理では、CPUは、先ず、捕捉エンジン151全体に動作クロックを供給し、第1I/Q変換部1511a及び第1積分器1512aで算出された12ビットのI相データFI1をシフトレジスタ1513aへ順番に格納させ、また、第1I/Q変換部1511a及び第1積分器1512aで算出された12ビットのQ相データFQ1をシフトレジスタ1513bへ順番に格納させる。シフトレジスタ1513a、1513bのすべてのレジスタに12ビットデータが格納されると、CPUは、次のI相データFI1がシフトレジスタ1513aに入力される前に、セレクタ1513dを操作して衛星識別番号n〜n+3に対応するGPS衛星のC/Aコードを順番に乗算器群1513e、1513fへ出力させる。そして、これらのC/Aコードデータと、シフトレジスタ1513aのI相データFI1及びシフトレジスタ1513bのQ相データFQ1とにより演算処理が行われ、第1二乗回路1514aで相関値が算出されると、CPUは、これら4衛星分の相関値の出力を順番に周波数チャンネルch=−150、位相P=0の値としてメモリ157に記憶させる。
【0064】
それから、コントローラ156のCPUは、I相データFI1又はQ相データFQ1がそれぞれシフトレジスタ1513a、1513bに交互に1つずつ入力されて位相Pが変化するごとにセレクタ1513dを動作させて、衛星識別番号n〜n+3に対応するGPS衛星のC/Aコードを順番に乗算器群1513e、1513fへ出力させる。そして、演算処理が行われて第1二乗回路1514a及び第2二乗回路1514bで相関値が算出されると、CPUは、これらの相関値をメモリ157における当該位相Pのアドレスへ順番に記憶させていく。捕捉エンジン151において、C/Aコードの位相P、受信周波数F(即ち、周波数チャンネルch)、及び、衛星識別番号nの3つの変数を設定して求められた相関値の出力データは、図13(a)に示すように、これらの3つの変数による三次元配列で表されるアドレスに記憶される。
【0065】
全2046位相の相関値がメモリ157に記憶されると(ステップS101)、CPUは、各周波数チャンネルchにおいて、4衛星分のデータから各々得られた最大の相関値を取得する(ステップS102)。続いて、CPUは、その最大値が得られた周波数チャンネルch及びGPS衛星における当該最大値以外の相関値の平均値を求めて、ノイズレベルを算出する(ステップS103)。そして、CPUは、ステップS102の処理で取得された最大の相関値と、ステップS103の処理で算出されたノイズレベルの相関値との比を算出してS/N値とする(ステップS104)。それから、CPUの処理は、検索処理に戻る。
【0066】
ステップS5における検出動作処理が終了してCPUの処理が検索処理に復帰すると、CPUは、先ず、検出動作処理で求められたS/N値および最大のS/N値が取得された衛星識別番号nをメモリ157に記憶させる(ステップS6)。図13(b)に示すように、検出動作処理が行われた周波数チャンネルch、衛星識別番号n、S/N値がテーブルに記憶される。
【0067】
次に、CPUは、周波数チャンネルchに5を加算する(ステップS7)。CPUは、新たな周波数チャンネルchが「155」であるか否かを判別する(ステップS8)。周波数チャンネルchが「155」ではないと判別された場合には、“NO”に分岐し、CPUの処理はステップS4に戻って、CPUは、新たに設定された周波数チャンネルchにおける相関値の算出処理を行う(ステップS4〜S7)。
【0068】
一方、ステップS8の判別処理において、周波数チャンネルchが「155」であると判別された場合には、CPUの処理は、“YES”に分岐する。CPUは、周波数チャンネルchを初期化して「−150」に戻すと共に、衛星識別番号nに4を加算する(ステップS9)。
【0069】
CPUは、ステップS9の処理で新たに設定された衛星識別番号nが「33」であるか否かを判別する(ステップS10)。衛星識別番号nが「33」ではないと判別された場合には、CPUの処理は、ステップS3に戻り、CPUは、検出衛星番号として新たに設定された衛星識別番号n〜n+3に対応するGPS衛星について、相関値を取得する処理を繰り返す(ステップS3〜S7)。
【0070】
ステップS10の判別処理で、衛星識別番号nが「33」であると判別された場合には、CPUの処理は、ステップS11へ移行する。CPUは、図13(b)に示したメモリ157のテーブルに記憶されたS/N値の中から最大値を検索し、当該最大値における衛星識別番号nを一次検出衛星識別番号n1として設定し、また、周波数チャンネルchの値を一次検出チャンネルch1として設定する。
【0071】
ステップS11の処理により一度目の検索動作が終了すると、コントローラ156のCPUは、二度目の検索動作の設定を開始する。図9に示すように、先ず、コントローラ156のCPUは、取得された最大のS/N値が所定の基準値A以下であるか否かを判別する(ステップS16)。最大のS/N値が基準値A以下であると判別された場合には、“YES”に分岐して、CPUの処理は、ステップS21へ移行する。また、最大のS/N値が基準値Aより大きいと判別された場合には、次に、CPUは、取得された最大のS/N値が基準値Aより大きい所定の基準値B(即ち、基準値B>基準値A)以下であるか否かを判別する(ステップS17)。最大のS/N値が所定の基準値B以下であると判別された場合には、“YES”に分岐し、CPUの処理は、ステップS41に移行する。一方、最大のS/N値が所定の基準値Bより大きいと判別された場合には、“NO”に分岐し、CPUの処理は、ステップS61に移行する。
【0072】
ここで、基準値A、Bは、取得された最大のS/N値に応じて設定される。例えば、最大のS/N値の値が12ビット中上位4ビットを用いる大きな値であれば、下位8ビットを省略して上位4ビットのみで二度目の検索動作を行わせることが出来る。或いは、12ビットのデータにおいて隣接する3ビットごとに論理和を求めて4ビットにまとめることとしても良い。一方、例えば、最大のS/N値の値が12ビット中上位6ビットを用いる大きさの値であれば、下位6ビットを省略して上位6ビットのみで二度目の検索動作を行わせることが出来る。或いは、12ビットのデータにおいて隣接する2ビットごとに論理和を求めて6ビットにまとめることとしても良い。その他、これらのビット数変換方法の組み合わせや他のビット数変換方法であっても良い。
【0073】
最大のS/N値が基準値A以下であって、CPUの処理がステップS21に移行すると、CPUは、捕捉エンジン151における2度目の検索処理に係る演算設定として、分解能(第2のビット数)を12ビット、並列にサーチを行う周波数の数(並列処理数)を1周波数とする(ステップS21)。具体的には、CPUは、一度目の検索動作と同様に、スイッチ1510a、1510b、第2積分器1512b、第3積分器1512c、NCO153b、153cを何れもオフのままとし、また、第1積分器1512aから12ビットデータをシフトレジスタ1513a、1513bに入力させる。
【0074】
次に、CPUは、検出衛星番号として一次検出衛星識別番号n1に設定する(ステップS22)。それから、CPUは、変数mを0に設定する(ステップS23)。また、CPUは、周波数チャンネルchを「ch1−4+m」に設定して、この設定された周波数チャンネルchをNCO153aに入力するオフセット値として設定する(ステップS24)。
【0075】
ステップS21〜S24の処理で設定が行われると、CPUは、二度目の検出動作処理を実行する(ステップS25)。この検出動作処理では、図12に示したように、先ず、CPUは、捕捉エンジン151に、一次検出衛星識別番号n1に対応するGPS衛星のC/Aコードにより、各位相P、各周波数チャンネルch=ch1−4+mにおける相関値を算出させる。そして、CPUは、求められた相関値をメモリ157に記憶させる(ステップS101)。この相関値は、メモリ157上において、周波数チャンネルch及び位相Pの2つの変数によって設定された二次元配列によって表されるアドレスに記憶される。
【0076】
設定された周波数チャンネルchにおける全ての位相Pに対して相関値が求められてメモリ157に記憶されると、CPUは、当該周波数チャンネルchにおける最大の相関値を取得し(ステップS102)、ノイズレベルを計算して(ステップS103)、この周波数チャンネルchにおけるS/N値を算出する(ステップS104)。これらステップS102〜S104の処理の内容は、ステップS5で実行された一度目の検出動作処理における各処理の内容と同様であり、詳しい説明を省略する。それから、CPUの処理は、検索処理に戻る。
【0077】
CPUの処理が検索処理に戻ると、CPUは、求められたS/N値をテーブルに保存する(ステップS26)。
【0078】
CPUは、変数mに1を加算する(ステップS27)。それから、CPUは、この変数mの値が9であるか否かを判別する(ステップS28)。変数mが9ではないと判別された場合には、CPUの処理は、ステップS24に戻り、CPUは、捕捉エンジン151に、新たに設定された周波数チャンネルchにおける検索動作を行わせる(ステップS24〜S27)。即ち、この場合の二度目の検索動作では、一次検出チャンネルch1に対応する受信周波数に対して±400Hzの範囲において100Hzの周波数間隔で合計9回S/N値を求める処理が実行される。
【0079】
一方、ステップS28における判別処理で、変数mが9であると判別された場合には、CPUは、周波数チャンネルch=ch1−4〜ch1+4において算出されてメモリ157に記憶されたS/N値の中で、最大の値が得られた周波数チャンネルchの値を二次検出チャンネルchmに設定する(ステップS29)。そして、CPUは、一次検出チャンネルch1と二次検出チャンネルchmとが等しいか否かを判別する(ステップS30)。一次検出チャンネルch1と二次検出チャンネルchmとが等しくないと判別された場合には、CPUは、二次検出チャンネルchmの値を一次検出チャンネルch1として設定する(ステップS33)。それから、CPUの処理はステップS23に戻って、CPUは、新たな一次検出チャンネルch1に基づいて「二度目の検索動作」に係る処理を繰り返して行う(ステップS23〜ステップS29)。なお、このステップS30の判別処理、ステップS33の処理、及び、ステップS30の判別結果に基づく再検索処理を省略することとしても良い。
【0080】
ステップS30の判別処理で、一次検出チャンネルch1と二次検出チャンネルchmとが等しいと判別された場合には、この検索結果をメモリ157のテーブルに保存し(ステップS31)、二次検出チャンネルchmをキャリア周波数として特定して(ステップS32)、検索処理を終了する。
【0081】
次に、一度目の検索動作で得られた最大のS/N値がAより大きくB以下であって、ステップS16の判別処理で“NO”に分岐し、次いで、ステップS17の判別処理で“YES“に分岐した場合の処理手順について説明する。
【0082】
この場合には、CPUの処理がステップS41に移行すると、図10に示すように、先ず、コントローラ156のCPUは、捕捉エンジン151における演算設定を6ビット分解能、2周波数同時サーチとする。具体的には、CPUは、スイッチ1510aをオン、1510bをオフとし、また、第2積分器1512b及びNCO153bをオンし、第3積分器1512c及びNCO153cをオフのままとする。また、CPUは、第1積分器1512a及び第2積分器1512bからのデータをシフトレジスタ1513a、1513bにそれぞれ6ビットずつ並列に入力させるように設定する。
【0083】
次に、CPUは、検出衛星番号として一次検出衛星識別番号n1に設定する(ステップS42)。それから、CPUは、変数mを0に設定する(ステップS43)。また、CPUは、周波数チャンネルchを「ch1−4+m」、「ch1−3+m」に設定して、これらの設定された周波数チャンネルchをNCO153a、153bへ入力するオフセット値としてそれぞれ設定する(ステップS44)。
【0084】
ステップS41〜S44の処理で設定が行われると、CPUは、二度目の検出動作処理を実行する(ステップS45)。この検出動作処理では、図12で示したように、先ず、CPUは、捕捉エンジン151に、一次検出衛星識別番号n1に対応するGPS衛星のC/Aコードにより、各位相Pにおいて2つの周波数チャンネルch=ch1−4+m、ch1−3+mに対して並列的に相関値を算出させる。そして、CPUは、求められた相関値をメモリ157に記憶させる(ステップS101)。この相関値は、メモリ157上に周波数チャンネルchおよび位相Pの2つの変数によって設定された二次元配列内に記憶される。ここで、求められた相関値を実際に記憶するメモリ157上の実アドレスは、相関値を出力する第1二乗回路1514a又は第2二乗回路1514bにそれぞれ対応してメモリ157a又は157bに設定される。このように、メモリ157は、第1二乗回路1514a及び第2二乗回路1514bの動作タイミングが重なっても平行して書込みが可能に構成されている。
【0085】
設定された2つの周波数チャンネルにおいて全ての位相Pに対して求められた相関値がメモリ157に記憶されると、CPUは、周波数チャンネルchごとに最大の相関値を取得し(ステップS102)、ノイズレベルを計算して(ステップS103)、各周波数チャンネルchにおけるS/N値を算出する(ステップS104)。ステップS102〜S104の処理は、ステップS5、S25で実行された検出動作処理における各処理と同様であり、詳しい説明を省略する。このステップS45の検出動作処理に係るステップS104の処理では、2つの周波数チャンネルにおけるS/N値が一度の処理で並列的に求められる。それから、CPUの処理は、検索処理に戻る。
【0086】
CPUの処理が検索処理に戻ると、CPUは、求められた2つのS/N値をテーブルに保存する(ステップS46)。
【0087】
CPUは、変数mに2を加算する(ステップS47)。それから、CPUは、この変数mの値が10であるか否かを判別する(ステップS48)。変数mが10でないと判別された場合には、CPUの処理は、ステップS44に戻り、捕捉エンジン151に、新たに設定された2つの周波数チャンネルchにおける検索動作を行わせる(ステップS44〜S47)。即ち、この場合の二度目の検索動作では、一次検出チャンネルch1に対応する受信周波数に対して−400Hz〜+500Hzの範囲において、100Hzの周波数間隔で一度に2つの周波数でのS/N値を求めることで、合計5回このS/N値の算出処理が行われる。
【0088】
一方、ステップS48における判別処理で、変数mが10であると判別された場合には、CPUは、周波数チャンネルch=ch1−4〜ch1+4において算出されてメモリ157のテーブルに記憶されたS/N値の中で、最大の値が得られた周波数チャンネルchの値を二次検出チャンネルchmに設定する(ステップS49)。そして、CPUは、一次検出チャンネルch1と二次検出チャンネルchmとが等しいか否かを判別する(ステップS50)。一次検出チャンネルch1と二次検出チャンネルchmとが等しくないと判別された場合には、CPUは、二次検出チャンネルchmの値を一次検出チャンネルch1として設定する(ステップS53)。それから、CPUの処理はステップS43に戻って、CPUは、新たな一次検出チャンネルch1に基づいて二度目の検索動作に係る各処理を繰り返す(ステップS43〜S49)。
なお、このステップS50の判別処理、ステップS53の処理、及び、ステップS50の判別処理に基づく再検索を省略することも出来る。
【0089】
ステップS50の判別処理で、一次検出チャンネルch1と二次検出チャンネルchmとが等しいと判別された場合には、この検索結果をメモリ157のテーブルに保存し(ステップS51)、二次検出チャンネルchmをキャリア周波数として特定して(ステップS52)、検索処理を終了する。
【0090】
このように、一度目の検索動作で取得された最大S/N値が基準値Aよりは大きいが、この基準値Aより大きい基準値B以下であるという場合には、サイズの大きいシフトレジスタ1513a、1513bを半分のビットサイズの並列に2列設けられたシフトレジスタとして動作させ、他の構成要素である第2I/Q変換部1511b、第2積分器1512b、第2二乗回路1514b、NCO153b、及び、メモリ157bを動作させることで、捕捉エンジン151のサイズをあまり変化させずに二度目の検索動作に要する時間を短縮することが出来る。
【0091】
次に、最大のS/N値が基準値Bよりも大きく、ステップS16、S17の判別処理で何れも“NO”に分岐して、CPUの処理がステップS61に移行した場合の処理手順について説明する。
【0092】
CPUの処理がステップS61に移行すると、図11に示すように、先ず、コントローラ156のCPUは、捕捉エンジン151における演算設定を4ビット分解能、3周波数同時サーチとする。具体的には、CPUは、スイッチ1510a、1510bを何れもオンとし、また、第2積分器1512b、第3積分器1512c、NCO153b、153cを何れもオンとする。また、第1積分器1512a、第2積分器1512b、及び、第3積分器1512cからそれぞれ4ビットずつのデータを並列にシフトレジスタ1513a、1513bに入力させるように設定する。
【0093】
次に、CPUは、検出衛星番号として一次検出衛星識別番号n1に設定する(ステップS62)。それから、CPUは、変数mを0に設定する(ステップS63)。また、CPUは、周波数チャンネルchを「ch1−4+m」、「ch1−3+m」、「ch1−2+m」の3種類に設定して、これらの設定された周波数チャンネルchをNCO153a〜153cへ入力するオフセット値としてそれぞれ設定する(ステップS64)。
【0094】
ステップS61〜S64の処理で設定が行われると、CPUは、二度目の検出動作処理を実行する(ステップS65)。この検出動作処理では、図12で示したように、先ず、CPUは、捕捉エンジン151に、一次検出衛星識別番号n1に対応するGPS衛星のC/Aコードにより、各位相Pにおいて3つの周波数チャンネルch=ch1−4+m、ch1−3+m、ch1−2+mに対して並列的に相関値を算出させる。そして、CPUは、求められた相関値をメモリ157に記憶させる(ステップS101)。これらの相関値は、メモリ157上に周波数チャンネルchおよび位相Pの2つの変数によって設定された二次元配列内に記憶される。ここで、求められた相関値を実際に記憶するメモリ157上の実アドレスは、相関値を出力する第1二乗回路1514a、第2二乗回路1514b、又は、第3二乗回路1514cにそれぞれ対応してメモリ157a、157b、157cに設定される。
【0095】
設定された3つの周波数チャンネルにおいて全ての位相Pに対して求められた相関値がメモリ157に記憶されると、CPUは、周波数チャンネルchごとに最大の相関値を取得し(ステップS102)、ノイズレベルを計算して(ステップS103)、各周波数チャンネルchにおけるS/N値を算出する(ステップS104)。ステップS102〜S104の処理は、ステップS5、S25、S45で実行された検出動作処理における各処理と同様であり、詳しい説明を省略する。このステップS65の検出動作処理に係るステップS104の処理では、3つの周波数チャンネルにおけるS/N値が一度の処理で並列的に求められる。それから、CPUの処理は、検索処理に戻る。
【0096】
CPUの処理が検索処理に戻ると、CPUは、求められた3つのS/N値をテーブルに保存する(ステップS66)。
【0097】
CPUは、変数mに3を加算する(ステップS67)。それから、CPUは、この変数mの値が9であるか否かを判別する(ステップS68)。変数mが9ではないと判別された場合には、CPUの処理は、ステップS64に戻り、捕捉エンジン151に、新たに設定された3つの周波数チャンネルchにおける検索動作を行わせる(ステップS64〜S67)。即ち、この場合の二度目の検索動作では、一次検出チャンネルch1に対応する受信周波数に対して±400Hzの範囲において、100Hzの周波数間隔で一度に3つずつS/N値を求めることで、合計3回このS/N値の算出処理が行われる。
【0098】
一方、ステップS68における判別処理で、変数mが9であると判別された場合には、CPUは、周波数チャンネルch=ch1−4〜ch1+4において算出されてメモリ157のテーブルに記憶されたS/N値の中で、最大の値が得られた周波数チャンネルchの値を二次検出チャンネルchmに設定する(ステップS69)。そして、CPUは、一次検出チャンネルch1と二次検出チャンネルchmとが等しいか否かを判別する(ステップS70)。一次検出チャンネルch1と二次検出チャンネルchmとが等しくないと判別された場合には、CPUは、二次検出チャンネルchmの値を一次検出チャンネルch1として設定する(ステップS73)。それから、CPUの処理はステップS63に戻って、CPUは、新たな一次検出チャンネルch1に基づいて二度目の検索動作に係る各処理を繰り返す(ステップS63〜S69)。
なお、このステップS70の判別処理、ステップS73の処理、及び、ステップS70の判別処理に基づく再検索を省略することとしても良い。
【0099】
ステップS70の判別処理で、一次検出チャンネルch1と二次検出チャンネルchmとが等しいと判別された場合には、この検索結果をメモリ157のテーブルに保存し(ステップS71)、二次検出チャンネルchmをキャリア周波数として特定して(ステップS72)、検索処理を終了する。
【0100】
このように、一度目の検索動作で取得された最大のS/N値が基準値Bより大きい場合には、サイズの大きいシフトレジスタ1513a、1513bを1/3のビットサイズの並列に3列設けられたシフトレジスタとして動作させることで、捕捉エンジン151のサイズをあまり変化させずに二度目の検索動作の所要時間を更に短縮することが出来る。
【0101】
以上のように、本実施形態の衛星電波受信装置1によれば、受信アンテナANTと、低雑音増幅器(LNA)11と、狭帯域フィルタ12とによりGPS衛星から電波送信された衛星信号を受信可能であり、捕捉エンジン151では、受信周波数の掃引と、相関器1513を用いた逆拡散の処理により、衛星信号の受信周波数と位相とを特定する。この受信周波数の特定の際には、先ず、一度目の検索動作として、受信可能性のある全周波数を粗い500kHzステップで検索を行い、衛星信号が検出された場合には、当該周波数を含む範囲において100kHzステップで二度目の検索動作を行うことで受信周波数を特定する。また、この2度目の検索動作では、一度目の検索動作で検出された衛星信号の強度に基づいて、相関器1513のシフトレジスタ1513a、1513bに入力する受信信号のビット数を変化させる。本実施形態では、1データサンプル当たり12ビットのデータを入力可能なシフトレジスタ1513a、1513bを2つの6ビットデータ又は3つの4ビットデータの入力が可能な構成に変更可能であり、また、同時に最大3つの周波数の信号を出力することが出来るので、同時に複数の周波数の6ビットデータ又は4ビットデータについて衛星信号の検索動作を行わせることで、衛星信号の受信周波数を特定するまでの時間を短縮することが出来る。
【0102】
また、ここで、複数の周波数信号を出力するための構成要素であるI/Q変換部1511、積分部1512、二乗回路1514、および、NCO153は、シフトレジスタ1513a、1513bに比較して個々のサイズが十分に小さいので、3系統の受信信号を並列に流す構成としてもシフトレジスタ1513a、1513bを並列に複数設ける構成と比較してサイズの増加が十分に抑えられる。従って、シフトレジスタ1513a、1513bの内部構成を二度目の検索動作で変更させて3系統の並列信号処理に対応させることで、捕捉エンジン151のサイズを大きく増加させること無く二度目の検索動作の所要時間を短縮することが出来る。
【0103】
また、特に、一度目の検索動作の際にシフトレジスタ1513a、1513bの1データサンプル当たり最大記憶容量と等しい12ビットデジタルデータを取得し、二度目の検索動作の際にこの12ビットを並列受信周波数の数(1〜3)で割ったビット数のデジタルデータを各々取得することで、シフトレジスタ1513a、1513bの記憶容量を必要十分な量とすることができ、従って、シフトレジスタ1513a、1513bのサイズを変化させたり、記憶容量を無駄にしたりすることなく短時間で衛星信号の受信周波数を特定することが出来る。
【0104】
また、二度目の検索動作の際には、一度目の検索動作と同様にデジタル変換された12ビットデータから上位6ビットを選択してシフトレジスタ1513a、1513bへ入力させることとするので、ADC143、I/Q変換部1511や積分部1512の構成を変更することなく容易に入力ビット数の変換を行うことが出来る。
【0105】
また、二度目の検索動作の際にシフトレジスタ1513a、1513bに入力されるデジタルデータのデータサンプル当たりのビット数は、一度目の検索動作の際に検索された衛星信号の受信強度に応じ、上位4ビット又は6ビットが選択された結果、取得される衛星信号の受信強度がゼロにならないように設定されるので、必要な情報が取得可能な範囲でビット数を抑えて効率よく複数の受信周波数に係るデータに対する相関値を並列に算出することが出来る。
【0106】
また、捕捉エンジン151における衛星信号の検索は、中間周波数生成部153のNCO153a、153bへの入力値に基づいて設定される受信周波数のベースバンド信号と、測位衛星において衛星信号をスペクトル拡散変調するC/Aコードとの相関値を求めることにより行うので、安定的且つ容易に周波数を制御しながら迅速に衛星信号の検索を行うことが出来る。
【0107】
また、ベースバンド信号とC/Aコードとの相関値は、1データサンプル当たり12ビットのデジタルデータを入力可能なマッチドフィルタ(相関器1513)によって求められる。そして、このマッチドフィルタは、二度目の検索動作の際に最大3つの受信周波数に係る合計最大12ビットのデジタルデータを並列的に入力して、それぞれC/Aコードとの相関値を求めることが可能な構成なので、全周波数、及び、全位相における相関値の算出が高速化されると共に、マッチドフィルタのサイズを変化させること無く最大3周波数の入力データに対する相関値の算出を並列的に行うことが出来る。
【0108】
また、ダウンコンバータ141で中間周波数帯に変換された受信電波信号からベースバンド信号を取得するための中間周波数生成部153は、NCO153a〜153cを独立に備え、各々異なる周波数信号を出力して、中間周波数帯の受信電波信号と混合させることで、マッチドフィルタに対し容易に最大3つの受信周波数のベースバンド信号を並列的に入力させることができる。また、NCO153a〜153cは、マッチドフィルタのシフトレジスタ1513a、1513bに比較して十分にサイズが小さいので、並列化によってもサイズの増大にはほとんど影響しない。
【0109】
また、二度目の検索動作の際には、一度目の検索動作の際に衛星信号が検出された周波数に対して上下に、一度目の検索動作に係る周波数間隔1ステップ分である±500Hz程度の範囲でのみ検索を行うので、二度目の検索時間を更に短縮することが出来る。
【0110】
また、二度目の検索動作の際に捕捉エンジン151で並列的に算出され、第1二乗回路1514a、第2二乗回路1514b及び、第3二乗回路1514cから出力される相関値は、それぞれ独立したメモリ157a、157b、157cに記憶されるので、第1二乗回路1514a、第2二乗回路1514b、及び、第3二乗回路1514cからの出力タイミングが重なってもメモリへの書込みタイミングが遅延する心配が無い。
【0111】
また、一度目の検索動作においては、RAM1513cとセレクタ1513dとを用いて複数のGPS衛星からの衛星信号を並列的に検出可能であり、二度目の検索動作においては、検出された衛星信号のうち、最も受信強度の高いGPS衛星からの衛星信号についてのみ検出を行って受信周波数を特定するので、不要なGPS衛星からの衛星信号の検索処理を行わないことによる検索処理の時間短縮を図ることが出来る。
【0112】
また、複数衛星の受信データが必要な場合には、一度目の検索動作において検出された衛星信号を送信したGPS衛星に対してのみ二度目の検索動作を行うこととすることも可能であるので、不要なGPS衛星からの衛星信号の検索動作を行わないことによる検索処理の時間短縮を図ることが出来る。
【0113】
なお、本発明は、上記実施の形態に限られるものではなく、様々な変更が可能である。
例えば、上記実施の形態では、1データサンプル当たり12ビットのデジタルデータを記憶、処理可能な相関器1513に対して一度目の検索動作時に1データサンプル当たり12ビット、二度目の検索動作時に12、6、4ビットのデータを入力することで、無駄な記憶容量が出ないように設定したが、例えば、1データサンプル当たり10ビットのデジタルデータを記憶、処理可能な相関器に10、5、3ビットのデータを入力する場合のように、余りのビットが生じる構成であっても良い。
【0114】
また、上記実施の形態では、一度目の検索動作時における衛星信号の受信強度が強いほど、二度目の検索動作時におけるダイナミックレンジを狭めることとしたが、反対に、一度目の検索動作時における衛星信号強度が弱いほど二度目の検索動作時におけるダイナミックレンジを狭め、12ビットデジタルデータのうち、設定されたビット数の下位ビットデータを取得することとしても良い。
【0115】
また、上記実施の形態では、一度目の検索動作により検出された最も受信強度の高いGPS衛星からの受信周波数のみを二度目の検索動作で特定することとしたが、複数のGPS衛星からの衛星信号が検出された場合には、それぞれに対して二度目の検索動作を行うこととしても良い。
【0116】
また、上記実施の形態では、測位衛星としてGPS測位衛星を例に挙げて説明したが、これに限られない。例えば、GALILEOやGLONASSなど、他のGNSSに係る測位衛星のデータを併用することとしても良い。
その他、上記実施の形態で示した具体的な細部の構成や数値、処理の順番などは、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
【0117】
本発明のいくつかの実施形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。
以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記に記載した請求項の項番は、この出願の願書に最初に添付した特許請求の範囲の通りである。
【0118】
[付記]
<請求項1>
測位衛星から電波送信された衛星信号の送信周波数を含む周波数帯の電波信号を受信可能な受信手段と、
前記受信手段により受信された前記電波信号をデジタルデータに変換する変換手段と、
前記デジタルデータから所定の受信周波数における前記衛星信号を検出するための所定の演算を行う検出演算手段と、
前記検出演算手段に、第1の周波数範囲に亘り第1の周波数間隔で設定された受信周波数に係る入力信号データを、前記デジタルデータから1データサンプル当たり予め設定された最大ビット数以下の第1のビット数で1の受信周波数ずつ順番に取得させて前記所定の演算を行わせ、当該所定の演算の結果に基づいて前記衛星信号が検出される受信周波数を検索する捕捉手段と、
前記捕捉手段により前記衛星信号が検出された際の受信強度に応じて定められる前記第1のビット数以下の第2のビット数と、1データサンプル当たり当該第2のビット数の前記入力信号データから前記検出演算手段が並列に前記所定の演算を実行可能な並列処理数と、を設定する設定手段と、
前記検出演算手段に、前記捕捉手段により前記衛星信号が検出された受信周波数を含む第2の周波数範囲に亘り前記第1の周波数間隔より狭い第2の周波数間隔で設定された受信周波数に係る入力信号データを、前記デジタルデータから1データサンプル当たり前記第2のビット数で前記並列処理数個の受信周波数ずつ取得させて並列に前記所定の演算を行わせ、当該所定の演算の結果に基づいて前記衛星信号の前記受信周波数を特定する特定手段と
を備え、
前記検出演算手段は、予め定められた最大並列処理数以下の受信周波数に係る前記入力信号データに対して並列に前記所定の演算を実行可能であり、
前記並列処理数は、当該並列処理数個のデータサンプルの合計ビット数が前記最大ビット数以下であり、且つ、前記最大並列処理数以下であるように定められる
ことを特徴とする衛星電波受信装置。
<請求項2>
前記第1のビット数は、前記最大ビット数と等しく、前記並列処理数は、前記第1のビット数を前記第2のビット数で除した商の値である
ことを特徴とする請求項1に記載の衛星電波受信装置。
<請求項3>
前記第2のビット数の入力信号データは、前記第1のビット数の入力信号データのうち、当該第2のビット数分の上位ビットデータである
ことを特徴とする請求項1又は2に記載の衛星電波受信装置。
<請求項4>
前記第2のビット数は、前記捕捉手段により検出された前記衛星信号の受信強度が所定の値以上となるように設定される
ことを特徴とする請求項3に記載の衛星電波受信装置。
<請求項5>
前記検出演算手段は、設定された受信周波数のベースバンド信号を前記入力信号データとして取得し、当該ベースバンド信号と、前記測位衛星において前記衛星信号をスペクトル拡散変調する拡散コードとの相関を求める
ことを特徴とする請求項1〜4の何れか一項に記載の衛星電波受信装置。
<請求項6>
前記検出演算手段は、前記ベースバンド信号と前記拡散コードとの相関を求めるマッチドフィルタを備え、
当該マッチドフィルタは、前記設定手段により設定された前記並列処理数及び前記第2のビット数に基づき、当該並列処理数個の受信周波数に係る前記第2のビット数の入力信号データが並列に入力され、当該並列処理数個の入力信号データと前記拡散コードとの相関を各々求める構成に変更可能である
ことを特徴とする請求項5に記載の衛星電波受信装置。
<請求項7>
前記最大並列処理数個の異なる周波数信号を出力するローカル周波数発振手段を備え、
前記検出演算手段は、当該ローカル周波数発振手段から出力される周波数信号の各々に対して前記デジタルデータを混合することにより、異なる受信周波数の前記ベースバンド信号を並列的に取得する
ことを特徴とする請求項5又は6に記載の衛星電波受信装置。
<請求項8>
前記第2の周波数範囲は、前記第1の周波数範囲より狭く、且つ、前記捕捉手段による前記衛星信号の受信周波数に対し、上下にそれぞれ少なくとも前記第1周波数間隔の範囲内を含むように設定される
ことを特徴とする請求項1〜7の何れか一項に記載の衛星電波受信装置。
<請求項9>
前記検出演算手段により前記並列処理数個の受信周波数に対して並列に相関が求められる場合に、当該並列に求められた相関値が各々独立に記憶される演算結果記憶手段
を備えることを特徴とする請求項1〜8の何れか一項に記載の衛星電波受信装置。
<請求項10>
前記捕捉手段は、複数の前記測位衛星からの前記衛星信号を並列的に検出可能であり、前記特定手段は、前記捕捉手段により複数の前記測位衛星からの前記衛星信号が検出された場合には、当該検出された前記衛星信号のうち、最も受信強度の高い前記測位衛星からの前記衛星信号の受信周波数を特定する
ことを特徴とする請求項1〜9の何れか一項に記載の衛星電波受信装置。
<請求項11>
前記捕捉手段は、複数の前記測位衛星からの前記衛星信号を並列的に検出可能であり、前記特定手段は、前記捕捉手段により複数の前記測位衛星からの前記衛星信号が検出された場合には、当該検出された前記測位衛星からの前記衛星信号の受信周波数を各々特定する
ことを特徴とする請求項1〜9の何れか一項に記載の衛星電波受信装置。
【符号の説明】
【0119】
1 衛星電波受信装置
11 低雑音増幅器
12 狭帯域フィルタ
13 発振回路
14 RF部
141 ダウンコンバータ
15 ベースバンド部
151 捕捉エンジン
152 追尾エンジン
153 中間周波数生成部
154 逆拡散コード生成部
155 演算処理部
156 コントローラ
157、157a〜157c メモリ
1510a、1510b スイッチ
1511 I/Q変換部
1511a 第1I/Q変換部
1511b 第2I/Q変換部
1511c 第3I/Q変換部
1512 積分部
1512a 第1積分器
1512b 第2積分器
1512c 第3積分器
1513 相関器
1513a、1513b シフトレジスタ
1513c RAM
1513d セレクタ
1513e、1513f 乗算器群
1513g〜1513l 加算器
1514 二乗回路
1514a 第1二乗回路
1514b 第2二乗回路
1514c 第3二乗回路
1531、1532 加算器
1533 レジスタ
1534 COS_ROM
1535 SIN_ROM
ANT 受信アンテナ

【特許請求の範囲】
【請求項1】
測位衛星から電波送信された衛星信号の送信周波数を含む周波数帯の電波信号を受信可能な受信手段と、
前記受信手段により受信された前記電波信号をデジタルデータに変換する変換手段と、
前記デジタルデータから所定の受信周波数における前記衛星信号を検出するための所定の演算を行う検出演算手段と、
前記検出演算手段に、第1の周波数範囲に亘り第1の周波数間隔で設定された受信周波数に係る入力信号データを、前記デジタルデータから1データサンプル当たり予め設定された最大ビット数以下の第1のビット数で1の受信周波数ずつ順番に取得させて前記所定の演算を行わせ、当該所定の演算の結果に基づいて前記衛星信号が検出される受信周波数を検索する捕捉手段と、
前記捕捉手段により前記衛星信号が検出された際の受信強度に応じて定められる前記第1のビット数以下の第2のビット数と、1データサンプル当たり当該第2のビット数の前記入力信号データから前記検出演算手段が並列に前記所定の演算を実行可能な並列処理数と、を設定する設定手段と、
前記検出演算手段に、前記捕捉手段により前記衛星信号が検出された受信周波数を含む第2の周波数範囲に亘り前記第1の周波数間隔より狭い第2の周波数間隔で設定された受信周波数に係る入力信号データを、前記デジタルデータから1データサンプル当たり前記第2のビット数で前記並列処理数個の受信周波数ずつ取得させて並列に前記所定の演算を行わせ、当該所定の演算の結果に基づいて前記衛星信号の前記受信周波数を特定する特定手段と
を備え、
前記検出演算手段は、予め定められた最大並列処理数以下の受信周波数に係る前記入力信号データに対して並列に前記所定の演算を実行可能であり、
前記並列処理数は、当該並列処理数個のデータサンプルの合計ビット数が前記最大ビット数以下であり、且つ、前記最大並列処理数以下であるように定められる
ことを特徴とする衛星電波受信装置。
【請求項2】
前記第1のビット数は、前記最大ビット数と等しく、前記並列処理数は、前記第1のビット数を前記第2のビット数で除した商の値である
ことを特徴とする請求項1に記載の衛星電波受信装置。
【請求項3】
前記第2のビット数の入力信号データは、前記第1のビット数の入力信号データのうち、当該第2のビット数分の上位ビットデータである
ことを特徴とする請求項1又は2に記載の衛星電波受信装置。
【請求項4】
前記第2のビット数は、前記捕捉手段により検出された前記衛星信号の受信強度が所定の値以上となるように設定される
ことを特徴とする請求項3に記載の衛星電波受信装置。
【請求項5】
前記検出演算手段は、設定された受信周波数のベースバンド信号を前記入力信号データとして取得し、当該ベースバンド信号と、前記測位衛星において前記衛星信号をスペクトル拡散変調する拡散コードとの相関を求める
ことを特徴とする請求項1〜4の何れか一項に記載の衛星電波受信装置。
【請求項6】
前記検出演算手段は、前記ベースバンド信号と前記拡散コードとの相関を求めるマッチドフィルタを備え、
当該マッチドフィルタは、前記設定手段により設定された前記並列処理数及び前記第2のビット数に基づき、当該並列処理数個の受信周波数に係る前記第2のビット数の入力信号データが並列に入力され、当該並列処理数個の入力信号データと前記拡散コードとの相関を各々求める構成に変更可能である
ことを特徴とする請求項5に記載の衛星電波受信装置。
【請求項7】
前記最大並列処理数個の異なる周波数信号を出力するローカル周波数発振手段を備え、
前記検出演算手段は、当該ローカル周波数発振手段から出力される周波数信号の各々に対して前記デジタルデータを混合することにより、異なる受信周波数の前記ベースバンド信号を並列的に取得する
ことを特徴とする請求項5又は6に記載の衛星電波受信装置。
【請求項8】
前記第2の周波数範囲は、前記第1の周波数範囲より狭く、且つ、前記捕捉手段による前記衛星信号の受信周波数に対し、上下にそれぞれ少なくとも前記第1周波数間隔の範囲内を含むように設定される
ことを特徴とする請求項1〜7の何れか一項に記載の衛星電波受信装置。
【請求項9】
前記検出演算手段により前記並列処理数個の受信周波数に対して並列に相関が求められる場合に、当該並列に求められた相関値が各々独立に記憶される演算結果記憶手段
を備えることを特徴とする請求項1〜8の何れか一項に記載の衛星電波受信装置。
【請求項10】
前記捕捉手段は、複数の前記測位衛星からの前記衛星信号を並列的に検出可能であり、前記特定手段は、前記捕捉手段により複数の前記測位衛星からの前記衛星信号が検出された場合には、当該検出された前記衛星信号のうち、最も受信強度の高い前記測位衛星からの前記衛星信号の受信周波数を特定する
ことを特徴とする請求項1〜9の何れか一項に記載の衛星電波受信装置。
【請求項11】
前記捕捉手段は、複数の前記測位衛星からの前記衛星信号を並列的に検出可能であり、前記特定手段は、前記捕捉手段により複数の前記測位衛星からの前記衛星信号が検出された場合には、当該検出された前記測位衛星からの前記衛星信号の受信周波数を各々特定する
ことを特徴とする請求項1〜9の何れか一項に記載の衛星電波受信装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−83458(P2013−83458A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2011−221525(P2011−221525)
【出願日】平成23年10月6日(2011.10.6)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】