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