2019年1月24日木曜日

IQ FFT


 IQファイルを処理して遊んでる。

 任意の周波数範囲を切り出して表示、という機能を作った。
 上下方向の中央が437.075MHz、上端が+50kHz、下端が-50kHz。MaxEle後のデータなので、赤方偏移している。

 横軸は1秒100ピクセルになっている。
 短点が5ピクセルだから、0.05秒か。


 IQファイルはファイル名にタイムスタンプもあるので、±1秒程度の精度でPC時間を得られる。
 衛星のTLEがあれば、想定されるドップラーシフトの形も書き込める。
 実際のドップラーシフトと比較して、時間シフトと周波数シフトを行えば、時間シフトなら別の衛星と取り違えている可能性が高く、周波数シフトなら送信側の周波数ズレの可能性がある。
 みたいなことができたらいいんだけど、かなり面倒だなーと思ってる。

 しかし、データ処理に恐ろしく時間がかかる。1分間のデータを処理するのに2.5分ほどかかる。
 ちょっとしたプログラムの修正でも、確認に3分近くかかると、かなり面倒。
 GUI化したとして、「マウスを動かしましたね? 3分待ってください」は流石にダメだろう。うまいこと高速化する方法を考えねば。


 最終的に、複数のIQファイルを突っ込んで画像化する、というところまではやりたいが、1秒100ピクセルとして、10分のウインドウなら長辺6万ピクセルという途方もない解像度になってしまう。どうしたもんか。

 試しに、1枚の画像に2分間のCWを表示してみた。


 左端から右端まで30秒分。ドップラーシフトがあるので、信号は重ならずに表示される。
 表現方法としては面白いかもしれんが、実用性は悪いなぁ。
 右端から左端に飛ぶのでなく、折り返すように表示すると、ジグザグした感じに表示される。モールスのつながりとして見える点は良いけど、ドップラーシフト量が直感的に把握できないのはよくない。
 全体的なシフト量を見るときは1個1個のモールス信号は潰してしまって、モールス信号を読むときはジグザグに表示、みたいな感じで使い分けるべきかなぁ。

0 件のコメント:

コメントを投稿