BPSK対応 新Soundcard_Modem(SCM)


● (No.859) BPSK対応 新Soundcard_Modem(SCM) (2015年2月14日)
 ------------------------------------------------------

BPSK信号に対応した新Soundcard_Modem(SCM) が、UZ7HO局により開発されました。
sm2ch78.zip, http://uz7.ho.ua/packetradio.htm

最初、この新SCMソフトのインストールに手間取りました。自局の セキュリティ
ソフト AVASTが、このソフトをウィルス感染と見間違い、ブロックしてしまうの
です。"Win32:Evo-gen[Susp]" という表示にドキッとしてしまいますが、これは
AVAST特有の症状で各所で報告されています。しかし未だに改善されていません。
対症療法としては、SCMフォルダを AVASTスキャンからの除外として設定します。
(後日、以下に述べるようにこの件は SCM のバージョンアップで解決しました。)

さて、今朝(8.Feb.2015)の QB50p2衛星のパス(10:43JST) で受信テストをしまし
た。 最初に SCM の設定画面で、"BPSK AX.25 1200bps" を選択します。UZ7HO局
によると、Special/non-AX25衛星の受信の場合は、Settings-Modems の設定で、
non-AX25 filter にチェックを入れて、通常の衛星を受信する場合は、non-AX25
filter のチェックを外します。(補足参照) そして、soundmodem.ini の記述で
RawPktMinLen の値を大きめ (例: NRMonitorLines=1000) にするとよいというこ
とです。衛星受信は、衛星からの信号に合わせながらウォーターフォール画面の
中の赤青旗をドラッグし移動させます。デコード結果は大変良好でした。

UZ7HO局によると、「PSKモードは FSKモードより広い帯域を持っているので、SCM
"Default settings" の設定を ON にしてフィルターを広くとるように。」 という
助言をいただきました。最初に、QB50P2 (EO-80) の BPSK信号をテスト受信して
みましたが、次に QB50p1/FUNcube3 (EO-79) の BPSK信号をこのデフォルト設定
にして受信してみました。心持ちデコード率が上がったように思います。

先程、SoundcardModem(SCM)プログラムをインストールする際に、AVASTセキュリ
ティソフトが、この SCMプログラムをウィルス感染と見間違ってブロックしてし
まうということを書きました。その原因が UZ7HO局により解明され解消しました。
SCM をコンパイルするコードに、現在は使っていない "Reed-Solomon algorithm"
(リードソロモンアルゴリズム)というソースコードが含まれていて、このコード
はウィルスに似たコードなので、AVAST がそれを誤認してしまうということです。

リードソロモンアルゴリズムは、通信の誤り訂正符号を持ち、かなり高度な内容
を含む訂正能力の高い理論の一種で、現在、各種デジタル機器にも使われている
アルゴリズムです。 AVASTセキュリティソフトは、これをウィルスと誤認してし
まいますが、他のセキュリティソフトではその報告はありません。

この誤認の元となったソースコードを除去し、さらに新たにBPSKモードにも対応
したのが新SCM, Ver0.74b です。QB50p1衛星のBPSK信号(8.Feb.2015, 22:36JST)
を良好にデコードできることが、右下図のように確認できました。


  


SoundModem by UZ7HO Ver 0.73b

1: <NON-AX25 frame Len=128> [10:47:29R]
1: <NON-AX25 frame Len=122> [10:47:38R]
1: <NON-AX25 frame Len=128> [10:47:39R]
1: <NON-AX25 frame Len=122> [10:48:08R]
1: <NON-AX25 frame Len=128> [10:48:09R]
1: <NON-AX25 frame Len=122> [10:48:18R]
1: <NON-AX25 frame Len=122> [10:48:38R]
1: <NON-AX25 frame Len=122> [10:48:48R]
1: <NON-AX25 frame Len=128> [10:48:49R]
1: <NON-AX25 frame Len=122> [10:49:28R]
1: <NON-AX25 frame Len=128> [10:49:29R]
1: <NON-AX25 frame Len=122> [10:49:38R]
1: <NON-AX25 frame Len=128> [10:49:39R]
1: <NON-AX25 frame Len=128> [10:49:49R]


Winsock RemoteHost: 127.0.0.1
Winsock RemotePort: 8000

*********************************** 
***  Connect AGW Packet Engine  *** 
*********************************** 
start monitoring using raw frames (KISS Mode)
total number of ports: 1
Port1 with SoundCard Ch: A


2015-02-08 01:47:29.650 UTC: [131 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   98 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 07 1F D8 19 00 16 21 02 00 2C 00 00 00 59 02 AE 
  21 > 02 AB 02 FF 03 E2 02 9B 01 F2 00 45 01 61 01 AE 02 00 00 00 
  41 > 00 00 20 C0 D6 54 02 00 09 03 00 02 04 00 82 05 8B 5F 49 E3 
  61 > 69 67 77 01 18 F5 AF C4 00 00 00 00 00 00 58 03 03 08 36 03 
  81 > 00 00 00 00 00 00 78 00 06 00 05 00 27 00 76 01 05 00 
..7..リ...!..,...Y.ョ.ォ.
________________________________________________________________________________

2015-02-08 01:47:38.690 UTC: [125 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   92 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 B2 01 7E 01 9E 00 FB 01 18 01 CE 02 55 02 05 02 
  21 > 00 00 51 02 00 00 4A 02 42 06 82 07 80 07 5F 20 CB 00 D2 02 
  41 > 02 02 0E 01 1A 01 02 00 00 00 0A 00 0B 00 0C 00 04 00 0A 00 
  61 > 0B 00 0A 00 09 00 00 04 03 01 9F 09 3F 06 3F 0A 9F 03 3F 09 
  81 > 77 00 00 77 25 41 00 00 00 00 00 00 
..7イ.~
________________________________________________________________________________

2015-02-08 01:47:39.600 UTC: [131 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   98 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 07 29 D8 19 00 20 21 02 00 2C 00 00 00 59 02 AE 
  21 > 02 AB 02 FF 03 E2 02 9B 01 FE 00 43 01 63 01 AE 02 00 00 00 
  41 > 00 00 2A C0 D6 54 02 00 09 03 00 02 04 00 82 05 8B 5F 49 E3 
  61 > 69 67 77 01 18 F5 AF C4 00 00 00 00 00 00 58 03 03 08 36 03 
  81 > 00 00 00 00 00 00 78 00 06 00 05 00 27 00 76 01 05 00 
..7.)リ.. !..,...Y.ョ.ォ.
________________________________________________________________________________
2015-02-08 01:48:08.750 UTC: [125 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   92 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 90 01 59 01 9E 00 FE 01 18 01 C0 02 55 02 04 02 
  21 > 00 00 50 02 00 00 48 02 D7 06 00 07 F9 05 4C 20 6F 00 73 02 
  41 > E2 00 9E 00 1A 01 03 00 00 00 0A 00 0B 00 0C 00 04 00 0A 00 
  61 > 0B 00 0A 00 0A 00 00 04 03 01 9F 09 9F 06 9F 0A 7F 03 5F 09 
  81 > 77 00 00 77 28 41 00 00 00 00 00 00 
..
________________________________________________________________________________

2015-02-08 01:48:09.780 UTC: [131 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   98 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 07 47 D8 19 00 3E 21 02 00 2C 00 00 00 58 02 AE 
  21 > 02 AB 02 FF 03 E2 02 9B 01 F1 00 46 01 62 01 AE 02 00 00 00 
  41 > 00 00 48 C0 D6 54 02 00 09 03 00 02 04 00 82 05 8B 5F 49 E3 
  61 > 69 67 77 01 18 F5 AF C4 00 00 00 00 00 00 58 03 03 08 36 03 
  81 > 00 00 00 00 00 00 78 00 06 00 05 00 27 00 76 01 05 00 
..7.Gリ..>!..,...X.ョ.ォ.
________________________________________________________________________________
2015-02-08 01:48:18.790 UTC: [125 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   92 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 81 01 74 01 9A 00 8C 01 16 01 D2 02 55 02 05 02 
  21 > 00 00 50 02 00 00 49 02 28 06 79 07 77 07 5F 20 E8 00 08 03 
  41 > D5 01 14 01 1A 01 03 00 00 00 0A 00 0B 00 0C 00 04 00 0A 00 
  61 > 0B 00 0A 00 0A 00 00 04 03 01 9F 09 BF 06 BF 0A 7F 03 5F 09 
  81 > 77 00 00 77 29 41 00 00 00 00 00 00 
..
________________________________________________________________________________

2015-02-08 01:48:38.730 UTC: [125 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   92 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 81 01 6B 01 9D 00 18 02 18 01 D2 02 54 02 05 02 
  21 > 00 00 4F 02 00 00 48 02 8F 08 7D 08 6E 09 56 20 2C 00 86 01 
  41 > 25 02 E6 00 1A 01 03 00 00 00 0A 00 0B 00 0C 00 04 00 0A 00 
  61 > 0B 00 0B 00 0A 00 00 04 03 01 BF 09 9F 06 DF 0A 7F 03 7F 09 
  81 > 77 00 00 77 2B 41 00 00 00 00 00 00 
..
________________________________________________________________________________

2015-02-08 01:48:48.790 UTC: [125 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   92 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 A9 01 6C 01 A0 00 19 02 1D 01 D0 02 54 02 03 02 
  21 > 00 00 50 02 00 00 47 02 E1 06 91 06 B6 05 43 20 55 00 BE 02 
  41 > 66 00 8E 00 1A 01 03 00 00 00 0A 00 0B 00 0C 00 04 00 0A 00 
  61 > 0B 00 0B 00 0A 00 00 04 03 01 DF 09 7F 06 FF 0A 9F 03 7F 09 
  81 > 77 00 00 77 2C 41 00 00 00 00 00 00 
..7ゥ.l......ミ.T.....P...
________________________________________________________________________________

2015-02-08 01:48:49.690 UTC: [131 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   98 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 07 6F D8 19 00 66 21 02 00 2C 00 00 00 57 02 AE 
  21 > 02 AB 02 FF 03 E2 02 9A 01 EF 00 46 01 62 01 AE 02 00 00 00 
  41 > 00 00 70 C0 D6 54 02 00 09 03 00 02 04 00 82 05 8B 5F 49 E3 
  61 > 69 67 77 01 18 F5 AF C4 00 00 00 00 00 00 58 03 03 08 36 03 
  81 > 00 00 00 00 00 00 78 00 06 00 05 00 27 00 76 01 05 00 
..7.oリ..f!..,...W.ョ.ォ.
________________________________________________________________________________
2015-02-08 01:49:28.790 UTC: [125 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   92 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 88 01 63 01 9A 00 AC 01 1E 01 CA 02 53 02 04 02 
  21 > 00 00 4F 02 00 00 47 02 50 07 79 07 38 06 4C 20 49 00 20 02 
  41 > FF 00 98 00 1A 01 03 00 00 00 0A 00 0B 00 0C 00 04 00 0B 00 
  61 > 0B 00 0B 00 0A 00 00 04 03 01 1F 0A 7F 06 3F 0B 7F 03 7F 09 
  81 > 77 00 00 77 30 41 00 00 00 00 00 00 
..
________________________________________________________________________________

2015-02-08 01:49:29.710 UTC: [131 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   98 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 07 97 D8 19 00 8E 21 02 00 2C 00 00 00 56 02 AE 
  21 > 02 AB 02 FF 03 E2 02 9B 01 EF 00 44 01 62 01 AE 02 00 00 00 
  41 > 00 00 99 C0 D6 54 02 00 09 03 00 02 04 00 82 05 8B 5F 49 E3 
  61 > 69 67 77 01 18 F5 AF C4 00 00 00 00 00 00 58 03 03 08 36 03 
  81 > 00 00 00 00 00 00 78 00 06 00 05 00 27 00 76 01 05 00 
..7
________________________________________________________________________________

2015-02-08 01:49:38.920 UTC: [125 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   92 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 82 01 80 01 72 00 4B 01 1B 01 D3 02 53 02 05 02 
  21 > 00 00 4E 02 00 00 46 02 0B 06 9F 07 A7 07 5F 20 87 00 6D 02 
  41 > 02 02 F0 00 1A 01 02 00 00 00 0A 00 0B 00 0C 00 04 00 0B 00 
  61 > 0B 00 0B 00 0A 00 00 04 03 01 1F 0A 9F 06 3F 0B 7F 03 5F 09 
  81 > 77 00 00 77 31 41 00 00 00 00 00 00 
..
________________________________________________________________________________

2015-02-08 01:49:39.830 UTC: [131 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   98 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 07 A1 D8 19 00 98 21 02 00 2C 00 00 00 56 02 AE 
  21 > 02 AB 02 FF 03 E2 02 9B 01 F1 00 45 01 62 01 AE 02 00 00 00 
  41 > 00 00 A3 C0 D6 54 02 00 09 03 00 02 04 00 82 05 8B 5F 49 E3 
  61 > 69 67 77 01 18 F5 AF C4 00 00 00 00 00 00 58 03 03 08 36 03 
  81 > 00 00 00 00 00 00 78 00 06 00 05 00 27 00 76 01 05 00 
..7.。リ.
________________________________________________________________________________

2015-02-08 01:49:49.770 UTC: [131 Bytes KISS Frame (without CRC)]
ctrl: 32   PID: 2 {I10^}   98 Payload Bytes
from QB50P2 to QB50P2 via .....
   1 > 00 FF 0F 37 07 AB D8 19 00 A2 21 02 00 2C 00 00 00 56 02 AE 
  21 > 02 AB 02 FF 03 E2 02 9B 01 F1 00 48 01 63 01 AE 02 00 00 00 
  41 > 00 00 AD C0 D6 54 02 00 09 03 00 02 04 00 82 05 8B 5F 49 E3 
  61 > 69 67 77 01 18 F5 AF C4 00 00 00 00 00 00 58 03 03 08 36 03 
  81 > 00 00 00 00 00 00 78 00 06 00 05 00 27 00 76 01 05 00 
..7.ォリ..「!..,...V.ョ.ォ.
________________________________________________________________________________
[補足] About AX.25 filter in Soundmodem [訳] AX.25プロトコルは、「受信送信アドレス、PID、制御バイトなど」 の特定の フレーム構造を有している。 AX.25フレームは CRC16チェックサムによって保護 されるが、この方法は理念からはほど遠く、ノイズに正しい CRC を持つ時には、 「CRC-衝突」 が起こるかもしれない。 (訳注, CRC: Cyclic Redundancy Check, 巡回冗長検査:誤り検出方式の一つ) そこで私(UZ7HO)は、アドレスフィールドに有効な文字・有効なPID・有効な制御 バイトなど、単に余分なノイズを遮断するために、ヘッダーの長さを含む AX.25 ヘッダーの追加の検証を適用した。 衛星に対しては、多くの衛星が AX.25 よりも 少し異なるフレーム構造を持って いて、(訳不明: 7E flags and bit-stuffing) といったビット指向のプロトコル に基づいている。 衛星には、Soundomodem の 「non-AX.25 filter」 にチェックを入れずにデコード することができる。従って、衛星運用にはそれにチェックを入れない方が良い。 [原文] RE: AX25 filter From: Andy UZ7HO To: Mineo Wakita Date: Tue, 2 Feb 2016 14:53:57 +0300 Hi Mineo! AX.25 protocol has certain frame structure: "recipient and sender address, PID, control byte, etc". AX.25 frame protected by CRC16 checksum, but this method is far from ideal and there may be the "CRC-collisions" when the noise could have correct CRC. Therefore I applied additional verifi_ cation of AX.25 header including length of header, valid characters in the address field, valid PID, valid control byte, etc. just to cut off the excess noise. As for satellites, many satellites have slightly different frame structure than AX.25, but still based on bit-oriented protocol (with 7E flags and bit-stuffing). This satellites could be decoded with Soundmodem when you uncheck "non-AX.25 filter". So for SAT-opertations better uncheck it. "non AX.25 filter" should NOT be checked. Andy UZ7HO. > 02.02.2016, 13:13:37 Mineo Wakita: > > Hello, > I am always using your Soundmodem. > I want to receive all of the signal from the satellite. > > Should I put a check in the "non AX25 filter" in "Settings - Modems" ? > What happens if there is not check, or check ? > > JE9PEL, Mineo Wakita


 トップ へ戻る.
 前のページ へ戻る.
 次のページ へ移る.
 ホームページ(目次) へ戻る.