gps-sdr-simで20年以上も先の日時を設定すると,受信機から出力される
日時が正常な値にならないとユーザから質問があったので,確認してみました.
正確なところは判りませんが,20年ほど巻き戻った日時が出力されている
ところを見ると,week number rolloverの問題かと思われます.
GPSの航法メッセージに含まれているweek numberは10ビットしかないため,
最大で1024週しかカウントできません.これは,約19.6年に相当し,この周期で
week numberがゼロに戻ってしまいます.
ちなみに,1回目のrolloverは1999年8月21日に発生しています.次のrolloverは
2019年4月7日になります.
このrolloverをどう扱うかは,シミュレータではなく,受信機の問題になります.
そのため,受信機毎に異なった挙動を示すことになります.
手元にあるu-blox社のGNSS受信機では,UBX-CFG-NAVX5で設定した
week numberから,1024週が連続するようにカウントしてくれるようです.
u-blox: What is the GPS week rollover and how is it handled by u-blox GNSS receivers?
デフォルト値を見てみると,1867週(2015年10月18日)に設定されていました.
そのため,このままだと,2035年以降は正常にrolloverが反映されず,
日時が2015年に戻ってしまいます.
そこで,このパラメータを2086週(2019年12月29日)に設定して,さらに未来の
日時である2039年1月1日の信号をシミュレータで生成してみます.
(クリックで拡大)
(クリックで拡大)
こうすることで,week number rolloverが解決され,正常な日時で測位結果を
出力できました.
u-bloxの受信機は,細かいところまで手が行き届いていて,関心します.
日時が正常な値にならないとユーザから質問があったので,確認してみました.
正確なところは判りませんが,20年ほど巻き戻った日時が出力されている
ところを見ると,week number rolloverの問題かと思われます.
GPSの航法メッセージに含まれているweek numberは10ビットしかないため,
最大で1024週しかカウントできません.これは,約19.6年に相当し,この周期で
week numberがゼロに戻ってしまいます.
ちなみに,1回目のrolloverは1999年8月21日に発生しています.次のrolloverは
2019年4月7日になります.
このrolloverをどう扱うかは,シミュレータではなく,受信機の問題になります.
そのため,受信機毎に異なった挙動を示すことになります.
手元にあるu-blox社のGNSS受信機では,UBX-CFG-NAVX5で設定した
week numberから,1024週が連続するようにカウントしてくれるようです.
u-blox: What is the GPS week rollover and how is it handled by u-blox GNSS receivers?
デフォルト値を見てみると,1867週(2015年10月18日)に設定されていました.
そのため,このままだと,2035年以降は正常にrolloverが反映されず,
日時が2015年に戻ってしまいます.
そこで,このパラメータを2086週(2019年12月29日)に設定して,さらに未来の
日時である2039年1月1日の信号をシミュレータで生成してみます.
![](https://blogimg.goo.ne.jp/user_image/1c/fd/5b1a212b7908954942605c71e0c7cc64.png)
![](https://blogimg.goo.ne.jp/user_image/49/52/6234e6a9511949ddf9676a57d63e06f2.png)
こうすることで,week number rolloverが解決され,正常な日時で測位結果を
出力できました.
u-bloxの受信機は,細かいところまで手が行き届いていて,関心します.