You might consider trying the geometric mean.  Multiple probabilities
should be normalized quite likely in this situation.
Mike W9MDB

On Fri, Sep 25, 2015 at 8:34 AM, Steven Franke <s.j.fra...@icloud.com>
wrote:

> Hi Joe -
> Thanks for the new results! Getting ready for class here - so just a quick
> note. Your results, though more extensive than mine, point in the same
> direction. As it stands, sfrsd seems to be around 0.5 dB shy of kvasd. I
> have a long list of ideas to try to do better - but it will take time to
> sort through them.
>
> To answer your question on optimizing metrics - the short answer is that
> they haven’t been optimized at all. Feel free to play with them.
> Intuitively, I like the one that I was using - but last night I played with
> yours and see that it’s not bad either. One task that I have on my list is
> to collect statistics on the probability of the second-best-symbol estimate
> being the correct symbol, as a function of the two probability metrics. I
> expect there to be a sweet spot where p2/p1 is near 0.5 and p1 is not too
> small and not too large where mr2sym is going to be useful. Collecting
> these statistics would help us decide which symbol metrics (yours or mine)
> are “better” for this purpose. This would also point the way toward a true
> Chase-type algorithm where we actually use the second-most-reliable
> symbols. At the moment, the only metric that is used is the probability
> associated with mrsym - and that is used in a crude way, as you pointed
> out. The idea would be to have some finite probability of replacing a
> symbol with mr2sym instead of marking it as an erasure - but only for
> symbols where mr2sym is reasonably likely to be the correct symbol. If/when
> we replace a symbol with mr2sym instead of marking it as an erasure, we’ll
> need to tell BM to re-calculate the syndromes - which is done using the
> last argument that I added to KA9Q’s routine.
>
> Last night, I found a potentially powerful metric to use as a stopping
> criterion. Note that the algorithm runs all ntrials before stopping at
> present. Hence, it is dog-slow, as you found out. I found that a good
> stopping criterion can be created by calculating nhard-n2ndbest where nhard
> is the number of symbols where the received symbol vector differs from the
> decoded codeword (the number of “hard” errors) and n2ndbest is the number
> of places where the second most reliable symbol is the *same* as the symbol
> in the decoded codeword. I found that a bad codeword rarely has n2ndbest
> larger than 2. I also found that a threshold like nhard-n2ndbest<45 (I’m
> not sure if 45 is the best - but you get the idea) works well.
>
> With this in mind - the average running time can be dramatically reduced
> if we simply stop (break out of the ntrials loop) when we find a codeword
> that meets this type of criterion.
>
> BTW, as currently configured, the ntrial loop breaks out after it finds
> 5000 codewords. This limits the effectiveness of increasing ntrials to
> large number (like 100000). To get the full benefit of large ntrials, you
> would probably need to increase that threshold to 20k or more - or just
> eliminate the threshold and implement something like the stopping criterion
> that I mentioned above.
>
> It is instructive to watch the results in sfrsd.log scroll by - you can
> see how sensitive the number of “found” codewords is to the selected
> erasure probabilities and the metrics…
>
> If you have time to play, feel free to mess around with sfrsd - or create
> an jtrsd and we can merge them later.
> Steve k9an
>
> > On Sep 25, 2015, at 8:11 AM, Joe Taylor <j...@princeton.edu> wrote:
> >
> > Hi Steve and all,
> >
> > I've added more lines to the table summarizing my tests of decoding
> > weak, isolated  JT65A signals.  As before, the final number on each line
> > is the number of valid decodes from a thousand files at
> > S/N=-24 dB.
> >
> > 1. WSJT-X (BM only)                       2
> > 2. WSJT (BM only)                         5
> > 3. WSJT-X + kvasd                       189
> > 4. WSJT-X + kvasd (thresh0=1, ntest>0)  207
> > 5. WSJT-X + sfrsd (Linux)               302
> > 6. WSJT-X + sfrsd (Win32)               309
> > 7. WSJT-X + sfrsd (Linux, thresh0=1)    348
> > 8. WSJT-X + sfrsd (Win32, thresh0=1)    350
> > 9. WSJT + kvasd (Linux)                 809
> > 10.WSJT + kvasd (Win32)                 809
> >
> > 11.WSJT + sfrsd (10000)                 464
> > 12.WSJT + sfrsd (SFM no ntest 10000)    519
> > 13.WSJT + sfrsd (SFM no ntest 20000)    543
> > 14.WSJT + sfrsd (SFM no ntest 1000)     342
> > 15.WSJT + sfrsd (SFM no ntest 100000)   706
> > 16.WSJT + sfrsd (SFM no ntest 1000000)  786  (took 11 hours!)
> >
> > 17.WSJT + kvasd (SFM no ntest)          897
> >
> > Test 11 simply replaced kvasd with sfrsd, with no other changes.  Tests
> > 12-16 used Steve's metrics for the symbol probabilities in demod64a.f90
> > and commented out the following lines in extract.F90:
> >
> > !  if(ntest.lt.50 .or. nlow.gt.20) then
> > !     ncount=-999                         !Flag bad data
> > !     go to 900
> > !  endif
> >
> > The number of random erasure vectors is specified for each of these
> > runs.  Test 17 is a final run using kvasd.
> >
> > With "reasonable" numbers of random erasure trials, sfrsd seems to be
> > something like 0.5 dB shy of the sensitivity of kvasd.  Steve, I know
> > you have already done some parameter-tuning for sfrsd, but possibly
> > there's still room for improvement?  How did you choose the values 0.5
> > 0.6 0.6 0.6 0.8 and the step locations 32 128 196 256, lines 197-207 in
> > sfrsd.c ?  Have you thought about other possible ways to speed up the
> > search by eliminating some candidate erasure vectors?
> >
> >       -- Joe, K1JT
> >
> >
> ------------------------------------------------------------------------------
> > _______________________________________________
> > wsjt-devel mailing list
> > wsjt-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wsjt-devel
>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> wsjt-devel mailing list
> wsjt-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wsjt-devel
>
------------------------------------------------------------------------------
_______________________________________________
wsjt-devel mailing list
wsjt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to