This is a report of early results from my first attempt at implementing 2-pass 
decoding. 

The idea was suggested by Joe a few weeks ago. The motivation is to try to 
squeeze out a few more decodes on crowded bands where there are a number of 
otherwise decodable signals being covered up by stronger signals.

The approach that I used is to coherently detect and subtract each successfully 
decoded signal on a symbol-by-symbol basis. After a signal is decoded we know 
what the correct channel symbols were (as well as the start time and center 
frequency), so we can use that information to go back and coherently integrate 
over each of the symbols to obtain estimates of the complex amplitude of the 
signal during each symbol. We then subtract that signal before decoding the 
next signal. 

I implemented this idea in a quick and dirty way using a modified version of 
wsprd that has been committed as wsprd_exp. 

Each time wsprd_exp is run, it subtracts the decoded signals as described above 
and then, just before exiting, it writes the modified data to a new file named 
000000_0001.c2. This new file can then be decoded again using wsprd_exp. If we 
are lucky, the signal subtraction in step 1 may “uncover” some new signals that 
will show up in the second step. Here’s the result that I got on my first try.

First run (10 decodes):
./wsprd_exp -f 14.0956 150328_1948.wav
1948 -11 -1.0  14.097010 -1  AC9MB EM69 37 
1948   4 -2.0  14.097024 -4  KB1CHU FN42 30 
1948   7 -0.0  14.097036  0  WA1NRA FN33 37 
1948  19  0.2  14.097049  0  WA3DNM FM29 37 
1948 -13 -0.9  14.097061  2  IZ3ATV JN55 37 
1948 -14 -0.9  14.097085  0  AD7UI DN32 37 
1948  -0  3.3  14.097117  0  K0KQ DM79 30 
1948 -20 -0.9  14.097129  0  K7OLN CN84 27 
1948  21 -0.2  14.097150  0  K5XL EM12 33 
1948   3 -0.3  14.097186  0  KE2N FM18 23 
<DecodeFinished>
Writing 000000_0001.c2

Second run (3 dupes plus 2 new unique decodes)
./wsprd_exp 000000_0001.c2 
0001 -20 -1.0  14.097010 -1  AC9MB EM69 37 
0001 -12 -0.0  14.097036  2  WA1NRA FN33 37 
0001 -19 -0.9  14.097063  1  PE7ER JO33 30 
0001 -19  1.2  14.097088  0  OH6LSL KP13 37 
0001  -7 -0.2  14.097148  0  K5XL EM12 33 
<DecodeFinished>
Writing 000000_0001.c2

Consider the second run and note that AC9MB, WA1NRA, and K5XL are “dupes”. They 
were already decoded in the first pass. Note that their SNRs are smaller in the 
second pass by about 9dB, 19dB, and 28dB!, respectively. This shows that the 
signal subtraction is working and that I have the math basically correct. More 
importantly, note that PE7ER and OH6LSL were not decoded on the first pass. 
Thus, the second pass does seem to have “bought” us 2 more unique decodes, for 
a total of 12 from this file.

As an afterthought, I stumbled on another interesting result just now. Consider 
the results from our current wsprd:
./wsprd -f 14.0956 150328_1948.wav
1948 -11 -1.0  14.097010 -1  AC9MB EM69 37 
1948   4 -2.0  14.097024 -4  KB1CHU FN42 30 
1948   7 -0.1  14.097036  0  WA1NRA FN33 37 
1948  19  0.2  14.097049  0  WA3DNM FM29 37 
1948 -14 -1.0  14.097085  0  AD7UI DN32 37 
1948  -0  3.3  14.097117  0  K0KQ DM79 30 
1948  21 -0.2  14.097150  0  K5XL EM12 33 
1948   3 -0.3  14.097186  0  KE2N FM18 23 

Note that the original wsprd produces only 8 decodes. IZ3ATV and K7OLN were 
decoded on the first pass of wsprd_exp whereas they were not decoded at all by 
wsprd. This means that the 2-pass results produced 50% more decodes (12 vs 8) 
than the existing decoder. 

The reason that the results from the first pass of wsrd_exp were better than 
those from our current wsprd is because wsprd_exp subtracts signals immediately 
after they are decoded and before moving on to the next candidate. Thus, the 
subtraction may very well remove interference from a signal that is just “up 
the band”.

These first results are very encouraging! 

Steve k9an



------------------------------------------------------------------------------
_______________________________________________
wsjt-devel mailing list
wsjt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to