Instructions for WSPR
---------------------
WSPR is the name of a computer program. It is pronounced "whisper",
and stands for "Weak Signal Propagation Reporter"; it implements
transmitting and receiving functions for a digital soundcard mode
called "MEPT_JT", which stands for "Manned Experimental Propagation
Tests, by K1JT".
WSPR generates and receives signals using structured messages, strong
forward error correction, and narrow-band 4-FSK modulation. Its
principal design goal is reliable copy at very low signal levels. In
practice it works well at signal-to-noise ratios down to -27 dB in a
reference bandwidth of 2500 Hz. The present program, version 0.3, has
no frills, no graphics and no GUI. It is executed from the command
line.
QUICK START
-----------
Download WSPR from the URL
http://physics.princeton.edu/pulsar/K1JT/WSPR.EXE and copy the
executable file into a suitable directory such as C:\wspr. WSPR is
invoked by typing its name followed by zero or more arguments. Open a
command-prompt window, CD into to that directory, and type "wspr"
(with no accompanying arguments) to see the following summary and
examples of program usage:
-----------------------------------------------------------------------
C:\WPSR> wspr
WSPR Version 0.3 r90
Usage: wspr Tx f0 ftx nport call grid dBm [snr] [outfile | nfiles]
wspr T/R f0 ftx nport call grid dBm pctx
wspr Rx f0 [infile ...]
f0 is the transceiver dial frequency (MHz)
ftx is the signal frequency (MHz)
nport is the COM port number for PTT control
snr is the S/N in 2500 Hz bandwidth (for test files)
pctx is the percentage of 2-minute periods to Tx
Examples:
wspr Tx 10.1386 10.140100 1 K1JT FN20 30
wspr Tx 10.1386 10.140100 0 K1JT FN20 30 -22 test.wav
wspr T/R 10.1386 10.140100 0 K1JT FN20 30 25
wspr Rx 10.1386
wspr Rx 10.1386 00001.wav 00002.wav 00003.wav
For more information see:
physics.princeton.edu/pulsar/K1JT/WSPR_Instructions.TXT
-----------------------------------------------------------------------
In transmit mode there can be up to 9 command-line arguments after the
program name. The arguments have the following meanings:
1. Tx - signifies transmit mode
2. f0 - suppressed carrier frequency or "dial frequency" (MHz)
3. ftx - center frequency of generated MEPT_JT signal (MHz)
4. nport - COM port number for PTT control (0 to disable PTT control)
5. call - transmitted callsign
6. grid - transmitted 4-character locator
7. dbm - transmitter power (dBm)
8. snr - generated S/N (for off-line testing only)
9. file - output file name, or number of files to generate
On-the-air transmissions use only arguments 1 through 7; arguments 8
and 9 are used for generating wave files for local tests.
In receive mode the first two command-line arguments must be "Rx" and
the dial frequency f0, in MHz. Additional arguments are treated as
file names, for local testing purposes.
A third operating mode, the "T/R" mode, allows one to specify the
percentage of 2-minute time slots to devote to transmitting. All
remaining time slots will be used for receiving. The percentage is
defined in a statistical manner; specific choices of Tx and Rx
intervals are randomized. In this way you can put a signal on the air
for others to copy, and at the same time monitor the band to keep
track of who else is on. In T/R mode the first 7 command-line
arguments have the same meanings as in Tx mode; the 8th argument
specifies the percent of 2-minute sequences you want devoted to
transmission. In the example given above, 25% of 2-minute sequences
will be transmissions, while the remaining 75% will be used for
reception.
NORMAL OPERATION
----------------
Set your transceiver to USB mode and the dial frequency 1500 Hz below
the center of the desired 200 Hz band for reception. For example, on
30 m the QRSS band is 10.140000 to 10.140200, so the dial frequency
should be f0 = 10.140100 - 0.001500 = 10.1386 MHz. Be sure that your
computer clock is accurate to within a second or so. In case your
computer has more than one sound card, please note that the program
will use the default Windows sound system. (Support for selecting
which sound card to use will probably be added in a future program
release.)
TRANSMIT: To transmit, type in a command similar to the first example
above. The third argument is your desired signal frequency. I use
serial port COM 5 for PTT control. Therefore, to transmit on
10.140150 with power 100 mW (20 dBm) I would enter the command
C:\WSPR> wspr Tx 10.1386 10.140150 5 K1JT FN20 20
Transmission will start at the top on the next even minute, and will
be repeated on even minutes until you stop it manually. You can type
CTRL+C (hold down the CTRL key while striking C) to terminate program
execution.
RECEIVE: To receive, type in a command like the fourth example above.
The second argument is the dial frequency, 1500 Hz below the center of
the 200 Hz received passband.
C:\WSPR> wspr Rx 10.1386
Reception will begin at the top of the next even minute, and will
continue until you terminate it manually by typing CTRL+C.
T/R MODE: Type in a command line like the third example above:
C:\WSPR> wspr T/R 10.1386 10.140150 1 K1JT FN20 30 25
At the start of the next even minute the program will start a series
of transmission or reception intervals. A random number generator
is used to determine whether a particular interval will be Tx or Rx;
on average, however, the percentage of transmission intervals will be
approach the number specified by argument #8.
LOCAL TESTS WITH TWO COMPUTERS
------------------------------
Be sure that both computer clocks are accurate to within a second or
so.
On the "transmit" computer, to send MEPT_JT data at S/N -26 dB, type
something like this:
C:\WSPR> wspr Tx 10.1386 10.140080 0 K1JT FN20 20 -26
The frequencies are arbitrary, but the frequency difference will
determine the audio tone generated. Transmission will start at the
top on the next even minute, and will be repeated on even minutes
until you stop it manually. (You can type CTRL+C to terminate program
execution.)
On the "receive" computer, type in a command like
C:\WSPR> wspr Rx 10.1386
The frequency is arbitrary. Reception will begin at the top of the
next even minute, and will continue until terminated manually.
You can also do this test with a single computer. Just open two
command windows, one for Tx and one for Rx. Use an audio cable to
patch soundcard output into soundcard input, or simply use the speaker
to "transmit" and the computer mike to "receive".
LOCAL TESTS WITH ONE COMPUTER
-----------------------------
You can generate a set of three test files at S/N -26 dB by entering a
command like this:
C:\WSPR> wspr Tx 10.1386 10.140100 0 K1JT FN20 30 -26 3
These files may then be "received" by entering this command:
C:\WSPR> wspr Rx 10.1386 00001.wav 00002.wav 00003.wav
GENERATING A MULTI-SIGNAL TEST FILE
-----------------------------------
If you set snr = 10 on the command line, WSPR will generate a file
containing ten distinct signals at 20 Hz intervals, with progressive
time offsets of 0.1 s relative to the first one, and with S/N -21,
-22, ... -30 dB. This feature was designed for testing the
multi-signal decoder. Here is a complete example of its use:
C:\WSPR> wspr Tx 10.1386 10.140100 0 K1JT FN20 30 10 test.wav
10.138600 10.140100 10.0 K1JT FN20 30 test.wav
C:\WSPR> wspr Rx 10.1386 test.wav
UTC Sync dB DT Freq Message Noise
---------------------------------------------------------------
test 18 -21 0.0 10.140010 K1JT FN20 30 20.1
test 14 -23 0.1 10.140030 K1JT FN20 30 20.1
test 4 -23 0.2 10.140050 K1JT FN20 30 20.1
test 7 -25 0.3 10.140070 K1JT FN20 30 20.1
test 12 -25 0.4 10.140090 K1JT FN20 30 20.1
test 2 -26 0.5 10.140110 K1JT FN20 30 20.1
test 4 -28 0.6 10.140130 K1JT FN20 30 20.1
test 1 -29 0.7 10.140150 K1JT FN20 30 20.1
test 1 -29 0.7 10.140170 K1JT FN20 30 20.1
GENERATING A LIST OF TX TONE FREQUENCIES
----------------------------------------
As an aid to those wishing to build a hardware-based or
microprocessor-based transmitter for MEPT_JT signals, you can request
the program to output the list of tone frequencies corresponding to
the MEPT_JT signal carrying a particular message. To do this, simply
set snr to 11 on the command line. Shown below is a complete example
of this usage. The table has one line for each of the 162 symbols in
an MEPT_JT transmission. Column 2 gives the tone number (0-3) for
each 4-FSK symbol; column 3 gives the tone frequency in Hz. Each tone
should last for 8192/12000 = 0.6827 seconds, and transitions between
tones should be done in a phase-continuous manner.
C:\WSPR> wspr Tx 10.1386 10.140100 0 K1JT FN20 30 11
1 3 1502.197
2 3 1502.197
3 2 1500.732
4 0 1497.803
5 2 1500.732
6 0 1497.803
7 2 1500.732
8 2 1500.732
9 1 1499.268
10 2 1500.732
11 2 1500.732
12 2 1500.732
13 3 1502.197
14 3 1502.197
15 1 1499.268
16 0 1497.803
17 2 1500.732
18 2 1500.732
19 3 1502.197
20 2 1500.732
21 0 1497.803
22 3 1502.197
23 0 1497.803
24 1 1499.268
25 1 1499.268
26 3 1502.197
27 1 1499.268
28 2 1500.732
29 0 1497.803
30 2 1500.732
31 2 1500.732
32 0 1497.803
33 0 1497.803
34 2 1500.732
35 1 1499.268
36 2 1500.732
37 0 1497.803
38 1 1499.268
39 2 1500.732
40 3 1502.197
41 2 1500.732
42 2 1500.732
43 2 1500.732
44 0 1497.803
45 0 1497.803
46 0 1497.803
47 3 1502.197
48 2 1500.732
49 1 1499.268
50 3 1502.197
51 2 1500.732
52 0 1497.803
53 3 1502.197
54 3 1502.197
55 0 1497.803
56 3 1502.197
57 0 1497.803
58 0 1497.803
59 0 1497.803
60 1 1499.268
61 1 1499.268
62 0 1497.803
63 3 1502.197
64 0 1497.803
65 2 1500.732
66 0 1497.803
67 0 1497.803
68 3 1502.197
69 3 1502.197
70 0 1497.803
71 3 1502.197
72 2 1500.732
73 3 1502.197
74 0 1497.803
75 1 1499.268
76 0 1497.803
77 1 1499.268
78 0 1497.803
79 0 1497.803
80 3 1502.197
81 2 1500.732
82 2 1500.732
83 1 1499.268
84 0 1497.803
85 1 1499.268
86 1 1499.268
87 0 1497.803
88 2 1500.732
89 0 1497.803
90 1 1499.268
91 1 1499.268
92 2 1500.732
93 3 1502.197
94 0 1497.803
95 3 1502.197
96 2 1500.732
97 2 1500.732
98 2 1500.732
99 3 1502.197
100 2 1500.732
101 2 1500.732
102 2 1500.732
103 2 1500.732
104 2 1500.732
105 1 1499.268
106 0 1497.803
107 0 1497.803
108 1 1499.268
109 2 1500.732
110 0 1497.803
111 3 1502.197
112 1 1499.268
113 1 1499.268
114 2 1500.732
115 1 1499.268
116 3 1502.197
117 2 1500.732
118 0 1497.803
119 1 1499.268
120 1 1499.268
121 2 1500.732
122 1 1499.268
123 2 1500.732
124 0 1497.803
125 2 1500.732
126 1 1499.268
127 1 1499.268
128 1 1499.268
129 2 1500.732
130 0 1497.803
131 2 1500.732
132 2 1500.732
133 0 1497.803
134 3 1502.197
135 2 1500.732
136 3 1502.197
137 2 1500.732
138 0 1497.803
139 3 1502.197
140 1 1499.268
141 0 1497.803
142 0 1497.803
143 2 1500.732
144 2 1500.732
145 2 1500.732
146 2 1500.732
147 0 1497.803
148 3 1502.197
149 3 1502.197
150 2 1500.732
151 1 1499.268
152 2 1500.732
153 3 1502.197
154 1 1499.268
155 0 1497.803
156 2 1500.732
157 2 1500.732
158 1 1499.268
159 3 1502.197
160 2 1500.732
161 2 1500.732
162 2 1500.732