mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-03 16:01:18 -05:00
b34c3d7ec1
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7222 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
237 lines
11 KiB
Plaintext
237 lines
11 KiB
Plaintext
[[PROTOCOL_OVERVIEW]]
|
||
=== Overview
|
||
|
||
All QSO modes except ISCAT benefit from the use of structured
|
||
messages. Each such message consists of two 28-bit fields for
|
||
callsigns and a 15-bit field for a grid locator, report,
|
||
acknowledgment, or a "`73`" sign-off indicator. Alternatively, a
|
||
72^nd^ bit flags a message containing arbitrary alphanumeric text, up
|
||
to 13 characters. Special formats allow other information such as
|
||
add-on callsign prefixes (e.g., ZA/K1ABC) or suffixes (e.g., K1ABC/4)
|
||
to be encoded. The basic aim is to compress the most common messages
|
||
used for minimally valid QSOs into a fixed 72-bit length. To be
|
||
useful, this kind of lossless message compression requires use of a
|
||
strong forward error correcting (FEC) code. Different FEC codes are
|
||
used for each mode. These modes require good synchronization of time
|
||
and frequency between transmitting and receiving stations. As an aid
|
||
to the decoders, each protocol includes a "`synch vector`" of known
|
||
symbols along with the information-carrying symbols. Generated
|
||
waveforms for all of the _WSJT-X_ modes have continuous phase and
|
||
a constant envelope.
|
||
|
||
[[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 pseudo-random sync
|
||
vector is the following sequence:
|
||
|
||
000011000110110010100000001100000000000010110110101111101000
|
||
100100111110001010001111011001000110101010101111101010110101
|
||
011100101101111000011011000111011101110010001101100100011111
|
||
10011000011000101101111010
|
||
|
||
The two 32-bit polynomials used for convolutional encoding have
|
||
hexadecimal values f2d05351 and e4613c47.
|
||
|
||
[[JT9PRO]]
|
||
=== JT9
|
||
|
||
FEC in JT9 uses the same strong convolutional code aa 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
|
||
|
||
Still to come ...
|
||
|
||
[[SLOW_SUMMARY]]
|
||
=== Slow Mode Summary
|
||
|
||
[[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 |(k,n) | Q| Mod | Baud |BW (Hz)|fSync|TxT (s)|S/N (dB)
|
||
|JT4A |K=32, r=1/2|(206,72)| 2| 4-FSK| 4.375| 17.5 | 0.50| 47.1 | -23
|
||
|JT9A |K=13, r=1/2|(206,72)| 8| 9-FSK| 1.736| 15.6 | 0.19| 49.0 | -27
|
||
|JT65A |RS |(63,12) |64|65-FSK| 2.692| 177.6 | 0.50| 46.8 | -25
|
||
|QRA64A|QRA |(63,12) |64|64-FSK| 1.736| 111.1 | 0.25| 48.4 | -28
|
||
| WSPR |K=32, r=1/2|(162,50)| 2| 4-FSK| 1.465| 5.9 | 0.50|110.6 | -29
|
||
|===============================================================================
|
||
|
||
Frequency spacing between tones, total occupied bandwidth, and
|
||
approximate threshold signal-to-noise ratios are given for the various
|
||
submodes of JT4, JT9, JT65, and QRA64 in the following table:
|
||
|
||
Submode Spacing BW S/N
|
||
(Hz) (Hz) dB
|
||
----------------------------
|
||
JT4A 4.375 17.5 -23
|
||
JT4B 8.75 35.0 -22
|
||
JT4C 17.5 70.0 -21
|
||
JT4D 39.375 157.5 -20
|
||
JT4E 78.75 315.0 -19
|
||
JT4F 157.5 630.0 -18
|
||
JT4G 315.0 1260.0 -17
|
||
|
||
JT9 1.7361 15.625 -27
|
||
|
||
JT65A 2.6917 177.6 -25
|
||
JT65B 5.3833 355.3 -24
|
||
JT65C 10.767 710.6 -23
|
||
|
||
QRA64A 1.736 111.1 -28?
|
||
QRA64B 3.472 222.2
|
||
QRA64C 6.944 444.4
|
||
QRA64D 13.889 888.9
|
||
QRA64E 27.228 1777.8
|
||
|
||
JT4 and JT65 signal reports are constrained to the range –1 to –30
|
||
dB. This range is more than adequate for EME purposes, but not enough
|
||
for optimum use at HF. S/N values displayed by the JT4 and JT65
|
||
decoders are clamped at an upper limit –1 dB, and the S/N scale
|
||
becomes significantly nonlinear above –10 dB. JT9 allows signal
|
||
reports in the range –50 to +49 dB. It manages this by taking over a
|
||
small portion of "`message space`" that would otherwise be used for
|
||
grid locators within 1 degree of the south pole. The S/N scale of the
|
||
present JT9 decoder is reasonably linear (although it's not intended
|
||
to be a precision measurement tool).
|
||
|
||
=== 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.
|
||
|
||
=== MSK144
|
||
|
||
Standard MSK144 messages are structured in the same way as those in
|
||
the slow modes, with a 72 bits of user information. Forward error
|
||
correction is implemented by first augmenting the 72 message bits with
|
||
an 8-bit 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.
|
||
|
||
MSK144 also supports short-form messages that can be used after QSO
|
||
partners have exchanged both callsigns. Short messages consist of 4
|
||
bits encoding a signal report, 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.
|
||
|
||
=== Fast Mode Summary
|
||
|
||
.Parameters of Fast Modes
|
||
[width="90%",cols="3h,^3,^2,^1,^2,^2,^2,^2,^2,^2",frame="topbot",options="header"]
|
||
|=============================================================================
|
||
|Mode |FEC Type |(k,n) | Q| Mod | Baud |BW (Hz)|fSync|TxT (s)|S/N (dB)
|
||
|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,72)| 2| OQPSK| 2000 | 2000 | 0.11| 0.072 | -5
|
||
|MSK144 Sh|LDPC |(32,16) | 2| OQPSK| 2000 | 2000 | 0.20| 0.020 | -5
|
||
|=============================================================================
|