Fix the FT algorithm description. Add hinted algorithm, and a few edits.

Still needed: Updated Figure 4, and text for Section 7.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6363 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2016-01-08 20:27:21 +00:00
parent 1268600497
commit ff54b5d595
1 changed files with 140 additions and 47 deletions

View File

@ -91,7 +91,7 @@ name "sec:Introduction-and-Motivation"
\end_inset \end_inset
Introduction and Motivation Background and Motivation
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
@ -139,14 +139,15 @@ WSJT-X
\emph default \emph default
, widely used for amateur weak-signal communication with JT65 and other , widely used for amateur weak-signal communication with JT65 and other
specialized digital modes. specialized digital modes.
The program is freely available The program is freely available and licensed under the GNU General Public
License
\begin_inset CommandInset citation \begin_inset CommandInset citation
LatexCommand cite LatexCommand cite
key "wsjt" key "wsjt"
\end_inset \end_inset
and licensed under the GNU General Public License. .
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
@ -991,7 +992,11 @@ Here the
\end_inset \end_inset
's are the symbol values for the candidate codeword being tested. 's are the symbol values for the candidate codeword being tested.
The correct JT65 codeword produces a value for
\end_layout
\begin_layout Standard
The correct JT65 codeword produces a value for
\begin_inset Formula $u$ \begin_inset Formula $u$
\end_inset \end_inset
@ -1051,16 +1056,12 @@ where
\end_inset \end_inset
\end_layout
\begin_layout Standard
In contrast, the expected value and standard deviation of the In contrast, the expected value and standard deviation of the
\begin_inset Formula $u$ \begin_inset Formula $u$
\end_inset \end_inset
-metric for a randomly selected incorrect codeword (selected from a population -metric for an incorrect codeword (randomly selected from a population of
of all all
\begin_inset Quotes eld \begin_inset Quotes eld
\end_inset \end_inset
@ -1099,6 +1100,10 @@ i.e.
\end_inset \end_inset
\end_layout
\begin_layout Standard
If If
\begin_inset Formula $u$ \begin_inset Formula $u$
\end_inset \end_inset
@ -1138,11 +1143,12 @@ If
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
If no tested codeword is correct or the signal-to-noise ratio If the signal-to-noise ratio
\begin_inset Formula $y$ \begin_inset Formula $y$
\end_inset \end_inset
is too small for decoding to be possible, the ratio is too small for decoding to be possible, or for some other reason the
correct codeword is never presented as a candidate, the ratio
\begin_inset Formula $r=u_{2}/u_{1}$ \begin_inset Formula $r=u_{2}/u_{1}$
\end_inset \end_inset
@ -1308,23 +1314,31 @@ If
\end_inset \end_inset
by setting by setting
\begin_inset Formula $u_{2}=u_{1}$ \begin_inset Formula $u_{2}=u_{1}.$
\end_inset \end_inset
and then set Then set
\begin_inset Formula $u_{1}=u$ \begin_inset Formula $u_{1}=u,$
\end_inset \end_inset
.
\begin_inset Formula $d_{1}=d_{s},$
\end_inset
and
\begin_inset Formula $X_{1}=X.$
\end_inset
\end_layout \end_layout
\begin_layout Enumerate \begin_layout Enumerate
If If
\begin_inset Formula $X<X_{0}$ \begin_inset Formula $X_{1}<X_{0}$
\end_inset \end_inset
and and
\begin_inset Formula $d_{s}<d_{0}$ \begin_inset Formula $d_{s}<D_{0}$
\end_inset \end_inset
, go to step 11. , go to step 11.
@ -1345,11 +1359,11 @@ If the number of trials is less than the timeout limit
\begin_layout Enumerate \begin_layout Enumerate
If If
\begin_inset Formula $d_{s}<d_{1}$ \begin_inset Formula $d_{1}<D_{1}$
\end_inset \end_inset
and and
\begin_inset Formula $r<r_{1},$ \begin_inset Formula $r=u2/u1<r_{1},$
\end_inset \end_inset
go to step 11. go to step 11.
@ -1447,18 +1461,18 @@ The FT algorithm is completely general: with equal sensitivity it recovers
much much
\emph default \emph default
smaller list of messages (say, a few thousand messages or less) that we smaller list of messages (say, a few thousand messages or less) that we
can guess might be among the most likely ones to be received. might suppose would be among the most likely ones to be received.
One such situation exists when making short ham-radio contacts that exchange One such situation exists when making short ham-radio contacts that exchange
minimal information including callsigns, signal reports, perhaps Maidenhead minimal information including callsigns, signal reports, perhaps Maidenhead
locators, and acknowledgments. locators, and acknowledgments.
On the EME path or a VHF or UHF band with limited geographical coverage, On the EME path or a VHF or UHF band with limited geographical coverage,
the most likely received messages often originate from callsigns that have the most common received messages often originate from callsigns that have
been decoded before. been decoded before.
Saving a list of previously decoded callsigns and associated locators makes Saving a list of previously decoded callsigns and associated locators makes
it easy to generate lists of hypothetical messages and their corresponding it easy to generate lists of hypothetical messages and their corresponding
codewords at very little computational expense. codewords at very little computational expense.
The resulting candidate codewords can be tested in the same way as those The resulting candidate codewords can be tested in almost the same way
generated by the probabilistic method described in Section as those generated by the probabilistic method described in Section
\begin_inset CommandInset ref \begin_inset CommandInset ref
LatexCommand ref LatexCommand ref
reference "sec:The-decoding-algorithm" reference "sec:The-decoding-algorithm"
@ -1492,45 +1506,124 @@ deep search
For hinted decoding we again invoke a ratio threshold test, but in this For hinted decoding we again invoke a ratio threshold test, but in this
case we use it to answer a more limited question. case we use it to answer a more limited question.
Over the full list of messages considered likely, we want to know whether Over the full list of messages considered likely, we want to know whether
a suitable metric can distinguish with confidence between the one correct
\begin_inset Formula $r=u_{2}/u_{1}$ codeword and all others in the generated list.
\end_inset We again find that the most effective metric involves a comparison of
, the ratio of second-largest to largest
\begin_inset Formula $u$
\end_inset
-metric, is small enough for us to be confident the codeword associated
with
\begin_inset Formula $u_{1}$ \begin_inset Formula $u_{1}$
\end_inset \end_inset
is the one that was transmitted. and
Once again we will set an empirical limit, say \begin_inset Formula $u_{2},$
\begin_inset Formula $r_{2},$
\end_inset \end_inset
that is small enough to establish adequate confidence, while still ensuring the largest and second-largest values of total signal-plus-noise power
that false decodes are rare. among all the tested codewords.
Once again the criterion for comparison is chosen empirically to maximize
the number of correct decodes while ensuring that false decodes are rare.
Because tested candidate codewords are drawn from a list typically no longer Because tested candidate codewords are drawn from a list typically no longer
than a few thousand, rather than than a few thousand, rather than
\begin_inset Formula $2^{72},$ \begin_inset Formula $2^{72},$
\end_inset \end_inset
the limit can can be more relaxed than that used in the FT algorithm.
\begin_inset Formula $r_{2}$ THus, for the limited subset of messages suggested by operator experience
\end_inset to be likely, hinted decodes can be obtained at lower signal levels than
required for the full universe of
can be a more relaxed limit than that used in the FT algorithm.
For the limited subset of messages suggested by operator experience to
be likely, hinted decodes can be obtained at lower signal levels than required
for the full universe of
\begin_inset Formula $2^{72}$ \begin_inset Formula $2^{72}$
\end_inset \end_inset
possible messages. possible messages.
\end_layout \end_layout
\begin_layout Standard
\begin_inset Float algorithm
wide false
sideways false
status open
\begin_layout Plain Layout
\end_layout
\begin_layout Plain Layout
\begin_inset Caption Standard
\begin_layout Plain Layout
Pseudo-code for hinted decoding
\end_layout
\end_inset
\end_layout
\begin_layout Enumerate
Generate a list of
\begin_inset Formula $L$
\end_inset
codewords considered likely to be received.
Set a pointer to the start of this list.
\end_layout
\begin_layout Enumerate
Fetch the next candidate codeword and calculate its metric
\begin_inset Formula $u.$
\end_inset
\end_layout
\begin_layout Enumerate
If
\begin_inset Formula $u$
\end_inset
is the largest found so far, presevre any previous value of
\begin_inset Formula $u_{1}$
\end_inset
by setting
\begin_inset Formula $u_{2}=u_{1},$
\end_inset
then set
\begin_inset Formula $u_{1}=u.$
\end_inset
\end_layout
\begin_layout Enumerate
If the number of tested codewords is less than
\begin_inset Formula $L,$
\end_inset
go to step 2.
\end_layout
\begin_layout Enumerate
If
\begin_inset Formula $r=u2/u1<r_{2},$
\end_inset
go to step 7.
\end_layout
\begin_layout Enumerate
Otherwise, declare hinted-decoding failure and exit.
\end_layout
\begin_layout Enumerate
An acceptable hinted decode has been found.
Declare a successful result and return this codeword.
\end_layout
\end_inset
\end_layout
\begin_layout Section \begin_layout Section
\begin_inset CommandInset label \begin_inset CommandInset label
LatexCommand label LatexCommand label