=== AP Decoding

The _WSJT-X_ decoders for QRA64 and FT8 include optional procedures
that use naturally accumulating information during a minimal QSO.
This _a priori_ (AP) information increases sensitivity of the decoder
by up to 4 dB, at the cost of a slightly higher rate of 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
determining the remaining 15 bits of the message and ensuring that the
resulting solution is reliable.

AP decoding starts by setting AP bits to the hypothesized values, as
if they had been received correctly.  We then determine whether the
remaining message and parity bits are consistent with the hypothesized
AP bits, with a specified level of confidence.  Successful AP decodes
are labeled with an end-of-line indicator of the form `aP`, where `P`
is one of the single-digit AP decoding types listed in Table 1.  For
example, `a2` indicates that the successful decode used MyCall as
hypothetically known information.

[[AP_INFO_TABLE]]
.AP information types
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|===============================================
|P | Message components
|1 | CQ   &#160; &#160;   ?   &#160; &#160;   ? 
|2 | MyCall &#160; &#160; ?   &#160; &#160;   ? 
|3 | MyCall DxCall &#160; &#160;  ? 
|4 | MyCall DxCall RRR
|5 | MyCall DxCall 73
|6 | MyCall DxCall RR73
|===============================================

If a codeword is found that is judged to have high (but not
overwhelmingly high) probability of being correct, a `?` character is
appended when the decoded message is displayed.  To avoid misleading
spots of occasional false decodes, messages so marked are not
forwarded to {pskreporter}.

Table 2 lists the six possible QSO states that are tracked by the
_WSJT-X_ auto-sequencer, along with the type of AP decoding that would
be attempted in each state.

[[AP_DECODING_TYPES_TABLE]]
.AP decoding types for each QSO state
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|===========================================
|State        |AP type
|CALLING      |   1, 2
|REPLYING     |   2, 3
|REPORT       |   2, 3
|ROGER_REPORT |   3, 4, 5, 6
|ROGERS       |   3, 4, 5, 6
|SIGNOFF      |   3, 1, 2
|===========================================


=== Decoded Lines

Displayed information accompanying decoded messages generally includes UTC,
signal-to-noise ratio in dB, time offset DT in seconds, and
audio frequency in Hz.  Some modes include additional information such
as frequency offset from nominal (DF), frequency drift (Drift or F1),
or distance (km or mi).

There may also be some cryptic characters with special meanings
summarized in the following Table:

[[DECODED_LINES_TABLE]]
.Notations used on decoded text lines
[width="50%",cols="h,3*^",frame=topbot,options="header"]
|===========================================
|Mode    |Mode character|Sync character|End of line information
|FT8     | ~            |      | ? &#160; aP
|JT4     | $            | *, # | f, fN, dNC
|JT9     | @            |      |
|JT65    | #            |      |
|JT65 VHF| #            | *, # | f, fN, dNC
|QRA64   | :            | *    | R
|ISCAT   |              | *    | M  N  C  T
|MSK144  | &            |      | N  H  E
|===========================================
Sync character::
 `*` - Normal sync +
 `#` - Alternate sync

End of line information::
 `?` - Decoded with lower confidence +
 `a` - Decoded with aid of some a priori (AP) information +
 `C` - Confidence indicator [ISCAT and Deep Search; (0-9,*)] +
 `d` - Deep Search algorithm +
 `E` - Size of MSK eye diagram opening - if negative, the eye is closed + 
 `f` - Franke-Taylor or Fano algorithm +
 `H` - Number of bit errors corrected +
 `M` - Message length (characters) +
 `N` - Number of Rx intervals or frames averaged +
 `P` - Number indicating type of AP information (Table 1, above) +
 `R` - Return code from QRA64 decoder +
 `T` - Length of analyzed region (s)

