WOLF for Beginners

Stewart Nelson, KK7KA has come up with a new variation on the BPSK theme that exceeds the weak-signal detection capability of very slow CW without the extreme penalty in transmission time. Full details of the WOLF (Weak-signal Operation on Low Frequency) mode are given at http://www.scgroup.com/ham/wolf.html

During its first week of operation, the LEK beacon operating in WOLF mode was received by John Andrews, W1TAG in Massachusetts and by Stewart Nelson in Nevada. John's reception equalled my best-ever DX report (also from John) at 1100+ miles, which had been achieved using slow CW with 60-second dots. With the report from Stewart, the DX limit for LEK was stretched to over 1400 miles. Best of all, the "LEK AITKIN MN " test message was acquired in a matter of a few minutes. The same message would take an hour and 40 minutes to send in QRSS(S) with 60-second dots! LF skywave signals often peak for 15 minutes or less, so detection time can be critical even if the only goal is to receive a distant beacon by letting the computer do an all-night capture. Within a couple of weeks after the first on-the-air WOLF experiments in February 2001, LEK was joined in WOLF mode by LowFERs BRO, TEXAS and XM, and by Canadian powerhouse VA3LK. XM from Helena, AL has been copied by KK7KA near Reno, NV, at a distance of about 1900 miles, which I believe establishes a new overland DX record for a 1-watt LowFER beacon.

So what kind of exotic equipment is needed to send and receive WOLF? Since WOLF actually is BPSK at 10 baud, the same transmitting and receiving techniques used for COHERENT BPSK at MS100 apply to WOLF. For transmitting, you need a carrier generator with a frequency accuracy and stability better than 1 Hz, and a means to apply binary phase-shift modulation. Similar frequency accuracy is required at the receiving end, but aside from a good receiver, the only equipment required is a computer with a sound card. The XOR gate modulator described in my "BPSK Basics" article is used in my LEK transmitter, and can be added easily to the "Simple LowFER Transmitter". My "all in one" BPSK/CW transmitter design is also "WOLF ready". BPSK modulation with a simple XOR gate will produce some pretty bad key clicks, so I wish to emphasize again that it should not be used with anything but very low power transmitters, if at all, on the HF ham bands. In the case of a 1-watt LowFER transmitter, the effective radiated power is 5 milliwatts or less, and the narrow bandwidth of the antenna further limits the amount of spurious radiation generated by the modulation process. For higher power, it's simply a matter of using a BPSK audio signal to modulate a single-sideband transmitter, just as is done for PSK31. Stewart's WOLF software will generate a wolfx.wav file that can be played back in continuous loop mode on any computer with a sound card and used to modulate a ssb transmitter. But let's get back to LowFER transmitters with simple XOR gate modulators.

At the time of this writing, the WOLF software is at version 0.51 and is still in an early stage of development. However, several options are provided for keying an XOR gate modulator. One option lets you send a wolfx.txt file to the serial port of a computer, which could key the XOR gate directly (with something like a 100k limiting resistor in series). I have not used that option, and it may suffer from inaccuracies in the serial port timing. Another technique generates a special type of wolfx.wav file that is on-off keyed, so that you can use a diode detector circuit to drive a keying transistor while the file is played back in continuous loop mode. That option does work, and in fact was used on LEK for the first several days of operation. Later, I found a way to read the wolfx.wav file and "burn" a WOLF EEPROM for the "all in one" transmitter or any other BPSK transmitter that uses Bill de Carle's EPROM-based keyer circuit. The WOLF software now has an option that will generate a hex file that can be used for programming an EPROM or EEPROM with a standard programming device. Bill de Carle has also modified his MATIC software so that it will program a RAM or EEPROM directly, when it is plugged into his RAM-based keyer circuit. My offer for programming BPSK EEPROMs also applies to those who want to try WOLF mode: I'll program an EEPROM with the message of choice for any LowFER who sends me a blank or re-usable 28C64 and return postage. The emphasis on "sends me" is because I'm not in the IC business, and don't keep an inventory of 28C64s on hand. By the way, the EEPROM still supports multimode operation, and the half of the address space that is not used for WOLF can have a totally different message. This allows the option of alternate WOLF and QRSS transmissions, as was done by several LowFERs with BPSK and CW.

Here are two circuits for using the on-off keyed wolfx.wav file to key a BPSK modulator that consists of an XOR gate such as a 74HC86. Option 1 uses a transformer input; in my case TX1 was a Mouser 42TL026, 16 ohm to 500 ohm center tapped transformer that I happened to have on hand. Other impedance ratios could be used; the value is not terribly critical as long as it does not put excessive loading on the sound card output and there is sufficient audio voltage at the output so the diode rectification circuit is able to turn on keying transistor Q1. In Option 2, the transformer is eliminated and a voltage-doubler type of detector circuit is used. Diodes D1 and D2 in either circuit can be almost any kind of rectifier. I used 1N4148 silicon switching diodes, although if the audio is a bit weak it might help to use germanium devices like the 1N34. Both circuits work with my sound card, which is an old Soundblaster that still has an on-board amplifier capable of driving speakers directly. Most modern sound cards have only a line output and may require an external amplifier to provide sufficient drive for these circuits. It helps to have a oscilloscope to check the waveform at the collector of Q1 while adjusting the sound card output with the Windows volume controls. Too much drive will cause the transistor to conduct longer than it should, and too little drive will result in no keying or erratic keying with audio "ripple" evident during the key-down cycle. A dual-channel scope with one trace showing the sound card output and the other trace displaying the collector voltage on Q1 will allow easy adjustment. Lacking a scope, you can listen to the keyed signal in your receiver to detect any obvious modulation problems. If you key a CW transmitter from the collector of Q2, the resulting keying should have the same "weighting" as the on-off keyed audio waveform that is used to generate it.

Instructions for generating a wave file to use with one of these circuits are given on Stewart's web page, but I will summarize them here. I normally go to the MS-DOS prompt, and then change directory to the location where the wolf.exe file is located. On my computer, that happens to be on drive D, in D:\wolf. Here is a typical procedure for generating the on-off keyed wave file:

D:\Wolf>wolf -x "LEK AITKIN MN" -k -e -f 3000
WOLF version 0.21
Wrote wolfx.wav, 768044 bytes, at 8000.000 samples/sec., 3000.000 Hz

D:\Wolf>ren wolfx.wav wolf-lek.wav


Invoking wolf.exe with the -x option tells it to generate a transmit file. The message to be transmitted is enclosed in quotes, and must be 15 characters or less. WOLF uses a restricted set of 40 symbols rather than the full ASCII set, so that only capital letters, numbers, period and space are recognized. (There may be one or two other available characters or punctuation marks but I don't know what they are.) The -k switch says that you want an on-off keyed wave file; -e says that the file should be made up of 8-bit samples rather than 16 bits, and -f 3000 says that the audio frequency will be 3000 Hz. We want to use a fairly high audio frequency to reduce ripple in the detection circuit, but the 8000 sample/second wave file limits us to audio frequencies below 4 kHz. To keep this file from being overwritten by subsequent wolf -x commands, I used the DOS rename command to change the name to wolf-lek.wav. This wave file contains only one repetition of the WOLF frame, which is exactly 96 seconds long. A sound utility like Cool Edit can be used to play it in continuous loop mode and key the transmitter indefinitely. Cool Edit is not freeware, but a functioning demo of Cool Edit 2000 can be downloaded from http://www.syntrillium.com/cooledit/main.html

To correct for errors in my sound card's sampling rate, which translate into bit timing errors, I measured the exact time that the sound card took to send a 96-second file. Using Cool Edit's tone and silence generator features, I created a file with 95 seconds of silence and one second of 3-kHz tone; then fed it to the keying circuit and measured the pulse interval with a frequency/period counter. My sound card apparently was a little "fast", because the period was about 23 milliseconds short of 96 seconds. To compensate, I modified the wolf-lek.wav file by pasting in silent periods of 2 and 3 milliseconds duration during the "off" portions of the waveform. The added silent periods totaled 23 milliseconds, and were scattered through the file rather than lumping the correction at one point. Was this necessary? I don't know, but it apparently didn't hurt. The EEPROM-based WOLF message generator eliminates the bit timing concern by using clock pulses derived from the same oven-controlled reference that is used in the transmitter frequency synthesizer.

Receiving WOLF

Presently only off-line processing is available in the WOLF software, so it is necessary to record a wave file of the signal, preferably at least 10 minutes long, using 8000 bits per second sampling. The file must be saved in Windows wave (PCM) format with either 8-bit or 16-bit resolution. I haven't tested the difference, but would recommend 16-bit sampling in order to ensure enough dynamic range to detect a very weak signal in noise. To get full sensitivity, the audio frequency from the receiver should be known to 1 Hz or better accuracy. The default signal frequency in WOLF is 800 Hz, but other frequencies can be entered on the command line using the -f parameter. You must make whatever adjustments are necessary to your receiver's main frequency and BFO pitch settings to produce a precisely defined audio output frequency. On my IC-706, it's a piece of cake; other receivers may require some "calibration" procedures which I won't attempt to describe.

For a quick familiarization test of the WOLF receive mode, you can write a test message using the wolf -x command, then rename the resulting wolfx.wav file to wolfr.wav (which is presently the default receive filename), and run wolf.exe to decode the file and print the results. Here is an example showing how to record, rename and decode a file with the message "WOLF TEST FILE":

D:\Wolf> wolf -x "WOLF TEST FILE" -e
WOLF version 0.21
Wrote wolfx.wav, 768044 bytes, at 8000.000 samples/sec., 800.000 Hz

D:\Wolf> ren wolfx.wav wolfr.wav

D:\Wolf> wolf
WOLF version 0.21
t: 24 f: 0.002 a: 1.4 dp:152.0 ci: 0 cj: 0 WOLF TEST FILE -
t: 48 f: 0.002 a: 1.3 dp:151.6 ci: 0 cj: 0 WOLF TEST FILE -
t: 96 f: 0.000 a: 1.5 dp:152.1 ci: 0 cj: 0 WOLF TEST FILE -


After the first three lines, the decoding process really slows down. But since the wolfr.wav file in this case was only 96 seconds long, the decoding process halted after 96 seconds.

Other WOLF Resources

In addition to this article and Stewart Nelson's WOLF page at http://www.scgroup.com/ham/wolf.html; Les Rayburn has a general WOLF page at http://www.highnoonfilm.com/xmgr/updates/wolf.htm and a summary of the WOLF operating commands at http://www.highnoonfilm.com/xmgr/updates/wolfop.htm