WSPR (amateur radio software)

WSPR
Developer(s) Joe Taylor, K1JT
Initial release 2008
Written in Python (GUI), Fortran, C [1]
Operating system Cross-platform
Available in English, Italian, Spanish, French, German, Japanese, Polish, Portuguese, Russian
Type Amateur radio and DSP
License GPL
Website physics.princeton.edu/pulsar/K1JT/wspr.html

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 WSPR Protocol

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.[2] 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 = 12.[2][3] 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.[2]

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 = 12.
  • Number of binary channel symbols:
nsym = (50 + K  1) × 2 = 162.[2]
  • Keying rate is 120008192 = 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 × 819212000 = 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).

Applications

Raspberry Pi as WSPR transmitter

The protocol was designed to test propagation paths on the LF, MF and HF bands. Also used experimentally at VHF and higher frequencies.

Other applications include antenna testing, frequency stability and frequency accuracy checking.

Usually a WSPR station contains a computer and a transceiver, but it is also possible to build very simple beacon transmitters with little effort.

For example a simple WSPR beacon can be built using the Si 570[4], or Si 5351[5]. The Raspberry Pi can also be used as WSPR beacon[6][7]

Density distribution of WSPR spots, January 2014 vs July 2014, using only most distant reception per spot.

Note - an accurate clock is essential both for transmission, and decoding of received signals (native Windows timing is usually inadequate).

History

WSPR was originally released in 2008.

References

  1. http://physics.princeton.edu/pulsar/K1JT/devel.html
  2. 1 2 3 4 Joe Taylor, K1JT: WSPRing Around the World. QST November (2010), p. 30-32.
  3. G4JNT: The WSPR Coding Process: Non-normative specification of WSPR protocol http://www.g4jnt.com/Coding/WSPR_Coding_Process.pdf
  4. WSPR Beacon with Si 570 and Atmel AVR http://wsprnet.org/drupal/sites/wsprnet.org/files/si570wspr.pdf
  5. QRSS/WSPR Transmitter Kit https://qrp-labs.com/
  6. WSPR Beacon with Raspberry Pi https://gerolfziegenhain.wordpress.com/2013/04/13/raspi-as-wspr-transmitter/
  7. WSPR on Raspi Source Code https://github.com/JamesP6000/WsprryPi
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.