こんにちは、M2の前田です。

広報担当に催促されていたにも関わらずほったらかしにして、知らないうちに広報から怒られが発生していたようです。(すみません)

さて、突然ですが私は4年前種コンの記事でこのようなことを綴っておりました(当時B1です。懐かしいですね)

 

 _人人人人人人人人人人人人人人人人人人人人人人人人人人_

   ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

 

アメリカで打ち上げることはともかく、世界的なパンデミックで渡航まで不可能とまでは思っていませんでした。完全にフラグの一文です。まぁなにはともあれOPUSATIIは「ひろがり」という名前で周知されることとなり、今は元気にミッションを実施しております。

 

運用の様子などはこれまでのブログで紹介されていることですし、技術的な記事を書いてもいいかなと思ったので、今日はメインミッションの「アマチュア無線帯での高速通信技術実証」のために我々がつくった新たな符号化方式に対応させたデコードソフトの話でもしようかと思います。デコードソフトはSDR ConsoleなどのSDRソフトなどから得られるAFを入力として、「パケット検出→シンボルの取得→復号」の流れで動いています。復号はライブラリを使用しているのでその前までの自作した部分の仕様の一部を紹介します。

パケット検知のために、衛星はパケットの先頭にプリアンブルと呼ばれる既知の信号を必ず入れます。受信側はプリアンブルが分かっているのでプリアンブルと受信信号の相互相関関数を計算するとピークが検出されるため、パケットを発見することができます。

       このように!(開発当初に雑につくったグラフから)

 

この時のプリアンブルはパケットの内容と被っていなければいいのですが、今回は適当にLFSRを組んで生成しました。

開発当時調べたところ、プリアンブルというとPLLをロックするために送る0/1の繰り返しが続く信号のことを言うこともあると思うのですが(AX.25を送信する場合はこっちを送信しています)、私の理解では、こちらは今回は1ビット単位で逐次シンボルを取得するための手法なのかなと思っています。一方こちらで新たに実装したものはパケットを検出したらシンボルレートに従って1パケット分のシンボルをまとめて取得します。

次はシンボルの取得ですが、前述のとおり単純にシンボルレートに従ってシンボル値を読み取って、0/1(4値変調なら00/01/10/11)を判定していきます。我々が今回実証に用いている符号化方式においてパケットは固定長なので、その分のビット列が得られたら復号ライブラリに投げて終了、となります。ここで、より低いBERを獲得するためにも何かしらのタイミング同期アルゴリズムを実装すべきか迷っていたのですが、情報を集めるうちにタイミング同期を実装するかどうかで大きな影響がないと思われたので、今回は実装していません(難しそうだったのもあります...)。しかし、ちゃんとシンボルは2レベル(GMSK)/4レベル(RC4FSK)に分かれていますし、デコードもできています。ここは不安があった部分だけに、通信が成立してほっとしています。

ここまでの運用の経験から言いますと、デコード性能に対して一番悪影響があるのは衛星の回転で通信に不利な姿勢をとる場合、そして周辺のダントラ無線でした。

 

あとは運用に必要だったり、実装上の都合であったり、SSSRC地上局PCの環境に合わせたり...諸々を組み合わせて我々向けにしてデコードソフトが成り立っていますが、デコードするための基本的な部分はこういったところです。

いかがでしたか?

 

特に締めの文言も思い浮かばないので、前の2人がおすすめの本を紹介していた流れで私もおすすめを紹介して終わります。

私は大体古本屋でなんかよさげな本を適当に漁って読むのですが、最近はまった作家さんがおり、その方の小説を選んで読んでいるのでそちらを紹介します。

宮下奈都:「スコーレNo.4」「たった、それだけ」「終わらない歌」

私は何に対しても感想などをうまく語れず大体「よかった٩( ᐛ )و」と言ってるので、気になる方は読んでみてください。

それでは。