AP Decoding in WSJT-X: How A Priori Information Adds Sensitivity

AP Decoding in WSJT-X: How A Priori Information Adds Sensitivity

Anyone who watches an FT8 screen long enough will see tiny codes at the end of some decoded lines: a2, a3, a7, sometimes followed by a question mark. They are the visible trace of a clever idea in the decoder. AP decoding, short for a priori decoding, lets WSJT-X use what it already knows about a message to pull a signal out of the noise. This guide explains the idea in plain language, how the decoder uses it in FT8, FT4, FST4, JT65 and Q65, what each code means, why some lines end with a question mark, and how to treat a decode that depends on AP information. Everything below follows the WSJT-X 3.0 User Guide.

The Idea Behind A Priori Decoding

The WSJT-X User Guide describes AP decoding as a set of procedures that use naturally accumulating information during a minimal QSO. When you decide to answer a CQ, you already know your own callsign and the callsign of your potential partner. The software therefore knows what to expect for at least 57 bits of the next message: 28 bits for each of two callsigns plus one or more bits for the message type. The decoder’s task is reduced to determining the remaining 15 bits and ensuring that the result is reliable.

The decoder starts by setting the AP bits to the hypothesized values, as if they had been received correctly, and then tests whether the remaining message bits and the parity bits are consistent with those assumed values, with a specified level of confidence. The standard decoder for these modes uses a strong error-correcting code of the low-density parity-check type, described in the Wikipedia article on LDPC codes, and AP information is a way of giving that code a head start. The guide says that this increases the decoder’s sensitivity by up to 4 dB, at the cost of a slightly higher rate of false decodes.

Where AP Is Used

The documentation lists the modes whose decoders include AP procedures: FST4, FT4, FT8, JT65 and Q65. The rules differ by mode:

  • FT8 and JT65: AP is optional, and you can switch it on or off from the Decode menu.
  • Q65: AP is always enabled.
  • FT4 and FST4: AP is always enabled when the decode depth is Normal or Deep.

The practical consequence is that FT8 operators have a choice, while users of the other modes get AP automatically at their usual depth. Our guide to setting up WSJT-X for FT8 shows where the decoder options sit in the program, and our article on JTDX versus WSJT-X compares how two popular programs approach decoding.

The a1 to a8 Codes

A successful AP decode is labeled with an end-of-line indicator of the form aP, where P is a single digit that tells you what information the decoder assumed. For FT4, FT8 and FST4 the guide lists these types:

CodeAssumed message componentsTypical situation
a1CQ ? ?You are listening for any CQ
a2MyCall ? ?Someone may be calling you
a3MyCall DxCall ?Reply from the station you called
a4MyCall DxCall RRRExpecting the acknowledgment
a5MyCall DxCall 73Expecting the sign-off
a6MyCall DxCall RR73Expecting the short acknowledgment
a7(Call_1 or CQ) Call_2 ?FT8 only; uses information from the previous receive sequence
a8(MyCall or CQ) DxCall ?FT8 only; similar to a3 but with a different list-decoding algorithm

The guide explains that, for example, a2 indicates that the successful decode used MyCall as hypothetically known information. Types a7 and a8 are used only in FT8. The FST4 table is the same, except that it omits the decoding attempts for AP types 4 and 5 to save time. JT65 has its own list, with a1 to a7, including types that include the DX grid, such as MyCall DxCall DxGrid and CQ DxCall DxGrid.

Which AP Types Are Tried When

WSJT-X tracks six QSO states in its auto-sequencer and attempts different AP types depending on the state. For FT4 and FT8 the guide lists them as follows:

  • Calling station: types 2 and 3.
  • Report: types 2 and 3.
  • Roger report: types 3, 4, 5 and 6.
  • Rogers: types 3, 4, 5 and 6.
  • Signoff: types 3, 1 and 2.
  • Calling CQ: types 1 and 2.

The logic is natural. When you are calling CQ, the only things the program can assume are the word CQ and your own callsign, so it tries types 1 and 2. When you are in the middle of a QSO and waiting for a final RRR or 73, it can assume both callsigns and the likely end of the message. This is why a weak final acknowledgment is decoded so often in practice: the program has strong expectations about what it will say.

The Question Mark

If the decoder finds a codeword that it judges to have a high but not overwhelmingly high probability of being correct, a question mark is appended to the line. The guide notes that, to avoid misleading spots from occasional false decodes, messages marked this way are not forwarded to PSK Reporter. In the documentation’s table of notations, a question mark means decoded with lower confidence, the letter a means decoded with the aid of some a priori information, and the digit following it is the AP type. An additional character after P means that the decode was obtained by averaging a number of previous messages, so q34 in Q65 would mean a Q65 decode with AP type 3 from 4 messages, and an asterisk indicates that 10 or more prior messages contributed.

For a ham, the message is simple: a decode with aP and a question mark deserves a second look. If the callsign is one you were not expecting, the report seems odd, or the station does not repeat in the next period, treat it as unconfirmed. Our guide to PSK Reporter explains how the spots that do get uploaded show up on the map.

Reading a Decoded Line From Left to Right

The guide explains that the information accompanying decoded messages generally includes the UTC time, the signal-to-noise ratio in dB, the time offset DT in seconds and the audio frequency in Hz. Some modes add more, such as frequency offset, drift or distance. Between the audio frequency and the message there is a mode character, and the guide lists them: a backtick for FST4, a plus sign for FT4, a tilde for FT8, a dollar sign for JT4, an at sign for JT9, a hash for JT65, a colon for Q65 and an ampersand for MSK144. After the message come the end-of-line codes. A question mark means lower confidence, the letter a means AP was used, the letter d means Deep Search, the letter f means the Franke-Taylor or Fano algorithm, and C is a confidence indicator for Deep Search.

Putting this together, a line that ends with a3 tells you the decoder was expecting a message from the station you were working and found it; a line that ends with a1 tells you the program matched a CQ pattern; and a line with no code at all was decoded without any assumptions. This is why strong stations rarely show AP codes: they decode without help, and the codes appear mostly on weak signals, near the limit of the decoder.

A Worked Example

Imagine that you have called a station and the band is noisy. Your computer’s auto-sequencer is in the state where it expects a reply, so the decoder tries AP types 2 and 3: first assuming a message addressed to your callsign, then assuming a message with both callsigns. The other station sends a signal report, but the signal is well below what an ordinary decode would manage. Because the program already knows 57 bits of the 77-bit message, it needs to resolve only the report and the parity checks; the decode succeeds, and the line ends with a3.

You then send your own report with R. In the next period the program is in the Roger-report state and tries types 3, 4, 5 and 6, since an RRR, RR73 or 73 may follow. Even a very faint RR73 can be decoded with a6 because the program assumes both callsigns and the ending. The contact is complete, with a few decibels of help from the decoder at each step. Without AP, you might have needed several repeats, and in a marginal case the QSO might have failed.

Now consider the opposite case: a line ends with a2 and a question mark, and the message names your callsign together with a station you never called. That is a classic warning sign. The decoder assumed your callsign, found a codeword that fit this pattern in the noise, and produced a plausible but wrong message. If you see this, do not answer; wait for the next period and see whether the station calls again. The guide’s decision to withhold question-marked decodes from PSK Reporter shows that the developers treat these cases with caution too.

Q65 and the q-Codes

Q65 has its own end-of-line codes, qP, listed in a separate table: q0 for no assumed information, q1 for CQ, q2 for MyCall, q3 for MyCall and DxCall, q4 for MyCall, DxCall and a blank, RRR, RR73 or 73, and q5 for MyCall and DxCall with a maximum drift of 50. They work in the same way as the a-codes, and because AP is always enabled for Q65, they appear whenever the decoder had help. The Q65 decoder takes advantage of the AP information that accumulates as a QSO progresses, from your own callsign and the word CQ at the start to the DX callsign and perhaps its four-digit grid later. If you are interested in the mode, read about the fast-fading uses of Q65 in our EME and scatter guides.

What AP Does Not Do

  • It does not invent signals. The decoder still needs a real signal and a codeword that fits; AP only lowers the threshold.
  • It does not replace the operator. The guide states that auto-sequencing is an operator aid and not an operator replacement.
  • It does not help with a station you have never heard. For a first decode of a CQ from a stranger, only the most basic AP type is available, and the gain is smaller.
  • It does not fix a bad clock or a bad audio level. Check your computer clock first; our guide to FT8 time sync explains why a one-second error hides signals completely.

Should You Turn AP On in FT8?

There is no universal answer, but the facts help you choose. AP adds up to 4 dB of sensitivity to your decoder, which is real: it is the difference between decoding a weak station and missing it. The cost is a slightly higher rate of false decodes. In a quiet band, those false decodes are easy to spot and ignore. In a crowded band with many callsigns, a false decode can look like a real contact and mislead you, especially if the program is waiting for an answer from the station you called. Many operators leave AP on for normal operation and treat any decode with a question mark with caution, which is consistent with the documentation, since the program flags the uncertain ones for you.

If you operate in a contest, where a false QSO in your log is costly, you may prefer a conservative approach. A real QSO is confirmed by a complete exchange from the other station, and the usual rules still apply: do not log a contact until you have received the final message. Keep a simple habit of reading the end of each line, and you will quickly learn how often the decoder uses AP on your band.

The Bottom Line

AP decoding gives WSJT-X a head start by assuming the parts of a message that you already know, such as your own callsign, the callsign of your partner and the usual endings. The result is up to 4 dB more sensitivity in FT8, FT4, FST4, JT65 and Q65, with a slightly higher chance of false decodes. Learn to read the a1 to a8 and q0 to q5 codes, treat question marks as a warning, and confirm contacts with the next message.

Frequently Asked Questions

What does a2 or a3 at the end of a line mean?

The decode used a priori information: a2 means MyCall was assumed, and a3 means both MyCall and DxCall were assumed.

How much does AP decoding help?

The WSJT-X guide says it increases sensitivity by up to 4 dB, at the cost of a slightly higher rate of false decodes.

Is AP always on?

It is optional in FT8 and JT65, always on for Q65, and always on for FT4 and FST4 when the decode depth is Normal or Deep.

What does a question mark mean?

The decode was judged to have a high but not overwhelming probability of being correct. Such messages are not forwarded to PSK Reporter.

Which AP types are FT8-only?

Types a7 and a8. Type a7 uses information from the previous receive sequence, and a8 is similar to a3 but uses a different list-decoding algorithm.

Does AP work for a station I have never called?

Only in a limited way. For an unexpected CQ the decoder can assume little more than the word CQ, so the sensitivity gain is smaller than during a QSO.


By the team behind LY4A

More tools from our team

LY4A is made by Internet Solutions. Try the rest of our products — each one saves you time in a different way.

internet-solutions.net ↗
Social media auto-posting PostRSS New posts from your RSS feed go to Facebook, X, LinkedIn, Telegram and 60+ more networks automatically. For clubs: DX news and club bulletins straight to Facebook and Telegram Free plan · since 2014 AI live chat for websites Talkmio Your website answers visitors 24/7 from your own content, in their language. For ham shops and clubs: questions answered 24/7, even during a contest Free plan · no card needed AI assistant Ask Mio Chat, code, design, writing and research. Mio picks the best model for each task. Antenna maths, QSL card designs, contest rules explained in plain words Free plan AI blog & social autopilot AI Blog Autopilot AI writes 2,000–3,000-word SEO articles and shares each one to 58+ social networks. For club websites: regular articles written for you and shared to social networks First 3 articles free Website health check Site AI Audit SEO, speed, SSL, security and e-mail setup in one report, ranked by what to fix first. Check your club or DXpedition website for free First audit free Deep SEO crawl Site SEO AI Audit A full SEO crawl across 7 areas, including AI search visibility, with fixes ranked by impact. See why your club site is not found on Google — and how to fix it First audit free RSS & product feeds RSS Feed Creator Create RSS from any web page, plus product feeds for Google and Meta that update themselves. Follow DXpedition and club pages that have no RSS Free plan Web development & SEO Internet Solutions Websites, e-shops and custom systems, designed, built and run by our team. Club websites, DXpedition pages, log search and QSL systems Since 2011