337 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			337 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
[[PROTOCOL_OVERVIEW]]
 | 
						||
=== Overview
 | 
						||
 | 
						||
All QSO modes except ISCAT use structured messages that compress
 | 
						||
user-readable information into fixed-length packets of 72 bits.  Each
 | 
						||
message consists of two 28-bit fields normally used for callsigns and
 | 
						||
a 15-bit field for a grid locator, report, acknowledgment, or 73.  An
 | 
						||
additional bit flags a message containing arbitrary alphanumeric text,
 | 
						||
up to 13 characters.  Special cases allow other information such as
 | 
						||
add-on callsign prefixes (e.g., ZA/K1ABC) or suffixes (e.g., K1ABC/P)
 | 
						||
to be encoded. The basic aim is to compress the most common messages
 | 
						||
used for minimally valid QSOs into a fixed 72-bit length.  Information
 | 
						||
payloads in FT8 include 3 additional bits (75 bits total), with
 | 
						||
definitions yet to be defined.
 | 
						||
 | 
						||
A standard amateur callsign consists of a one- or two-character
 | 
						||
prefix, at least one of which must be a letter, followed by a digit
 | 
						||
and a suffix of one to three letters. Within these rules, the number
 | 
						||
of possible callsigns is equal to 37×36×10×27×27×27, or somewhat over
 | 
						||
262 million. (The numbers 27 and 37 arise because in the first and
 | 
						||
last three positions a character may be absent, or a letter, or
 | 
						||
perhaps a digit.) Since 2^28^ is more than 268 million, 28 bits are
 | 
						||
enough to encode any standard callsign uniquely. Similarly, the number
 | 
						||
of 4-digit Maidenhead grid locators on earth is 180×180 = 32,400,
 | 
						||
which is less than 2^15^ = 32,768; so a grid locator requires 15 bits.
 | 
						||
 | 
						||
Some 6 million of the possible 28-bit values are not needed for
 | 
						||
callsigns.  A few of these slots have been assigned to special message
 | 
						||
components such as `CQ`, `DE`, and `QRZ`. `CQ` may be followed by three
 | 
						||
digits to indicate a desired callback frequency. (If K1ABC transmits
 | 
						||
on a standard calling frequency, say 50.280, and sends `CQ 290 K1ABC
 | 
						||
FN42`, it means that s/he will listen on 50.290 and respond there to
 | 
						||
any replies.) A numerical signal report of the form `–nn` or
 | 
						||
`R–nn` can be sent in place of a grid locator.  (As originally
 | 
						||
defined, numerical signal reports `nn` were required to fall between -01
 | 
						||
and -30 dB.  Recent program versions accommodate reports between
 | 
						||
-50 and +49 dB.) A country prefix or portable suffix may be
 | 
						||
attached to one of the callsigns.  When this feature is used the
 | 
						||
additional information is sent in place of the grid locator or by
 | 
						||
encoding additional information into some of the 6 million available
 | 
						||
slots mentioned above.
 | 
						||
 | 
						||
Finally, the message compression algorithm supports messages starting
 | 
						||
with `CQ AA` through `CQ ZZ`.  Such messages are encoded by
 | 
						||
sending `E9AA` through `E9ZZ` in place of the first callsign of a
 | 
						||
standard message.  Upon reception these calls are converted back to
 | 
						||
the form `CQ AA` through `CQ ZZ`.
 | 
						||
 | 
						||
To be useful on channels with low signal-to-noise ratio, this kind of
 | 
						||
lossless message compression requires use of a strong forward error
 | 
						||
correcting (FEC) code.  Different codes are used for each mode.
 | 
						||
Accurate synchronization of time and frequency is required between
 | 
						||
transmitting and receiving stations.  As an aid to the decoders, each
 | 
						||
protocol includes a "`sync vector`" of known symbols interspersed with
 | 
						||
the information-carrying symbols.  Generated waveforms for all of the
 | 
						||
_WSJT-X_ modes have continuous phase and constant envelope.
 | 
						||
 | 
						||
[[SLOW_MODES]]
 | 
						||
=== Slow Modes
 | 
						||
 | 
						||
[[FT8PRO]]
 | 
						||
==== FT8
 | 
						||
 | 
						||
Forward error correction (FEC) in FT8 uses a low-density
 | 
						||
parity check (LDPC) code with 75 information bits, a 12-bit cyclic
 | 
						||
redundancy check (CRC), and 174 channel symbols.  It is thus called an
 | 
						||
LDPC (174,87) code.  Synchronization uses 7×7 Costas arrays at the
 | 
						||
beginning, middle, and end of each transmission.  Modulation is 8-tone
 | 
						||
frequency-shift keying (8-FSK) at 12000/1920 = 6.25 baud.  Each
 | 
						||
transmitted symbol carries three bits, so the total number of channel
 | 
						||
symbols is 174/3 + 21 = 79.  The total occupied bandwidth is
 | 
						||
8 × 6.25 = 50 Hz.
 | 
						||
 | 
						||
[[JT4PRO]]
 | 
						||
==== JT4
 | 
						||
 | 
						||
FEC in JT4 uses a strong convolutional code with constraint length
 | 
						||
K=32, rate r=1/2, and a zero tail. This choice leads to an encoded
 | 
						||
message length of (72+31) x 2 = 206 information-carrying bits.
 | 
						||
Modulation is 4-tone frequency-shift keying (4-FSK) at 11025 / 2520 =
 | 
						||
4.375 baud.  Each symbol carries one information bit (the most
 | 
						||
significant bit) and one synchronizing bit.  The two 32-bit
 | 
						||
polynomials used for convolutional encoding have hexadecimal values
 | 
						||
0xf2d05351 and 0xe4613c47, and the ordering of encoded bits is
 | 
						||
scrambled by an interleaver.  The pseudo-random sync vector is the
 | 
						||
following sequence (60 bits per line):
 | 
						||
 | 
						||
 000011000110110010100000001100000000000010110110101111101000
 | 
						||
 100100111110001010001111011001000110101010101111101010110101
 | 
						||
 011100101101111000011011000111011101110010001101100100011111
 | 
						||
 10011000011000101101111010
 | 
						||
 | 
						||
 | 
						||
[[JT9PRO]]
 | 
						||
==== JT9
 | 
						||
 | 
						||
FEC in JT9 uses the same strong convolutional code as JT4: constraint
 | 
						||
length K=32, rate r=1/2, and a zero tail, leading to an encoded
 | 
						||
message length of (72+31) × 2 = 206 information-carrying
 | 
						||
bits. Modulation is nine-tone frequency-shift keying, 9-FSK at
 | 
						||
12000.0/6912 = 1.736 baud.  Eight tones are used for data, one for
 | 
						||
synchronization. Eight data tones means that three data bits are
 | 
						||
conveyed by each transmitted information symbol. Sixteen symbol
 | 
						||
intervals are devoted to synchronization, so a transmission requires a
 | 
						||
total of 206 / 3 + 16 = 85 (rounded up) channel symbols. The sync
 | 
						||
symbols are those numbered 1, 2, 5, 10, 16, 23, 33, 35, 51, 52, 55,
 | 
						||
60, 66, 73, 83, and 85 in the transmitted sequence.  Tone spacing of
 | 
						||
the 9-FSK modulation for JT9A is equal to the keying rate, 1.736 Hz.
 | 
						||
The total occupied bandwidth is 9 × 1.736 = 15.6 Hz.
 | 
						||
 | 
						||
[[JT65PRO]]
 | 
						||
==== JT65
 | 
						||
 | 
						||
A detailed description of the JT65 protocol was published in
 | 
						||
{jt65protocol} for September-October, 2005. A Reed Solomon (63,12)
 | 
						||
error-control code converts 72-bit user messages into sequences of 63
 | 
						||
six-bit information-carrying symbols.  These are interleaved with
 | 
						||
another 63 symbols of synchronizing information according to the
 | 
						||
following pseudo-random sequence:
 | 
						||
 | 
						||
 100110001111110101000101100100011100111101101111000110101011001
 | 
						||
 101010100100000011000000011010010110101010011001001000011111111
 | 
						||
 | 
						||
 | 
						||
The synchronizing tone is normally sent in each interval having a
 | 
						||
"`1`" in the sequence. Modulation is 65-FSK at 11025/4096 = 2.692
 | 
						||
baud.  Frequency spacing between tones is equal to the keying rate for
 | 
						||
JT65A, and 2 and 4 times larger for JT65B and JT65C.  For EME QSOs the
 | 
						||
signal report OOO is sometimes used instead of numerical signal
 | 
						||
reports. It is conveyed by reversing sync and data positions in the
 | 
						||
transmitted sequence.  Shorthand messages for RO, RRR, and 73 dispense
 | 
						||
with the sync vector entirely and use time intervals of 16384/11025 =
 | 
						||
1.486 s for pairs of alternating tones. The lower frequency is the
 | 
						||
same as that of the sync tone used in long messages, and the frequency
 | 
						||
separation is 110250/4096 = 26.92 Hz multiplied by n for JT65A, with n
 | 
						||
= 2, 3, 4 used to convey the messages RO, RRR, and 73.
 | 
						||
 | 
						||
[[QRA64_PROTOCOL]]
 | 
						||
==== QRA64
 | 
						||
 | 
						||
QRA64 is an experimental mode intended for EME and other extreme
 | 
						||
weak-signal applications.  Its internal code was designed by IV3NWV.
 | 
						||
The protocol uses a (63,12) **Q**-ary **R**epeat **A**ccumulate code
 | 
						||
that is inherently better than the Reed Solomon (63,12) code used in
 | 
						||
JT65, yielding a 1.3 dB advantage. A new synchronizing scheme is based
 | 
						||
on three 7 x 7 Costas arrays.  This change yields another 1.9 dB
 | 
						||
advantage. 
 | 
						||
 | 
						||
In most respects the current implementation of QRA64 is operationally
 | 
						||
similar to JT65.  QRA64 does not use two-tone shorthand messages, and
 | 
						||
it makes no use of a callsign database.  Rather, additional
 | 
						||
sensitivity is gained by making use of already known information as a
 | 
						||
QSO progresses -- for example, when reports are being exchanged and
 | 
						||
you have already decoded both callsigns in a previous transmission.
 | 
						||
QRA64 presently offers no message averaging capability, though that
 | 
						||
feature may be added.  In early tests, many EME QSOs were made using
 | 
						||
submodes QRA64A-E on bands from 144 MHz to 24 GHz.  
 | 
						||
 | 
						||
[[SLOW_SUMMARY]]
 | 
						||
==== Summary
 | 
						||
 | 
						||
Table 2 provides a brief summary parameters for the slow modes in
 | 
						||
_WSJT-X_.  Parameters K and r specify the constraint length and rate
 | 
						||
of the convolutional codes; n and k specify the sizes of the
 | 
						||
(equivalent) block codes; Q is the alphabet size for the
 | 
						||
information-carrying channel symbols; Sync Energy is the fraction of
 | 
						||
transmitted energy devoted to synchronizing symbols; and S/N Threshold
 | 
						||
is the signal-to-noise ratio (in a 2500 Hz reference bandwidth) above
 | 
						||
which the probability of decoding is 50% or higher.
 | 
						||
 | 
						||
[[SLOW_TAB]]
 | 
						||
.Parameters of Slow Modes
 | 
						||
[width="90%",cols="3h,^3,^2,^1,^2,^2,^2,^2,^2,^2",frame=topbot,options="header"]
 | 
						||
|===============================================================================
 | 
						||
|Mode |FEC Type |(n,k) | Q|Modulation type|Keying rate (Baud)|Bandwidth (Hz)
 | 
						||
|Sync Energy|Tx Duration (s)|S/N Threshold (dB)
 | 
						||
|FT8  |LDPC, r=1/2|(174,87)| 8| 8-FSK| 6.25 | 50.0 | 0.27| 12.6 | -21
 | 
						||
|JT4A |K=32, r=1/2|(206,72)| 2| 4-FSK| 4.375| 17.5 | 0.50| 47.1 | -23
 | 
						||
|JT9A |K=32, r=1/2|(206,72)| 8| 9-FSK| 1.736| 15.6 | 0.19| 49.0 | -27
 | 
						||
|JT65A |Reed Solomon|(63,12) |64|65-FSK| 2.692| 177.6 | 0.50| 46.8 | -25
 | 
						||
|QRA64A|Q-ary Repeat Accumulate|(63,12) |64|64-FSK|1.736|111.1|0.25|48.4| -26
 | 
						||
| WSPR |K=32, r=1/2|(162,50)| 2| 4-FSK| 1.465| 5.9 | 0.50|110.6 | -28
 | 
						||
|===============================================================================
 | 
						||
 | 
						||
Submodes of JT4, JT9, JT65, and QRA64 offer wider tone spacings for
 | 
						||
circumstances that may require them, such significant Doppler spread.
 | 
						||
Table 3 summarizes the tone spacings, bandwidths, and approximate
 | 
						||
threshold sensitivities of the various submodes when spreading is
 | 
						||
comparable to tone spacing.
 | 
						||
 | 
						||
[[SLOW_SUBMODES]]
 | 
						||
.Parameters of Slow Submodes
 | 
						||
[width="50%",cols="h,3*^",frame=topbot,options="header"]
 | 
						||
|=====================================
 | 
						||
|Mode  |Tone Spacing  |BW (Hz)|S/N (dB)
 | 
						||
|FT8   |6.25 |  50.0  |-21
 | 
						||
|JT4A  |4.375|  17.5  |-23
 | 
						||
|JT4B  |8.75 |  30.6  |-22
 | 
						||
|JT4C  |17.5 |  56.9  |-21
 | 
						||
|JT4D  |39.375| 122.5 |-20
 | 
						||
|JT4E  |78.75|  240.6 |-19
 | 
						||
|JT4F  |157.5|  476.9 |-18
 | 
						||
|JT4G  |315.0|  949.4 |-17
 | 
						||
|JT9A  |1.736|  15.6  |-27
 | 
						||
|JT9B  |3.472|  29.5  |-26
 | 
						||
|JT9C  |6.944|  57.3  |-25
 | 
						||
|JT9D  |13.889| 112.8 |-24
 | 
						||
|JT9E  |27.778| 224.0 |-23
 | 
						||
|JT9F  |55.556| 446.2 |-22
 | 
						||
|JT9G  |111.111|890.6 |-21
 | 
						||
|JT9H  |222.222|1779.5|-20
 | 
						||
|JT65A |2.692| 177.6  |-25
 | 
						||
|JT65B |5.383| 352.6  |-25
 | 
						||
|JT65C |10.767| 702.5 |-25
 | 
						||
|QRA64A|1.736| 111.1  |-26
 | 
						||
|QRA64B|3.472| 220.5  |-25
 | 
						||
|QRA64C|6.944| 439.2  |-24
 | 
						||
|QRA64D|13.889| 876.7 |-23
 | 
						||
|QRA64E|27.778|1751.7 |-22
 | 
						||
|=====================================
 | 
						||
 | 
						||
[[FAST_MODES]]
 | 
						||
=== Fast Modes
 | 
						||
 | 
						||
==== ISCAT
 | 
						||
 | 
						||
ISCAT messages are free-form, up to 28 characters in length.
 | 
						||
Modulation is 42-tone frequency-shift keying at 11025 / 512 = 21.533
 | 
						||
baud (ISCAT-A), or 11025 / 256 = 43.066 baud (ISCAT-B).  Tone
 | 
						||
frequencies are spaced by an amount in Hz equal to the baud rate.  The
 | 
						||
available character set is:
 | 
						||
 | 
						||
----
 | 
						||
 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ /.?@-
 | 
						||
----
 | 
						||
 | 
						||
Transmissions consist of sequences of 24 symbols: a synchronizing
 | 
						||
pattern of four symbols at tone numbers 0, 1, 3, and 2, followed by
 | 
						||
two symbols with tone number corresponding to (message length) and
 | 
						||
(message length + 5), and finally 18 symbols conveying the user's
 | 
						||
message, sent repeatedly character by character.  The message always
 | 
						||
starts with `@`, the beginning-of-message symbol, which is not
 | 
						||
displayed to the user.  The sync pattern and message-length indicator
 | 
						||
have a fixed repetition period, recurring every 24 symbols.  Message
 | 
						||
information occurs periodically within the 18 symbol positions set
 | 
						||
aside for its use, repeating at its own natural length.
 | 
						||
 | 
						||
For example, consider the user message `CQ WA9XYZ`.  Including the
 | 
						||
beginning-of-message symbol `@`, the message is 10 characters long.
 | 
						||
Using the character sequence displayed above to indicate tone numbers,
 | 
						||
the transmitted message will therefore start out as shown in the first
 | 
						||
line below:
 | 
						||
 | 
						||
----
 | 
						||
 0132AF@CQ WA9XYZ@CQ WA9X0132AFYZ@CQ WA9XYZ@CQ W0132AFA9X ...
 | 
						||
 sync##                  sync##                 sync##
 | 
						||
----
 | 
						||
 | 
						||
Note that the first six symbols (four for sync, two for message
 | 
						||
length) repeat every 24 symbols.  Within the 18 information-carrying
 | 
						||
symbols in each 24, the user message `@CQ WA9XYZ` repeats at its own
 | 
						||
natural length, 10 characters.  The resulting sequence is extended as
 | 
						||
many times as will fit into a Tx sequence.
 | 
						||
 | 
						||
==== JT9
 | 
						||
 | 
						||
The JT9 slow modes all use keying rate 12000/6912 = 1.736 baud.  By contrast, with
 | 
						||
the *Fast* setting submodes JT9E-H adjust the keying rate to match the
 | 
						||
increased tone spacings.  Message durations are therefore much
 | 
						||
shorter, and they are sent repeatedly throughout each Tx sequence.
 | 
						||
For details see Table 4, below.
 | 
						||
 | 
						||
==== MSK144
 | 
						||
 | 
						||
Standard MSK144 messages are structured in the same way as those in
 | 
						||
the slow modes, with 72 bits of user information.  Forward error
 | 
						||
correction is implemented by first augmenting the 72 message bits with
 | 
						||
an 8-bit cyclic redundancy check (CRC) calculated from the message
 | 
						||
bits. The CRC is used to detect and eliminate most false decodes at
 | 
						||
the receiver. The resulting 80-bit augmented message is mapped to a
 | 
						||
128-bit codeword using a (128,80) binary low-density-parity-check
 | 
						||
(LDPC) code designed by K9AN specifically for this purpose.  Two 8-bit
 | 
						||
synchronizing sequences are added to make a message frame 144 bits
 | 
						||
long.  Modulation is Offset Quadrature Phase-Shift Keying (OQPSK) at
 | 
						||
2000 baud. Even-numbered bits are conveyed over the in-phase channel,
 | 
						||
odd-numbered bits on the quadrature channel.  Individual symbols are
 | 
						||
shaped with half-sine profiles, thereby ensuring a generated waveform
 | 
						||
with constant envelope, equivalent to a Minimum Shift Keying (MSK)
 | 
						||
waveform.  Frame duration is 72 ms, so the effective character
 | 
						||
transmission rate for standard messages is up to 250 cps.
 | 
						||
 | 
						||
Contest Mode in MSK144 conveys an additional acknowledgment bit (the
 | 
						||
"`R`" in a message of the form `W9XYZ K1ABC R FN42`) by using the fact
 | 
						||
that meteor scatter and other propagation modes usable with MSK144 are
 | 
						||
generally effective only out to distances of order 2500 km.  To convey
 | 
						||
the message fragment `R FN42`, WSJT-X encodes the locator as that of
 | 
						||
its antipodes.  The receiving program recognizes a locator with
 | 
						||
distance greater than 10,000 km, does the reverse transformation, and
 | 
						||
inserts the implied "`R`".
 | 
						||
 | 
						||
MSK144 also supports short-form messages that can be used after QSO
 | 
						||
partners have exchanged both callsigns.  Short messages consist of 4
 | 
						||
bits encoding R+report, RRR, or 73, together with a 12-bit hash code
 | 
						||
based on the ordered pair of "`to`" and "`from`" callsigns.  Another
 | 
						||
specially designed LDPC (32,16) code provides error correction, and an
 | 
						||
8-bit synchronizing vector is appended to make up a 40-bit frame.
 | 
						||
Short-message duration is thus 20 ms, and short messages can be
 | 
						||
decoded from very short meteor pings.
 | 
						||
 | 
						||
The 72 ms or 20 ms frames of MSK144 messages are repeated without gaps
 | 
						||
for the full duration of a transmission cycle. For most purposes, a
 | 
						||
cycle duration of 15 s is suitable and recommended for MSK144.
 | 
						||
 | 
						||
The modulated MSK144 signal occupies the full bandwidth of a SSB
 | 
						||
transmitter, so transmissions are always centered at audio frequency
 | 
						||
1500 Hz. For best results, transmitter and receiver filters should be
 | 
						||
adjusted to provide the flattest possible response over the range
 | 
						||
300Hz to 2700Hz. The maximum permissible frequency offset between you
 | 
						||
and your QSO partner ± 200 Hz.
 | 
						||
 | 
						||
==== Summary
 | 
						||
 | 
						||
.Parameters of Fast Modes
 | 
						||
[width="90%",cols="3h,^3,^2,^1,^2,^2,^2,^2,^2",frame="topbot",options="header"]
 | 
						||
|=====================================================================
 | 
						||
|Mode     |FEC Type   |(n,k)   | Q|Modulation Type|Keying rate (Baud)
 | 
						||
|Bandwidth (Hz)|Sync Energy|Tx Duration (s)
 | 
						||
|ISCAT-A  |   -       |  -     |42|42-FSK| 21.5 |  905  | 0.17| 1.176 
 | 
						||
|ISCAT-B  |   -       |  -     |42|42-FSK| 43.1 | 1809  | 0.17| 0.588 
 | 
						||
|JT9E     |K=32, r=1/2|(206,72)| 8| 9-FSK| 25.0 |  225  | 0.19| 3.400 
 | 
						||
|JT9F     |K=32, r=1/2|(206,72)| 8| 9-FSK| 50.0 |  450  | 0.19| 1.700 
 | 
						||
|JT9G     |K=32, r=1/2|(206,72)| 8| 9-FSK|100.0 |  900  | 0.19| 0.850 
 | 
						||
|JT9H     |K=32, r=1/2|(206,72)| 8| 9-FSK|200.0 | 1800  | 0.19| 0.425 
 | 
						||
|MSK144   |LDPC       |(128,80)| 2| OQPSK| 2000 | 2400  | 0.11| 0.072 
 | 
						||
|MSK144 Sh|LDPC       |(32,16) | 2| OQPSK| 2000 | 2400  | 0.20| 0.020 
 | 
						||
|=====================================================================
 |