nn-morse2022/11/26 18:46

ディープラーニングを使ったモールス信号の解読,次は学習を体感すべく,PD0WM局のLSTMによる実装nn-morseを試した。

機械学習は教師データが命だが,モールス信号だと実データを用意しなくても, プログラムで トーン周波数,送信速度,信号/ノイズ強度を変えたサンプルデータを合成すれば良い.見本になっている。

torchな環境を構築して,作者が提供するモデルを使って,実データ/録音したwavファイルを食わせた/再生したら,デコードできない 😟

コードを眺めると教師データのトーン周波数が 100-950Hz だったので,実データに合わせて 200-2800Hz として再学習したらLOSSが0.3あたり(2000 step)でサチった。このアタリはTensorBoardを使ってプロット更新をモニタリングできたので,簡単だった。

ちなみに,学習に要する時間は,WillemさんのGPU(Pascal世代)では半日と書いてあったが,自分のCPU(core i5)では5日かかった。 学習で数時間回したらCPU温度計が真っ赤になったので,長期・連続運転を見越して,Turbo Boostを無効化してCPU温度を下げておいた。計算にはメモリも必要みたいで,主記憶16GBのうち7.4GBを使用していた。

新モデルを以下の3衛星でベンチマークしたら,解読の正答率がsatnogs-clientより高くなって良かった。

HUS-SAT1 耳コピーだと後半部は難しいよね

・・・ 0JS1YHSHSUSAT104.19V0.10A8.46DEEEEETETTTE ・・・

KOSEN-1 符号:ハイフンを教えるのを忘れてた

・・・ R5YGJ KOSENV1 S13E1E 93 AE S21E 00 00 00 ・・・

KITSUNE データ部はデタラメですね

・・・ 3G6YNH KITSUNE D390A534 ・・・

本日の衛星: JO-97で交信,FALCONSAT 3をデコード!PSLV-C54で打ち上げられた衛星(Thybolt)は予約して寝ます。

Airspyの新ドライバ2022/11/23 10:05

Libre Spaceのコミュニティで新ドライバにてgainmodeが追加されたことを知った。 従来のドライバ:SoapyAirspyだと,ゲイン設定が難解なマニュアルのみで linearity,sensitivityなモードを利用した簡易設定ができなかった。

$ SoapySDRUtil --probe
...
----------------------------------------------------
-- Peripheral summary
----------------------------------------------------
  Channels: 1 Rx, 0 Tx
  Timestamps: NO
  Other Settings:
     * Bias tee - Enable the 4.5v DC Bias tee to power SpyVerter / LNA / etc. via antenna connection.
       [key=biastee, default=false, type=bool]
     * Bit pack - Enable packing 4 12-bit samples into 3 16-bit words for 25% less USB trafic.
       [key=bitpack, default=false, type=bool]
     * Gain Mode - 0 = linearity, 1 = sensitivity, 2 = manual
       [key=gainmode, default=0, type=int]

トライしてみたら,Pi4が[INFO] SoapyAirspy::rx_callback: ringbuffer write timeout なるエラーっぽいメッセージを吐いたので,GitHubにissueを作成して,作者とPE0SAT局からのアドバイス(主にラズパイのパフォーマンス設定)を試したら,USBケーブルの交換が効いて発生回数が激減した。問題は自分のハードにあったというオチだった。

ついでに書くと,放置していたOverrun,Underflowな問題は,Airspy MiniをUSB3端子に接続することで解消できた。

morseangel2022/11/19 17:44

morseangel

morseangelはSDRangelの作者さんによる深層学習を使ったモールス信号のデコーダ。いま話題の深層学習によりCW解読が劇的に変わるか!?に興味があり,試してみた。

morseangelを動かすにはCPUだけでもOKだ。添付画像は実際の交信を食わせた結果で,解読するには細かい周波数チューニングが必要で,入力〜表示に遅延あり.で微妙な手応えだった。やっぱり実行にも それなりのGPU が必要なのかしら。

Hamlib 4.52022/10/30 13:07

最新版がリリースされたのでwindows 64bit版を試したら,IC-9700をgpredictのDuplex TRXとして制御できる!ように直ってた。

本日の衛星: ISS, XW-2A, XW-2C, RS-44で交信。

その他の衛星:GREENCUBEがデジピータとして開放されてます。当局の設備ではデコードできてないので,トライしません。あとNEXUSのSSTVを受信してカメラ画像を受像できた。

Pi4でtmpfsが溢れた2022/10/26 18:36

受信したデータをSatNOGSにアップロードに失敗!したと思ったら,Pi4のtmpfsが100%になってた。

LRPTの受信で/tmp/.satnogs/data/completeなるディレクトリが必要なのだが,rc.localで作成すると失敗する。どうやらBullseyeになってrc.localの挙動が変わったらしい。

安直にsatnogs-setupで環境変数:"satnogs_complete_output_path"を定義して回避したのだが,PNG画像, oggファイル, デコード結果もファイルされてRAMディスクが一杯になっていた。聞いてないよー!だ。

対策として,find で7日以上古いファイルを検索・削除するよう,crontabで定期的に実行し始めた。いまのところ再発してない。