Reduce gain on 2d cumulative spectrum, to be more consistent with others.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6289 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2015-12-17 15:55:35 +00:00
parent a263657ba1
commit bd38074f6b
3 changed files with 1398 additions and 1299 deletions

View File

@ -125,6 +125,18 @@ on with a Reed-Solomon code.
\begin_inset Formula $(n,k)$ \begin_inset Formula $(n,k)$
\end_inset \end_inset
, and the
\begin_inset Quotes eld
\end_inset
rate
\begin_inset Quotes erd
\end_inset
of the code is
\begin_inset Formula $k/n$
\end_inset
. .
JT65 uses a (63,12) Reed-Solomon code with 64 possible values for each JT65 uses a (63,12) Reed-Solomon code with 64 possible values for each
symbol. symbol.
@ -427,7 +439,7 @@ nchoosek(
\begin_inset Quotes erd \begin_inset Quotes erd
\end_inset \end_inset
in the interpreted language GNU Octave. in the interpreted language GNU Octave, as well as many free online calculators.
The hypergeometric probability mass function defined in Eq. The hypergeometric probability mass function defined in Eq.
( (
\begin_inset CommandInset ref \begin_inset CommandInset ref
@ -485,7 +497,7 @@ Example 1:
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
Suppose a codeword contains Suppose a received word contains
\begin_inset Formula $X=40$ \begin_inset Formula $X=40$
\end_inset \end_inset
@ -556,7 +568,8 @@ How might we best choose the number of symbols to erase, in order to maximize
symbols. symbols.
Decoding will then be assured if the set of erased symbols contains at Decoding will then be assured if the set of erased symbols contains at
least 37 errors, and with least 37 errors.
With
\begin_inset Formula $N=63$ \begin_inset Formula $N=63$
\end_inset \end_inset
@ -689,8 +702,9 @@ Example 3 shows how reliable information about symbol quality should make
\begin_layout Standard \begin_layout Standard
The FT algorithm uses two quality indices made available by a noncoherent The FT algorithm uses two quality indices made available by a noncoherent
64-FSK demodulator. 64-FSK demodulator.
The demodulator identifies the most likely value for each symbol based The demodulator The demodulator computes the power spectrum for each symbol
on the largest signal-plus-noise power in 64 frequency bins. and identifies the most likely symbol value based on the largest signal-plus-no
ise power in 64 frequency bins.
The fractions of total power in the two bins containing the largest and The fractions of total power in the two bins containing the largest and
second-largest powers (denoted by second-largest powers (denoted by
\begin_inset Formula $p_{1}$ \begin_inset Formula $p_{1}$
@ -848,8 +862,12 @@ Technically the FT algorithm is a list decoder, potentially generating a
\end_inset \end_inset
. .
A timeout is used to limit the algorithm's execution time if no codewords A timeout criterion
within soft distance \begin_inset Formula $T$
\end_inset
is used to limit the algorithm's execution time if no codewords within
soft distance
\begin_inset Formula $d_{a}$ \begin_inset Formula $d_{a}$
\end_inset \end_inset
@ -867,7 +885,7 @@ For each received symbol, define the erasure probability as 1.3 times the
a priori a priori
\emph default \emph default
symbol-error probability determined from soft-symbol information symbol-error probability determined from soft-symbol information
\begin_inset Formula $\{p_{1}\textrm{-rank},\, p_{2}/p_{1}\}$ \begin_inset Formula $\{p_{1}\textrm{-rank},\,p_{2}/p_{1}\}$
\end_inset \end_inset
. .
@ -912,7 +930,11 @@ If
\end_layout \end_layout
\begin_layout Enumerate \begin_layout Enumerate
If the number of trials is less than the maximum allowed number, go to 2. If the number of trials is less than
\begin_inset Formula $T$
\end_inset
, the maximum allowed number, go to 2.
Otherwise, declare decoding failure and exit. Otherwise, declare decoding failure and exit.
\end_layout \end_layout
@ -930,45 +952,124 @@ best
\end_inset \end_inset
has been found. has been found.
Declare a successful decode and return this codeword . Declare a successful decode and return this codeword.
\end_layout \end_layout
\begin_layout Section \begin_layout Paragraph
Results and Comparison with KVASD Experience-Based Lists of Candidate Codewords
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
Possible figures: JT65 was designed and developed to facilitate amateur communication via
\end_layout the Moon as a passive reflector.
Signals propagating over the Earth-Moon-Earth (EME, or
\begin_layout Itemize
histogram of
\begin_inset Formula $s$
\end_inset
(number of erasures) for successful decodes with HF and EME data
\end_layout
\begin_layout Itemize
histogram of
\begin_inset Quotes eld \begin_inset Quotes eld
\end_inset \end_inset
ntrials moonbounce
\begin_inset Quotes erd \begin_inset Quotes erd
\end_inset \end_inset
(or execution time) ) path suffer attenuation of order 240 dB or more, so received signals are
always weak.
To be EME-capable an amateur station must have a very sensitive receiver,
reasonably high power, and a reasonably large antenna on a VHF, UHF, or
microwave band.
At a given time the number of stations engaging in this specialized activity
is probably
\begin_inset Formula $M<1000$
\end_inset
, world-wide.
EME communications often consist of little more than an exchange of callsigns,
signal reports, and acknowledgments, so most messages being exchanged are
likely to appear in a list no more than a few times
\begin_inset Formula $M^{2}$
\end_inset
in length.
Such lists (and subsets thereof) offer potential alternatives to the stochastic
method described above for selecting candidate codewords.
A list of active callsigns can be built up cumulatively from previously
decoded messages.
Candidate codewords derived from the list can be injected into the FT algorithm
at step 5, where the soft distance between the set of received symbols
and the codeword is computed.
A decoder taking advantage of this experience-based approach will have
significant speed and performance advantages over a purely probabilistic
algorithm.
However, it must accept the limitation that these advantages apply only
to messages appearing in the candidate list.
In the open-source program
\shape italic
WSJT-X
\shape default
we generate candidate message lists of several different lengths.
List lengths range from a few times
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\strikeout off
\uuline off
\uwave off
\noun off
\color none
\begin_inset Formula $M$
\end_inset
up to about
\begin_inset Formula $M^{2}$
\end_inset
.
\end_layout \end_layout
\begin_layout Itemize \begin_layout Section
Number of decodes vs. Results and Comparisons
ntrials
\end_layout \end_layout
\begin_layout Itemize \begin_layout Standard
Probability of successful decode vs. We measured performance of the Franke-Taylor soft-decision decoder using
Es/No or S/N in 2500 Hz BW simulations with many thousands of signal realizations at a range of calibrated
signal-to-noise ratios (SNRs).
Our first series of tests assumed an ideal additive white Gaussian noise
(AWGN) channel.
The dotted curve in Figure
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:Psuccess"
\end_inset
shows the fraction of raw symbols expected to be received incorrectly over
such a channel.
Filled circles and the short-dashed curve illustrate performance of the
hard-decision Berlekamp-Massey algorithm, while filled squares and a solid
curve give results for the FT algorithm with conservative settings for
the timeout parameter
\begin_inset Formula $T$
\end_inset
and maximum acceptable soft distance
\begin_inset Formula $d_{a}$
\end_inset
.
Note that sensitivity with soft-decision decoding is about 2 dB better
than with hard decisions.
For comparison, open squares and a long-dashed curve show somewhat looser
settings for timeout and soft distance parameters can gain roughly another
0.4 dB.
At this setting the rate of false decodes is no doubt slightly higher,
though in our simulations it was still found to be
\begin_inset Formula $<10^{-4}$
\end_inset
.
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
@ -981,8 +1082,8 @@ status open
\align center \align center
\begin_inset Graphics \begin_inset Graphics
filename fig_psuccess.pdf filename fig_psuccess.pdf
lyxscale 120 lyxscale 150
scale 120 scale 150
\end_inset \end_inset
@ -999,7 +1100,7 @@ name "fig:Psuccess"
\end_inset \end_inset
Percentage of JT65 messages ( Fraction of JT65 messages (
\begin_inset Quotes eld \begin_inset Quotes eld
\end_inset \end_inset
@ -1007,38 +1108,36 @@ words
\begin_inset Quotes erd \begin_inset Quotes erd
\end_inset \end_inset
) successfully decoded as a function of SNR in 2.5 kHz bandwidth. ) successfully decoded as a function of SNR in 2.5 kHz bandwidth, for a non-fadin
These results are for the idealized situation of a non-fading signal in g signal in additive white Gaussian noise (AWGN).
additive white Gaussian noise (AWGN). BM: hard-decision Berlekamp-Massey decoder; FT-1: soft-decision Franke-Taylor
Results are shown for the hard-decision Berlekamp-Massey (BM) and soft-decision decoder with
Franke-Taylor (FT) decoding algorithms. \begin_inset Formula $T=10^{4}$
Results for the FT algorithm are shown for two different sets of time-out
and acceptance criteria.
FT-1 was obtained with a limit of
\begin_inset Formula $10^{4}$
\end_inset
erasure vectors and with acceptance criteria
\begin_inset Formula $d_{a}<72$
\end_inset
and
\begin_inset Formula $n_{hard}<42$
\end_inset
, and FT-2 corresponds to
\begin_inset Formula $10^{5}$
\end_inset
erasure vectors and
\begin_inset Formula $d_{a}<76$
\end_inset \end_inset
, ,
\begin_inset Formula $n_{hard}<44$ \begin_inset Formula $d_{a}=72$
\end_inset
,
\begin_inset Formula $h_{max}=42$
\end_inset
; FT-2: soft-decision decoder with
\begin_inset Formula $T=10^{5}$
\end_inset
,
\begin_inset Formula $d_{a}=76$
\end_inset
,
\begin_inset Formula $h_{max}=44$
\end_inset \end_inset
. .
algorithms.
\end_layout \end_layout
\end_inset \end_inset

View File

@ -147,10 +147,10 @@ subroutine jt65a(dd0,npts,newdat,nutc,nf1,nf2,nfqso,ntol,nsubmode, &
1012 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a22,' JT65',i4) 1012 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a22,' JT65',i4)
call flush(6) call flush(6)
call flush(13) call flush(13)
! write(79,3001) nutc,nint(sync1),nsnr,dtx-1.0,nfreq,ncandidates, & write(79,3001) nutc,nint(sync1),nsnr,dtx-1.0,nfreq,ncandidates, &
! nhard_min,ntotal_min,ntry,naggressive,nft,nqual,decoded nhard_min,ntotal_min,ntry,naggressive,nft,nqual,decoded
!3001 format(i4.4,i3,i4,f6.2,i5,i7,i3,i4,i8,i3,i2,i5,1x,a22) 3001 format(i4.4,i3,i4,f6.2,i5,i7,i3,i4,i8,i3,i2,i5,1x,a22)
! flush(79) flush(79)
endif endif
decoded0=decoded decoded0=decoded
freq0=freq freq0=freq

View File

@ -161,7 +161,7 @@ void CPlotter::draw(float swide[], bool bScroll) //dr
} }
m_sum[i]=sum; m_sum[i]=sum;
} }
if(m_bCumulative) y2=2.5*gain2d*(m_sum[i]/m_binsPerPixel + m_plot2dZero); if(m_bCumulative) y2=gain2d*(m_sum[i]/m_binsPerPixel + m_plot2dZero);
if(m_Flatten==0) y2 += 15; //### could do better! ### if(m_Flatten==0) y2 += 15; //### could do better! ###
if(m_bLinearAvg) { //Linear Avg (yellow) if(m_bLinearAvg) { //Linear Avg (yellow)