受信機が静止しているのであれば,ある時刻の疑似距離とrange rateから
1秒後の疑似距離を線形近似しても,5cm以下の誤差しか発生しません.
疑似距離の精度としては無視できるレベルなので,OpenMPで並列化したループの中の
コード位相および搬送波位相は,range rateに応じた位相の進みを積算するだけにしました.
擬似距離とrange rateはループの外で毎秒アップデートするだけなので,
計算負荷の高い衛星位置の計算などは,低頻度に抑えられます.
(クリックで拡大)
この簡略化で,処理速度が随分と改善されました.
90秒分のデータの生成に50秒程度と,リアルタイム化も見えてきたかな?
【追記】こんな製品を発見.
Skydel Solutions: Software-Defined GNSS Simulator
【追記2】1秒間であれば,delta rangeをrange rateの代わりにして
位相を積算することで,1秒後の疑似距離の近似誤差はゼロになります.
range rateに誤差が生じますが,受信機側の信号追尾では問題にならない程度です.
これで速度の計算が不要になり,計算負荷がさらに低減.
実時間の2倍の処理速度でベースバンド信号が生成できるようになりました.
これは快適!
1秒後の疑似距離を線形近似しても,5cm以下の誤差しか発生しません.
疑似距離の精度としては無視できるレベルなので,OpenMPで並列化したループの中の
コード位相および搬送波位相は,range rateに応じた位相の進みを積算するだけにしました.
擬似距離とrange rateはループの外で毎秒アップデートするだけなので,
計算負荷の高い衛星位置の計算などは,低頻度に抑えられます.
(クリックで拡大)
この簡略化で,処理速度が随分と改善されました.
90秒分のデータの生成に50秒程度と,リアルタイム化も見えてきたかな?
【追記】こんな製品を発見.
Skydel Solutions: Software-Defined GNSS Simulator
【追記2】1秒間であれば,delta rangeをrange rateの代わりにして
位相を積算することで,1秒後の疑似距離の近似誤差はゼロになります.
range rateに誤差が生じますが,受信機側の信号追尾では問題にならない程度です.
これで速度の計算が不要になり,計算負荷がさらに低減.
実時間の2倍の処理速度でベースバンド信号が生成できるようになりました.
これは快適!