WSPR (pronounced “whisper”) stands for “Weak Signal Propagation Reporter”. It is a protocol, implemented in a computer program, used for weak-signal radio communication between amateur radio operators. The protocol was designed, and a program written initially, by Joe Taylor, K1JT. Software is now open source and is developed by a small team. The program is designed for sending and receiving low-power transmissions to test propagation paths on the MF and HF bands.

WSPR implements a protocol designed for probing potential propagation paths with low-power transmissions. Transmissions carry a station’s callsign, Maidenhead grid locator, and transmitter power in dBm. The program can decode signals with S/N as low as −28 dB in a 2500 Hz bandwidth. Stations with internet access can automatically upload their reception reports to a central database called WSPRnet, which includes a mapping facility.

The type of radio emission is “F1D”, frequency-shift keying. A message contains a station’s callsign, Maidenhead grid locator, and transmitter power in dBm.  The WSPR protocol compresses the information in the message into 50 bits (binary digits). These are encoded using a convolutional code with constraint length K = 32 and a rate of r = ​1⁄2.  The long constraint length makes undetected decoding errors less probable at the cost, that the highly efficient Viterbi algorithm must be replaced by a simple sequential algorithm for the decoding process.

Protocol specification

The standard message is <callsign> + <4 digit locator> + <dBm transmit power>; for example “K1ABC FN20 37” is a signal from station K1ABC in Maidenhead grid cell “FN20”, sending 103.7milliwatts, or about 5.0 Watts (legal limit for 630 m). Messages with a compound callsign and/or 6 digit locator use a two-transmission sequence. The first transmission carries compound callsign and power level, or standard callsign, 4 digit locator, and power level; the second transmission carries a hashed callsign, 6 digit locator, and power level. Add-on prefixes can be up to three alphanumeric characters; add-on suffixes can be a single letter or one or two digits.

Standard message components after lossless compression:
28 bits for callsign,
15 bits for locator,
7 bits for power level,
total: 50 bits.
Forward error correction (FEC):
non-recursive convolutional code with constraint length K = 32, rate r = ​1⁄2.
Number of binary channel symbols:
nsym = (50 + K − 1) × 2 = 162.
Keying rate is ​12000⁄8192 = 1.4648 baud.
Modulation is continuous phase 4 FSK, with 1.4648 Hz tone separation.
Occupied bandwidth is about 6 Hz
Synchronization is via a 162 bit pseudo-random sync vector.
Each channel symbol conveys one sync bit (LSB) and one data bit (MSB).
Duration of transmission is 162 × ​8192⁄12000 = 110.6 s.
Transmissions nominally start one second into an even UTC minute: e.g., at hh:00:01, hh:02:01, etc.
Minimum S/N for reception is around –28 dB on the WSJT scale (2500 Hz reference bandwidth).

From Wikipedia