diff --git a/doc/user_guide/en/decoder_notes.adoc b/doc/user_guide/en/decoder_notes.adoc index 6ef2dd7e2..cdae09a01 100644 --- a/doc/user_guide/en/decoder_notes.adoc +++ b/doc/user_guide/en/decoder_notes.adoc @@ -8,9 +8,9 @@ false decodes. For example: when you decide to answer a CQ, you already know your own callsign and that of your potential QSO partner. The software -therefore "`knows`" what to expect for 57 of the 72 message bits (28 -bits for each of two callsigns, 1 bit for message type) in the next -received message. The decoder's task can thus be reduced to +therefore "`knows`" what might be expected for at least 57 message +bits (28 for each of two callsigns, 1 or more for message type) in the +next received message. The decoder's task can thus be reduced to determining the remaining 15 bits of the message and ensuring that the resulting solution is reliable. diff --git a/doc/user_guide/en/protocols.adoc b/doc/user_guide/en/protocols.adoc index 456880d6e..f50096097 100644 --- a/doc/user_guide/en/protocols.adoc +++ b/doc/user_guide/en/protocols.adoc @@ -2,18 +2,20 @@ === 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. The -information payload in FT8 includes 3 additional bits (75 bits total). -One of the added bits is used to flag special messages used by the -DXpedition station in FT8 DXpedition Mode. Uses for the remaining two -bits are yet to be defined. +user-readable information into fixed-length packets. JT4, JT9, JT65, +and QRA64 use 72-bit payloads. Standard messages consist 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 free 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. + +The information payload for FT8 and MSK144 contains 77 bits. The 5 +additional bits are used to flag special message types used for FT8 +DXpedition Mode, contesting, nonstandard callsigns, and a few other +special types. 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 @@ -42,22 +44,16 @@ 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. -As a convenience for sending directed CQ messages, the compression -algorithm supports messages starting with `CQ AA` through `CQ ZZ`. -These message fragments are encoded internally as if they were the -callsigns `E9AA` through `E9ZZ`. Upon reception they are converted -back to the form `CQ AA` through `CQ ZZ`, for display to the user. +As a convenience for sending directed CQ messages, the 72-bit +compression algorithm supports messages starting with `CQ AA` through +`CQ ZZ`. These message fragments are encoded internally as if they +were the callsigns `E9AA` through `E9ZZ`. Upon reception they are +converted back to the form `CQ AA` through `CQ ZZ`, for display to the +user. -The FT8 and MSK144 modes support a special feature allowing convenient -transmission and acknowledgment of four-character grid locators, the -required exchanges in most North American VHF contests. With this -Contest Mode enabled, _WSJT-X_ supports messages of the form `W9XYZ -K1ABC R FN42` by converting the grid locator to that of its -diametrically opposite point on Earth. The receiving program -recognizes a locator implying a distance greater than 10,000 km, does -the reverse transformation, and inserts the implied "`R`". Obviously, -this mode should not be used on the HF bands or under other -circumstances where world-wide propagation is possible. +The new FT8 and MSK144 protocols use a different lossless compression +algorithm with features to generate and recognize the special messages +used for contesting and the like. (More to come, here ...) To be useful on channels with low signal-to-noise ratio, this kind of lossless message compression requires use of a strong forward error @@ -75,9 +71,9 @@ _WSJT-X_ modes have continuous phase and constant envelope. ==== 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 87 parity bits making a 174-bit codeword. It is thus -called an LDPC (174,87) code. Synchronization uses 7×7 Costas arrays +(LDPC) code with 77 information bits, a 14-bit cyclic redundancy check +(CRC), and 83 parity bits making a 174-bit codeword. It is thus +called an LDPC (174,91) 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 @@ -231,7 +227,7 @@ which the probability of decoding is 50% or higher. |=============================================================================== |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 +|FT8 |LDPC, r=1/2|(174,91)| 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 @@ -329,13 +325,13 @@ 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 +Standard MSK144 messages are structured in the same way as in FT8, +with 77 bits of user information. Forward error correction is +implemented by first augmenting the 77 message bits with a 13-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 90-bit augmented message is mapped to a +128-bit codeword using a (128,90) 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 @@ -379,6 +375,6 @@ and your QSO partner ± 200 Hz. |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 |LDPC |(128,90)| 2| OQPSK| 2000 | 2400 | 0.11| 0.072 |MSK144 Sh|LDPC |(32,16) | 2| OQPSK| 2000 | 2400 | 0.20| 0.020 |=====================================================================