最近キーボードがちょっと調子悪い。Bluetoothのやつだけど、デバイスの省電力モードからの復帰に失敗する、みたいな変な故障モードが何回か起きてる。気がする。
裏面に(C)2009って書いてあるから少なくとも発売開始から10年以上立ってるモデル。何回か飲み物こぼしたりとかいろいろやってるのに長持ちなもんだ。このメーカー、昨今はキーボード関係で集団告訴されてたり、見る影もないけど。カリスマ経営者がパワハラやってた時代は少なくとも品質管理は妥協してなかったんだろうなぁ。
一時期いろいろキーボード買ってた時代があって、結局使ってないわけだが、予備のキーボードは色々あるので、まだ慌てる時間じゃない。気が向いたら使いやすそうなの買おう。いつになるやら。
***
SDR、ラッパーを経由してC#で叩くより、rtl_sdr.exeを直接呼ぶほうが楽じゃないか、という気がする。そもそも自分でデータ扱いたいのは適当なヘッダ/フッタを追加したいのが理由だけど、ちょっとした情報(開始時刻/中心周波数/サンプリングレート)くらいならファイル名に突っ込んでもいいわけで、サンプリングデータを記録するだけならrtl_sdrで良い。
ITUが64bitに拡張したRIFF/WAVEを提案していたらしくて、BS.2088という規格名でPDFが出てる。業務用で使えればいいよね、みたいな感じらしいが。たぶん素のWinでは開けないはず。そもそもSDRの複素数なんて耳で聞いてどうにかなるようなデータでもないので、互換性とかは特に必要ない。場合によっては読み書きにWAVE用のライブラリ使えて便利かな、という部分もあるのかもしれないけど。
試しにrtl_sdrを長時間動かしてみたら、5GB超えてもエラー出ずに動き続けてた。ソース読むとfopen使ってるけど、64bit対応してるらしい。コンパイラで透過的に64bit対応やってるのかな? 8bit2ch2.048Mspsだと17分で4GBくらいになる。700kmなら4GB超えるか超えないか、400kmなら十分下回る、くらいかな。
rtl_sdrはシグナルを受け取ると終了するのだけど、コマンドリストを見る限り、それ以外で終了させる方法は無いらしい。一定時間とか一定サンプルで終了してくれれば自動処理が楽なのに。Linuxとかだとtimeoutコマンド経由すればいいのだけど、コマンドプロンプトだとそういう機能はなさそう(timeoutは別の機能になるらしい)。バッチ処理みたいな使い方はLinuxに一日の長がありそう。シェルスクリプトとかそういうの使えば色々できるんだろうけど。あるいはPython使うとかすれば。
***
久しぶりにキューブサットの受信。古いやつはSSOの相乗りが多いかな。たいていはトワイライトSSOな感じ。深夜に思い立って受信しようと思ってもパスがない。真夜中に運用やらなくてもいいのは、衛星オペレーターからすれば楽なのかな。XI-VがハイヌーンSSOで、日本時間の1時のパスと次のパスが日本あたりを通る。たぶん多少は移動してるんだろうけど。/* ハイヌーンSSOとかトワイライトSSOってググってもほとんど出てこないんだが、正しい呼び名って何なんだ? */
とりあえず、8bit2chのバイナリで様子見。タイムスタンプがないけど、それはRIFF/WAVEだって同じだし。当面はファイル名で管理する予定。ドングルの横にマイコン置いて300kHzくらいの正弦波出したらIQに加算できないかな? GPSの1PPSとかNMEAを適当に変調してIQデータに上乗せできたら後処理でいろいろできそう。分離するの面倒だろうけど。
クリスタルを交換していないドングルなので、長時間受信してるとものすごい動く。ものすごいと言っても、1.5kHzくらいだけど。1.5分くらいでおおよそ安定してるかな。完全に止まるには至らないけど。
右端のチャープみたいなやつがXI-Vだと思う。左の明るいのは地上由来のノイズ、その少し右の細い白線はDCオフセット成分。初期のキューブサットは出力低いしデューティー比も低いので受信してもあんまりおもしろくない。実験用の構成だから同軸引き回してるしそもそもアンテナもモノポールだし。暖かくなったら430の3エレくらい外に置きたい。15エレのトラッキングとかが理想だけど。大物ハードウェアは作るのが大変だからなぁ。。。
4時頃にSEEDS-IIとCUTE-1.7+APD IIのウインドウがある。CWは0.21MHz差なので、2.048Mspsなら両方とも受信できる。忘れないようにしなきゃ…… いつも忘れるからなぁ。自動でスケジューリングしてrtl_sdr起動して、ウインドウ終わったらシグナル送って、みたいなモノを早く用意しなければ。
XI-Vのデータ、バイナリで3.8GiB、ZIP圧縮で2.91GiB、くらい。さすがに雑音データなので圧縮率悪い。前後サンプルの差分を取るだけでも圧縮率上がるんだろうけど、手間がかかるからなぁ。とはいえ、ただでさえ空きの少ないHDDがこれ以上圧迫されると。。。自動受信とか始めるとどんどんデータ増えるし、そのあたりも考えておかないと。
***
追記:2021-02-11
rtl_sdr、-nでサンプル数を指定して終了させられる。ただし、内部では1サンプルあたり2ch分をインクリメントしているらしいので、おそらく2^31-1未満までしかカウントできず、ブロックリードしたあとで判定しているので、境界値に近い数字を指定すると終了できなさそうな気がする。安全目にサンプル数を指定すると、だいぶ短い時間になってしまうので、衛星相手だと使いづらいかな。
0 件のコメント:
コメントを投稿