Steve Franke, K9AN

Bill Somerville, G4WJS

Joe Taylor, K1JT

3314 E. Anthony Dr., Urbana, IL 61802;
k9an@arrl.net

Glendella, Wycombe Rd., Stokenchurch,High Wycombe HP14 3RP, England;
g4wjs@classdesign.com

272 Hartley Ave., Princeton, NJ 08540;
k1jt@arrl.net

The FT4 and FT8Communication Protocols
Motivation and design of the digital modes FT4 and FT8,
and some details of how they are implemented in WSJT-X.
1. Introduction
FT4 and FT8 are digital protocols designed for rapid and accurate
communication between amateur radio stations, particularly in weaksignal conditions. Information exchanged in a minimal two-station
contact typically consists of call signs, four-character Maidenhead
locators, signal reports, and acknowledgments. Special message
formats support a few popular radio contests, and arbitrary text canalso be conveyed, though only in small quantities. FT8 was introduced
in July 2017 with version 1.8 of the software package WSJT-X [1,2]. It quickly gained world-wide popularity, by some measures soon
accounting for a large fraction of all ham radio activity on the highfrequency (HF) bands [3]. FT4, a similar but faster protocol designed
especially for radio contests, was introduced two years later in
WSJT-X version 2.1.
The new protocols build on the legacies of JT4, JT9, JT65, andother digital modes pioneered in WSJT-X and its parent program
WSJT, going back nearly 20 years [4-11]. These modes all use timesynchronized transmissions and structured messages with losslesscompression of standard call signs, grid locators, and other basic
information into a minimum number of bits. Strong forward error
correction (FEC) is an integral part of each mode. FT8 and FT4 use alow density parity check (LDPC) block code designed and optimized
specifically for this application.
Fundamental tenets of communication theory imply trade-offs
involving message length, signaling rate, bandwidth, error-control
coding, modulation type, decoding complexity, and minimum
required signal-to-noise ratio (SNR). Earlier digital modes foundin WSJT-X, including JT4, JT65, and QRA64, were optimized for

extreme weak-signal performance on the VHF, UHF, and microwave
bands. These modes use transmit and receive sequences of one
minute, so two-way contacts generally require at least four minutes.
By reducing the T/R sequences to just 15 seconds, optimizing the
LDPC decoder in several important ways, and accepting a sensitivity
loss (relative to JT65) around 4 dB, FT8 seems to have struck a sweet
spot for DXing and general use on the HF, VHF, and lower UHFbands. FT4 accepts a further 3.2 dB loss in sensitivity but is twice as
fast as FT8, and is potentially attractive for contesting at high QSO
rates.
In this paper we provide full documentation of the FT4 and FT8protocols and outline how the modes are implemented in WSJT-X.
We present detailed performance measurements based on simulations
over the additive white Gaussian noise (AWGN) channel and a rangeof standard International Telecommunications Union (ITU) models
for HF propagation [12]. WSJT-X is an open source program licensed
under version 3 of the Free Software Foundation’s General Public
License (GPLv3). We provide some guidelines and a few restrictions
on the use of our freely available source code by others.

2. Structured Messages and Source Encoding
FT4 and FT8 transmissions always convey exactly 77 bits ofuser information. Mappings between human-readable messages
and the underlying information bits depend on designed-for-thepurpose compression techniques known as source encoding. The
basic aim is to give the 77-bit information payload maximum utility
for conveying the information necessary for basic station-to-station
contacts. To facilitate efficientmessage compression for a range oftargeted purposes, we allocate three
Table 1 - Defined message types for the 77-bit payloads of FT4, FT8, and MSK144.
bits to specify one of eight possible
message types. The remaining 74
Type i3.n3 Purpose
Example message
Bit-field tags
bits are for user information, with
0.0
Free Text
TNX BOB 73 GL
f71
0.1
DXpedition
K1ABC RR73; W9XYZ <KH1/KH7Z> -08 c28 c28 h10 r5source-encoding details that depend
0.3
Field Day
K1ABC W9XYZ 6A WI
c28 c28 R1 n4 k3 S7
on message type. Types are tagged
0.4
Field DayW9XYZ K1ABC R 17B EMA
c28 c28 R1 n4 k3 S7
with an integer variable that we callt71
0.5
Telemetry
123456789ABCDEF012
i3, and types that require fewer
1.
Std Msg
K1ABC/R W9XYZ/R R EN37
c28 r1 c28 r1 R1 g15
than 74 information bits can use the2.
EU VHF
G4ABC/P PA9XYZ JO22c28 p1 c28 p1 R1 g15
remaining bits to define subtypes
3.
RTTY RU
K1ABC W9XYZ 579 WI
t1 c28 c28 R1 r3 s13
4.
NonStd Call <W9XYZ> PJ4/K1ABC RRR
h12 c58 h1 r2 c1
tagged as i3.n3.
5.
EU VHF<G4ABC> <PA9XYZ> R 570007 JO22DB h12 h22 R1 r3 s11 g25
Table 1 presents a summary of
Reprinted with permission; copyright ARRL.

QEX July/August 20207

all currently defined message types. Each type has a defined humanreadable format that is mapped into a sequence of fixed-length bit
fields, each conveying specific information relevant to the type.
Successive columns of Table 1 show for each message type thenumber i3 or i3.n3, the basic purpose, an example message, anda sequence of one or more bit-field tags. Numbers in the tag names
indicate the number of bits in that field, and the total number of bits,
including n3 (if used) and i3, is always 77.
Table 2 identifies the type of human-readable information
conveyed by each distinct bit-field tag. The tags include ones
to encode call signs, Maidenhead locators, signal reports,
acknowledgments, various logical flags, and permissible exchanges
for a few special operating activities such as VHF contests, ARRL
RTTY Roundup, and ARRL Field Day.
Standard amateur call signs can be conveyed in 28 bits, but
compound calls such as PJ4/K1ABC and special-event calls
like YW18FIFA may require more than twice that number. To
accommodate such special calls, message type 4 allows use of one
arbitrary call sign with up to 11 alphanumeric characters. The othercall sign in such messages is sent as a hash code of just 12 bits.
Such a mapping from call sign to hash code is uniquely defined,
but obviously the inverse mapping cannot be unique. When the
WSJT-X receiving software finds a message containing a hash code
it displays the most recently decoded call sign mapping to that code(or perhaps “mycall”, if it maps to that code), enclosed in angle
brackets: for example <PJ4/K1ABC>. If no call sign is available
for the received hash, the missing information is displayed to theuser as <...>. Different message types may use different hashcode lengths. For example, message type 0.1 always sends thetransmitting station’s call sign as a 10-bit hash code, and message
type 1 conveys any call enclosed in angle brackets as a 22-bit hashcode. Hash code “collisions” are possible, of course, but in practice
we find they are rare. Further low-level details of these and othersource encoding algorithms, including ranges of permitted values,
can be found in Appendix A.

Table 2 - Assigned purposes for the bit fields listed inTable 1. Numbers in the tags indicate the number of bitsin that field.
Tag
c1
c28
c58
f71
g15
g25
h1
h10
h12
h22
k3
n4
p1
r1
r2
r3
R1
r5
s11
s13
S7
t1
t71

Information conveyed
First callsign is CQ; h12 is ignored
Standard callsign, CQ, DE, QRZ, or 22-bit hash
Nonstandard callsign, up to 11 characters
Free text, up to 13 characters
4-character grid, Report, RRR, RR73, 73, or blank
6-character grid
Hashed callsign is the second callsign
Hashed callsign, 10 bits
Hashed callsign, 12 bits
Hashed callsign, 22 bits
Field Day Class: A, B, ... F
Number of transmitters: 1-16, 17-32
Callsign suffix /P
Callsign suffix /R
RRR, RR73, 73, or blank
Report: 2-9, displayed as 529 – 599 or 52 - 59
R
Report: -30 to +32, even numbers only
Serial number (0-2047)
Serial Number (0-7999) or State/Province
ARRL/RAC Section
TU;
Telemetry data, up to 18 hexadecimal digits

8 QEX July/August 2020

3. Error Detection and Error Correction
A 14-bit cyclic redundancy check (CRC) is appended to each77-bit information packet to create a 91-bit message-plus-CRC
word. The CRC is calculated on the source-encoded message,
zero-extended from 77 to 82 bits. The CRC algorithm uses thepolynomial 0x6757 (hexadecimal) and an initial value of zero(see [13, 14] for further details). Another 83 bits are appended forforward error correction, creating a 174-bit codeword.
Forward error correction is accomplished using a (174, 91)
LDPC code designed specifically for FT8 and FT4. The code isdefined by two matrices: a generator matrix used to compute the83 parity bits appended to each 91-bit message-plus-CRC word,
and a parity matrix that can be used to determine if a given 174-bit
sequence is a valid codeword. All values in both matrices are either
0 or 1, and their related operations use modulo 2 binary arithmetic.
The generator matrix has 83 rows and 91 columns. It is defined in afile generator.dat and included along with a number of otheruseful files in reference [14]. Nonzero values in row i of the matrix
specify which of the 91 message-plus-CRC bits must be summed,
modulo 2, to produce the ith parity-check bit. Similarly, a fileparity.dat [14] defines the sparse 83  174 parity-check matrix.
The locations of the 1s in each row of this matrix specify which bitsof a 174-bit codeword must sum (modulo 2) to zero. The 174-bit
word is a valid codeword only if all 83 sums are zero.
4. Channel Symbols and Modulation
FT8 messages are transmitted using 8-tone continuous-phasefrequency shift keying (CPFSK). Each transmitted tone or channel
symbol conveys three bits. The sequence of 174 codeword bits ismapped onto a sequence of 174/3 = 58 channel symbols an, with nrunning from 0 to 57. The value of each symbol corresponds to atone index in the range 0 to 7. Groups of three consecutive message
bits are mapped to channel symbols using a Gray code defined bycolumns 1 and 2 of Table 3. This mapping ensures that bit triads
associated with adjacent tones differ in only one bit position, thereby
improving decoding performance on channels where Doppler
spread is comparable to the tone separation.
FT4 is similar but uses 4-tone CPFSK, so each channel symbol
conveys only two message bits. The sequence of 174 codeword bits
is mapped onto a sequence of 174/2 = 87 channel symbols an, n = 0,
1, 2, ..., 86, with each symbol value an integer tone index in therange 0 – 3. Pairs of successive message bits are mapped to channel
symbols according to the Gray code defined by columns 1 and 3 ofTable 3.
Tone patterns known as Costas arrays are embedded in FT8
and FT4 waveforms to allow the receiving software to synchronize
properly with received signals in both time and frequency. For
FT8 we use the seven-tone sequence 3, 1, 4, 0, 6, 5, 2 inserted at
the beginning, middle, and end of the transmitted waveform. If

Table 3 - Bi-directional Gray mapping between message
bits and channel symbols.
Channel Symbol
0
1
2
3
4
5
6
7

FT8 Bits
000
001
011
010
110
100
101
111

FT4 Bits
00
01
11
10

Reprinted with permission; copyright ARRL.

the sync sequence is denoted S and the ﬁrst and second halvesof the information symbols by M A  a0 , a1 ,..., a28  , andM B  a29 , a30 ,...., a57  , the complete set of 79 transmitted symbols
can be written as the sequence bn  S , M A , S , M B , S  .
.
Synchronization in FT4 uses four different Costas arrays,
definedas follows:
S1  0,1,3, 2 ,S 2  1, 0, 2,3 ,S3  2,3,1, 0 ,S 4  3, 2, 0,1 .,FT4 transmissions contain 87 information-carrying symbols. We
divide these into three groups of 29:

M A  a0 , a1 ,..., a28  ,M B  a29 , a30 ,..., a57  ,M C  a58 , a59 ,..., a86  .
To minimize keying transients we add a special ramp symbol
R with tone index 0 that establishes slow transitions from zeroamplitude at the start and to zero at the end of each waveform.
A complete set of 105 channel symbols is then assembled as thesequence of valuesbn   R, S1 , M A , S 2 , M B , S3 , M C , S 4 , R .
5. Generated Waveforms
Both protocols use continuous-phase frequency shift keying,
which implies generated waveforms of the forms t  

A cos  2 f c t    t   .

Here A is signal amplitude, fc is carrier frequency, t is time, and (t) isphase. The phase term can be written as the integral of instantaneous
frequency deviation, fd(t),t  t   2  f d   d ,t  0.

0This scheme guarantees that (t) is continuous, even acrossdiscontinuous steps in fd. Signal amplitude A is constant, except for
enforced rise and fall times at the start and end of a transmission.
This constant-amplitude or constant envelope feature ensuresthat nonlinear amplification of the signal will not generateintermodulation products.
Frequency deviation fd(t) is evaluated as the weighted sum of asequence of pulses, p(t):rate, usually measured in bauds.) The frequency deviation pulse isnormalized to have unit area, p  t  dt  1,

(2)



so the pulse weighted by symbol bn causes the carrier phase toadvance by 2hbn radians over the duration of the pulse. For
WSJT-X modes other than FT4 and FT8, p(t) is a rectangular pulse
with duration T and peak amplitude 1/T. For these modes theinstantaneous frequency deviation of the nth pulse is hbn/T.
The pulse amplitudes, bn, are integers in the range 0 – 7 for FT8
and 0 – 3 for FT4. With this convention the carrier frequency fc isthe lowest tone frequency, i.e., the frequency transmitted during aninterval with bn = 0. The occupied bandwidth and spectral shape of
the CPFSK signal depend on the modulation index, h, the signaling
interval T, and the shape of the frequency deviation pulse p(t). These
parameters are summarized in Table 4, where for comparison we
include, in addition to FT4 and FT8, several other modes supported
in WSJT-X. The modes JT4, JT9, JT65, and MSK144 use rectangularfrequency-deviation pulses, so their frequency deviations fd havediscontinuous jumps when bn changes from one signaling interval
to the next. Such jumps create relatively large spectral sidelobes in
the CPFSK signal. In FT4 and FT8 the sidelobes are minimized bysmoothing the frequency deviation function fd(t) with a Gaussian
filter. Waveforms generated in this way are called GaussianFrequency Shift Keyed (GFSK) signals.
Smoothing the frequency deviation waveform directly would
require a numerical convolution every time a new message is
generated. It is computationally more efficient to apply the Gaussiansmoothing filter to an isolated rectangular pulse, which needs tobe done only once. The Gaussian-smoothed pulses can then besuperposed according to Equation (1) to obtain the GFSK frequency
deviation waveform. Such waveforms are equivalent to thoseobtained by first generating the FSK waveform with rectangularpulses and then convolving it with a Gaussian smoothing function.
The GFSK Gaussian-smoothed pulse satisfying the normalization
condition (2) can be written in terms of the error function, erf(x), asp t  


1  
t

t
   (3)erf kBT   0.5    erf  kBT   0.5    .
2T  
T
T



 


(1)

Here the constant k   2 / ln 2  5.336..., and B is the smoothingfilter’s -3 dB bandwidth. The error function erf(x) is defined asx2
t 2
erf  x  e dt.

Here h is called the modulation index, weights bn are the channel
symbol values, p(t) is the frequency deviation pulse shape, andT the signaling interval. (Note that T is the inverse of the keying

A Gaussian smoothing filter has a low-pass frequency responsewith Gaussian shape. For FT8 we set the -3 dB bandwidth toB = 2T-1, or BT = 2. FT4 uses a more heavily smoothed pulse withf d  t   hbn p  t  nT  .
n 0Table 4 - Parameters of the CPFSK signals used for six modes in WSJT-X. Pulse amplitudes assume integer
values over the specified ranges.
Mode
FT4
FT8
JT4
JT9
JT65
MSK144

T(s)
0.048
0.160
0.2286
0.57600.37150.0005Modulation index, h
1
1
1
1
1
0.5

Reprinted with permission; copyright ARRL.

Pulse shape, p(t)Gaussian-smoothed, BT=1
Gaussian-smoothed, BT=2
Rectangular
Rectangular
Rectangular
Rectangular

Pulse amplitude, bn
0–3
0–7
0–3
0–8
0, 2 – 65
0–1

QEX July/August 20209

BT = 1. In the limit of very large filter bandwidth, BT 1, thepulse shape p(t) defined by Equation (3) becomes rectangular andequivalent to the pulse used to generate standard FSK as in theolder WSJT modes. The frequency deviation pulses actually used in
WSJT-X are plotted for comparison in Figure 1.
Duration of the smoothed FT4 and FT8 pulses is greater than thesignaling interval T, so successive pulses overlap. This intersymbolinterference (ISI) is introduced deliberately for the purpose ofshaping the emitted spectrum to reduce sidelobe levels. For thevalues of BT used in FT4 and FT8, significant ISI is present only
between immediately adjacent pulses. Thus, when summing pulses
to produce fd(t) using Equation (1), at time t it is only necessary toinclude contributions from the pulse whose center is closest to t andthose immediately before and after it.
Figure 2 shows a portion of an FT4 frequency deviation waveform fd(t). It’s easy to see that corners of the waveform at symbol
boundaries have been rounded. As an example to illustrate the reduction in spectral sidelobes eﬀected by using GFSK, Figure 3 shows
the spectrum of an FT4 signal and one generated using standard FSK
with no smoothing. The diﬀerence in sidelobe levels is striking. The

1.2

compact spectra of FT4 and FT8 signals make it possible for dozensof them to occupy a spectral slice of a few kHz, with little or no intersignal interference.
FT4 and FT8 waveforms have constant amplitude except at thevery beginning and end of a transmission. FT8 signals are ramped up
gradually over a transition interval T/8, or 20 ms, at the beginning of
the first sync symbol. The ramp function is a raised cosine,A  t   0.5  1  cos (8 t / T ],

Figure 4 illustrates the FT8 ramp function and the leading partof an FT8 waveform. The same taper is used in reverse to graduallyramp down the signal at the end of the transmission. FT4 waveforms
are similarly soft-keyed, this time using raised-cosine tapers applied
over the full 48 ms duration of the special ramping symbols R,
described earlier.
6. Symbol Detection and Decoding
Sections 2 through 5, Appendix A, and resources in reference[14] define the source encoding, error-correction coding, andmodulation scheme associated with the FT4 and FT8 protocols.
Any proper implementation of these protocols should strictly adhere
to these definitions. In this section we turn to a discussion of some
implementation-specific methods used in WSJT-X for detecting

1

0
FSK
FT4

–20

0.6

–40

BT = 1
BT = 2
BT = 99

0.4
0.2

dB

p(t)

0.8

0

0  t  T / 8.

–60
–80

–1

–0.5

0

0.5

1

–100

t/T
Figure 1 — Gaussian-smoothed frequency deviation pulses. The
pulses labeled BT=1 and BT=2 are used to generate the FT4 andFT8 frequency-deviation waveforms, respectively. The case BT=99
is essentially the same as the unfiltered rectangular pulse that isused to generate standard, unsmoothed FSK in JT65, JT9, andother modes in WSJT-X.

0

500

1000

1500

2000

2500

3000

Frequency (Hz)Figure 3 — Average spectrum of an FT4 signal (GFSK, BT=1.0:
dotted line) and the spectrum of an otherwise equivalent standard
FSK waveform (solid line).

1
0.5

60

Amplitude

Frequency Deviation (Hz)

70

50
40
30

0
–0.5

20
10
0
–10

–1
3

3.2

3.4

3.6

3.8

Time (s)Figure 2 — A segment of an FT4 frequency deviation waveformgenerated using the Gaussian-smoothed frequency deviation
pulse with BT=1.0.

10 QEX July/August 2020

4

500

505

510

515

520

525

530

535

540

t (ms)
Figure 4 — The beginning of an FT8 waveform showing gradualrise of the signal envelope over the first 20 ms. FT4 uses a similarraised-cosine ramp expanded to 48 ms duration. Time-reversed
ramp-down functions are used at the ends of transmissions.

Reprinted with permission; copyright ARRL.

and decoding FT4 and FT8 signals. Other approaches are certainly
possible, and might be used by other software developers.
WSJT-X uses advanced detection and decoding techniques todecode the weakest possible signals. Noncoherent block detection
over sequences of two or more channel symbols improves sensitivity
over single-symbol detection when the received signal maintains
phase coherence over multiple symbols [15]. Single-symbol
detection provides robust detection on rapidly fading channels,
while longer block lengths provide better sensitivity in slow fading
conditions. We use block lengths of N = 1, 2, and 3 symbols for FT8,
and N = 1, 2, and 4 for FT4.
Block detection is carried out by correlating received waveform
segments spanning N symbols with locally generated waveforms
corresponding to each of M N possible symbol sequences. Here M
is the number of different modulation waveforms (tones) used foreach mode, M = 8 for FT8 and M = 4 for FT4. For this techniqueto provide sensitivity gains the received signal must be phase-stable
over the block length. Such detection is said to be noncoherent,
however, because phase continuity between sequences is notassumed. Only the magnitude of the complex-valued correlation
is used, and detection is independent of phase differences between
the received signal and locally generated waveforms. Output fromthe block detector is a set of M N positive real correlation values.
These are used to derive soft decisions for each of the N log2 M bits
conveyed by the N- symbol sequence.
Conversion of the waveform correlations to soft decisions isaccomplished using a soft demapper. The soft metric Lj for xj, the jth
bit associated with a particular symbol sequence, can be written as
L j  K  max Ci  max Ci  ,i:x j  0
 i:x j 1where max Ci is the largest correlation magnitude from the set
i: x j 1of MN/2 correlations between the received waveform and ideal
waveforms associated with bit sequences having xj = 1. Likewise, thesecond term is the largest magnitude from the other half of the set ofcorrelations, associated with xj = 0. The normalization constant, K, isadjusted empirically to optimize performance over a range of SNRs
and channel conditions. For example, consider block detection ofsequences of N = 3 successive FT8 symbols. Since each symbol
could have any one of M = 8 values, there are 83 = 512 possible
three-symbol waveforms to be correlated with each three-symbol
block of the received waveform. The resulting 512 correlation values
determine soft decisions for the 9 bits conveyed by the sequence. In
practice, WSJT-X calculates the 8 correlations required for singlesymbol (N = 1) detection first, using a fast Fourier transform. The
single-symbol complex results are then combined to produce the64 correlations required for N = 2 and the 512 correlations required
for N = 3 block detection, thereby avoiding needless redundantcalculations.

A set of 174 soft decisions is obtained for each block size. These
are submitted to the decoder, starting with the set for N = 1. If thedecoder returns a codeword whose 77-bit message produces a 14-bit
CRC that matches the decoded CRC, the algorithm terminates andthe decoded message is unpacked and displayed to the user.
Our decoder uses a hybrid approach that combines the fast,
iterative, belief propagation (BP) algorithm [16] with the moresensitive but computationally expensive ordered statistics decoding(OSD) algorithm [16]. In practice we find that most received signals
are decoded with just a few iterations of the BP algorithm. WhenBP fails to find a valid codeword after a reasonable number of
iterations, the soft decisions are submitted to the OSD algorithm.
The OSD algorithm can provide several dB of additional sensitivity
under certain conditions. Our implementation of the OSD algorithm
incorporates the preprocessing rules from reference [17]. We
found that these shortcuts significantly improve the computational
efficiency of the OSD approach.
Our decoders can optionally make use of so-called a priori(AP) information as it accumulates during a QSO. For example,
when you answer a CQ you already know your own call sign, thatof your potential QSO partner, and the type of message you expect
to receive if your reply is successful. Your decoding software
therefore “knows” what might be expected for at least 62 message
bits (29 for each of two call signs and /R flags, 1 for the R indicator,
3 for message type) in the next received message. With these bits
hypothesized as a conjecture, the decoder’s task can be reduced todetermining the remaining 15 bits of the message and ensuring thatthe resulting solution is reliable. The use of AP information can
increase sensitivity by several dB at the cost of a somewhat higher
rate of false decodes.
Table 5 shows measured decoding thresholds for FT4 and FT8
derived from simulations, providing insight into the sensitivity gains
offered by block detection and OSD. Here and elsewhere in thispaper, quoted sensitivity thresholds are the signal-to-noise ratios in2500 Hz bandwidth at which decoding probability is 0.5. Numbersin the first table row for each mode represent a baseline case withsingle-symbol N = 1 detection and BP decoding. The next two rows
add block detection and block detection with hybrid (BP and OSD)
decoding. Column 2 gives results for the non-fading additive white
Gaussian noise (AWGN) channel, while columns 3 and 4 are forchannels with frequency spreads of 1 Hz and 10 Hz, respectively. See
Section 8 for more information about the channel models. One cansee that on the AWGN channel block detection improves sensitivity
by 1.6 dB and 0.7 dB for FT4 and FT8, respectively. Addition of
hybrid decoding provides another 0.6 dB and 0.5 dB. Overall, blockdetection and the hybrid decoder offer 2.2 and 1.2 dB of sensitivity
improvement over the baseline case for FT4 and FT8, respectively.
On the mid-latitude disturbed channel, block detection improves
sensitivity by 1.3 dB and 0.5 dB, and overall improvements are 2.5

Table 5 - Decoding thresholds for three different channels and three decoding schemes.
Decoding Algorithm

AWGN (dB)Mid-latitude Disturbed (dB)

High-Latitude Moderate (dB)FT4:N=1; BP
N=1,2,4; BP
N=1,2,4; BP+OSD

–15.3
–16.9
–17.5

–12.7
–14.0
–15.2

–10.4
–10.5
–12.2

FT8:
N=1; BP
N=1,2,3; BP
N=1,2,3; BP+OSD

–19.6
–20.3
–20.8

–16.5
–17.0
–18.6

–8.6

Reprinted with permission; copyright ARRL.

QEX July/August 202011and 2.1 dB. Doppler spread on the high-latitude disturbed channel
exceeds the FT8 tone spacing, and FT8 fails to achieve a 50%
decode probability at any SNR using only the baseline decoding
scheme. With its larger tone spacing FT4 outperforms FT8 on thischannel. Block detection does not offer significant improvement inthis case — only 0.1 dB for FT4 — because coherence time on this
rapidly fading channel is comparable to or smaller than the durationsof the multi-symbol blocks.
After a signal is decoded we have the information necessary toregenerate the waveform that was actually transmitted. We use theregenerated signal as a reference to derive the time-varying, complex
gain function that describes the effect of the propagation channel.
Denote the real received audio signal by s(t) and define a complex
reference signal byr t   A t  e 

j 2 f 0t   t  ,

7. Message Sequencing
A basic QSO between K1JT and K9AN might consist of thefollowing messages:
Tx6: CQ K1JT FN20
Tx1: K1JT K9AN EN50

where f0 is the estimated audio frequency of the decoded signal
and A(t) and (t) are the amplitude and phase of the transmitted
waveform. The time-varying complex channel gain function, g(t),is obtained via:g  t   LPF  s  t  r *  t   ,where LPF[ ] represents a low-pass filter and * represents thecomplex conjugate. The low-pass filter cutoff is optimized for best
performance with real signals received under a range of different
propagation conditions. The estimated channel gain function isapplied to the ideal reference signal to reconstruct a nearly noiselessversion of the received signal’s waveform, including channelinduced amplitude fading and phase variation. The reconstructedsignal is then subtracted from the received data, i.e.
s  t   s  t   2R  g  t  r  t  

where R   takes the real part of its argument, and s’(t) is the audio
waveform after subtracting the decoded signal. This subtraction
process can uncover weaker signals that occupy the same frequency
slot as the subtracted strong signal. The weaker signals can often be
decoded on a second decoding pass, after all signals decoded in thefirst pass have been subtracted.
WSJT-X analyzes an audio waveform that may contain manysignals in the received passband. A decoding pass starts by identifying
all likely signals, or candidates, using spectral analysis. Then, foreach candidate in succession, our procedure is to (1) synchronize,
estimating the frequency offset from the upper-sideband dialfrequency and the time offset with respect to the computer’s system

Acronyms and abbreviations used in text.
AP
AWGN
BP
CPFSK
CRC
FEC
GFSK
GPLv3
ISI
ITU
LDPC
MinGW
OSD
SNR
UI

clock; (2) determine soft decisions for each of three block lengths andattempt to decode each one using either BP alone or BP+OSD; (3) if
the decode is successful, subtract the signal. If at least one signal is
decoded and subtracted in the first decoding pass, the remaining audio
waveform is re-analyzed. New candidates are identified and steps 1
through 3 are carried out for each one. If at least one new signal is
decoded and subtracted in the second pass, a third pass will sometimes
yield decodes missed in the first two passes. Multi-pass decoding has
proven very effective: the approach is often able to decode two or
three signals at the same or nearly the same frequency.

a priori, as in AP decoding
additive white Gaussian noise
belief propagation
continuous-phase frequency-shift keying
cyclic redundancy checkforward error correction
Gaussian frequency-shift keying
General Public License, version 3
inter-symbol interference
International Telecommunication Union
low-density parity check code
Minimalist GNU for Windows
ordered statistics decoding
signal-to-noise ratiouser interface

12 QEX July/August 2020

Tx2: K9AN K1JT -10
Tx3: K1JT K9AN R-12
Tx4: K9AN K1JT RRR
Tx5: K1JT K9AN 73
Here the Txn: labels are those used to identify message entry
fields on the WSJT-X user interface. In this model QSO evennumbered messages are sent by K1JT, odd-numbered messages(those displaced to the right) by K9AN. Note that all messages
bear the transmitting station’s call sign, and all but the CQ are
explicitly directed to a particular QSO partner. Most QSOs follow
the sequence shown, or a closely related one depending on context,
propagation, and interference conditions. In normal usage, failure
to decode a response from a QSO partner implies repetition of theprevious transmission.
Traditionally, operators have clicked buttons on the user interface(UI) of WSJT-X [1, 2, 19] and its predecessor WSJT [4-11] to trigger
transmission of the next message in a sequence similar to thatshown above. Protocols with one-minute T/R sequences leave about
10 seconds between decoding and start of the next transmission,
so there is plenty of time to decide upon and activate one’s nexttransmission. However, the shorter sequences of FT8 and FT4
require much quicker responses, effectively requiring moderateamounts of automation built into the software.
If a UI checkbox labeled Auto Seq has been ticked, the softwareparses decoded messages to decide whether a valid response for the
standard QSO sequence has been received, directed to “mycall”. If
so, the next message in the sequence is queued and transmitted; if
not, the previous transmission is repeated. This sequence of events
proceeds until a QSO is completed or abandoned by user action.
With a few optional exceptions (“Fox” operation in FT8 DXpeditionmode, and contest operation), user action is also required to verify
QSO details and submit them for logging. In any event, by design
WSJT-X requires that every QSO must be initiated by a humanoperator. We do not like the idea of fully robotic operation withmodes like FT4 and FT8, and the WSJT-X software prevents it.
These moderate levels of automation involve considerably morelogic in the software, essentially duplicating the thought processesof an attentive user progressing through a valid QSO. In typicaloperation on a busy HF or VHF band, dozens of valid FT4 or FT8
messages may be decoded in a single receiving sequence. The
receiving software must analyze all of these, determine whether any
is a valid reply in the expected sequence for a QSO already underway,
and take appropriate action. Figure 5 provides a high-level summaryof the six major states of the WSJT-X auto-sequencing behavior.
On program startup, and when Halt Tx is clicked, the logical statemachine is put into the Calling state. Subsequent stages of a standard
Reprinted with permission; copyright ARRL.

QSO pass through the Replying, Report, Roger_Report, Rogers, andSignoff states while proceeding through the sequence of transmitted
and received messages illustrated at the start of this section.
Each major state has its own internal logic that determines what
action will be taken when specified types of messages are received.
An idealized and abbreviated representation of this logic for the
Calling state is presented in Figure 6. Here and in Figure 5 we haveused Unified Modeling Language notation [18], which should be
mostly self-explanatory. For example, the text

attached to a state transition line has the form “trigger [guard
condition] / action,” so this is a transition that happens automaticallywithout any triggering event, but only if the just parsed message has
the standard Tx1 format. In this case the transition has a side effectof setting the next message queued for transmission as the generated
Tx2 message.
The user interface provides options for configuring various
details of the auto-sequencing behavior; please consult the WSJT-X
2.1 User Guide [19] for further details.

[message == Tx1] / Tx message = Tx2

Sequencing
Calling

Replying

ReportSignoff

RogersRoger Report

Halt Tx

Figure 5 — Top-level state diagram for standard message sequencing in WSJT-X.

CallingTx message == Tx6/ Tx message = Tx6[AutoSeq] / arm auto sequencing

no

yes

¬no more decodes¬¬decode double-clicked¬

Waitingmessage decoded[auto sequencing armed && Call 1st]nofor usParse message
do / disarm auto sequencing
do / extract DX call & griddo / generate Tx messages

yes¬[message == Tx1] / Tx message = Tx2¬¬[message == Tx2] / Tx message = Tx3¬¬[message == Tx3] / Tx message = Tx4¬¬[message == Tx4] / Tx message = Tx5¬
[message == Tx6]¬/ Tx message = Tx1¬/ Tx message = Tx2¬

noskip Tx1
yes

Figure 6 — Example detailed state chart for the high-level “Calling” state shown in Figure 5.

Reprinted with permission; copyright ARRL.

QEX July/August 202013

8. Performance Measurements
While designing FT4 and FT8 we used channel simulations
based on the approach recommended by the ITU [12] to assess theperformance that could be achieved under real-world conditions.
The channel model assumes two independently fading paths withequal mean attenuation and equal frequency spreads. A channel
is defined by its frequency spread and differential path delay.
Reference [12] specifies frequency spread and path delay parameters
for quiet, moderately disturbed, and highly disturbed conditions in
low-latitude, mid-latitude, and high-latitude terrestrial regions. The
ITU channels referenced in this paper have differential path delays
that are small compared to FT4 and FT8 symbol durations, so thisparameter has little effect on performance. The size of a channel’sfrequency spread relative to the tone spacing of the mode is the mostimportant factor determining the extent of performance degradation.
Figure 7 compares FT4 and FT8 performance obtained using
WSJT-X version 2.1 to decode simulated FT4 and FT8 waveforms
under non-fading additive white noise (AWGN) conditions, andon mid-latitude disturbed and high-latitude moderately disturbed
channels. Table 6 lists the channel parameters and the decoding
threshold for these channels along with the mid-latitude quiet
and mid-latitude moderate channels. FT8 maintains about 3 dB
sensitivity advantage over FT4 on AWGN and mid-latitude channels
where frequency spread is smaller than the tone spacing for bothmodes. Frequency spread on the high-latitude channel is larger thanthe FT8 tone spacing and smaller than FT4’s tone spacing, which
explains why FT4 performs best in that case.
Table 6 includes decoding thresholds obtained when the
maximum possible amount of AP information is available.
Maximum AP information provides about 2 dB of additional
sensitivity on less disturbed channels and increasing improvement
as frequency spread increases. On the most disturbed channel, large
improvements of about 5 dB and 10 dB are obtained for FT4 andFT8, respectively. The trend is similar for scenarios where less AP
information is available.
Figure 8 provides a detailed look at how using AP information
can improve sensitivity as a QSO progresses. The mid-latitude
disturbed channel was used for this set of simulations. The curvelabeled “no AP” is the same as the curve labeled “FT8 Mid
disturbed” Figure 7. The curve labeled “caller” shows sensitivity toresponses to a CQ, or any other message directed to “mycall”. The
curve labeled “report” indicates sensitivity to messages directed to“mycall”, originating from the known call sign of a QSO partner.
This curve represents the sensitivity to a report or roger-reportmessage during a QSO. Finally, the curve labeled “RRR/RR73/73”
represents sensitivity to an RRR, RR73, or 73 message from a QSO
partner, at the end of a QSO.
Figure 8 shows a modest sensitivity improvement to a callerwhen only “mycall” is used as AP information. The advantagesof such AP information become more significant when the caller
fails to start transmitting at the nominal start time, 0.5 s after the

Decode Probability

1

FT8 AWGNFT4 AWGN
FT8 Mid disturbed
FT4 Mid disturbed
FT8 High moderate
FT4 High moderate

0.75

0.5

0.25

0

–20

–15

–10

–5

0

SNR 2500 (dB)Figure 7 — Measured decoding probability as a function of SNR for FT8 and FT4, based on simulations for three propagation channels:
additive white Gaussian noise (AWGN), and the ITU standards for mid-latitude disturbed and high-latitude moderate conditions. No AP
information was used for these sensitivity measurements.

Table 6 - FT4 and FT8 decoding thresholds measured using simulations. In all cases, the decoder used blockdetection and (BP+OSD). For each channel and mode, two decoding thresholds are given. “No AP” is the thresholdwhen no a priori information is available, and “max. AP” is the decoding threshold with the maximum amount of apriori information, at the end of a QSO when receiving RRR, 73, or RR73 from a QSO partner.
ChannelFrequency
Spread (Hz)Diff. Path
Delay (ms)AWGN
Mid-latitude quiet
Mid-latitude moderate
Mid-latitude disturbed
High-latitude moderate

0.0
0.1
0.5
1.0
10.0

0.0
0.5
1.0
2.0
3.0

14 QEX July/August 2020

FT4 Decoding
Threshold (dB),
no AP
–17.5
–17.4
–15.8
–15.2
–12.2

FT4 Decoding
Threshold (dB),max. AP
–19.5
–19.4
–18.6
–18.4
–17.4

FT8 Decoding
Threshold (dB),
no AP
–20.8
–20.0
–18.8
–18.6
–8.6

FT8 Decoding
Threshold (dB),max. AP
–22.7
–22.4
–22.1
–22.1
–18.9

Reprinted with permission; copyright ARRL.

beginning of a transmit interval. In such cases, WSJT-X will skip
the missed part of the transmission and start sending a correctly
synchronized message for the remainder. Those receiving sucha truncated message will collect only a fraction of the message
symbols. A common scenario for this occurrence is “late” responses
to a CQ. For example, suppose that G4WJS calls CQ. He knowsthat responses to his call will be addressed to G4WJS. The “no AP”
curve in Figure 9 shows that without the use of AP information,
responses from callers who start transmitting more than 5 seconds
after the beginning of a Tx interval will not be decoded. The curvelabeled “AP mycall” shows decoding probability as a function ofstart time when the decoder specifically looks for responses directed
to G4WJS. In this case transmissions that were started up to 8
seconds late are likely to be decoded successfully.

Decode Probability

1
no AP
callerreport0.75

RRR/
RR73/73

0.5

0.25

0
–26

–24

–22

–20

–18

–16

SNR 2500 (dB)Figure 8 — Decode probability for FT8 on the mid-latitude
disturbed channel using different amounts of a priori (AP)information. See text for details.

Decode Probability

10.75
SNR -10dB

0.5

no AP
AP mycall

0.25

0

0

2

4

6

8

10

12

Delay to TX Enable (s)Figure 9 — Decode probability for FT8 when the transmitting
station starts transmitting after the beginning of a 15 s interval.
The simulation was performed for the mid-latitude moderately
disturbed channel, at SNR = –10 dB. The kink in the “AP mycall”
curve at 6.5 s arises because missing symbols from the Costas
array in the middle of the FT8 transmission have little effect on
decoding probability.

Reprinted with permission; copyright ARRL.

9. Concluding Remarks and Software LicenseThis paper and the online resources found in reference [14]provide complete descriptions of the FT4 and FT8 protocols. In thespirit of open sharing, and to encourage other software developers
who might use some of our ideas, we place this description in the
public domain with the following restrictions:•

Other software implementers may use the names “FT4” and“FT8” only if they adhere to our protocol definitions for source
encoding, error-correction coding, and modulation format.

•

Robotic or unattended QSOs must be explicitly disallowed.

•

Multi-streaming with waveforms and message content similar
to those used in FT8 DXpedition Mode is permissible only
within the guidelines specified in the WSJT-X 2.1 User Guide
[19].

•

Presently unassigned message types (see Table 1) are reserved
for future expansion and must not be assigned without ourpermission.

•

Any implementation of these or similar protocols that allows
robotic, unattended, or non-conforming multi-streaming
operation shall not use the names “FT4” or “FT8” and must
be made incompatible by some means, such as using different
Costas arrays for synchronization.

With the exception of code contained in reference [14], sourcecode for our implementations of FT4, FT8, and MSK144 is not in
the public domain. Rather, all code in WSJT-X is copyrighted andlicensed under the terms of Version 3 of the GNU General Public
License (GPLv3), reference [20]. Very briefly stated, GPLv3
guarantees end users the freedom to run, study, and modify thesoftware, so long as the same licensing terms are extended to any
new software derived from or dependent upon our source code.
We welcome any independent software implementations of
FT4 and FT8, so long as they either (1) adhere to all requirements
mentioned above, or (2) make no use of our source code beyond the
public-domain resources mentioned above. We hope and trust thatmany of the innovations pioneered in WSJT-X and its predecessors
will outlive its present developers — and will continue to advancethe art of weak-signal communication by Amateur Radio for many
years to come.

Appendix A. Source Encoding Details
Section 2 of this paper is a summary of how the FT4, FT8, andMSK144 protocols pioneered in WSJT-X compress and convey
call signs, Maidenhead locators, signal reports, and certain otherinformation in a very efficient way. Tables 1 and 2 outline the basic
source-encoding framework, with each message payload comprisinga sequence of fixed-length bit fields. This Appendix completes
the details needed to fully define mappings from human-readable
message fragments to relevant fields in the fixed-size 77-bit message
payload. For the convenience of others who might wish to implement
the FT4 or FT8 protocols, some essential algorithmic parts of thedefinitions are presented in simple, very short Fortran programs
whose source code we have placed in the public domain [14].
As first steps we shall define the way standard call signs and4-character Maidenhead locators are encoded into fields of just
28 and 15 bits, respectively. As described in the WSJT-X 2.1 User
Guide [19], a standard amateur call sign consists of a one- or twocharacter prefix, at least one of which must be a letter, followed bya decimal digit and a suffix of up to three letters. Within these rules,
the number of possible call signs is equal to 373610272727 =QEX July/August 202015

262,177,560. (The numbers 27 and 37 arise because in the first andlast three positions a character may be absent, or a letter, or perhaps adigit.) Since 228 = 268,435,456 is a larger number, 28 bits are enoughto encode any standard call sign uniquely, while leaving 6,257,896
values available for conveying other types of information. A few ofthese excess values are assigned to special message components suchas DE, QRZ, and CQ (optionally with a modifier). A further 222 =
4,194,304 are used to convey 22-bit hash codes for call signs.
Similarly, there are 180180 = 32,400 four-digit Maidenhead grid
locators. This number is less than 215 = 32,768, so a grid locator canbe uniquely represented in 15 bits. Some of the 368 fifteen-bit values
not needed for grid locators are used to convey numerical signal
reports of the form nn in the range -30 to +99 dB, or a blank, or oneof the words RRR, RR73, or 73.
As a particular example, consider the bit allocations for message
type 1, an essential part of almost all FT4 and FT8 QSOs. These
basic messages usually contain two 28-bit call signs, an optionalacknowledgment R, and a four-character locator, signal report, RRR,
RR73, or 73. Table 1 shows that this message type consists of fields
with the tags c28, r1, c28, r1, R1, g15, and i3. The r1
fields are normally 0; the value 1 implies a /R call sign suffix toindicate “rover” status in a North American VHF contest. The R1
field conveys the absence (0) or presence (1) of an acknowledgment
R before the locator or signal report conveyed by g15. In the final
77-bit information payload, bit fields are assembled in the left-toright order specified in Table 1, followed by n3 (if used; currently
used only in type 0) and i3.
We now turn to concise descriptions of the algorithms mapping
human-readable message fragments to the tagged bit fields withnames listed in Table 2. For this purpose the public-domain Fortranprograms contained in reference [14] are essential. To get started,
download the compressed tarfile ft4_ft8_protocols.tgz
from the www.arrl.org/QEXfiles web page, unpack it into a suitabledirectory and follow simple instructions for your operating system(Windows, Linux, or macOS) at the top of file Makefile. These
steps will build executables for the seven programs gen_crc14,
free_text_to_f71, grid4_to_g15, grid6_to_g25,
hashcodes, nonstd_to_c58, and std_call_to_c28 whose
purposes are explained below.
In alphabetical order, concise definitions for the tagged bit fields
listed in Table 2 are as follows:c1:
Used only in message type 4. Normally 0; value 1
denotes a message consisting of CQ and a nonstandard
call sign, for example CQ PJ4/K1ABC.
c28:
Used to convey a standard call sign or one of thespecial message words CQ, DE, or QRZ, or a 22-bit
call sign hash code. CQ may be followed by a modifier
with three decimal digits or one to four letters. Eachpossible message fragment with CQ, DE, or QRZ is
mapped to a specific integer value of c28, as indicatedin Table 7. Call sign values are computed using thealgorithm illustrated by program std_call_to_c28, and hash codes by program hashcodes.
c58:
Used to encode nonstandard call signs up to
11 characters, using the algorithm illustrated
by program nonstd_to_c58.
f71:
Conveys arbitrary free text with up to 13 characters
selected from the list
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ+-./?
plus the blank character. The encoding algorithm isillustrated by program free_text_to_f71.

16 QEX July/August 2020

Encodes a 4-character Maidenhead locator, signal
report, RRR, RR73, 73, or a blank message word,
using the algorithm in program grid4_to_g15.
g25:
Encodes a 6-character Maidenhead locator using
the algorithm in program grid6_to_g25.
h10, h12,Call sign hash codes of length 10, 12, or 22 bits. The
h22:hashing algorithm is deﬁned in program hashcodes.
k3:
ARRL Field Day Class A-F, encoded
as integer values 0 – 5.
n4:
In message type 0.3, maximum number ofsimultaneously transmitted signals minus 1.
In message type 0.4, maximum number ofsimultaneously transmitted signals minus 17.
p1:
Absence (0) or presence (1) of call sign suffix /P.
r1:
Absence (0) or presence (1) of call sign suffix /R.
r2:
Value 0 encodes a blank message word;values 1 – 3 encode RRR, RR73, or 73.
r3:
Values 0 – 7 encode a signal report displayed as 52, 53,… 59 (message type 0.3) or 529, 539, … 599 (type 3).
R1:
Absence (0) or presence (1) of
acknowledgment R before grid or report.
r5:
Values 0 – 31 convey signal reports –30,
–28, … +32 dB (even numbers only).
s11:
Serial number, range 0 – 2047.
s13:
Values 0 – 7999 convey a serial number; values
8001 – 8065 encode the abbreviations for US states
and Canadian provinces by means of lookup tablestates_provinces.txt included in reference [14].
S7:Values 0 – 83 encode abbreviations for the ARRL/RAC section names by means of lookup table arrl_
rac_sections.txt included in reference [14].
t1:Absence (0) or presence (1) of TU; atthe start of a type 3 message.
t71:
Telemetry data, up to 18 hexadecimal digits
or 71 bits maximum. With 18 digits, thefirst digit must fall in the range 0 – 7.
g15:

We note here that for FT4 only, in order to avoid transmitting along string of zeros when sending CQ messages, the assembled 77-bit
message is bitwise exclusive-OR’ed with the following pseudorandom sequence before computing the CRC and FEC parity bits:

0100101001011110100010
0110110100101100001000
1010011110010101010110
11111000101
The receiving software applies this exclusive-OR procedure asecond time, to restore the original 77-bit message.

Table 7 - Summary of mappings between message
fragments and numerical values of the bit field c28.
Message fragment
DE
QRZ
CQ
CQ 000 - CQ 999
CQ A - CQ Z
CQ AA - CQ ZZ
CQ AAA - CQ ZZZCQ AAAA - CQ ZZZZ
22-bit hash codes
Standard call signs

c28 as decimal integer0
1
2
3 to 1002
1004 to 1029
1031 to 1731
1760 to 20685
21443 to 532443
2063592 + (0 to 4194303)
6257896 + (0 to 268435455)

Reprinted with permission; copyright ARRL.

Steve Franke, K9AN, holds an Amateur Extra class license. He was
first licensed in 1971 and has previously held call signs WN9IIQ andWB9IIQ. An early and abiding fascination with radio science led to a
35-year career as Professor of Electrical and Computer Engineering
at the University of Illinois. Steve retired in 2019 and now holds thetitle Professor Emeritus. He enjoys chasing DX, playing with RFcircuits and antennas, and studying HF and VHF propagation. Steve isa member of ARRL and a Fellow of the IEEE.
Bill Somerville, G4WJS, earned a Chemistry degree at the
University of Bristol and has worked in computer software andhardware in a variety of industries including defense, softwaredevelopment, and financial services. Most recently he’s a freelance
consultant providing systems programming and related services tomid- to large-size software tool vendors. An active radio amateur
since 1981, Bill enjoys HF and VHF bands, contest operating, and DX
chasing using CW, phone, and data modes.
Joe Taylor was first licensed as KN2ITP in 1954, and has sinceheld call signs K2ITP, WA1LXQ, W1HFV, VK2BJX and K1JT. He wasProfessor of Astronomy at the University of Massachusetts from 1969
to 1981 and since then Professor of Physics at Princeton University,
serving there also as Dean of the Faculty for six years. He wasawarded the Nobel Prize in Physics in 1993 for discovery of the firstorbiting pulsar, leading to observations that established the existenceof gravitational waves. After retirement he has been busy developing
and enhancing digital protocols for weak-signal communication by
Amateur Radio, including JT65 and WSPR. He chases DX from 160
meters through the microwave bands.
References[1] Joe Taylor, K1JT, Steve Franke, K9AN, and Bill Somerville,
G4WJS, “Work the World with WSJT-X: Part 1, Operating
Capabilities,” QST, Oct. 2017, pp. 30-36.
[2] Joe Taylor, K1JT, Steve Franke, K9AN, and Bill Somerville,
G4WJS, “Work the World with WSJT-X: Part 2, Codes, Modes, andCooperative Software Development,” QST, Nov. 2017, pp. 34-39.
[3] “Mode Usage Evaluation: 2017 was ‘the Year When Digital Modes
Changed Forever’,” www.arrl.org/news/mode-usage-evaluation2017-was-the-year-when-digital-modes-changed-forever.

Reprinted with permission; copyright ARRL.

[4] Joe Taylor, K1JT, “WSJT: New Software for VHF Meteor-Scatter
Communication,” QST, Dec. 2001, pp. 36-41.
[5] Joe Taylor, K1JT, “EME with JT65,” QST, June 2005, pp. 80–82.
[6] Joe Taylor, K1JT, “The JT65 Communications Protocol,” QEX,
Sep./Oct. 2005, p. 3-12.
[7] Rex Moncur, VK7MO, and Joe Taylor, K1JT, “Small Station EME
at 10 and 24 GHz: GPS Locking, Doppler Correction, and JT4,”
Dubus 2/2013.
[8] Steven J. Franke, K9AN, and Joseph H. Taylor, K1JT, “OpenSource Soft-Decision Decoder for the JT65 (63,12) Reed-Solomon
Code,” QEX, May/June 2016, pp. 8-17.
[9] Steven J. Franke, K9AN, and Joseph H. Taylor, K1JT, “TheMSK144 Protocol for Meteor-Scatter Communication,” QEX, July/
Aug. 2017, pp. 8-14.
[10] Nico Palermo, IV3NWV, “Q-ary Repeat-Accumulate Codes for
Weak Signals Communications,” www.eme2016.org/wp-content/
uploads/2016/08/EME-2016-IV3NWV-Presentation.pdf.
[11] Joe Taylor, K1JT, “WSJT-X: New Codes, Modes and Tools for
Weak-Signal Communication,” www.physics.princeton.edu/
pulsar/K1JT/K1JT_EME_2016_Venice.pdf.
[12] Testing of HF Modems with Bandwidths of up to about 12 kHz
Using Ionospheric Channel Simulators, Recommendation ITU-R
F.1487, International Telecommunications Union, 2000.
[13] Ross N. Williams, “A Painless Guide to CRC Error Detection
Algorithms,” https://www.zlib.net/crc_v3.txt.
[14] http://physics.princeton.edu/pulsar/k1jt/ft4_ft8_protocols.
tgz.
[15] Marvin K. Simon and Dariush Divsalar, “Maximum-Likelihood
Block Detection of Noncoherent Continuous Phase Modulation,”
IEEE Transactions on Communications, Vol. 41, No. 1, Jan. 1993, pp.
90-98.
[16] Shu Lin and Daniel J. Costello, Jr., Error Control Coding:Fundamentals and Applications, 2nd edition. Pearson Prentice
Hall, 2004.
[17] Yingquan Wu and Christoforos N. Hadjicostis, “Soft-Decision
Decoding of Linear Block Codes Using Preprocessing andDiversification,” IEEE Transactions on Information Theory, Vol. 53,
No. 1, Jan. 2007, pp. 378-393.
[18] https://en.wikipedia.org/wiki/UML_state_machine.
[19] WSJT Development Group, “WSJT-X 2.1 User Guide,” www.
physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjtx-main2.1.2.html.
[20] GNU General Public License, GPLv3, https://www.gnu.org/
licenses/gpl-3.0.txt. See also https://en.wikipedia.org/wiki/
GNU_General_Public_License.

QEX July/August 202017