mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-04 08:21:17 -05:00
878f446b10
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7279 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
281 lines
13 KiB
Plaintext
281 lines
13 KiB
Plaintext
[[PROTOCOL_OVERVIEW]]
|
||
=== Overview
|
||
|
||
All QSO modes except ISCAT use structured messages that compress
|
||
user-readable information into fixed-length packets of exactly 72
|
||
bits. Each 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. A 72^nd^ 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/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 on channels with low signal-to-noise
|
||
ratio, this kind of lossless 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
|
||
|
||
[[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 Repeat Accumulate 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. A few details of the QRA64 protocol are still subject to
|
||
change, as more experience is gained.
|
||
|
||
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 10 GHz. Optimum processing
|
||
of signals with large Doppler spread remains to be implemented.
|
||
|
||
[[SLOW_SUMMARY]]
|
||
==== Summary
|
||
|
||
Table 1 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)
|
||
|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 | -29
|
||
|===============================================================================
|
||
|
||
Submodes of JT4, JT9, JT65, and QRA64 offer wider tone spacings for
|
||
circumstances that may require them, such significant Doppler spread.
|
||
Table 2 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)
|
||
|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 4.375 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 3, below.
|
||
|
||
==== 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 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.
|
||
|
||
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.
|
||
|
||
==== 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,72)| 2| OQPSK| 2000 | 2400 | 0.11| 0.072
|
||
|MSK144 Sh|LDPC |(32,16) | 2| OQPSK| 2000 | 2400 | 0.20| 0.020
|
||
|=====================================================================
|