mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-25 13:48:42 -05:00
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:
parent
a263657ba1
commit
bd38074f6b
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user