release v1.72/73: WSPR decoder improvements, control panel hide button

edited April 18 in KiwiSDR Discussion
Strong signals often cause weaker "images" at different frequencies in the WSPR display. The underlying cause is still not understood. But now spots with the same callsign will only have the strongest one uploaded to prevent polluting the database. You'll still see multiple spots in the WSPR viewer because they are displayed incrementally as they are decoded. But at the end only the strongest non-duplicates will be uploaded.

A multi-pass scheme has been implemented to help decode weaker signals. After the first pass any remaining signals will be rerun through the decoder with increased effort parameters (that take more decoding time) until the full two minute decoding interval is exhausted. Previously decoding was stopped after only one pass.

The main KiwiSDR control panel at the bottom right of the window finally has a "hide" button at the top right like the other panels. This should be helpful for iPad and other mobile device users.



  • Some TX stations have actual "bonus signals" (spurs) and that solution fixes those too.
  • The v1.73 release eliminates image duplicates from the WSPR viewer spot list. In the WSPR waterfall they will appear with the label text "image" in a purple color.

    I discovered the cause of an interesting problem today. Every so often the "peak list" shows up almost empty even though the WSPR waterfall has plenty of strong signals. The peak list is the initial list of blue labels at the top of the WSPR waterfall with the SNRs listed. It is telling the decoder where in the spectrum to find the WSPR signals. The peak list is built from a simple normalized average of all the spectrum FFTs computed during the two minute sampling period before decoding. The problem is that a large noise impulse can come along and totally washout the accumulated averages. Whatever peaks there are get completely buried in a new noise floor established by the impulse (big static crash etc.) You can lose the decodes from an entire two minute period because of this.

    Other WSPR decoders likely have this same issue since I use the same peak detection code that have. This may not have been noticed before because other decoders don't show you the peak list. Just the WSPR waterfall. So a faulty peak list would just show up in these other decoders as signals in the waterfall with no spots decoded. When in fact those spots were perfectly decodable if only the decoder was asked to try! (since a short impulse has absolutely no effect on decoding WSPR signals due to the signal coding).

    I'm going to try implementing a simple impulse filter on the peak list and see what happens.

  • Seeing this now via mu command, note 2nd line

    Apr 18 17:57:01 kiwisdr kiwid: 8:46:41 012.   2  14096.35 kHz usb z14 "W2RFC" ::ffff: (LEAVING after 0:02:01)
    Apr 18 19:02:25 kiwisdr kiwid: 9:52:04 01..  1    26s jig <> 22 #03  -29.2 snr   7.040110 ( 110.44) freq   1.0 drift    550( +22) shift   0.127 sync  49.2 rms 7040.10 kHz usb z14 wspr "W2RFC" ::ffff: (LEAVING after 1:05:40)

  • jksjks
    edited April 18
    Yeah, there's a bug in the logging code. The "jig" WSPR debugging message is done with two printf() calls. The first without a newline and then a second which is conditional. But in some cases another message can sneak in there and get improperly appended..

Sign In or Register to comment.