無線部開発班

Journal of Hamradio Informatics

icon

automatic tabulation system for hamradio contests, parallel computing framework, programming language processors, machine learning, etc.

autodyne nextzlog
enhancement CW 2

CW4ISRの非公式リリースへの誘導

2023-09-03T06:39:22Z

概要

CW4ISRの開発を活性化するため、非公式リリースのリンクをREADMEに記載する。例えば、jucky154/cw4iを記載する。

JG1VPP
enhancement CW 2

単純ベイズ分類器による誤検知の検出

2023-08-27T11:28:25Z

問題意識

現状のCW4ISRでは、クリックノイズを拾うことにより、誤ったメッセージを解読する場合がある。これを言語モデルで防ぐ。

解決方法

最も単純な方法として、単純ベイズ分類器により、誤ったメッセージを除去する方法はどうか。

JG1VPP
ToDo 0

PRをブロックするCIの整備

2023-08-27T09:43:46Z

概要

PRに対してCIを実行し、マージをブロックする。

ZyLO系

ZyLOとCW4ISRは、go fmtの実行とgo testの正常終了を条件とする。

ATS-4

ATS-4は、テストを実装したCIが未整備のため、引き続き運用を検討する。

個別にPRを受け付ける運用の場合は、テストの成功をマージの条件とする。

JG1VPP
ToDo 1

Rustで自作する仮想マシン入門

2023-08-27T03:42:22Z

概要

Scalaで自作するプログラミング言語処理系の続編で、仮想マシンの実装に重点を置いた本を執筆する。

JG1VPP
enhancement CW 10

確定した文字のみ表示

2023-08-22T14:15:13Z

問題意識

OBの方から、確定していない文字の表示に関して、「出てくる文字が確定していないところはコロコロ変わる。それも無線家の頭の中に浮かぶ文字ではないものが表示される。よって、混乱を招くので確定していない文字、つまりは文字間の空白が来る前の文字は表示しないようにするべき」という要望が出た。 (現状、コロコロ変わる文字はhttps://blog.goo.ne.jp/ykimata/e/b5dee1229c784c05b39ae74456260010 のように聞き取れた部分までの分岐点の場所で、結構混乱するかもしれない)

確定していない文字を表示しない手法が求められる

解決方法

以前の確定していない文字を表示しない手法は前回と同じ文字のみ表示するというものだった (https://github.com/jucky154/cwListener/blob/b24f4925e8132212f0b2920dec0917762bb08aa8/cwListener.go#L218 ) がかなりコードが複雑化しているので、あまり採用するべき手法ではないと考えられる。

よって、OBの言うとおり、「文字間の空白が来る前の文字は表示しない」という対応が良いと思われる。 対応としては https://github.com/nextzlog/cw4i/blob/5dae69de1cc035755d3241c8c3db3a123de44e0a/core/symbols.go#L27C1-L36C2 の部分に関して、

func CodeToText(code string) (result string) {
	for _, s := range strings.Split(code, " ") {
		if val, ok := reverse[s]; ok {
			result += string(val)
		} else {
			result += "?"
		}
	}
	if code[len(code)-2:len(code)-1] != " " {
		result = result[len(result)-2:len(result)-1]
	}               
	return
}

のように対処すれば最後の部分が文字間の空白であれば確定なので表示し、そうでないならば最後の文字は確定していないので表示しないといった対応が可能であると考えられる。

jucky154
enhancement CW 1

ベイジアンを用いたアルゴリズムの検討

2023-08-21T13:13:14Z

問題意識

CW解読機に関して、さらなる発展が求められている(ハムフェア)

そして、その中で、CW Skimmerはベイジアンを使っているという話があった

http://ag1le.blogspot.com/2013/01/towards-bayesian-morse-decoder.html 以前も上のブログは読んでいたものの、真面目に読んでいなかったが、いろんな段階でベイジアンを使っているようだ CW4ISRでも、ベイジアンを一部の段階で使ってみるのはありなのかもしれないので、調査や実験が必要だと思われる

jucky154
bug CW 7

デコードが不安定、セキュリティに引っかかる

2023-08-09T08:43:59Z

概要

性能通りのデコードされない。

  • E や T ばかりデコードされたものが上位にくる。
  • 下位にデコードされているっぽいものがあるが、完全ではない

セキュリティに引っかかる

  • windows defender に引っかかり、起動さえできず、強制削除されてしまった。

再現手順・設定

  1. Windows10、firefox で release のページを開き、exe ファイルをダウンロード
  2. ダウンロードした exe ファイルを開く
  3. スマホで、YouTube にアップロードされている CW 音声をパソコンマイクに近づけてデコード
  4. 右上の x を押してプログラムを閉じた
  5. 再度起動させた際に windows defender のセキュリティに引っかかった。自動削除された。

使用したCW 動画 URL: https://www.youtube.com/watch?v=oJfdofz8O8A&t=380s https://www.youtube.com/watch?v=WPwnSe2v3Ts&t=241s 2つ試した。

期待される動作

  • 性能通りのデコード
  • windows のセキュリティに引っかからない

対応期限

特になし。急ぎません。

irukabando
enhancement CW 1

zLog連携機能の整備

2023-08-04T05:12:51Z

問題意識

CW4ISRとzLogを連携させるzLogプラグインを整備する。自動交信を支援する機能を備える。

解決方法

CW4ISRとはプロセス間通信で連携する。例えば、go-winioを使用する?

その他

cwListenerの位置付けが問題だが、不具合もあるので、コードを煩雑化させやすい解読・マイクデバイス選択・履歴表示等の機能はCW4ISRに委ね、自動交信機能に特化させる手もあり。

JG1VPP
enhancement CW 3

スクリプトで操作できる範囲の強化

2023-07-30T05:08:36Z

問題意識

CW4ISRはJavaScript (ES5)でイベントハンドラを定義可能だが、現時点では、読み取ったメッセージの編集ができる程度。

decoder.Program = function(message) {
  message.Text = message.Text.replace('5NN', '599');
  message.Text = message.Text.replace('ENN', '599');
  return message;
}

もっとCW4ISRの設定を細かく調節したり、デバッグ・可視化機能やRPCによる外部連携を強化したい。

解決方法

Goの構造体・メソッドの形式で、JavaScriptから呼び出し可能なライブラリを充実させる。それらは、以下のように渡される。

vm := goja.New()
vm.Set("RPC", RPC{})

JG1VPP
ZyLO enhancement 0

得点計算プラグインのスクリプト化

2023-07-24T05:04:15Z

問題意識

高校コンテスト等の得点計算プラグインは、他のコンテストに参加中は、無駄にメモリ等のリソースを消費している。

解決方法

得点計算に限れば、計算方法を記述したスクリプトと、それを実行する言語処理系を組み込んだプラグインの組み合わせで十分。

JG1VPP
enhancement CW 2

CW4ISRの耐ノイズ性について

2023-07-05T12:05:41Z

問題意識

https://github.com/nextzlog/todo/issues/176  に関連するが…

おそらく、多くの人が求めていることはS/N比がよくない音声でもモールスを解読できることである。 求められていることを実施できるCW4ISRとしたい

解決方法

現在、一般に使われているモールス信号解読機であるCW SkimmerとのS/N比の比較 および CW Skimmerと同程度の耐ノイズ性の取得 (STFTで耐ノイズ性が得られるかは微妙… 音声から波形へのアルゴリズムや波形からモールスのon/off検知アルゴリズムを真面目に考える必要がありそう) CW Skimmerも表示としてはSTFTみたいなものが出るが、どうやってそこからモールスの解読をしているのだろうか?

jucky154
enhancement CW 1

CW4ISRの公称能力について

2023-07-04T12:46:32Z

問題意識

現在、CW4ISRは3局パイルアップ(実際の交信録音)を用いて広報を行い、好評を博している。 その中で、CW4ISRの能力に関する質問が数多くなされている。質問の回答になるような公称能力の確定する公試を行う必要がある。 そのテストデータの作成・公試の実施が必要。行う内容としては、

  • 48000Hzでの最速WPM (150WPMは96000Hzとか使えば、できるが普通にコンピュータの設定ではないので)
  • 周波数分解能 (どれだけ音声周波数的近傍に局がいても解読できるのか)
  • 耐ノイズ性 (S/N比)
  • 耐フェージング性(信号の最大の山と最小の山の比とか?)
  • 耐速度変化(正確には縦振りにどこまで対応できるか)

解決方法

テストデータはzylo/encoderとかをうまく使ってwavを作ればよい?(どうencoderを使うかがわからない…) 公試は繰り返しやって何回正しく解析されるか、から判断する? 以上の観点で試験をして公表・動画化をしたい

jucky154
bug CW 0

符号語の一部が切り取られる

2023-07-02T10:16:03Z

概要

既知の問題だが、送信が開始された瞬間には符号語として検出されず、バッファに蓄積された後に検出されると、バッファから溢れた分の符号語が消失し、例えば、JがOと解読される。

再現手順・設定

CW4ISRで何度か交信の音声を流してみれば再現する。

期待される動作

正しくJと解読する。

対応期限

早めに。

JG1VPP
ToDo 1

GitHub Actionsの定期実行は60日で停止する

2023-07-02T04:16:20Z

概要

GitHub Actionsではコミットがない状態で60日放置すると、cron実行が停止される。

対象

以下が影響を受ける。特にマーケットプレイスが勝手に更新停止される可能性がある。

  • autodyne/nextzlog.dev
  • nextzlog/use.zlog.org
  • nextzlog/dev.zlog.org
  • nextzlog/pkg.zlog.org

対策

検討中。コミットがあれば停止しないが、安易な解決策に頼るのは…

JG1VPP
bug 0

重複コミットの原因調査

2023-07-02T04:04:59Z

nextzlog/use.zlog.org で大量の重複コミット。原因を調査する。

JG1VPP
ZyLO enhancement 1

プラグイン以外のzLog連携方法の模索

2023-07-01T08:13:56Z

問題意識

ZyLOで開発された中には、必ずしも常駐する必要のないプラグインもあり、不必要にzLogのパフォーマンスを低下させる。

解決方法

プロセス間通信の仕組みを整備して、DLL以外の連携方法を開発する。ビルド時にDLLもしくはプロセス間通信を選択できるようにする。

JG1VPP
ATS-4 enhancement 0

国際化対応

2023-07-01T04:42:26Z

問題意識

ATS-4を国際コンテストに対応させるためI18Nを行う。

解決方法

play.api.i18nを活用し、conf/messagesに日本語の文字列を書き出す。

JG1VPP
bug ATS-4 2

サマリ登録時に設定されてないフィールドがどれかわからない

2023-06-28T22:39:49Z

概要

エラーがあると出るだけでどこがエラーなのか不明。

再現手順・設定

タイトル通り

期待される動作

赤で示すなど一般的に行われているUIとすればよいのでは。

対応期限

JK1DVP
ATS-4 0

ATS-4のホスティングサービス

2023-06-24T07:06:54Z

問題意識

ATS-4の運用に必要なサーバと環境構築を行うサービスを提供するとして、採算性を検討したい。

解決方法

まず、どの程度の需要があり、かつ、そのうち何割が実際に導入に漕ぎ着けるのかを把握する必要がある。コンテスト主催者でATS-4に興味のある方は、このIssueに追記していただけると助かります。

JG1VPP
ATS-4 enhancement 0

JARLサマリーシートR1.0専用モード

2023-06-12T17:06:33Z

問題意識

いわゆる地方コンテスト等へのATS-4の普及を阻害する要因として、規約実装とサーバ導入の手間が挙げられる。

解決方法

  • サマリーシートR1.0に記載の得点を信用して、集計を行う機能を搭載する。
  • サーバ導入の問題は、ATS-4をローカル環境で立ち上げる方法を案内する。

JG1VPP
bug ZyLO 4

高校コンテストの規約変更の対応

2023-06-04T13:02:50Z

概要

高校コンテストの規約が我々が作った時と変更になっているようです http://hstest.mg-sci.com/wp-content/uploads/2020/07/2020_31st_hstest_rule.pdf 2020年のルールだとHSマルチは消えないのですが、 http://hstest.mg-sci.com/wp-content/uploads/2022/06/2022_33rd_hstest_rule.pdf 2021年以降のルールだとHSマルチは削除されるようです

期待される動作

SSBとCWで交信した際にはHSマルチが消えるようにする

対応期限

早めに

jucky154
ATS-4 enhancement 0

SSL/TLS証明書の自動取得

2023-01-09T09:15:58Z

問題意識

ATS-4のコンテナで、SSL/TLS証明書の取得・インストール手順を自動化する。

解決方法

certbotイメージを使うことで、Let’s EncrypytのDV証明書を自動取得できる。

JG1VPP
bug ZyLO 1

QSO.Insert系メソッドの動作確認

2022-11-03T14:51:15Z

概要

QSO.Insert,Delete,Updateメソッドを呼ぶとzLogが落ちる。

再現手順・設定

func onInsertEvent(qso *reiwa.QSO) {
  qso.Insert()
}

期待される動作

QSOが追加・削除・更新される。

対応期限

未定

JG1VPP
ToDo 4

次の開発計画

2022-10-30T06:10:12Z

概要

新規メンバーも加わったので、何か手頃な開発計画を立てて、一緒に取り組めれば良いですね。ということでやりたいことを何でも書き込みましょう。

JG1VPP
enhancement CW 8

CW4 Identification Surveillance Response System

2022-10-29T14:02:31Z

構想

https://github.com/nextzlog/todo/issues/124 で完成したモールス信号解読の技術とリグコントロールを積極的に活用し、周波数帯の監視及び自動応答の機能を有するプラグインを実現する。

要素

  • モールス信号解読
  • リグコントロール

動作

  1. 周波数帯のワッチを開始する
  2. モールス信号を解読して周波数と呼出しメッセージを記録する
  3. 交信記録を参照して未交信の無線局を自動的にリスト表示する
  4. 自動応答モードの場合は自動選局後にボタンを押すことで交信を開始する

JG1VPP
4

無線部開発班のメンバー募集

2022-10-25T10:00:33Z

概要

GitHubの組織としての無線部開発班は、以下の開発に興味がある方を募集しています。主に無線従事者が対象ですが、大学社団等の所属は問いません。

zLog

image

  • マニュアル整備
  • プラグイン整備

ATS-4

image

既にメンバーになっている方へ

可能であれば、公開メンバーとして活動いただければと思います。設定は各自でお願いします。

JG1VPP
enhancement CW 11

CW解析プラグインの広報

2022-10-24T14:13:15Z

問題意識

運用をなんとかすれば(ウィンドウを閉じない)問題なさそうな問題が解決されていませんが、ボチボチ見栄えのいいプラグインができましたので、広報を検討しないといけない

解決方法

JA1ZLOというお約束のものだけでなく、パイルアップ・カスカスの局の解読もやらせた動画を撮ったのでそれをツイートする?

https://user-images.githubusercontent.com/58735989/197546870-6f7a6e87-83f0-4d80-8b5f-fccf498579d6.mp4

jucky154
bug ZyLO 2

マーケットプレイスの継続的修正

2022-10-22T05:02:41Z

概要

マーケットプレイスは、どれかひとつでも誤りがあると、全体の更新が停止するように構築している。その場合は、管理人は速やかに状況を修正する責任がある。ここでは、そのための連絡を行う。

JG1VPP
ATS-4 enhancement 0

JARL ver2.1のチェックログへの対応

2022-10-16T12:24:04Z

問題意識

https://www.jarl.org/Japanese/1_Tanoshimo/1-1_Contest/e-log.html チェックログへの対応が簡単になったらしいです…

その都合で, おそらく今後提出されるJARLサマリーシートにもこういうのが含まれてくるので対応が必要と思われます…

解決方法

ATS-4の場合は一般に想定される手法(つまりは, 部門外のものが含まれていても特に気にせずに計算)で行われているので、#CHECKLOGという文字列は無視するとかで対応可能だと思われます。

jucky154
bug ZyLO zLog 4

zLogにおいてtelnetやリグコントロールの設定をするとプラグインが無効化されるというエラーが出る

2022-10-08T14:23:41Z

概要

zLogにおいてtelnetやリグコントロールの設定をするとプラグインが無効化されますがいいですかという警告が出る

再現手順・設定

zLog v2.8.3.2の日本語版(英語版は未確認)で各種設定->オプションからリグコントロールやパケットクラスターの設定( どちらか一方でも再現されました。 過去に一度、この警告を見ると見ないこともあるようです。 再現する場合は、zlog2.8.3.2をダウンロードしてすぐにプラグインをインストールして、その直後にここの設定の部分だけしてOKを押せばできると思います)をして、OKを押すと以下のような警告が出る。しかし、自分がやった限りではこの後にも普通にプラグイン(CW解析)は動いた plugin-muko

期待される動作

このような警告は表示されない

対応期限

ALL JA

jucky154
ZyLO enhancement 29

コンテストプラグインの充実

2022-10-06T04:30:06Z

問題意識

京都コンテストなど手計算が必要なコンテストに対応する。

解決方法

CFG/DAT file for zLogを参照。

JG1VPP
bug CW 10

CW解析プラグインが開けない

2022-10-04T17:04:58Z

概要

CW解析プラグインがエラーによって開なかったとの報告をZLO部員からもらった マルウェアとして検知されているらしい

再現手順・設定

以下がエラーコード errormessage.txt

期待される動作

ウイルスとして認識されないようにする

対応期限

ACAG?

jucky154
documentation zLog 0

コンテスト単位の案内

2022-10-04T14:11:14Z

問題意識

CTESTWINではコンテストの対応状況が明記されている。このあたりのドキュメント化が不足している。

解決方法

/contests以下にテーブルを配置して、コンテスト毎の案内を掲載する。CFGファイルで対応可能なコンテストは、単にCFGファイルの頒布サイトにリンクを貼る。プラグインで対応しているコンテストの場合は、その導入方法を別のページで明記する。

JG1VPP
5

音声信号処理・無線通信工学本

2022-09-30T03:32:18Z

ネタ

  • 信号処理の基本
  • 折り返し雑音
  • サンプリング定理
  • 高速フーリエ変換
  • FIR/IIRフィルタの原理と設計・実装法
  • AM変調・SSB変調
  • 包絡線検波
  • プロダクト検波
  • ヘテロダイン現象
  • 自動利得制御
  • モールス信号の読み取り

JG1VPP
ZyLO enhancement 1

CTESTWINとの星取り表

2022-09-18T11:19:41Z

問題意識

SEOを意識して、CTESTWINとzLogの対立軸を明確化して、集客を目論む。

解決方法

星取り表を作って公開する。例えば、

機能 CTESTWIN zLog
ほげ

JG1VPP
ATS-4 enhancement 1

電通大コンテストの正式なサポート

2022-09-03T10:01:10Z

問題意識

ATS-4は電通大コンテストに機能面では対応しているが、ALLJA1とは異なり、コード品質の保証も含めたサポートではない。

解決方法

最低限、電通大コンテストの得点計算のテストをALLJA1と同様に実装してはどうか。

JG1VPP
ZyLO enhancement 7

zLog Forumの設置

2022-08-25T14:12:17Z

問題意識

これはZyLOというよりもzLog令和editionの機能をより多くの人に知ってもらい、その結果利用者が増え、ZyLOの利用者も増えるみたいなことを考えたものです

zLogの機能や設定について説明(wiki)やググってもわからない際に、どうしようもなくなってしまう

解決方法

https://forum.air-hamlog.com/c/support のような「機能の質問や説明を利用者同士(たまに開発者側)が行うサイト」を作る必要がある気がします。

課題

  1. そもそもの設置に関して どこでforumを開くのがいいのか… そのサーバの管理をどうするか… アカウントなどをどうするのがよいのか… githubのアカウント登録は英語ですし、携帯電話による認証など(その対応すら英語)が必要なので、zLogを使う人(年齢層高めが多い)にはハードルが高い気がしています

  2. 運用について 基本的にはCFD Online Forumsやyahoo知恵袋のように利用者同士が教え合う形にしておく必要がある。 上のAir Hamlog のForumは、利用者が開発者に問い合わせる形になっており、開発者が忙しく回答できない場合(メンテができなくなった場合, zLogの2002年以降のように)は使いにくいものとされてしまう

jucky154
QxSL enhancement 1

ats4パッケージのテスト実装

2022-08-25T13:22:54Z

概要

ats4パッケージにテストが実装されていないので、実装する。

JG1VPP
ZyLO enhancement 54

zLogプラグインを妄想するスレ

2022-07-26T11:21:34Z

真面目な話、zLogプラグインは、クラウド連携や自作ハードウェアとの連携が中心になる。 で、これらの分野でキラーアプリが不足している。というわけで、アイディア出しをしよう。

JG1VPP
ZyLO enhancement 3

広報資料作成

2022-07-18T13:17:06Z

問題意識 ZyLOにしてもzLog 令和editionにしても機能が十分に認知されていない(この辺はJR8PPGさんと共通の見解 (https://twitter.com/jr8ppg/status/1548997253658198016 )) そのため、なんらかの周知の工夫を行う必要がある。

解決方法

  • 機能の紹介を動画にしてYouTubeにアップロードする 特にリアルタイムコンテスト周りを優先的に
  • それをhamlifeやCQ ham radioに送って紙面にしてもらう HAMLOGが更新のたびにhamlifeに乗っているし、CQ ham radioには年に一回くらいHAMLOGの使い方というページがある

jucky154
documentation ATS-4 10

書類提出で頻出のトラブル

2022-07-10T09:03:27Z

概要

ATS-4で書類提出するコンテスト参加者が遭遇するトラブルの典型例(実例)をここに自由に記していく。

JG1VPP
ATS-4 enhancement 4

オペレーター向けの説明書の作成

2022-07-10T06:19:39Z

問題意識 自分が持っているATS-4オペレータ向けの知識を広く一般に公開し、ATS-4を利用しやすい形とする

解決方法

  • JARL サマリーシートでの提出について ** ver1.0をver2.0に修正する方法 ** 一般的ではないサマリーシート形式の場合の対応
  • なんらかしらの問題が起きても継続的にログ受付をする方法 などを書く

jucky154
ATS-4 enhancement 1

音声読み上げへの対応

2022-07-09T11:20:00Z

問題意識

音声読み上げ機能を利用して提出する参加者にとって、ATS-4が生成するHTMLは問題ありとの報告があった。

解決方法

HTMLにtitleタグを埋め込む等の対策を進める。

JG1VPP