🛰️

LimeSuiteNGのCLIツールでgps-sdr-simを使ってみる

に公開
2026/01/31

前回の記事でビルドしたLimeSuiteNGのCLIツールを使って、gps-sdr-simで生成したベースバンド信号をLimeSDR mini V2で送信してみます。

GPS-SDR-SIM

https://github.com/osqzss/gps-sdr-sim

  1. GPS-SDR-SIMをGitHubのリポジトリからcloneしてビルド
    git clone https://github.com/sdr-sat/gps-sdr-sim.git
    cd gps-sdr-sim
    gcc gpssim.c getopt.c -lm -o gps-sdr-sim
    
    (追記)Windowsであれば、Visual Studioのx64 Native Tools Command Promptでビルド
    cl /O2 /W3 gpssim.c getopt.c /Fe:gps-sdr-sim.exe
    
  2. ベースバンド信号ファイルを生成
    ./gps-sdr-sim -e brdc0010.22n
    
    300秒分のベースバンド信号が生成されます。デフォルトのファイル名はgpssim.binです。
     xyz =  -3959617.5,   3350136.6,   3699531.5
     llh =   35.681298,  139.766247,        10.0
     Start time = 2022/01/01,00:00:00 (2190:518400)
     Duration = 300.0 [sec]
     05  132.8  38.4  22193165.8   4.1
     10  314.3   7.5  25151827.0   4.3
     12  169.9   6.2  25170039.8   9.6
     13   56.4  38.0  22086492.4   3.8
     14   49.4  13.8  24336055.8   6.4
     15   27.5  64.8  20373400.1   2.6
     18  260.3  41.8  21828922.3   3.2
     20  138.5  10.2  24538408.1   8.7
     23  316.0  39.6  22035131.1   3.2
     24  222.6  66.4  20285310.6   2.6
     28   67.7  22.4  23705677.8   5.5
     Time into run = 300.0
     Done!
    

LimeSuiteNG CLI Tools

https://limesuiteng.myriadrf.org/gettingstarted/common/clitools

  1. LimeSDR mini V2の設定
    limeConfig --initialize --samplerate=2.6e6 --txen=1 --txlo=1575.42e6 \
        --txlpf=2.6e6 --txpath=Band1 --txgain=10
    
    samplerateをgps-sdr-simのデフォルトのサンプリングレートである2.6MHzに設定します。中心周波数のtxloをGPS L1C/A信号の1575.42MHzに設定します。txgainは10dBに設定しています。このとき、LimeSDR mini V2のTXポートには、20dBの減衰器を取り付けています。
  2. ベースバンド信号の送信
    limeTRX --input gpssim.bin --txPacketsInBatch=16 -–rxPacketsInBatch=16
    
    5MHz以下のサンプリングレートであればどの環境でも安定した送信ができますが、10MHzを超えるあたりから送信データが時折ドロップするようになります。--txPacketsInBatchの値を8~16程度に設定することで、高いサンプリングレートでも安定した送信が可能になります。さらに高いサンプリングレートで送受信を行うのであれば、Ubuntuを利用することを推奨します。同じ設定でも、Windowsでは送信データの欠損を完全に解決することはできませんでした。
  3. GPS信号の受信
    LimeSDR mini V2のTXポートとGNSS受信機を同軸ケーブルで接続することで、GPS信号の受信が確認できます。

limeTRXの改修

limeTRXはinputファイルのサイズをチェックしますが、その変数であるfileSizeがintで定義されているため、2GBを超えるファイルサイズが正常に認識されません。送信したいベースバンド信号のファイルサイズが大きなときは、fileSizeをint64_tに定義しなおしてリビルドしてください。

LimeSuiteNG/cli/limeTRX.cpp
static void TransmitLoop(TransmitLoopArgs* args)
{
   ...
   int64_t fileSize = fin->tellg();
   ...
}

Discussion