FT8
Table of Contents
Code Blue
所要で病院へ行った時、館内放送で、内科処置室にて、コード・ブルーっての が流れていた。暗号だな。どんな意味?
ふーん、そんな緊急な事が発生してたのね。おや? ゴールドなんてのも有る。 不謹慎かも知れないけど、部品取りできて、そのおかげで色々な修理ができる。 お金になりそうな事案だから、思わずゴールドなの か、納得です。
大体コードって暗号の意味。こういうの病院の専売特許じゃないだろう。 デパートやスーパーはどうよ?
もちろん、暗号なので、その店独自のコードになってるはず。
警察関係は隠語の山だぞ。 事件がわかる・警察用語集
FT8
FT8が流行してるってんで、軽く検索してみたら、 FT8はHAM RADIOを葬ったのか こんなのが出てきた。今の無線界を如実に表わ しているなあ。広告の勝利であります。
リナに収録されてるか、確認。
[sakae@deb ~]$ apt-cache search ft8 js8call - Amateur Radio Digital Mode providing weak signal messaging libxaw3dxft8 - Extended version of Xaw3d with support for UTF8 libxaw3dxft8-dev - Extended version of Xaw3d with support for UTF8 (Development files) wsjtx - Weak-signal amateur radio communications wsjtx-data - Weak-signal amateur radio communications (data files) wsjtx-doc - Documentation and examples for the WSJT-X package xdemorse - GUI to decode Morse signals to text
wsjtx
でも、こういうのを調べるならFreeBSDに限る。
WSJT ("Weak Signal Communication, by K1JT") offers specific digital protocols optimized for meteor scatter, ionospheric scatter, and EME (moonbounce) at VHF/UHF, as well as HF skywave propagation. The program can decode fraction-of-a-second signals reflected from ionized meteor trails and steady signals 10 dB below the audible threshold.
K1JTさんが作成した、微弱な信号のための通信とな。流星散乱、電離層散乱、EME (月反射) 向けに最適化 VHF/UHF、およびHFスカイウェーブ伝播で。プログラムはデコードできる イオン化した流星の痕跡から反射されたほんの一瞬の信号と、 可聴閾値より 10 dB 低い安定した信号。
make
お次は、作成手順書のMakefileを点検。
BUILD_DEPENDS= asciidoctor:textproc/rubygem-asciidoctor \ a2x:textproc/asciidoc \ git:devel/git \ ${LOCALBASE}/share/xsl/docbook:textproc/docbook-xsl LIB_DEPENDS= libfftw3.so:math/fftw3 \ libfftw3f.so:math/fftw3-float \ libboost_log_setup.so:devel/boost-libs \ libxslt.so:textproc/libxslt USES= cmake:noninja compiler:c++11-lang fortran gl libedit \ makeinfo pkgconfig qt:5 readline tar:tgz USE_GL= glu USE_QT= core gui network widgets \ multimedia concurrent printsupport serialport sql sql-sqlite3 \ buildtools:build linguisttools:build qmake:build testlib CONFLICTS_INSTALL= wsjtz
ふーん、大規模な仕掛けが必要。QtがGUIを担当してるな。Fortranって、天体 物理学者の武器? Pythonよりrubyが好みの先生なんだな。で、rubygemで入れ てる、asciidoctorって、どんな機能を提供してるの? libfftはフーリエ変換のモジュール。ウォーターフォールにでも利用してる? それとも、FSK信号の復調にでも使う?
すべての疑問を解消しようと思ったら、ソース嫁。
from source
make fetch したら、wsjtx-2.5.4 が落ちてきた。まずは、そのINSTALL文書か ら。
__ __ ______ _____ ________ __ __ | \ _ | \ / \ | \| \ | \ | \ | $$ / \ | $$| $$$$$$\ \$$$$$ \$$$$$$$$ | $$ | $$ | $$/ $\| $$| $$___\$$ | $$ | $$ ______ \$$\/ $$ | $$ $$$\ $$ \$$ \ __ | $$ | $$| \ >$$ $$ | $$ $$\$$\$$ _\$$$$$$\| \ | $$ | $$ \$$$$$$/ $$$$\ | $$$$ \$$$$| \__| $$| $$__| $$ | $$ | $$ \$$\ | $$$ \$$$ \$$ $$ \$$ $$ | $$ | $$ | $$ \$$ \$$ \$$$$$$ \$$$$$$ \$$ \$$ \$$ Copyright 2001 - 2021 by Joe Taylor, K1JT.
To build WSJT-X from sources you need some prerequisite tools and libraries. On Linux: build-essential gcc-4.8.2 or clang-3.4 or newer g++-4.8.2 or clang-3.4 or newer gfortran-4.8.2 or newer CMake-2.8.9 or newer git asciidoc texinfo and others-dev
特徴的なのは、世にも珍しいfortranでしょうか? 今時、そんな古代言語が必 要なの。きっと、天文物理学では、当たり前に使われているんで、ついつい慣 れた言語を使いましたとな。そして、g++なんかは、院生にまかせたQtの操作 で利用されてるのでしょう。このアプリの代表は、K1JTさんだけど、そのチー ムの合同成果物かな。
それはいいけど、ソースに対面。tar玉になってた。
fftw3.h
注目のfftが、どんな風に利用されてるか? ヘッダーの宣言を確認。
[sakae@fb /tmp/wsjtx-2.5.4/src/wsjtx]$ grep fftw3.h -r . ./main.cpp:#include <fftw3.h> ./widgets/mainwindow.cpp:#include <fftw3.h> ./lib/wsprd/wsprd.c:#include <fftw3.h> ./CMake/Modules/FindFFTW3.cmake:find_path (FFTW3_INCLUDE_DIR fftw3.h ./map65/main.cpp:#include <fftw3.h> ./map65/mainwindow.cpp:#include <fftw3.h>
メインにあるって事は、ウォーターフォールとかかな。じゃ、実体の利用状況っ て事で、主要な関数を探り出す。
[sakae@fb /tmp/wsjtx-2.5.4/src/wsjtx]$ grep fftw_plan_dft_1d -r . Binary file ./lib/ft2/libwsjt_fort.a matches ./lib/four2a.f90: call sfftw_plan_dft_1d(plan(i),nfft,a,a,FFTW_FORWARD,nflags) ./lib/four2a.f90: call sfftw_plan_dft_1d(plan(i),nfft,a,a,FFTW_BACKWARD,nflags) ./lib/chkfft2.f90: call sfftw_plan_dft_1d(plan1,nfft,a,a,FFTW_FORWARD,nflags) ./lib/chkfft2.f90: call sfftw_plan_dft_1d(plan2,nfft,a,a,FFTW_BACKWARD,nflags) ./lib/chkfft2.f90: call sfftw_plan_dft_1d(plan1,nfft,a,c,FFTW_FORWARD,nflags) ./lib/chkfft2.f90: call sfftw_plan_dft_1d(plan2,nfft,c,a,FFTW_BACKWARD,nflags) ./lib/fftw3.f03: type(C_PTR) function fftw_plan_dft_1d(n,in,out,sign,flags) bind(C, name='fftw_plan_dft_1d') ./lib/fftw3.f03: end function fftw_plan_dft_1d :
fortran
libの下に色々有るんで、どれでもいいけど一つピックアップしてみた。 gen_ft8wave.f90
subroutine gen_ft8wave(itone,nsym,nsps,bt,fsample,f0,cwave,wave,icmplx,nwave) ! ! generate ft8 waveform using Gaussian-filtered frequency pulses. ! use timer_module, only: timer parameter(MAX_SECONDS=20,NTAB=65536) real wave(nwave) complex cwave(nwave),ctab(0:NTAB-1) real pulse(23040) real dphi(0:(nsym+2)*nsps-1) integer itone(nsym) data ibt0/0/ save pulse,twopi,dt,hmod,ibt0,ctab : ! Calculate and insert the audio waveform phi=0.0 dphi = dphi + twopi*f0*dt !Shift frequency up by f0 if(icmplx .eq. 0) wave=0. if(icmplx .ne. 0) cwave=0. !Avoid writing to memory we may not have access to call timer('gen_loop',0) k=0 do j=nsps,nsps+nwave-1 !Don't include dummy symbols k=k+1 if(icmplx.eq.0) then wave(k)=sin(phi) else i=phi*float(NTAB)/twopi cwave(k)=ctab(i) endif phi=mod(phi+dphi(j),twopi) enddo call timer('gen_loop',1)
これが現代風なFORTLANとな。まあ、読めるな。昔のfortranは、コメントが冒 頭Cでって約束だったよな。それが現代では ! マークか。 .eq. は、何か shell語にも有ったような。そこはかとなく似ている。
manual?
各国語にマニュアルと言うか説明文が用意されてた。
./translations/wsjtx_zh_TW.ts ./translations/wsjtx_zh.ts ./translations/wsjtx_ja.ts ./translations/wsjtx_da.ts ./translations/wsjtx_ca.ts ./translations/wsjtx_es.ts ./translations/wsjtx_en_GB.ts ./translations/wsjtx_zh_HK.ts ./translations/wsjtx_en.ts ./translations/wsjtx_it.ts
各国の無線家が協力した、賜物だな。世界と繋がる無線家なら、お手のものだ ろう。FT8にシフトしてラバースタンプQSOじゃ、それも望めないか。いや、そ んなのOpenAIにお任せさ。
マニュアルが出てきたので、https://www.hdlc.org/wsjt/help/ 正式なやつを 探してみた。
いまさら聞けない、FT8 運用の始め方と応用 JARLも説明書を出しているな。 QSLカードも電子式に移行する中、JARLのカード転送サービスの威力が低下し てる。会員の増加に、やっ気になってる構図だな。
what ?
利用するパソコンは正確な時刻になっていなければいけない。時刻に基いて送 受信の自動切り替えをするんだな。これって、スマホ等で採用されてる、タイ ムスロットによる回線交換の技術じゃん。
FSK
周波数偏移変調 なんだな。復調にGoertzelアルゴリズムが利用される。調べ たら https://hamesspam.sakura.ne.jp/hes2019/190518.html 自分のページが 出てきた。Goertzel algorithm 日本のWikiには無いけど、英語版にはあった。
wsjtz
同じ作者さんが、下記の拡張を施して、別の名前でリリースしてる。
WSJT-Z is a clone of WSJT-X software by Joe Taylor K1JT Features - Modified user interface, including a larger Band Activity window - Extended filtering features - Auto CQ and auto responding - QRZ.COM integration - Audio alerts - DXCC / Continent Filtering
ある種の無線家には、嬉しい拡張だな。でも、自動化してまで、無線ってやる ものかねぇ。ひたすらワッチ、ワッチ、耳を澄ませて聞けってのが正統派だと 思うんだけど。
hamlib
Hamlib rigとアプリケーションを結びつけるやつだな。
The Ham Radio Control Libraries, Hamlib for short, is a development effort to provide a consistent interface for programmers wanting to incorporate radio control in their programs. Hamlib will allow authors of software logging programs, digital communications programs, or those wanting to develop the ultimate radio control software to concentrate on the user interface and the basic function of the program rather than radio control.
アマチュア無線 おっ久し振りに、ArchLinuxの説明書に遭遇。
Asciidoctor by ruby
A fast text processor & publishing toolchain for converting AsciiDoc to HTML5, DocBook & more.
これで意味が通じる人は、リンクを踏む必要は有りません。って、随分と存在 な扱かいだな。