WSPR (amateur radio software)

From Wikipedia, the free encyclopedia
  (Redirected from WSPR (Amateur radio software))
Jump to: navigation, search
WSPR
Developer(s) Joe Taylor, K1JT
Initial release 2008
Development status active
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 computer program used for weak-signal radio communication between amateur radio operators. The program was initially written by Joe Taylor, K1JT, but 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[edit]

The type of radio emission is F1D. 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 binary digits. These are encoded using a convolutional code with constraint length K=32 and a rate of r=1/2.[2][3] The long constraint length makes undetected decoding errors less probable at the cost, that the hightly efficient Viterbi algorithm must be replaced by a simple sequential algorithm for the decoding process.[2]

Protocol specification[edit]

  • Standard message: callsign + 4-digit locator + dBm (e.g., K1ABC FN20 37)
  • 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 for locator, 7 for power level, 50 bits total.
  • 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.[2]
  • Keying rate: 12000/8192 = 1.4648 baud.
  • Modulation: continuous phase 4-FSK, tone separation 1.4648 Hz.
  • Occupied bandwidth: about 6Hz
  • Synchronization: 162-bit pseudo-random sync vector.
  • Data structure: each channel symbol conveys one sync bit (LSB) and one data bit (MSB).
  • Duration of transmission: 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: around –28 dB on the WSJT scale (2500Hz reference bandwidth).

Applications[edit]

Raspberry Pi as WSPR transmitter

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 Si570.[4] The Raspberry Pi can also be used as WSPR beacon.[5][6]

History[edit]

WSPR was originally released in 2008.

References[edit]

  1. ^ http://physics.princeton.edu/pulsar/K1JT/devel.html
  2. ^ a b c d 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 Si570 and Atmel AVR http://wsprnet.org/drupal/sites/wsprnet.org/files/si570wspr.pdf
  5. ^ WSPR Beacon with Raspberry Pi http://g.ziegenhain.com/2013/04/raspi-as-wspr-transmitter
  6. ^ WSPR on Raspi Source Code https://github.com/JamesP6000/WsprryPi

External links[edit]