WSJT-X/lib/wsprd
Bill Somerville 4de778c4e7 Reverting r6531 and replacing with correct fix
The WSPR  message is unpacked  into a symbol  per byte array  which is
processed  by  encoding a  whole  number  of  bytes of  message,  this
requires the output  array to be bigger than the  number of symbols to
accommodate  extra values  that are  not part  of the  message due  to
rounding up to whole bytes. I.e.  176 (11*8*2) elements to contain the
162 symbols.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6532 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-03-15 11:46:26 +00:00
..
fano.c Reverting r6531 and replacing with correct fix 2016-03-15 11:46:26 +00:00
fano.h Move hashtab onto the heap. Add new wsprd_exp with stack decoder option (jelinek.c) 2015-07-25 23:48:53 +00:00
fftw3.h
genmet.f90
gran.c
jelinek.c Remove redundant comparison. 2015-07-27 00:46:32 +00:00
jelinek.h Decrease memory footprint of stack and improve stack decoder efficiency. 2015-07-26 14:09:25 +00:00
Makefile Add optional Rayleigh fading to jt65sim. 2015-11-19 20:49:55 +00:00
Makefile.MinGW
Makefile.win32 Update Makefile.win32 for building wsprd_exp.exe. 2015-07-30 12:30:05 +00:00
metric_tables.c Squash some compiler warnings 2015-11-21 20:23:39 +00:00
mettab.c
nhash.c Reintegrate merge from wsjtx_exp branch. 2015-11-18 01:28:12 +00:00
nhash.h Reintegrate merge from wsjtx_exp branch. 2015-11-18 01:28:12 +00:00
README Reintegrate merge from wsjtx_exp branch. 2015-11-18 01:28:12 +00:00
t2.f90
tab.c
test_wspr.f90
unpk.c.obsolete Actually add the new wsprsim files this time. 2015-06-14 15:21:50 +00:00
WSPRcode.f90
wsprd_exp.c Fix incorrect drift field in on screen WSPR decodes 2015-11-14 19:24:15 +00:00
wsprd_stats.txt
wsprd_utils.c Move hashtab onto the heap. Add new wsprd_exp with stack decoder option (jelinek.c) 2015-07-25 23:48:53 +00:00
wsprd_utils.h Move hashtab onto the heap. Add new wsprd_exp with stack decoder option (jelinek.c) 2015-07-25 23:48:53 +00:00
wsprd.c Rationalize random number seeding in C and Fortran 2015-12-14 19:40:44 +00:00
wsprsim_utils.c Reverting r6531 and replacing with correct fix 2016-03-15 11:46:26 +00:00
wsprsim_utils.h Move hashtab onto the heap. Add new wsprd_exp with stack decoder option (jelinek.c) 2015-07-25 23:48:53 +00:00
wsprsim.c Move hashtab onto the heap. Add new wsprd_exp with stack decoder option (jelinek.c) 2015-07-25 23:48:53 +00:00

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 used by WSJT-X
for wspr-mode decoding. 

USAGE: 
       wsprd [options...] infile

OPTIONS:
       -a <path> path to writeable data files, default="."
       -c write .c2 file at the end of the first pass
       -e x (x is transceiver dial frequency error in Hz)
       -f x (x is transceiver dial frequency in MHz)
       -H do not use (or update) the hash table
       -m decode wspr-15 .wav file
       -q quick mode - doesn't dig deep for weak signals
       -s single pass mode, no subtraction (same as original wsprd)
       -v verbose mode (shows dupes)
       -w wideband mode - decode signals within +/- 150 Hz of center
       -z x (x is fano metric table bias, default is 0.42)

infile can be either .wav or .c2

e.g. 
./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, wsprd reports signals that are within +/- 110 Hz of the
subband center frequency. The wideband option (-w) extends this to +/- 150 Hz.

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.

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

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. 
The program also implements two-pass decoding, whereby signals that are successfully
decoded are subtracted one-by-one during the first decoding pass. Then, the 
decoder is run again. In many cases the subtraction process will uncover signals
that can then be successfully decoded on the second pass.

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.