Pocket SDR収録データ
Pocket SDR
Pocket SDRは、東京海洋大学の高須知二先生が公開されているオープンソースのソフトウェア無線(SDR: software defined radio)で、測位衛星(GNSS: global navigation satellite system)信号を受信するものです。これは、ハードウェア設計資料、測位ソフトウェア(C言語版とPython言語版)、収録データサンプル、ハードウェア設定ファイル、測位衛星資料からなります。この測位ソフトウェアは、Windows PC、Mac、Raspberry Piにて利用できます。
さらに、高須先生が2025年3月27日に日記・備考録で公開されたPocket SDR収録データには、みちびき6号機J08
で試験中のL1C/B信号も含まれていました。
このデータにとても感動しましたので、私の持っているPocket SDR収録データも公開します。今後、観測データを収録したら、ここに追記していこうと思います。
ドイツ・アーヘン(おすすめ度:★☆☆)
アーヘン駅前のホテルに宿泊した際、窓際にアンテナを置いて収録したデータです。失敗したデータ収録の予行演習でした。道路向かいにある高い建物のため、信号レベルが低く、充分な強度で受信できたGPS衛星数は3程度でした。残念です。
はじめに、GPS L1C/A信号とGalileo E1B信号のデコードを試してみてください。すべての収録ファイルをgzip
圧縮しています。収録ファイルL1.bin.gz
とタグファイルL1.bin.tag
をダウンロードし、gunzip L1.bin.gz
にて収録ファイルを解凍して、Pocket SDRのpocket_trk
アプリケーションで測位します。この例では、ver. 0.14のものをmacOS上で実行しています。
$ pocket_trk L1.bin -prn 1-32 -sig E1B -prn 1-36
1970-01-01 00:00:00.0 0.00000000 0.00000000 0.000 0/0 --- BUFF: 4% SRCH: 2 LOCK: 9/ 68
CH RF SAT SIG PRN LOCK(s) C/N0 (dB-Hz) COFF(ms) DOP(Hz) ADR(cyc) SYNC #NAV #ERR #LOL FEC
5 1 G05 L1CA 5 14.40 33.2 | 0.7138032 -1569.4 -22546.2 ---- 0 0 0 0
12 1 G12 L1CA 12 13.70 44.0 |||||||| 0.5609495 1025.9 14074.2 -B-- 0 1 0 0
20 1 G20 L1CA 20 12.87 30.0 | 0.2656514 570.1 7312.5 ---- 0 0 0 0
24 1 G24 L1CA 24 12.50 54.1 |||||||||||| 0.3122772 -1539.0 -19234.4 -BF- 1 0 0 0
25 1 G25 L1CA 25 12.45 44.4 |||||||| 0.8502644 3326.7 41415.1 -BFR 1 0 0 0
32 1 G32 L1CA 32 11.59 36.1 ||| 0.6249231 2534.7 29402.0 -BF- 1 0 0 0
37 1 E05 E1B 5 10.24 50.9 |||||||||||| 0.6130906 -1830.9 -18754.3 -BFR 3 0 0 0
57 1 E25 E1B 25 3.93 45.1 ||||||||| 0.2554515 2076.4 8157.7 ---- 0 0 0 0
収録諸元(中心周波数やサンプリング周波数など)については、収録バッチファイルsat.shにある設定ファイル名をメモし、Pocket SDR ver.0.13の設定ファイルディレクトリにある該当ファイル内容をご参照ください(まとめを省略してすみません)。
例えば、バッチファイルによると、この収録ファイルL1.bin
に対応する設定ファイルはpocket_L1L2_4MHz.conf
です。その設定ファイル内容から、この収録ファイルは、中心周波数1575.42 MHz、サンプリング周波数4 MHz、ベースバンド収録、フィルタ帯域幅2.5 MHzの2チャネル動作のものであることがわかります。
- 収録日: 2024年11月3日
- 受信機: Pocket SDR FE4CH(DATAGNSS版)
- アンテナ: Beitian BT-200
- ケーブル: RG58 2メートル
- 収録ソフトウェア: Pocket SDR バージョン0.13
このFE4CHハードウェアは、先日購入したSFP+光トランシーバの空きケースにきれいにおさまりました。これで安心して持ち運べます。
ドイツ・ボン(おすすめ度:★☆☆)
早朝にホテル近くの広場で収録しました。収録時間を30秒間にしたつもりが15秒間分しかなく、測位には至りませんでした。Galileo HAS(E6B信号)のデータも収録できました。
$ pocket_trk L1.bin -prn 1-32 -sig E1B -prn 1-36
1970-01-01 00:00:00.0 0.00000000 0.00000000 0.000 0/0 --- BUFF: 3% SRCH: 66 LOCK: 12/ 68
CH RF SAT SIG PRN LOCK(s) C/N0 (dB-Hz) COFF(ms) DOP(Hz) ADR(cyc) SYNC #NAV #ERR #LOL FEC
2 1 G02 L1CA 2 14.57 43.9 |||||||| 0.9748175 -2165.3 -31303.0 -BF- 2 0 0 0
3 1 G03 L1CA 3 14.52 50.1 |||||||||||| 0.8123621 -137.4 -1739.4 -BFR 2 0 0 0
4 1 G04 L1CA 4 14.47 47.6 |||||||||| 0.4966509 2769.0 40327.1 -BFR 2 0 0 0
9 1 G09 L1CA 9 13.80 42.8 ||||||| 0.0000818 4038.4 55957.5 -B-- 0 1 0 0
17 1 G17 L1CA 17 12.54 45.3 ||||||||| 0.3797798 -569.4 -6940.9 -BF- 1 0 0 0
21 1 G21 L1CA 21 11.92 38.0 |||| 0.3916530 -2626.9 -31157.9 -BFR 1 0 0 0
28 1 G28 L1CA 28 10.73 40.0 ||||| 0.2537974 -338.7 -3487.5 -BFR 1 0 0 0
31 1 G31 L1CA 31 10.38 42.3 ||||||| 0.4448699 1725.8 18055.0 -BF- 1 0 0 0
39 1 E07 E1B 7 8.26 44.9 |||||||| 0.4483116 1711.1 14220.3 -BFR 2 0 0 0
40 1 E08 E1B 8 8.02 45.3 ||||||||| 0.0986165 -1195.5 -9514.2 -BF- 2 0 0 0
45 1 E13 E1B 13 6.57 42.5 ||||||| 0.8008398 -1790.8 -11720.3 -BFR 1 0 0 0
58 1 E26 E1B 26 2.48 48.3 |||||||||| 3.0899644 773.4 1923.1 ---- 0 0 0 0
TIME(s) = 15.368
$ pocket_trk L6.bin -sig E6B -prn 1-36
1970-01-01 00:00:00.0 0.00000000 0.00000000 0.000 0/0 --- BUFF: 2% SRCH: 24 LOCK: 4/ 36
CH RF SAT SIG PRN LOCK(s) C/N0 (dB-Hz) COFF(ms) DOP(Hz) ADR(cyc) SYNC #NAV #ERR #LOL FEC
7 1 E07 E6B 7 13.26 49.5 ||||||||||| 0.4929030 1278.5 17011.3 -BF- 11 0 0 0
8 1 E08 E6B 8 13.10 44.5 |||||||| 0.3146145 -1075.1 -14027.5 -BFR 10 0 0 0
13 1 E13 E6B 13 11.87 46.0 ||||||||| 0.0517586 -1551.3 -18373.5 -BF- 9 0 0 0
26 1 E26 E6B 26 8.55 50.2 |||||||||||| 0.1897424 522.1 4488.0 -BFR 6 0 0 0
TIME(s) = 15.522
- 収録日: 2024年11月7日
- 受信機: Pocket SDR FE4CH(DATAGNSS版)
- アンテナ: Beitian BT-200
- ケーブル: RG58 2メートル
- 収録ソフトウェア: Pocket SDR バージョン0.13
広島市立大学屋上(おすすめ度:★★☆)
GNSS観測局の空いているポートに受信機を接続して収録しました。安定した受信はできたものの、収録時間が30秒しかないために、測位には至りませんでした。
GPS L1C/A信号、みちびきL1C/A信号、Galileo E1B信号を復調してみます。
$ pocket_trk L1.bin -prn 1-32,194-199 -sig E1B -prn 1-36
2024-11-13 02:23:10.0 0.00000000 0.00000000 0.000 0/13 --- BUFF: 3% SRCH: 2 LOCK: 21/ 74
CH RF SAT SIG PRN LOCK(s) C/N0 (dB-Hz) COFF(ms) DOP(Hz) ADR(cyc) SYNC #NAV #ERR #LOL FEC
10 1 G10 L1CA 10 28.19 46.7 |||||||||| 0.2449120 1963.7 55611.0 -BFR 3 0 0 0
12 1 G12 L1CA 12 27.92 45.7 ||||||||| 0.8748685 1214.0 34204.2 -BFR 3 0 0 0
15 1 G15 L1CA 15 27.52 42.5 ||||||| 0.0500557 -2851.5 -78342.9 -BF- 3 0 0 0
18 1 G18 L1CA 18 27.08 38.8 ||||| 0.2512724 -3306.0 -89537.8 -BFR 3 0 0 0
23 1 G23 L1CA 23 26.36 44.4 |||||||| 0.7871624 -1001.1 -26120.4 -BF- 3 0 0 0
24 1 G24 L1CA 24 26.25 43.8 |||||||| 0.3510061 -2562.4 -67143.9 -BF- 3 0 0 0
25 1 G25 L1CA 25 26.18 43.0 ||||||| 0.2311368 3218.6 84415.3 -BFR 3 0 0 0
28 1 G28 L1CA 28 25.76 40.2 |||||| 0.0822586 2753.0 71032.7 -BF- 3 0 0 0
32 1 G32 L1CA 32 25.19 40.8 |||||| 0.1392135 2207.6 55646.8 -BF- 3 0 0 0
33 1 J02 L1CA 194 25.12 42.2 ||||||| 0.3717802 -6.8 -108.7 -BFR 3 0 0 0
34 1 J03 L1CA 195 25.03 40.6 |||||| 0.1736432 -632.9 -15807.0 -BFR 3 0 0 0
35 1 J04 L1CA 196 24.95 43.9 |||||||| 0.9174979 452.6 11324.1 -BF- 3 0 0 0
38 1 J07 L1CA 199 24.50 39.8 ||||| 0.2416195 -184.9 -4495.7 -BF- 3 0 0 0
40 1 E02 E1B 2 24.11 44.3 |||||||| 3.8777989 1487.8 36015.2 -BF- 11 0 0 0
41 1 E03 E1B 3 23.90 43.4 |||||||| 1.2668959 -1252.0 -29851.4 -BF- 10 0 0 0
45 1 E07 E1B 7 22.71 37.0 |||| 0.7894052 1695.3 38543.2 -BF- 10 0 0 0
46 1 E08 E1B 8 22.51 45.4 ||||||||| 2.6074424 520.7 11772.8 -BFR 10 0 0 0
51 1 E13 E1B 13 21.06 40.5 |||||| 1.6390581 -1867.1 -39228.3 -BFR 9 0 0 0
63 1 E25 E1B 25 17.37 41.3 |||||| 3.8822498 -1171.7 -20257.7 -BF- 7 0 0 0
64 1 E26 E1B 26 17.15 37.3 |||| 2.6510517 422.8 7335.8 -BFR 7 0 0 0
68 1 E30 E1B 30 15.99 37.8 |||| 1.5447626 2889.0 46214.2 -BFR 6 0 0 0
TIME(s) = 30.570
みちびきCLAS(L6D信号)、MADOCA-PPP(L6E信号)、Galileo HAS(E6B信号)を復調してみます。
$ pocket_trk L6.bin -sig L6D -prn 194-199 -sig L6E -prn 204-209 -sig E6B -prn 1-36
1970-01-01 00:00:00.0 0.00000000 0.00000000 0.000 0/0 --- BUFF: 4% SRCH: 11 LOCK: 15/ 48
CH RF SAT SIG PRN LOCK(s) C/N0 (dB-Hz) COFF(ms) DOP(Hz) ADR(cyc) SYNC #NAV #ERR #LOL FEC
1 1 J02 L6D 194 15.48 42.8 ||||||| 0.9362705 -4.0 -67.0 -BF- 25 0 1 0
3 1 J04 L6D 196 28.72 46.9 |||||||||| 0.5927748 349.6 10000.1 -BF- 27 0 0 0
6 1 J07 L6D 199 26.77 41.6 |||||| 0.7275055 -162.3 -4374.2 -BF- 25 0 0 0
7 1 J02 L6E 204 26.18 42.6 ||||||| 0.8842673 -4.1 -119.0 -BF- 25 0 0 0
9 1 J04 L6E 206 25.44 46.7 |||||||||| 0.5478091 349.9 8864.1 -BF- 24 0 0 0
12 1 J07 L6E 209 11.37 41.9 ||||||| 0.7971062 -162.3 -1851.2 -BF- 12 0 1 0
14 1 E02 E6B 2 23.75 49.5 ||||||||||| 0.7595063 1283.4 30535.7 -BF- 21 0 0 0
15 1 E03 E6B 3 23.58 48.2 |||||||||| 0.6426327 -1003.6 -23666.8 -BFR 21 0 0 0
19 1 E07 E6B 7 22.66 44.4 |||||||| 0.6984314 1358.7 30765.5 -BF- 20 0 0 0
20 1 E08 E6B 8 22.50 49.8 ||||||||||| 0.3051770 428.3 9634.0 -BFR 20 0 0 0
25 1 E13 E6B 13 21.26 42.0 ||||||| 0.9090890 -1445.9 -30697.7 -BFR 19 0 0 0
27 1 E15 E6B 15 20.85 38.4 ||||| 0.9168818 -2486.0 -51855.3 -BF- 18 0 0 0
37 1 E25 E6B 25 18.36 47.3 |||||||||| 0.2815602 -858.7 -15714.2 -BF- 16 0 0 0
38 1 E26 E6B 26 18.18 43.4 |||||||| 0.3408959 437.3 7997.8 -BF- 16 0 0 0
42 1 E30 E6B 30 17.20 42.4 ||||||| 0.6719913 2334.9 40155.6 -BF- 15 0 0 0
TIME(s) = 30.711
- 収録日: 2024年11月13日
- 受信機: Pocket SDR FE4CH(DATAGNSS版)
- アンテナ: Beitian BT-200
- ケーブル: RG58 2メートル + 2メートル
- 信号スプリッタ: INSTOCK GPS410 (4 way)
- 収録ソフトウェア: Pocket SDR バージョン0.13
シェルスクリプトで効率的に信号解析
例えば、次のようなシェルスクリプトを作成すれば、効率的に信号解析できるかもしれません。関数psdr_exec
には、収録ファイル名、信号名、PRN番号範囲を与えます。信号名とPRN(pseudo random noise)番号範囲との組み合わせは、Pocket SDRのtest
ディレクトリにあるシェルスクリプトを参考にしました。trap
でCtrl
+C
による中断を受け付けるようにしています。
#!/bin/bash
set -eu
psdr_exec()
{
FILE=$1
SIG=$2
PRN=$3
echo $SIG \($FILE\)
pocket_trk $FILE -sig $SIG -prn $PRN
}
term()
{
echo terminated.
exit 0
}
trap term 2
psdr_exec L1.bin L1CA 1-32,193-202
psdr_exec L1.bin L1CB 202-206
psdr_exec L1.bin L1CA 120-158
psdr_exec L1.bin L1S 183-186,189
psdr_exec L2.bin L2CM 1-32,193-201
psdr_exec B1I.bin B1I 1-62
psdr_exec B2I.bin B2I 1-18
psdr_exec G1.bin G1CA -7-6
psdr_exec G2.bin G2CA -7-6
psdr_exec L6.bin E6B 1-36
psdr_exec L6.bin E6C 1-36
psdr_exec L6.bin L6D 193-202
psdr_exec L6.bin L6E 203-212
psdr_exec B1Ia.bin B1I 1-62
psdr_exec B3I.bin B3I 1-62
psdr_exec E1.bin E1B 1-36
psdr_exec E1.bin E1C 1-36
psdr_exec E5b.bin B2BI 19-50
psdr_exec E5b.bin E5BI 1-36
psdr_exec E5b.bin E5BQ 1-36
psdr_exec G1OC.bin G1OCD 1-27
psdr_exec G1OC.bin G1OCP 1-27
psdr_exec G3OC.bin G3OCD 1-27
psdr_exec G3OC.bin G3OCP 1-27
psdr_exec L1a.bin B1CD 19-50
psdr_exec L1a.bin B1CP 19-50
psdr_exec L1a.bin E1B 1-36
psdr_exec L1a.bin E1C 1-36
psdr_exec L1a.bin I1SP 1-14
psdr_exec L1a.bin I1SP 1-14
psdr_exec L1a.bin L1CD 1-32,193-199
psdr_exec L1a.bin L1CP 1-32,193-199
psdr_exec L5.bin B2AD 19-50
psdr_exec L5.bin B2AP 19-50
psdr_exec L5.bin E5AI 1-36
psdr_exec L5.bin E5AQ 1-36
psdr_exec L5.bin I5S 1-14
psdr_exec L5.bin L5I 1-32,193-199
psdr_exec L5.bin L5I 120-158
psdr_exec L5.bin L5Q 1-32,193-199
psdr_exec L5.bin L5Q 120-158
psdr_exec L5.bin L5SI 184-186,189
psdr_exec L5.bin L5SQ 184-186,189
今後、信号収録したら、その場で内容確認します。写真撮影と一緒ですね。
おわりに
高須先生が3月末に公開されたPocket SDR収録データに感銘を受け、私もデータ公開することにしました。高須先生のデータは、山梨の清里(きよさと)で収録されたものでした。データ解析して、35年くらい前にこの周辺を友人達とドライブし、テニスやランニングをして、清泉寮(せいせんりょう)でソフトクリームを食べた、懐かしい思い出がよみがえりました。
私のデータは、30秒間程度の収録のため、測位や信号解析には不十分でした。また、自ら用意したUSB-Cケーブルのグレード不足や収録PCの容量不足のために、データの一部分が欠損していました。今後の信号収録では、しっかりと事前準備と予行演習をし、10分間はデータ収録して、その場で内容確認するようにします。
関連記事
- SmartCom 2024(アーヘン)と6GEM(バッファトベルク) 13th November 2024
- Pocket SDRすごい(リアルタイム測位機能) 13th October 2024
- Pocket SDRを用いたGalileo E6B信号の受信 27th January 2023
- リフローでやらかしました 19th January 2023
- Pocket SDRハードウェア製作(第3報) 30th September 2022
- Pocket SDRハードウェア製作(第2報) 14th September 2022
- Pocket SDRハードウェア製作(第1報) 4th September 2022
- PocketSDRすごい(パーツ購入編) 9th April 2022
- PocketSDR APにてbladeRFを使いたい(その2) 16th March 2022
- PocketSDR APにてbladeRFを使いたい 5th March 2022
- PocketSDRすごい(スナップショット測位編) 23rd February 2022
- PocketSDRすごい(FFTWによる高速化) 19th February 2022
- PocketSDRすごい(L6信号デコード編) 19th January 2022
- PocketSDRすごい(pocket_trk編) 28th December 2021
- PocketSDRすごい(pocket_acq編) 4th December 2021