Skip to content

WSPRpi/WSPR-Decoder

Repository files navigation

This is a copy of K9AN's WSPR Decoder (https://github.com/k9an/old_wsprcan) modified slightly to read and write to stdin/out
The reason it is not a fork is that, in the past, he uploaded huge amounts of wav files which are still downloaded due to git's
version control, so this is just the output files. Original README is below.

k9an-wsprd is a decoder for K1JT's Weak Signal Propagation Reporter (WSPR) mode.

The program is written in C and is a command-line program that reads from a
.c2 file or .wav file and writes output to the console. It is designed so that
it can be used as a drop-in replacement for the wsprd program that wspr-x uses 
for decoding. 

k9an-wsprd requires only one external library: libfftw3

COMPILING:
A bare-bones Makefile is included. 

USAGE:
k9an-wsprd [-nqwv] [-f freq] [-e error] infile

    -e error (error is dial frequency error in Hz)
    -f freq (freq is dial frequency in MHz)
    -H don't use (or update) the hashtable
    -n write estimated noise level to file "noise.dat"
    -q quick mode doesn't dig deep for weak signals
    -v verbose
    -w wideband mode displays decoded signals within +/- 150 Hz

infile can be either .wav or .c2

e.g. 
./k9an-wsprd -wf 14.0956 140709_2258.wav

Note that for .c2 files, the frequency within the file overrides the command
line value.

FEATURES:
By default, k9an-wsprd reports signals that are within +/- 110 Hz of the
subband center frequency. The wideband option (-w) extends this to +/- 150 Hz.

k9an-wsprd maintains a hashtable and will decode all three types of wspr
messages. An option (-H) is available to turn off use of the hashtable.

k9an-wsprd was optimized to maximize the number of decodes on a crowded band. It 
uses a looser selection criterion than K1JT's program and therefore tries to 
decode more potential signals. Sometimes, it gets lucky! 

The symbols are decoded using Phil Karn's sequential decoder routine,
fano.c.

The code checks for the "WSPRD_FFTW_WISDOM" environment variable. If set, this
variable specifies the file that contains the fftw wisdom.


NOTES:
This program attempts to maximize the number of successful decodes per transmit
interval by trying to decode virtually every peak in the averaged spectrum.
As such, there will be occasional duplicate decodes when two closely spaced 
peaks come from the same signal. The program removes dupes based on callsign 
and frequency. Two decodes that have the same callsign and estimated frequencies
that are within 1 Hz will be treated as decodes of the same signal. This
dupechecking is turned off with the -v flag.

Feedback and suggestions for improvement are welcome!

Steve Franke, k9an
Urbana, IL, USA
s.j.franke@icloud.com


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages