RTL-SDR と V-Dipole アンテナで作る地上局 ー RSP-01 の電波を受信するために

## はじめに

　趣味で宇宙開発を行う団体「リーマンサット・プロジェクト」がお送りする新春アドベントカレンダー2021です。本記事で最終日になりました。
　リーマンサット・プロジェクトは「普通の人が集まって宇宙開発しよう」を合言葉に活動をしている民間団体です。他では経験できない「宇宙開発プロジェクト」に誰もが携わることができます。興味を持たれた方は https://www.rymansat.com/join からお気軽にどうぞ。

## この記事は

　リーマンサット・プロジェクトは宇宙で自撮りするキューブサット「RSP-01」を開発しました。２月にアメリカのアンタレスロケットで打ち上げ ISS まで運ばれ、日本の「きぼう」実験棟から人工衛星として放出される予定です。
![RSP-01FM.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996993/b3e7882c-af23-3ec8-73f5-1c0f8ff04860.jpeg)
放出後「RSP-01」はアンテナを展開しビーコンを送信します。その後、地上局からのコマンドにより自撮り画像やビーコン・テレメトリを地上に向けて送信します。「RSP-01」の電波を受信するシンプルな地上局の構成、同じようにビーコンを送信している実際の衛星の電波を受信したメモです。
### 追記 : RSP-01 は ISS から放出され人工衛星となりました
最新情報は こちら https://www.rsp01.rymansat.com/ からどうぞ。
### RSP-01 は 2022 年 6 月 10 日 地球に落下して流れ星になりました。

## 人工衛星の電波を受信するには

人工衛星の電波受信というと難しそうですが、飛来時刻に合わせれば比較的簡単に受信することができます。必要なものは、
　・受信機
　・アンテナ
　・パソコン、人工衛星追跡アプリ
市販のもので構成してみます。
#### 受信機
　アマチュア無線で衛星通信をやっている方々は専用のトランシーバーなどを使用しています。ここでは安価なソフトウェアラジオとして多く使われている RTL_SDR を使います。
![RTL-SDR.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996993/a8752674-e248-5a16-0b69-2937a27cd21b.jpeg)
[AMAZON のお店](https://www.amazon.co.jp/RTL-SDR-COM-RTL2832U-Sampling-%E3%82%A2%E3%83%AB%E3%83%9F%E3%83%80%E3%82%A4%E3%82%AD%E3%83%A3%E3%82%B9%E3%83%88%E3%82%B1%E3%83%BC%E3%82%B9-RTL-SDR-COM%E6%AD%A3%E8%A6%8F%E5%93%81/dp/B0722LZFWN/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2N84T9FI0QEKC&dchild=1&keywords=rtl-sdr&qid=1612061838&sprefix=RTL%2Caps%2C351&sr=8-5)で入手できます。中国通販Aliexpress ではもう少し安くなります。

PC側のアプリにはもっともポピュラーな SDR# です。ここからダウンロードできます。
　https://airspy.com/download/
RTL-SDR を使うにはのドライバが必要です。インストール、設定方法はこちらのクイックスタートガイドのページを参考にします。
　https://www.rtl-sdr.com/rtl-sdr-quick-start-guide/

### アンテナ
　人工衛星は地球の周りを回って高速で移動するので、一般的には動きに合わせてアンテナを衛星の方向に向けて追尾します。V-Dipole アンテナはビームがブロードなので固定して使用することにします。
![VDP-alimix3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996993/e113c680-0d80-9129-86d3-2ecefc8f40b3.jpeg)
アンテナはケーブルも含めた一式が Aliexpress で購入できます。[私が購入したお店](https://www.aliexpress.com/item/1005001304980295.html?spm=a2g0o.productlist.0.0.72bf6fb9muSnza&algo_pvid=1a75644a-a74a-4f05-9534-a7fe5562878c&algo_expid=1a75644a-a74a-4f05-9534-a7fe5562878c-0&btsid=0b0a556416120626025111245ee371&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_)で、発注してから１０日くらいで届きました。

### 追記
V-Dipole アンテナをホームセンターで入手できる材料で簡単に製作する記事を投稿しました。
[CubeSAT の電波を受信する V-Dipole アンテナを半田付け無しで作る](https://qiita.com/pisamatsu/items/5f4c5cbeccc05c4ed55f)

### 人工衛星追跡ソフト
人工衛星の軌道要素（TLE）により、予報・追跡・機器のコントロールを行う PC アプリです。フリーのものが使用できます。
　・日本で開発された [CALSAT32](http://jr1huo.my.coocan.jp/jr1huo_calsat32/index.html)
　・欧米で良く使われている [Orbitron](http://www.stoff.pl/)
私が使い慣れている Orbitron を使います。

## 受信の準備
パソコンに RTL-SDR のドライバを入れて、SDR# をインストールします。
アンテナのロッド長を 50cm にして 衛星の周波数帯 145Mhz に合わせます。人工衛星は一般的に南北方向に移動するので、衛星の軌道傾斜角に合わせてアンテナのビームは北からやや東向きになるように設置します。
![Quiita1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996993/c76b4cfb-806c-e083-ed6e-c509e1f77407.jpeg)
アンテナは雨対策のためカバーをかけ、ビニルテープなどで保護します。

## 衛星を選ぶ
RSP-01 と同程度のビーコンを送信している衛星がたくさんあります。この中から中国が打ち上げた CAS-4 シリーズの衛星を選びます。CAS-4A、B と２機がほぼ同じ軌道を回ってます。
![RSP-CAS4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996993/5b0b0163-182a-fc6f-1f1c-dfe3d7c2fba3.jpeg)
資料はこのあたりのものがまとまってます。
https://amsat-uk.org/satellites/comms/cas-4a-and-cas-4b/
本家中国の CAMSAT の[プレスリリースはここ](https://ukamsat.files.wordpress.com/2017/03/camsat-cas-4a-and-cas-4b-news-release.pdf)
このほかにも、やはり中国の XW-2(CAS-3) シリーズが使えます。こちらは A～F の６機あります。
https://amsat-uk.org/satellites/comms/camsat-xw-2/
運用周波数などの詳しい情報は[こちらのドキュメント](https://ukamsat.files.wordpress.com/2015/05/xw-2_cas-3_-satellites-frequency-allocation.pdf)
テレメトリの解読情報は[こちらのドキュメント](https://ukamsat.files.wordpress.com/2015/05/xw-2-cw-telemetry-encoding-format.pdf)


## 実際に受信してみる
Orbitron で飛来予報を確認、 CAS-4A を追跡しながら
![OrbitronCAS-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996993/cc3d2842-19b3-0ebd-c37a-6a0c48b0eeeb.jpeg)
SDR# で受信
![20210130122145.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996993/f91553a8-91a9-96e1-031b-981827a6b111.jpeg)
CAS-4A のビーコン周波数付近を拡大すると
![CAS4beakon.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996993/3c910bee-04d9-7965-50c7-98b9e2e78648.jpeg)
　衛星が高速で移動するのでドップラーシフトを伴った信号が確認できます。このきは衛星の高度が 40° 程度で、いくつかのパスを受信してみると飛来方向にもよりますが、高度が 30° くらいから受信できます。信号は保存して繰り返して再生できますので CW 信号表を見ながらコールサインを確認し、テレメトリを解読することもできます。
リーマンサットの「RSP-01」よりも出力の小さい CAS-4A の信号が明瞭に受信できたので「RSP-01」の信号もこの組み合わせで受信できるはずで、小さな地上局として運用できそうです。
### 追記: RSP-01 受信成功
リーマンサットの「RSP-01」は 3月14日に ISS から放出されて人工衛星になりました。しばらく送信出力が弱くこのシステム構成では受信できませんでしたが、3月28日管制局で予備の送信機に切替えコマンドを送出、切替成功して復旧しました。以降、安定して受信できるようになっています。
![20210331081511.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996993/396106e2-825f-bd2f-2447-526322674f9f.jpeg)

## これから
　ハード寄りで Quiita らしくないテーマかもしれません。ちいさな地上局を運用するための開発したいテーマを挙げて Quiita の趣旨に合わせておきたいと思います。
#### 自動受信
　RSP-01 が日本上空に飛来して受信可能な時には全て受信・記録しておきたいことがあります。主要な人工衛星追跡ソフトには DDE で高度・方位、ドップラーシフトデータを渡す機能があります。これをもらって、たとえば高度30°以上になれば受信・記録するように SDR# をコントロールするプラグインを作れば出来そうです。このあたりの Orbitron の DDE サンプルが参考になります。
https://github.com/nebarnix/DDE2Hamlib
既存の追跡ソフトを使わないで一から構成するには Python の衛星追跡パッケージ sgp4 が使えそうです。
https://pypi.org/project/sgp4/
RTL-SDR をコントロールパッケージは
https://pypi.org/project/pyrtlsdr/
#### 信号処理
　コールサインの検出、テレメトリの自動解析は CW 音声の DECODE パッケージがあるのでこれをうまく使えば実現できそうです。
https://pypi.org/project/pyMorseTranslator/
復調された音声信号での解析は PC オーディオを経由してのものとなり再生と同じ時間がかかることになります。
　受信した信号を見るとたくさんのスプリアス、ノイズがあることがわかります。スプリアスは固定パターンなので FFT を使って簡単に除去できそうな気がします。ノイズすれすれの信号で存在が明確に確認できないときには、相関やドップラーシフトの情報を使って検出できるだろうか。
　SDR# などのアプリで記録される信号は IQ フォーマットなので、これを音声にデコードしたり、様々な解析・信号処理するのには、結局のところソフトウェアラジオを構成するような知識が必要になります。リアルタイムではなくファイルデータからの処理なので実験しやすいところですが。
ここは定番の GNU radio で実験してみることに。
https://www.gnuradio.org/
Tutorial そして、このあたりの実例を参考にして進められるかな。
https://qiita.com/tshimizu8/items/bafa3d33b46bcd343bda
https://arachnoid.com/PLSDR/index.html

いずれも機器制御プログラムをメインにやってきた老年プログラマには難易度が高いですね。まずは、優先度の高い自動受信から始めてみようと思っております。