(57)【要約】【課題】信号の追尾の信頼性を向上させることを目的とする。【解決手段】衛星識別情報を含む信号を受信し、前記信号の周波数の変化に応じて前記衛星識別情報により識別される前記信号の追尾を行い、所定の周期で該信号の追尾が不可能であるかを判定し、前記信号の追尾が不可能であると判定した場合、前記信号の再追尾を行うときの周波数の変化量の推定値を推定し、前記周波数の変化量の推定値に基づき、欺瞞攻撃の判定結果に応じて信号の再追尾を行う、処理をコンピュータに実行させる信号追跡プログラムが提供される。【選択図】図４
2019045150.tif 000002
【特許請求の範囲】
【請求項１】
衛星識別情報を含む信号を受信し、
前記信号の周波数の変化に応じて前記衛星識別情報により識別される前記信号の追尾を行い、所定の周期で該信号の追尾が不可能であるかを判定し、
前記信号の追尾が不可能であると判定した場合、前記信号の再追尾を行うときの周波数の変化量の推定値を推定し、
前記周波数の変化量の推定値に基づき、欺瞞攻撃の判定結果に応じて信号の再追尾を行う、
処理をコンピュータに実行させる信号追跡プログラム。
【請求項２】
前記信号の欺瞞攻撃が排除されたと判定した場合、前記周波数の変化量の推定値に基づき、信号の再追尾を行う、
請求項１に記載の信号追跡プログラム。
【請求項３】
受信した前記信号のフレーム番号をカウントし、
前記フレーム番号をカウントした値が、受信した前記信号のフレームの連続性に関する条件を満足しない場合、又は、受信した前記信号のフレームの所定の周期に関する条件を満足しない場合、前記周波数の変化量の推定値に基づき、前記信号の欺瞞攻撃が排除されたかを判定する、
請求項１又は２に記載の信号追跡プログラム。
【請求項４】
前記周波数の変化量の推定値を、前記信号を受信する情報処理装置の移動状況を示す情報に応じて補正する、
請求項１〜３のいずれか一項に記載の信号追跡プログラム。
【請求項５】
衛星識別情報を含む信号を受信し、
前記信号の周波数の変化に応じて前記衛星識別情報により識別される前記信号の追尾を行い、所定の周期で該信号の追尾が不可能であるかを判定し、
前記信号の追尾が不可能であると判定した場合、前記信号の再追尾を行うときの周波数の変化量の推定値を推定し、
前記周波数の変化量の推定値に基づき、欺瞞攻撃の判定結果に応じて信号の再追尾を行う、
処理をコンピュータが実行する信号追跡方法。
【請求項６】
衛星識別情報を含む信号を受信する受信部と、
前記信号の周波数の変化に応じて前記衛星識別情報により識別される前記信号の追尾を行い、所定の周期で該信号の追尾が不可能であるかを判定する判定部と、
前記信号の追尾が不可能であると判定した場合、前記信号の再追尾を行うときの周波数の変化量の推定値を推定する推定部と、
前記周波数の変化量の推定値に基づき、欺瞞攻撃の判定結果に応じて信号の再追尾を行う追尾部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号追跡プログラム、信号追跡方法及び情報処理装置に関する。
【背景技術】
【０００２】
ＧＮＳＳ衛星からの受信信号に基づき位置の測位を行うＧＮＳＳ（Global  Navigation  Satellite  System）が知られている（例えば、特許文献１、特許文献２参照）。欺瞞（なりすまし、スプーフィング）は、ＧＮＳＳ衛星が発信する本物の信号を偽装することにより、該信号から得られる時刻情報や位置情報等の測位情報の誤認を生じさせる。このため、ＧＮＳＳにおける欺瞞を防御する必要があるが、特許文献１及び特許文献２では、受信機が受信する信号が欺瞞信号であるか又は本物の信号であるかを判定することはできない。
【０００３】
欺瞞に対する防御としては、信号の認証、暗号化、複数の受信アンテナを用いることによる欺瞞信号の到来方向に対して信号の無効化（ヌルステアリング）を行う方法等がある。しかしながら、これらの手法では、既存のシステムやハードウェアに、マルチアンテナ化等の変更が必要であり、これらの変更を行わずに欺瞞攻撃を防御することはできない。
【０００４】
欺瞞信号の搬送に使用される電力は、本物の信号の搬送に使用される電力よりも高い。このため、欺瞞信号によって本物の信号のＣ／Ｎ（Carria  to  Noise）値の劣化が引き起こされる。本物の信号を追尾できなくなるまでＣ／Ｎ値が劣化すると、信号の再捕捉が行われ、これにより、信号の追尾を復帰させることが行われている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−４３３６５号公報
【特許文献２】特開２００１−１５３９４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、信号の再捕捉時、受信機は、より電力の高い受信信号を捕捉する。このため、信号の再捕捉では、受信機は、本物の受信信号よりも高い電力で搬送される欺瞞信号を捕捉してしまい、正しい信号の追尾ができないという課題を有する。
【０００７】
そこで、１つの側面では、本発明は、信号の追尾の信頼性を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
１つの実施態様では、衛星識別情報を含む信号を受信し、前記信号の周波数の変化に応じて前記衛星識別情報により識別される前記信号の追尾を行い、所定の周期で該信号の追尾が不可能であるかを判定し、前記信号の追尾が不可能であると判定した場合、前記信号の再追尾を行うときの周波数の変化量の推定値を推定し、前記周波数の変化量の推定値に基づき、欺瞞攻撃の判定結果に応じて信号の再追尾を行う、処理をコンピュータに実行させる信号追跡プログラムが提供される。
【発明の効果】
【０００９】
１つの側面では、本発明は、信号の追尾の信頼性を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る受信機のハードウェア構成の一例を示す図。
【図２】従来の信号追跡方法について説明するためのフローチャート。
【図３】一実施形態に係る受信機の機能構成の一例を示す図。
【図４】一実施形態に係る信号追跡処理の一例を示すフローチャート。
【図５】一実施形態に係るキャリア周波数とコード位相の推定を説明するための図。
【図６】一実施形態に係る更新周期監視処理の一例を示すフローチャート。
【図７】一実施形態に係るフレーム番号及び更新周期の監視を説明するための図。
【図８】一実施形態に係る相関値監視処理の一例を示すフローチャート。
【図９】一実施形態に係る信号の再追尾を説明するための図。
【図１０】一実施形態の変形例に係る信号追跡処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１２】
［受信機のハードウェア構成］
図１に、本発明の一実施形態に係るＧＮＳＳ（Global  Navigation  Satellite  System）受信機（以下、「受信機」という。）１０のハードウェア構成の一例を示す。受信機１０は、地球周回軌道上に配置された測位衛星であるＧＮＳＳ衛星１から、測位のための信号を受信及び復調し、その結果に基づき搭載先移動体の現在位置、速度等を求めるための演算動作、即ち測位動作を実行する機能を有する情報処理装置の一例である。
【００１３】
受信機１０は、アンテナ部１１、周波数変換回路１０１、Ａ／Ｄ変換回路１０２、相関器１０３、コード及びキャリア発生器１０４、ＣＰＵ１０５、計算回路１０６、クロック発生器１０７、メモリ１０８及び慣性計測装置１０９を有する。
【００１４】
受信機１０は、地球周回軌道上にあるＧＮＳＳ衛星１から送信される信号を、アンテナ部１１を用いて受信し、この受信信号を増幅し、周波数変換回路１０１により周波数変換する。周波数変換した信号は、Ａ／Ｄ変換回路１０２によりアナログ信号からデジタル信号に変換され、相関器１０３に供給される。
【００１５】
相関器１０３に対応して、コード及びキャリア発生器１０４が設けられている。コード及びキャリア発生器１０４は、クロック発生器１０７から供給されるクロックを基準として動作しており、ＣＰＵ１０５の制御によりキャリア及び相関検出用拡散コード（以下、「拡散コード」という。）を発生させ、相関器１０３に供給する。相関器１０３において、コード及びキャリア発生器１０４からのキャリアと受信信号におけるキャリアとが周波数及び位相同期し、かつ、コード及びキャリア発生器１０４からの拡散コードと受信信号に係る拡散コードとが位相同期すると、相関器１０３において求められる相関値はピークとなる。ＣＰＵ１０５は、測位動作に使用するＧＮＳＳ衛星１について、相関器１０３における相関値がピークとなるようコード及びキャリア発生器１０４を制御する（信号の捕捉）。また相関値がピークであり続けるようコード及びキャリア発生器１０４を制御する（信号の追尾）。
【００１６】
拡散コードの一例である、例えばＣ／Ａ拡散コードは１０２３個のチップから構成されており、従ってコード位相はこのチップの番号で表すことができることから、図１中では、コード位相をチップ番号と表す。また、受信周波数は、ＧＮＳＳ衛星１から送信される信号のキャリア周波数を示す。
【００１７】
ＧＮＳＳ衛星１から送信される信号は、例えば、１５７５．４２ＭＨｚのキャリア周波数を用いて送信される。また、これら信号は、ＧＮＳＳ衛星１毎に定められている拡散コードを用い拡散変調された上で、ＧＮＳＳ衛星１から送信される。このようにして、ＧＮＳＳ衛星１は、自衛星を識別可能な衛星識別情報の一例である拡散コードを含む信号を送信する。
【００１８】
拡散コードとしては、例えば、１．０２３ＭＨｚのチップレートを有するＣ／Ａ拡散コード等、複数の拡散コードが存在する。そのため、受信機１０においては、ＧＮＳＳ衛星１に係る拡散コードに対応する相関検出用の拡散コードを発生させて、その拡散コードと受信信号との同期の確立及び維持により、受信信号を逆拡散する。
【００１９】
この逆拡散のため、コード及びキャリア発生器１０４は、相関検出用の拡散コードを発生させる。相関器１０３は、拡散コードと受信信号との相関値を求める。ＣＰＵ１０５は、計算回路１０６を使用して拡散コードにおけるコード位相を掃引変化させながら相関値を判別する。ＣＰＵ１０５は、相関値にピークが現れたことを検出すること（コード位相サーチ）によって、ＧＮＳＳ衛星１からの受信信号におけるコード位相を捕捉し、コード位相の同期を確立する。これにより、信号が捕捉される。
【００２０】
一旦信号を捕捉した後は、ＣＰＵ１０５は、相関値がピークを維持し続けるよう相関検出用の拡散コードにおけるコード位相を制御することによって、ＧＮＳＳ衛星１からの受信信号におけるコード位相の変化を追尾し、コード位相の同期を維持する。これにより、信号の追尾が行われる。
【００２１】
信号の追尾状態においては、受信機１０は、逆拡散された受信信号に含まれる情報や、コード位相の同期（及びキャリア位相の同期）により得られたコード位相（及びキャリア位相）等の情報を利用して、測位動作を実行する。
【００２２】
ＣＰＵ１０５は、信号の捕捉及び信号の追尾により受信される信号のフレーム数をカウントした受信フレームカウンタ値をメモリ１０８に記憶する。慣性計測装置１０９は、受信機１０の移動速度及び移動方向を計測する。移動速度及び移動方向は、受信機１０の移動状況を示す情報の一例である。受信機１０の移動状況を示す情報の他の例としては、受信機１０の加速度等が挙げられる。慣性計測装置１０９は、受信機１０の加速度を計測してもよい。
【００２３】
（従来の信号追跡方法）
図２を参照しながら、従来の信号追跡方法について説明すると、まず、ＣＰＵ１０５は、ＧＮＳＳ衛星１から送信された信号を捕捉する（ステップＳ１）。次に、ＣＰＵ１０５は、捕捉された信号の情報（キャリア位相とコード位相）に基づき、ＰＬＬ（Phase  Locked  Loop／ＤＬＬ（Delay  Locked  Loop）調整を行い、コード位相の同期（及びキャリア位相の同期）により信号を追尾する（ステップＳ２、ステップＳ３）。その際、ＣＰＵ１０５は、計算回路１０６、コード及びキャリア発生器１０４及び相関器１０３を使用して、信号の捕捉及び信号の追尾を制御する。
【００２４】
次に、ＣＰＵ１０５は、信号の追尾が不可能であるかを判定する（ステップＳ４）。ＣＰＵ１０５は、Ｃ／Ｎ（Carria  to  Noise）値が所定の閾値を下回っているとき、Ｃ／Ｎ値が劣化しているため信号の追尾は不可能であると判定し、ステップＳ１に戻り、信号を再捕捉する。
【００２５】
一方、ステップＳ４において、ＣＰＵ１０５は、Ｃ／Ｎ値が所定の閾値以上であるとき、Ｃ／Ｎ値は劣化していないため信号の追尾は可能であると判定し、ステップＳ５に進み、受信信号を逆拡散し、航法データ（ナビゲーションデータ）のデコードを行う。その後、ステップＳ２に戻って、信号の追尾を続行する。
【００２６】
欺瞞（なりすまし、スプーフィング）攻撃を行う場合、通常、欺瞞信号の搬送に使用される電力レベルは、本物の信号の搬送に使用される電力レベルよりも高い。このため、ＧＮＳＳ衛星１から送信された本物の信号では、欺瞞信号によってＣ／Ｎ値の劣化が引き起こされる。その結果、図２の例では、Ｃ／Ｎ値が所定の閾値を下回り、信号を追尾できなくなると、信号の再捕捉が行われる（ステップＳ１）。欺瞞信号と本物の信号の拡散変調には、同一の拡散コードが使用されているため両信号の区別がつかなく、かつ、欺瞞信号の電力レベルは本物の信号よりも高い。このため、再捕捉が行われるとき、受信機１０は、本物の信号よりも欺瞞信号を捕捉する可能性が高い。
【００２７】
このような事象を回避するため、本実施形態に係る受信機１０では、欺瞞攻撃の影響によって本物の信号の追尾ができなくなった場合、信号の再捕捉を行わない。すなわち、本実施形態に係る受信機１０では、本物の信号を追尾することができない状態となっても、再捕捉を行って欺瞞信号を捕捉することを回避する。本実施形態に係る受信機１０は、再捕捉する替わりに、欺瞞攻撃を受けている間のキャリア周波数の変化量をドップラ周波数による影響を考慮して推定する。そして、受信機１０は、正常状態復帰時にキャリア周波数の変化量の推定値に基づき、相関値のピークからコードの先頭位置すなわちコード位相を推定する。これにより、信号の再捕捉を行わずに信号の追尾の復帰が可能となる。以下、本実施形態に係る受信機１０について、機能構成及び動作の一例を順に説明する。
【００２８】
［受信機の機能構成］
本実施形態に係る受信機１０の機能構成の一例について、図３を参照しながら説明する。図３は、一実施形態に係る受信機１０の機能構成の一例を示す。本実施形態に係る受信機１０は、アンテナ部１１、周波数変換部１２、Ａ／Ｄ変換部１３、捕捉部１４、追尾部１５、航法データデコード部１６、フレーム番号／更新周期監視部１７、ＩＭＵ部（Inertial  Measurement  Unit）１８、キャリア周波数推定部１９、ＰＬＬ（Phase  Locked  Loop）／ＤＬＬ（Delay  Locked  Loop）調整部２０、判定部２１及び記憶部２２を有する。
【００２９】
信号は、ＧＮＳＳ衛星１を識別可能な衛星識別情報の一例である拡散コードを用い拡散変調された上で、ＧＮＳＳ衛星１から送信される。アンテナ部１１は、ＧＮＳＳ衛星１から送信された信号を受信する。アンテナ部１１は、ＧＮＳＳ衛星１を識別可能な衛星識別情報を含む信号を受信する受信部の一例である。
【００３０】
周波数変換部１２は、受信した信号を周波数変換する。例えば、周波数変換部１２は、１．５ＧＨｚの周波数の信号を数ＭＨｚ程度のコード周波数のコードに変換する。例えば、Ｃ／Ａ拡散コードで拡散変調されている信号を受信する場合、周波数変換部１２は、図５（ａ）に示す１５７５．４２ＭＨｚのキャリア周波数の信号を、Ｃ／Ａ拡散コードが１０２３チップのコード周波数１．０２３ＭＨｚのコードに変換する。
【００３１】
Ａ／Ｄ変換部１３は、コード周波数に変換された信号（アナログ信号）をデジタル信号に変換する。
【００３２】
捕捉部１４は、Ａ／Ｄ変換後のデジタル信号に対して、相関検出用の各拡散コード（各ＧＮＳＳ衛星１の識別情報の一例であり、ＧＮＳＳ衛星1毎に固有の情報）との相関を取ることで信号の捕捉を行う。捕捉部１４は、相関検出用の拡散コードと受信信号との相関値を求め、相関検出用の拡散コードにおけるコード位相を掃引変化させながら相関値を判別する。相関値にピークが現れたことが検出されると、捕捉部１４は、ＧＮＳＳ衛星１からの受信信号におけるコード位相を捕捉し、コード位相の同期を確立する。これにより、捕捉部１４は、信号の捕捉を行う。
【００３３】
追尾部１５は、信号を捕捉した後、ＰＬＬ／ＤＬＬ調整部２０により相関値がピークを維持し続けるよう拡散コードにおけるコード位相の同期を制御する。これにより、追尾部１５は、ＧＮＳＳ衛星１からの受信信号におけるコード位相の変化を追尾し、コード位相の同期を維持し、信号の追尾を行う。
【００３４】
ＰＬＬ／ＤＬＬ調整部２０は、捕捉された信号の情報（キャリア位相とコード位相）に基づき、コード位相の同期を維持するように調整する。判定部２１は、相関検出用の拡散コードにおけるコード位相を掃引変化させながら判別された相関値にピーク数から欺瞞攻撃が行われているかを判定する。つまり、判定部２１は、所定時間内に複数の相関値のピークが存在するかを確認し、複数の相関値のピークが存在する場合は欺瞞攻撃中と判定する。この場合、本実施形態では信号の追尾復帰は行わず、キャリア周波数推定部１９によりキャリア周波数の変化量を推定する処理を継続する。これにより、欺瞞攻撃排除後に、信号の再捕捉の動作を行うことなく、信号の追尾の復帰が可能となる。なお、キャリア周波数推定部１９は、信号の追尾が不可能であると判定された場合、欺瞞攻撃の排除後に信号の再追尾を行うときの周波数の変化量を推定する推定部の一例である。
【００３５】
航法データデコード部１６は、拡散コードによって信号を逆拡散し、航法データをデコードする。
【００３６】
本物の信号には周期性があり、例えばｔ秒の更新周期で受信する信号のフレームには、受信する順番に応じてフレーム毎に連続性のあるフレーム番号が付与されている。フレーム番号／更新周期監視部１７は、所定の更新周期に応じて受信フレームのフレーム番号をカウントアップし、受信フレームカウンタ値２４として記憶部２２に保存する。
【００３７】
フレーム番号／更新周期監視部１７は、追尾復帰後の信号のフレーム番号及び更新周期の確認を行い、欺瞞攻撃前に受信できていた信号のフレームの番号からの連続性と更新周期とに差分がないかを確認する。フレーム番号／更新周期監視部１７が、欺瞞攻撃前に受信できていた信号のフレームの番号からの連続性と更新周期とに差分があると判定した場合、欺瞞信号を受信している可能性が高い。よって、この場合、フレーム番号／更新周期監視部１７は、本物の信号を受信していると判定せずに、キャリア周波数推定部１９は、キャリア周波数の変化量の推定処理を継続して再度行う。
【００３８】
ＩＭＵ部１８は、受信機１０が移動している場合、受信機１０の移動速度及び移動方向等の移動状況を示す情報を取得し、キャリア周波数推定部１９に与える。キャリア周波数推定部１９は、受信機１０の移動状況を示す情報に基づき、キャリア周波数の変化量を補正する。これにより、受信機１０が移動している場合においても、精度良く欺瞞攻撃中のキャリア周波数の変化量を推定することができる。
【００３９】
以上に説明した本実施形態に係る受信機１０の各部の機能は、図１に示した受信機１０のハードウェア構成により実現することができる。詳細には、以上に説明した受信機１０の各部の機能のうち、周波数変換部１２は、例えば図１に示す周波数変換回路１０１により実現可能である。Ａ／Ｄ変換部１３は、例えばＡ／Ｄ変換回路１０２により実現可能である。捕捉部１４、追尾部１５、航法データデコード部１６、フレーム番号／更新周期監視部１７、キャリア周波数推定部１９、ＰＬＬ／ＤＬＬ調整部２０及び判定部２１の機能は、記憶部２２に記憶されている信号追跡プログラムが、ＣＰＵ１０５に実行させる処理と、計算回路１０６、コード及びキャリア発生器１０４及び相関器１０３とにより実現可能である。ＩＭＵ部１８の機能は、例えば慣性計測装置１０９により実現可能である。記憶部２２の機能は、例えばメモリ１０８又はネットワークを介して受信機１０に接続されるクラウド上の記憶装置等により実現可能である。
【００４０】
［信号追跡処理］
次に、本実施形態に係る信号追跡処理の一例について図４を参照して説明する。図４は、一実施形態に係る信号追跡処理の一例を示すフローチャートである。
【００４１】
本処理が開始されると、捕捉部１４は、ＧＮＳＳ衛星１からの受信信号を捕捉する（ステップＳ１０）。詳細には、捕捉部１４は、拡散コードと受信信号との相関値を求め、拡散コードにおけるコード位相を掃引変化させながら相関値にピークが現れたことを検出することで、受信信号におけるコード位相を捕捉（信号の捕捉）し、コード位相の同期を確立する。
【００４２】
一旦信号を捕捉した後は、追尾部１５は、相関値がピークを維持し続けるよう拡散コードにおけるコード位相を制御することによって、信号を追尾する（ステップＳ１２）。
【００４３】
ＰＬＬ（Phase  Locked  Loop及びＤＬＬ（Delay  Locked  Loop）調整部２０は、捕捉された信号の情報（キャリア位相とコード位相）に基づき、コード位相の同期を維持するように調整する（ステップＳ１４）。拡散コードはＧＮＳＳ衛星１毎に異なる値である。よって、ＧＮＳＳ衛星１毎に正しい拡散コードを使用して逆拡散を行うことで相関値のピークを算出することができる。なお、ＧＮＳＳ衛星１に対して誤った拡散コードを使用して逆拡散を行っても相関値のピークは現れず、コード位相の同期を維持することはできない。
【００４４】
例えば、受信信号の逆拡散を行った結果、所定の周期で相関値のピークが現れる。相関値のピークが現れると、逆拡散に使用した拡散コードで拡散変調と逆拡散とがマッチングできていることがわかる。このときの相関値のピークが、コードの先頭位置（コード位相）であり、所定の周期でコードの先頭が何処にあるかを検出することで、捕捉された信号のコード位相の同期を維持し、信号の追尾が可能になる。
【００４５】
図５（ａ）はキャリアのドップラ周波数がコード周波数に与える影響を示したものである。図５（ｂ）に示すようにコード位相（コードの先頭位置）では、キャリア周波数の変化によってコード位相が変化する。相関値が得られないと航法データを復元することができないため、ＰＬＬ／ＤＬＬ調整部２０は、コード位相の同期を維持する制御を行う。図５（ｃ）のグラフは、受信機が静止している場合に、ＧＮＳＳ衛星１のキャリア周波数が、主にドップラ周波数の影響を受けて直線的に変化することを示す一例である。キャリア周波数の傾きについては、各ＧＮＳＳ衛星１、日時によって異なる。ＰＬＬ／ＤＬＬ調整部２０は、正常に信号を受信しているときのキャリア周波数の傾きを算出し、キャリア周波数とともに記憶部２２に記憶する。
【００４６】
図４に戻り、次に、判定部２１は、信号の追尾が不可能かを判定する（ステップＳ１６）。判定部２１は、Ｃ／Ｎ値が所定の閾値以上であるとき、信号の追尾が可能であると判定し、航法データデコード部１６は、受信信号を逆拡散して算出した相関値に基づき、航法データをデコードする（ステップＳ１８）。
【００４７】
次に、フレーム番号／更新周期監視部１７は、更新周期監視処理を実行し（ステップＳ２０）、その結果に基づき、受信信号のフレームの番号及び更新周期が正常か否かを判定する（ステップＳ２２）。フレーム番号／更新周期監視部１７が、フレーム番号及び更新周期が正常であると判定すると、ステップＳ１２に戻り、追尾部１５は信号の追尾を継続する。ステップ２０の更新周期監視処理については、図８を参照しながら後述される。
【００４８】
ステップＳ２２において、フレーム番号／更新周期監視部１７が、フレーム番号及び更新周期は正常でないと判定した場合、ステップＳ２４にて進む。
【００４９】
また、ステップＳ１６において、判定部２１は、Ｃ／Ｎ値が所定の閾値を下回ると判定した場合、Ｃ／Ｎ値が劣化しているため信号の追尾は不可能であると判定し、ステップＳ２４に進む。
【００５０】
ステップＳ２４において、キャリア周波数推定部１９は、正常に信号を受信しているときのキャリア周波数の傾きから、欺瞞攻撃により本物の信号が受信できなかった間のキャリア周波数の変化量の推定値を算出する。キャリア周波数の傾きは、ドップラ周波数の影響の程度を示し、各ＧＮＳＳ衛星１、日時によって異なる。
【００５１】
受信機１０が静止している場合、図５（ｃ）に示すように、ＧＮＳＳ衛星１のキャリア周波数は、直線的に変化する。よって、キャリア周波数推定部１９は、欺瞞攻撃直前のキャリア周波数の傾きと、欺瞞攻撃により本物の信号を受信できなかったと推測される時間とを乗算することで、キャリア周波数の変化量の推定値を算出する。このキャリア周波数の変化量の推定値に基づき、コード位相の変動量を予測できる。これにより、図５（ｄ）に示すように、キャリア周波数の変化量の推定値から正常復帰時のコード位相の変動量を推測し、コード位相の同期を制御することができる。
【００５２】
なお、前述した図４のステップＳ１４にて、ＰＬＬ／ＤＬＬ調整部２０は、本物の信号を正常に受信している間（例えば、図５（ｃ）の（１）から（２）までの時間）、相関値のピークに基づきキャリア周波数の傾きを算出し、記憶部２２に記憶している。よって、ステップＳ２４では、キャリア周波数推定部１９は、記憶部２２に記憶されているキャリア周波数の傾きと、欺瞞攻撃により本物の信号を受信できなかったと推測される時間とを乗算することで、キャリア周波数の変化量の推定値を算出することができる。
【００５３】
次に、判定部２１は、相関値監視処理を実行し（ステップＳ２６）、その結果に応じて、欺瞞攻撃が排除されたかを判定する（ステップＳ２８）。なお、ステップ２８の相関値監視処理については、図８を参照しながら後述される。
【００５４】
判定部２１が、欺瞞攻撃中である、すなわち欺瞞攻撃が排除されていないと判定すると、欺瞞攻撃が排除されるまでステップＳ２４〜Ｓ２８の処理が繰り返される。判定部２１は、欺瞞攻撃が排除されたと判定した場合、ステップＳ１４に戻る。
【００５５】
ステップＳ２８からステップＳ１４に戻ると、ＰＬＬ／ＤＬＬ調整部２０は、算出されたキャリア周波数の変化量の推定値から追尾復帰時のコード位相の変動量を推測し、コードの先頭位置すなわちコード位相を推定する（図５（ｃ）及び図５（ｄ）参照）。次に、ステップＳ１２に進み、追尾部１５は、推定したコード位相に基づき信号の再追尾を行う。次に、判定部２１が、Ｃ／Ｎ値は劣化しておらず、信号の追尾は可能であると判定した場合（ステップＳ１６）、航法データデコード部１６は、ＰＬＬ／ＤＬＬの調整により算出された相関値に基づき、航法データをデコードする（ステップＳ１８）。その後、更新周期監視処理が再び実行される（ステップＳ２０）。
【００５６】
（更新周期監視処理）
次に、ステップＳ２０にて呼び出される更新周期監視処理について、図６及び図７を参照しながら説明する。図６は、一実施形態に係る更新周期監視処理の一例を示すフローチャートである。図７は、一実施形態に係るフレーム番号及び更新周期の監視を説明するための図である。
【００５７】
図７（ａ）に正常時の受信信号のフレーム（受信フレーム）に付与されたフレーム番号の一例を示す。受信フレームには周期性があり、予め定められた更新周期（例えばｔ秒）毎にフレーム番号は１つ増える。図７（ａ）の例では、受信フレームに、順にフレーム番号ｎ、ｎ＋１、ｎ＋２・・・が付与されている。ｎは整数である。
【００５８】
フレーム番号／更新周期監視部１７は、受信信号を監視し、欺瞞信号受信前の信号のフレームの切り替えタイミングである更新周期毎に受信フレームカウンタ値２４を１つカウントアップし、記憶部２２に記憶する。
【００５９】
図６の更新周期監視処理では、まず、フレーム番号／更新周期監視部１７は、フレーム番号に連続性がないか否かを判定する（ステップＳ２０１）。例えば、図７（ｂ）に示すように、ｔ秒周期でフレーム番号ｎ、ｎ＋１、ｎ＋２、ｎ＋３が付与された正常な信号を順に受信したとする。次のｔ秒後の周期に対して＋αだけ遅延して、フレーム番号ｎ＋５が付与された欺瞞信号を受信した後、ｔ秒周期でフレーム番号ｎ＋６、ｎ＋７・・・が付与された欺瞞信号を受信したとする。
【００６０】
このとき、受信フレームカウンタ値２４は、欺瞞信号受信前の信号のフレームの切り替えタイミング、すなわちt秒の更新周期毎にカウントアップされる。このため、ｔ秒よりもαだけ遅れた時刻に受信したフレーム番号がｎ＋５の欺瞞信号に対応する受信フレームカウンタ値２４は、ｎ＋５となる。この場合、フレーム番号／更新周期監視部１７は、受信フレームカウンタ値２４が、ｎ＋３とｎ＋５の間で不連続であると判定する。
【００６１】
この結果、フレーム番号／更新周期監視部１７は、フレーム番号が異常であるため欺瞞攻撃の可能があることを検知し、アラームを出力し（ステップＳ２０３）、本処理を終了する。
【００６２】
一方、ステップＳ２０１において、フレーム番号／更新周期監視部１７は、フレーム番号に連続性があると判定した場合、フレームの更新周期が一致していないかを判定する（ステップＳ２０５）。フレーム番号／更新周期監視部１７は、フレームの更新周期が一致していないと判定した場合、欺瞞攻撃の可能があることを検知し、アラームを出力し（ステップＳ２０３）、本処理を終了する。
【００６３】
一方、ステップＳ２０５において、フレーム番号／更新周期監視部１７は、フレーム更新周期が一致していると判定した場合、フレーム番号及びフレームの更新周期は正常であると判定し（ステップＳ２０７）、本処理を終了する。
【００６４】
例えば、図７（ｃ）に示すように、ｔ秒周期でフレーム番号ｎ、ｎ＋１、ｎ＋２、ｎ＋３が付与された本物の信号のフレームを受信した後、欺瞞信号を受信し、フレーム番号がｎ＋４、ｎ＋５、・・・、ｎ＋８の本物の信号の受信フレームを受信できなかったとする。その後、正常状態に復帰し、フレーム番号ｎ＋９、ｎ＋１０、・・・が付与された本物の信号のフレームを受信したとする。
【００６５】
この場合、フレーム番号／更新周期監視部１７は、欺瞞攻撃中においてもｔ秒の更新周期毎に、欺瞞攻撃前の受信フレームカウンタ値２４から、欺瞞攻撃中の受信フレームのフレーム番号を予測する。この結果、フレーム番号／更新周期監視部１７は、正常受信状態の復帰時の本物の信号のフレーム番号を予測できる。図７（ｃ）の例では、フレーム番号／更新周期監視部１７は、受信フレームカウンタ値２４から正常状態復帰時の受信信号のフレーム番号がｎ＋９であると予測し、実際に受信した信号のフレーム番号と一致している場合、フレームの更新周期は正常であると判定する。これに対して、フレーム番号／更新周期監視部１７は、受信フレームカウンタ値２４から予測した正常状態復帰時の受信信号のフレーム番号が、実際に受信した信号のフレーム番号と一致していない場合、フレームの更新周期が異常であると判定する。
【００６６】
なお、ステップＳ２０１におけるフレーム番号の連続性の判定では、フレーム番号の連続性を判定するための誤り連続回数を予め任意に設定してもよい。例えば、誤り連続回数に５が設定された場合、受信したフレームのフレーム番号に不連続が生じていても、不連続なフレームの前及び後において受信フレームのフレーム番号の連続回数が６以上であればフレーム番号に連続性があると判定してもよい。この場合、不連続なフレームの前又は後において受信フレームのフレーム番号の連続回数が５以下であればフレーム番号に連続性がないと判定される。
【００６７】
また、ステップＳ２０５におけるフレームの更新周期の判定では、フレームの更新周期の異常を示す閾値を予め任意に設定してもよい。例えば、フレームの更新周期の異常を示す閾値に２が設定された場合、正常受信状態の復帰時の受信信号のフレーム番号が、受信フレームカウンタ値２４からそのタイミングの予測されるフレーム番号と一致していなくても、その差分が２未満であれば、フレームの更新周期は正常であると判定してもよい。この場合、その差分が２以上であれば、フレームの更新周期は正常であると判定される。
【００６８】
以上に説明した更新周期監視処理によれば、フレーム番号／更新周期監視部１７は、追尾復帰後の信号のフレーム番号やフレームの更新周期を確認し、欺瞞攻撃前に受信出来ていた信号のフレームの番号からの連続性と更新周期とに差分がないかを確認する。フレーム番号／更新周期監視部１７が、欺瞞攻撃前に受信できていた信号のフレームの番号からの連続性と更新周期とに差分があると判定した場合、欺瞞攻撃を受けている可能性があるため、図４のステップＳ２２からステップＳ２４に進む。
【００６９】
図４では、ステップＳ１６において本物の信号の追尾が不可能（Ｃ／Ｎ値の劣化）な場合にも、欺瞞攻撃を受けている可能性があると判定し、ステップＳ２４に進む。ステップＳ２４において、キャリア周波数推定部１９は、追尾に必要なキャリア周波数の変化量の推定値を算出する。
【００７０】
つまり、本実施形態では、欺瞞攻撃中と判断されたときに、ステップＳ１０に戻り再捕捉の動作は行わない。すなわち、本実施形態に係る受信機１０では、本物の信号を追尾することができない状態となっても、ドップラ周波数を考慮して追尾に必要なキャリア周波数の変化量を推定し、キャリア周波数の変化量の推定値に基づきコード位相の変動量を推定する。これにより、欺瞞攻撃を排除後に再捕捉を行わずに、コード位相の変動量に基づき信号の追尾の復帰が可能となる。以下、ステップ２４にて算出したキャリア周波数の変化量の推定値に基づき欺瞞攻撃中かを判定する、ステップS２６の相関値監視処理の詳述についてする。
【００７１】
（相関値監視処理）
ステップＳ２６にて呼び出される相関値監視処理について、図８及び図９を参照しながら説明する。図８は、一実施形態に係る相関値監視処理の一例を示すフローチャートである。図９は、一実施形態に係る信号の再追尾を説明するための図である。
【００７２】
図８の相関値監視処理では、まず、捕捉部１４が、信号を捕捉する（ステップＳ２８１）。このとき捕捉した信号は、相関値のピーク数の確認のみに使用される。
【００７３】
次に、判定部２１は、検出した相関値のピークが２以上であるかを判定する（ステップＳ２８３）。判定部２１は、相関値のピークが２以上であると判定した場合、同一のＧＮＳＳ衛星１からの複数の受信信号が存在するため、欺瞞信号を受信していると判定し、欺瞞攻撃中であることを検知し、アラームを出力する（ステップＳ２８５）。捕捉部１４は、信号の再捕捉の確認時間かを判定し（ステップＳ２８７）、信号の再捕捉の確認時間であると判定したとき、ステップＳ２８１に戻り、相関値のピーク数の確認のために再び信号を捕捉し、Ｓ２８３以降の処理を繰り返す。一方、ステップＳ２８３において、判定部２１は、相関値のピークが２以上でないと判定した場合、欺瞞攻撃はされていないと判定し（ステップＳ２８９）、本処理を終了する。
【００７４】
以上、本実施形態に係る受信機１０によれば、判定部２１は、欺瞞攻撃中か否かを判定するために、同一のＧＮＳＳ衛星１からの複数の受信信号が存在しないかを確認する。同一のＧＮＳＳ衛星１から本物の信号と欺瞞信号とを受信している場合、所定時間内に相関値のピークが２つ存在する。この場合、判定部２１は、欺瞞攻撃を受けていると判定する。基板攻撃を受けていると判定された場合、図９に示すように、ＰＬＬ調整の内部動作は停止され、ＰＬＬ停止時のキャリア周波数が記憶部２２に保存される。
【００７５】
その後、同一のＧＮＳＳ衛星１から本物の信号だけを受信するようになると、相関値のピークは１つとなる。判定部２１は、相関値のピークが１つだけ存在する場合、欺瞞攻撃を受けていないと判定する。この場合、判定部２１は、正常に信号の追尾ができていると判定する。このとき、キャリア周波数推定部１９は、図９に示すように、ドップラ周波数によるキャリア周波数の変化を示すキャリア周波数の変化量の推定値を、記憶部２２に保存したキャリア周波数に加算した値を算出する。すなわち、キャリア周波数推定部１９は、図５（ｃ）に一例を示すキャリア周波数の傾きに欺瞞攻撃中の時間を乗算し、キャリア周波数の変化量の推定値を算出する。
【００７６】
ＰＬＬ／ＤＬＬ調整部２０は、キャリア周波数の変化量の推定値から正常復帰時のコード位相の変動量を推測し、コード位相の同期を制御する。これにより、信号の再捕捉をせずに、信号の再追尾が可能となり、信号の再追尾により算出した相関値に基づき、航法データのデコードが可能となる。
【００７７】
[変形例に係る信号追跡処理]
次に、本実施形態の変形例に係る信号追跡処理の一例について、図１０を参照しながら説明する。図１０は、本実施形態の変形例に係る信号追跡処理の一例を示すフローチャートである。本実施形態の変形例に係る信号追跡処理では、受信機１０が移動している点が、受信機１０が移動していないことを前提とした本実施形態に係る信号追跡処理と相違する。よって、上記相違点を中心に変形例に係る信号追跡処理について説明する。なお、図４に示す本実施形態に係る信号追跡処理と同一の処理ステップには同一のステップ番号を付すことで、説明を簡略化する。
【００７８】
本処理が開始されると、ステップＳ１０〜Ｓ１６において、信号の捕捉、信号の追尾及びＰＬＬ／ＤＬＬ調整が行われ、正常に信号が追尾できている場合には、ステップＳ１８において航法データがデコードされ、更新周期監視処理が実行される。更新周期監視処理の実行の結果、フレーム番号及び更新周期が正常であると判定された場合、ステップＳ１２〜Ｓ２２の処理が繰り返される。
【００７９】
ステップＳ１６においてＣ／Ｎ値の劣化により信号の追尾ができないと判定された場合、ステップＳ３４に進む。また、ステップＳ２２においてフレーム番号又は更新周期が正常でないと判定された場合、ステップＳ３４に進む。
【００８０】
ステップＳ３０において、ＩＭＵ部１８は、受信機１０に取り付けられた加速度センサやジャイロセンサから受信機１０の移動状況を示す情報（ＩＭＵ情報）を取得する。ＩＭＵ部１８は、ＩＭＵ情報に基づき、受信機１０の移動速度及び移動方向を算出する(ステップＳ３２)。
【００８１】
ステップＳ３４では、キャリア周波数推定部１９は、正常に信号を受信しているときのキャリア周波数の傾きから、欺瞞攻撃により本物の信号が受信できなかった間のキャリア周波数の変化量の推定値を算出する。受信機１０が移動している場合、キャリア周波数の変化量の推定値は、ドップラ周波数の影響と受信機１０の移動の影響を受ける。そこで、本変形例では、キャリア周波数推定部１９は、ＩＭＵ部１８から受信機１０の移動状況を示す情報（ＩＭＵ情報）を取得し、取得したＩＭＵ情報に基づき、キャリア周波数の変化量の推定値を補正する。これにより、ＰＬＬ／ＤＬＬ調整部２０は、補正したキャリア周波数の変化量の推定値から正常復帰時のコード位相の変動量を推測し、コード位相の同期を制御することができる。
【００８２】
次に、判定部２１は、相関値監視処理を実行し（ステップＳ２６）、その結果に応じて、欺瞞攻撃が排除されたかを判定する（ステップＳ２８）。判定部２１が、欺瞞攻撃中であると判定すると、欺瞞攻撃が排除されるまでステップＳ３４に戻り、ステップＳ３４、Ｓ２６、Ｓ２８の処理が繰り返される。判定部２１は、欺瞞攻撃が排除されたと判定した場合、ステップＳ１４に戻る。
【００８３】
ステップＳ１４において、ＰＬＬ／ＤＬＬ調整部２０は、補正したキャリア周波数の変化量の推定値から追尾復帰時のコード位相の変動量を推測し、コードの先頭位置を推定する。追尾部１５は、信号の再追尾を行い（ステップＳ１２）、信号の追尾が正常な場合（ステップＳ１６）、航法データデコード部１６は、算出した相関値に基づき、航法データをデコードする（ステップＳ１８）。その後、更新周期監視処理が再び実行される（ステップＳ２０）。
【００８４】
以上に説明したように、変形例に係る信号追跡処理では、受信機１０が移動している場合、ＩＭＵ部１８が算出した受信機１０の移動状況を示す情報（ＩＭＵ情報）に基づき、キャリア周波数の変化量の推定値を補正する。これにより、より精度の高いキャリア周波数の変化量の推定値を得ることができる。この結果、受信機１０が移動している場合であっても、欺瞞攻撃排除後に、信号の再捕捉の動作を行うことなく、信号の追尾の復帰が可能となり、信号の追尾の信頼性を向上させることができる。
【００８５】
以上、本実施形態及びその変形例によれば、ＧＮＳＳ衛星１のキャリア周波数の変化量とコード位相の変動量との関係に注目し、欺瞞攻撃によって信号の追尾ができなくなった時点のＰＬＬ制御値（キャリア周波数、キャリア周波数の傾き等）が保存される。そして、キャリア周波数の傾きから欺瞞攻撃中に本物の信号が受信できない間のドップラ周波数の変化を考慮したキャリア周波数の変化量を推定する。そして、受信機１０は、欺瞞信号が排除された後の追尾状態復帰時に、キャリア周波数の変化量の推定値から、追尾復帰時のコード位相の変動量を推測し、コード位相の同期を制御する。更に受信機１０は、追尾復帰時の受信信号のフレーム番号の連続性とフレーム更新周期とを確認することで、追尾復帰時の信号の追尾の信頼性を向上させることが可能である。
【００８６】
以上の動作により、本実施形態及びその変形例では、ＧＮＳＳのシステムや受信機１０のハードウェアの変更を必要とせずに、受信機１０は欺瞞攻撃を防御する効果が得られる。
【００８７】
以上、信号追跡プログラム、信号追跡方法及び情報処理装置を上記実施形態により説明したが、本発明に係る信号追跡プログラム、信号追跡方法及び情報処理装置は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記実施形態及び変形例が複数存在する場合、矛盾しない範囲で組み合わせることができる。
【００８８】
以上の説明に関し、更に以下の項を開示する。
（付記１）
衛星識別情報を含む信号を受信し、
前記信号の周波数の変化に応じて前記衛星識別情報により識別される前記信号の追尾を行い、所定の周期で該信号の追尾が不可能であるかを判定し、
前記信号の追尾が不可能であると判定した場合、前記信号の再追尾を行うときの周波数の変化量の推定値を推定し、
前記周波数の変化量の推定値に基づき、欺瞞攻撃の判定結果に応じて信号の再追尾を行う、
処理をコンピュータに実行させる信号追跡プログラム。
（付記２）
前記信号の欺瞞攻撃が排除されたと判定した場合、前記周波数の変化量の推定値に基づき、信号の再追尾を行う、
付記１に記載の信号追跡プログラム。
（付記３）
受信した前記信号のフレーム番号をカウントし、
前記フレーム番号をカウントした値が、受信した前記信号のフレームの連続性に関する条件を満足しない場合、又は、受信した前記信号のフレームの所定の周期に関する条件を満足しない場合、前記周波数の変化量の推定値に基づき、前記信号の欺瞞攻撃が排除されたかを判定する、
付記１又は２に記載の信号追跡プログラム。
（付記４）
前記周波数の変化量の推定値を、前記信号を受信する受信機の移動状況を示す情報に応じて補正する、
付記１〜３のいずれか一項に記載の信号追跡プログラム。
（付記５）
衛星識別情報を含む信号を受信し、
前記信号の周波数の変化に応じて前記衛星識別情報により識別される前記信号の追尾を行い、所定の周期で該信号の追尾が不可能であるかを判定し、
前記信号の追尾が不可能であると判定した場合、前記信号の再追尾を行うときの周波数の変化量の推定値を推定し、
前記周波数の変化量の推定値に基づき、欺瞞攻撃の判定結果に応じて信号の再追尾を行う、
処理をコンピュータが実行する信号追跡方法。
（付記６）
前記信号の欺瞞攻撃が排除されたと判定した場合、前記周波数の変化量の推定値に基づき、信号の再追尾を行う、
付記５に記載の信号追跡方法。
（付記７）
受信した前記信号のフレーム番号をカウントし、
前記フレーム番号をカウントした値が、受信した前記信号のフレームの連続性に関する条件を満足しない場合、又は、受信した前記信号のフレームの所定の周期に関する条件を満足しない場合、前記周波数の変化量の推定値に基づき、前記信号の欺瞞攻撃が排除されたかを判定する、
付記５又は６に記載の信号追跡方法。
（付記８）
前記周波数の変化量の推定値を、前記信号を受信する受信機の移動状況を示す情報に応じて補正する、
付記５〜７のいずれか一項に記載の信号追跡方法。
（付記９）
衛星識別情報を含む信号を受信する受信部と、
前記信号の周波数の変化に応じて前記衛星識別情報により識別される前記信号の追尾を行い、所定の周期で該信号の追尾が不可能であるかを判定する判定部と、
前記信号の追尾が不可能であると判定した場合、前記信号の再追尾を行うときの周波数の変化量の推定値を推定する推定部と、
前記周波数の変化量の推定値に基づき、欺瞞攻撃の判定結果に応じて信号の再追尾を行う追尾部と、
を有する情報処理装置。
（付記１０）
前記追尾部は、前記信号の欺瞞攻撃が排除されたと判定された場合、前記周波数の変化量の推定値に基づき、信号の再追尾を行う、
付記９に記載の情報処理装置。
（付記１１）
受信した前記信号のフレーム番号をカウントするフレーム番号／更新周期監視部を有し、
前記判定部は、前記フレーム番号をカウントした値が、受信した前記信号のフレームの連続性に関する条件を満足しない場合、又は、受信した前記信号のフレームの所定の周期に関する条件を満足しない場合、前記周波数の変化量の推定値に基づき、前記信号の欺瞞攻撃が排除されたかを判定する、
付記９又は１０に記載の情報処理装置。
（付記１２）
前記推定部は、前記周波数の変化量の推定値を、前記信号を受信する受信機の移動状況を示す情報に応じて補正する、
付記９〜１１のいずれか一項に記載の情報処理装置。
【符号の説明】
【００８９】
１１            アンテナ部
１２            周波数変換部
１３            Ａ／Ｄ変換部
１４            捕捉部
１５            追尾部
１６            航法データデコード部
１７            フレーム番号／更新周期監視部
１８            ＩＭＵ部
１９            キャリア周波数推定部
２０            ＰＬＬ／ＤＬＬ調整部
２１            判定部
２２            記憶部
１０１          周波数変換回路
１０２          Ａ／Ｄ変換回路
１０３          相関器
１０４          コード及びキャリア発生器
１０５          ＣＰＵ
１０６          計算回路
１０７          クロック発生器
１０８          メモリ
１０９          慣性計測装置
【図１】
2019045150.tif 000003
【図２】
2019045150.tif 000004
【図３】
2019045150.tif 000005
【図４】
2019045150.tif 000006
【図５】
2019045150.tif 000007
【図６】
2019045150.tif 000008
【図７】
2019045150.tif 000009
【図８】
2019045150.tif 000010
【図９】
2019045150.tif 000011
【図１０】
2019045150.tif 000012