mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-03-23 12:38:53 -04:00
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:
parent
1268600497
commit
ff54b5d595
@ -91,7 +91,7 @@ name "sec:Introduction-and-Motivation"
|
||||
|
||||
\end_inset
|
||||
|
||||
Introduction and Motivation
|
||||
Background and Motivation
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
@ -139,14 +139,15 @@ WSJT-X
|
||||
\emph default
|
||||
, widely used for amateur weak-signal communication with JT65 and other
|
||||
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
|
||||
LatexCommand cite
|
||||
key "wsjt"
|
||||
|
||||
\end_inset
|
||||
|
||||
and licensed under the GNU General Public License.
|
||||
.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
@ -991,7 +992,11 @@ Here the
|
||||
\end_inset
|
||||
|
||||
'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$
|
||||
\end_inset
|
||||
|
||||
@ -1051,16 +1056,12 @@ where
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
In contrast, the expected value and standard deviation of the
|
||||
\begin_inset Formula $u$
|
||||
\end_inset
|
||||
|
||||
-metric for a randomly selected incorrect codeword (selected from a population
|
||||
of all
|
||||
-metric for an incorrect codeword (randomly selected from a population of
|
||||
all
|
||||
\begin_inset Quotes eld
|
||||
\end_inset
|
||||
|
||||
@ -1099,6 +1100,10 @@ i.e.
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
If
|
||||
\begin_inset Formula $u$
|
||||
\end_inset
|
||||
@ -1138,11 +1143,12 @@ If
|
||||
\end_layout
|
||||
|
||||
\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$
|
||||
\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}$
|
||||
\end_inset
|
||||
|
||||
@ -1308,23 +1314,31 @@ If
|
||||
\end_inset
|
||||
|
||||
by setting
|
||||
\begin_inset Formula $u_{2}=u_{1}$
|
||||
\begin_inset Formula $u_{2}=u_{1}.$
|
||||
\end_inset
|
||||
|
||||
and then set
|
||||
\begin_inset Formula $u_{1}=u$
|
||||
Then set
|
||||
\begin_inset Formula $u_{1}=u,$
|
||||
\end_inset
|
||||
|
||||
.
|
||||
|
||||
\begin_inset Formula $d_{1}=d_{s},$
|
||||
\end_inset
|
||||
|
||||
and
|
||||
\begin_inset Formula $X_{1}=X.$
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Enumerate
|
||||
If
|
||||
\begin_inset Formula $X<X_{0}$
|
||||
\begin_inset Formula $X_{1}<X_{0}$
|
||||
\end_inset
|
||||
|
||||
and
|
||||
\begin_inset Formula $d_{s}<d_{0}$
|
||||
\begin_inset Formula $d_{s}<D_{0}$
|
||||
\end_inset
|
||||
|
||||
, go to step 11.
|
||||
@ -1345,11 +1359,11 @@ If the number of trials is less than the timeout limit
|
||||
|
||||
\begin_layout Enumerate
|
||||
If
|
||||
\begin_inset Formula $d_{s}<d_{1}$
|
||||
\begin_inset Formula $d_{1}<D_{1}$
|
||||
\end_inset
|
||||
|
||||
and
|
||||
\begin_inset Formula $r<r_{1},$
|
||||
\begin_inset Formula $r=u2/u1<r_{1},$
|
||||
\end_inset
|
||||
|
||||
go to step 11.
|
||||
@ -1447,18 +1461,18 @@ The FT algorithm is completely general: with equal sensitivity it recovers
|
||||
much
|
||||
\emph default
|
||||
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
|
||||
minimal information including callsigns, signal reports, perhaps Maidenhead
|
||||
locators, and acknowledgments.
|
||||
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.
|
||||
Saving a list of previously decoded callsigns and associated locators makes
|
||||
it easy to generate lists of hypothetical messages and their corresponding
|
||||
codewords at very little computational expense.
|
||||
The resulting candidate codewords can be tested in the same way as those
|
||||
generated by the probabilistic method described in Section
|
||||
The resulting candidate codewords can be tested in almost the same way
|
||||
as those generated by the probabilistic method described in Section
|
||||
\begin_inset CommandInset ref
|
||||
LatexCommand ref
|
||||
reference "sec:The-decoding-algorithm"
|
||||
@ -1492,45 +1506,124 @@ deep search
|
||||
For hinted decoding we again invoke a ratio threshold test, but in this
|
||||
case we use it to answer a more limited question.
|
||||
Over the full list of messages considered likely, we want to know whether
|
||||
|
||||
\begin_inset Formula $r=u_{2}/u_{1}$
|
||||
\end_inset
|
||||
|
||||
, 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
|
||||
a suitable metric can distinguish with confidence between the one correct
|
||||
codeword and all others in the generated list.
|
||||
We again find that the most effective metric involves a comparison of
|
||||
\begin_inset Formula $u_{1}$
|
||||
\end_inset
|
||||
|
||||
is the one that was transmitted.
|
||||
Once again we will set an empirical limit, say
|
||||
\begin_inset Formula $r_{2},$
|
||||
and
|
||||
\begin_inset Formula $u_{2},$
|
||||
\end_inset
|
||||
|
||||
that is small enough to establish adequate confidence, while still ensuring
|
||||
that false decodes are rare.
|
||||
the largest and second-largest values of total signal-plus-noise power
|
||||
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
|
||||
than a few thousand, rather than
|
||||
\begin_inset Formula $2^{72},$
|
||||
\end_inset
|
||||
|
||||
|
||||
\begin_inset Formula $r_{2}$
|
||||
\end_inset
|
||||
|
||||
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
|
||||
the limit can can be more relaxed than that used in the FT algorithm.
|
||||
THus, 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}$
|
||||
\end_inset
|
||||
|
||||
possible messages.
|
||||
\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_inset CommandInset label
|
||||
LatexCommand label
|
||||
|
Loading…
Reference in New Issue
Block a user