初級サンデープログラマーが作るモールスデコーダー
●和文モールスデコーダ実験
【2005年1月15日】
今回は昨年購入したPentium4-3GHzデスクトップPC使用を前提に作成しました。Pentium-100MHzデスクトップや600MHzノートに比較し、
当然VisualBasicの処理速度も速くなります。予備実験でVB標準のタイマーを単純にカウントアップし最速の1サイクル時間を測定してみました。
Pentium-100MHzでは60msec.弱でしたが、Pentium4-3GHzでは15msec.でした。これなら、従来の私の方式である、自走ループよりも手軽に
モールス符号のサンプリングなど一連の処理が出来るのでは、と考えてVB標準タイマーを使って実験しました。
<構成概要>
RIGからPK-232へ受信オーディオを入力、フィルター出力をRS-232CのDSRからPCへ取り込みます。
VB上では、VB標準のシリアル通信コンポーネントMSCommを用いるとお手軽です。このMSCommのDSRHoldingプロパティがTrueかFalseかで
モールス符号の有無を判断します。この構成では正論理になります。
タイマーを回しておき、DSR論理が変わった時のカウンタを正負それぞれ憶えて、正カウンタ値で短点か長点かを判断します。
ここで長短判断は、バグキー符号なども考慮する必要がありますが、標準はやはり1:3です。
負カウンタ値が短点の3倍以上(この値は調整する価値あり)になった場合に、短点と長点の組み合わせを区切って文字を判断します。
<実験経過>
まず欧文から作成し、JST-245内臓エレキーでモニター音を入力することでデコード出来ることから始めました。試行錯誤の結果どうにか
20文字/分程度からコンテストスピードまでほぼ100%コピーできるようになりました。
和文データを組み込み、−・・−−−入力時には自動的に和文モードにするようにしました。・・・−・で欧文に戻るようにしましたが、訂正の意味で
これを打たれるとモードが違ってしまいます。今は解決策が無いのでマニュアルで変更できるようボタンを追加してます。
|
実験中のVBプログラム(室内ホイップで7MHz受信) 上側がデコード(受信)部、下側がエンコード(送信)部です。 ちなみにCWキーイングはRS-232CのDTRで行っています。 PK-232からのパルスが正しくないとデコード不可能です。 レシーバの受信信号強度が安定強力でないとミスが発生します。 特にメーター振らないような強度ではS/N的に苦しいようです。 あと、和文交信はバグキーをお使いのOMが多く、かなりクセのある 符号ではやはりデコードできなくなります。特に、長点が時々長く 変わる符号や、文字と文字の間隔がほとんど無い場合などお手上げです。 現在は、短点/長点判断の時間基準を3つほど決めうちで設定しています。 今後は、入力符号で自動判断できるよう改善したいと思っています。 (出来るかな?) それにしても、HF帯のモールスデコードは奥が深いです。 |
●PK-232MBX/DSPをPCインターフェースに使ってみる
【2005年1月8日】
PK-232MBX/DSPの欧文モールスデコード機能は使わずに、アクティブフィルタ信号からTTL変換された受信信号を、
RS-232CのDSRに接続し、PCに取り込んで自前のVBソフトで欧文モールスを表示する実験をしてみました。
![]() |
![]() |
実験中のPK-232、最初にDSPを通り、アナログ アクティブフィルタ出力をジャンパ線でRS-232Cの DSR端子に接続しPCへ入力します。オシロで この波形をモニタ出来ればRigの調整がし易いです。 |
TS-830と長さ1.5mの室内ホイップを使用し、 以前作成のデコーダで3.5MHz和文電信のCQを受信中。 [和文]は−・・−−−受信時に表示します。 肝心の和文デコードが出来ていません。 |
3年前に作成したVBプログラムトで7MHzの欧文CWを受信してみると、完璧ではないですが一応デコードする事が出来ました。
以前のトーンデコーダ使用の回路は手元に無いので当時との比較は出来ませんが、オシロスコープで見る限り、PK-232へ入力する受信音量や
トーン周波数(つまりRIGの受信周波数)などの調整で、559から599程度の信号であれば比較的安定したパルスをPCに取り込めるようです。
PK-232へのアナログ入力レベルが高ければ、ノイズも受信データになってしまうという不利な点はありますが、
感覚的には、トーンデコーダのPLLロックよりは使いやすいように思います。
今後は時間をかけて、和文モールスデコーダーを気分を新たに一から作成するつもりです。(いつ完成するのか?)
●実験奮戦記
【 2001年 9月4日 】
ソフト修正してみました。自分で叩くエレキ-であれば、100文字/分程度の速度まで90%程度まで
解読をするようになりました。ソフトの組み方とPC処理速度の問題でしょうか、
同じように打っている符号でも取れるときと取れないときがあります。
ましてや、7MHzあたりで実際のQSBを伴う信号を受信してみると解読率は下がります。
これは、ハードウエアの影響も多少あるのではないか、と思います。
PLLロックが完璧とは思えないからです。特に、信号レベルが低いときは途切れることが多いです。
50%程度から70%程度といった所でしょうか。うーん、難しい。こんなやり方です。
どなたか、ご意見・ご指導をお願いします。
【 2001年 9月1日 】
今日はじめてRigインターフェースが完成し、あらかじめ作成しておいたプログラムを走らせた。
結果は....全然完璧ではないですが、どうにかこうにか文字が画面に出てきました。
でも、自分でエレキ-を叩いた信号でも50%程度しか正しくありません。なんか、各1文字の符号の
最後のデータ(アクティブ部)の取りこぼしが多いようです。どうしたものか....
●Rigとのインターフェース
Rigのオーディオ出力は、約20前に入手したダイワ製のアクティブオーディオフィルターに入力し、
内蔵してある、トーンデコーダーのPLLロック検出出力を用いています。それをレベル変換した上で、
パソコンRS−232CのDSR端子から取り込み、ソフトウエアで解析してみようと考えました。


ケース内部右上に見える小基板が自作したインターフェース回路基板、その右上はRS232Cレベル変換回路基板
トーンデコーダのPLLロック出力は、NJM567の8番端子から取り出します。