Joe,
> On these files I ran test cases like yours, plus two more, with the
> following results:
>
> Command T B G time
> -----------------------------------------------------------
> 1. wsprd 125 2 123 25 s
> 2. wsprd_exp 126 13 113 29
> 3. wsprd_exp -J -C 5000 115 3 112 30
> 4. wsprd_exp -J -C 5000 -z 0.5 112 0 112 30
> 5. wsprd_exp -z 0.5 113 1 112 30
> 6. wsprd5000 120 0 120 23
> 7. wsprd -z 0.5 119 0 119 26
>
> T = total decodes
> B = bad decodes
> G = good decodes
>
> Case #6 used a re-compiled wsprd with maxcycles=5000.
>
> On these files, at least, it seems that the best performer is the
> deafult wsprd, Case #1: 123 good decodes, 2 false decodes. With
> maxcycles=5000 (Case #6) it yields 120 good decodes and 0 false decodes.
> With bias=0.5 (Case #7) it gives 119 good decodes and 0 false decodes.
>
> Seems to me we should probably go back to bias=0.5, and possibly reduce
> maxcycles a bit.
I’m on the same page regarding the need to decrease the number of bit-errors in
the decoded frames. But the thing that has been bothering me the most is the
vastly different results from Fano and Jelinek when presented with the same
candidates. All of my background reading suggests that these two algorithms
should visit the same nodes, given enough cycles. And yet, I was unable to get
Jelinek to produce the same bad decodes, even when I allowed a huge number of
cycles and a huge stack size. So I’ve been suspicious about a programming error
or bug.
I think that I’ve found at least a partial explanation for the bad behavior of
Fano. I’ve concluded that fano.c, as configured, is not decoding all 31 tail
bits. It is stopping at 30 bits. I discovered this after printing out the final
metric for decoded frames. I noticed that on a clean high-snr test file, as
generated by wsprsim, the final metric for a Fano decode was 800, whereas it is
810 for Jelinek. Similarly all of the final metrics produced by Fano were
smaller than those produced by Jelinek.
The following change makes the high-snr final metric 810 for Fano, and in fact
makes all final metrics from Fano and Jelinek identical:
$ svn diff
Index: wsprd/fano.c
===================================================================
--- wsprd/fano.c (revision 5740)
+++ wsprd/fano.c (working copy)
@@ -172,7 +172,7 @@
}
np[1].gamma = ngamma; // Move forward
np[1].encstate = np->encstate << 1;
- if(++np == lastnode) {
+ if(++np == lastnode+1) {
break; // Done!
}
With this change, the results for cases 1 and 2 improve to:
1.wsprd 124 0 124
2. wsprd_exp 130 7 123 (compare to your case 2 — it is counter to my intuition
that we get more good decodes by decoding further into the tail)
Also, I got different results for your case 3. This shouldn’t be affected by
the fano.c change, so I wonder if you just mis-copied the numbers on this one:
3. wsprd_exp -JC 5000 125 3 122
Finally, note that a metric bias of 0.46 eliminates bad decodes with either
decoder in wsprd_exp (using the modified fano.c):
wsprd_exp -z 0.46 122 (0) in 19s
wsprd_exp -Jz 0.46 -C 5000 122 (0) in 19s
So - at this point I am inclined to make the change to fano.c so that we decode
all 31 tail zeros (provided that you agree with my interpretation of what’s
going on). I’m also inclined to raise the default bias in wsprd to at least
0.46. Or even 0.5 if you prefer, though this may be less necessary with the
fano fix.
I also like Edson’s idea. I think that his suggestion could be a win-win by
essentially eliminating bad decodes in the database and allowing us to run a
little closer to the ragged edge in terms of what is displayed locally. I
imagine that spots that are not in ALL_WSPR and therefore are not uploadable
could be displayed in a different color to make it clear that they are only for
local consumption.
Steve k9an
>
> -- Joe
>
> ------------------------------------------------------------------------------
> _______________________________________________
> wsjt-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wsjt-devel
------------------------------------------------------------------------------
_______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel