WA7KGX VLF Monitoring

Current VLF Monitoring All Channels: 2 Hours   6 Hours   12 Hours
3 days (4223 x 3207 image)   3 day's (4223 x 3207 image) white background
Last Day's VLF Monitoring (All Channels)   Slow Animation of Daily Monitoring   Fast Animation of Daily Monitoring (shows seasonal effects)  

Left: A potpourri of current VLF observations in rotation (animated GIF) Signal strengths are normalized.

Green: NLK 24.8 Jim Creek WA 170 sm N-S Loop
Grey: DHO 23.4 Germany?

Blue: NPM 21.4 2700 sm

Yellow: NWC 19.8 Exmouth AU 9200 sm

Rose: NAA 24.0 Cutler ME 2310 sm

Lavender: NML 25.2 LaMoure, ND 1026 sm

Pink: JJI 22.2 Japan

Orange:NAU 40.75 Puerto Rico 3700 sm

Brown: WWVB 60 kHz Fort Collins, CO 950 sm

Histrograph (green enclosed in lavender): Amplitude distribution of the last minute's raw data samples from NML 25.2 KHz

Receiving Location N 45 35.689 W 122 52.420 319'

Left: X2 Class solar flare recorded September 6 2011. Colors as above. View the individual channels here. Note how different signals are affected differently.
Left: X2 class flare recorded Jan 27 2012

WA7KGX VLF Monitoring

Signals in the 10 to 30 KHz range are used to send information and commands to submerged submarines worldwide. Most of these VLF stations transmit nearly continuously at constant power. Sudden changes in signal propagation may indicate interesting solar events, or even a strong gamma ray burst.

In the 1970s I monitored a single station using a tuned L/C circuit, amplifier and detector driving a paper chart recorder. This used expensive paper and the ink made a mess. The time was not recorded unless I wrote it on the paper.

The setup described here uses a single Linux machine to monitor eight (8) frequencies simultaneously using software DSP. In Oregon signals can be received from the American east coast to the Australian west coast. This doubles the amount of time a daylight propagation path is available for monitoring. The redundancy allows observation to continue when one of the stations is off the air or at low power. The redundancy makes it easier to spot anomalies related to a particular station's operating conditions as opposed to a solar event.

Antennas for VLF monitoring can be monopole E-field, dipole E-field, and H-field (loop). For best reception, the antenna should be far away from anything electrical. But even with a 700 foot lead-in under the Multnomah Channel, excessive noise was transmitted on the coax shield from the receiving installation to a monopole E-field antenna where it was amplified by its preamp and returned to the receiver. A dipole E-field antenna or H-field antenna suppresses noise carried to the antenna on the coax shield.

For casual experimenting, just throw some wire around and you should be able to pick up a nearby signal or two.

In my current installation, two loops are strung between convenient pairs of trees a dozen or so feet apart. Generally speaking, increasing the sice of a loop and the number of turns will make the loop more sensitive. My loops are about 20 feet from the house. Placing them farther away will reduce interference from switching power supplies, CFLs, and the lot.

The big loop has about 20 turns or wire between two trees about 12 feet apart along an east-west line. The top and bottom are about 5 feet apart, covering an area of some 240 square feet. This loop favors NWC in Australia and is used for most signals. The other loop runs north and south and has several turns; it favors NLK which is due north. A two conductor shielded cable is used for lead-in. One end of each loop is connected to the shield. The loop's low impedance tends to short out local noise impressed on the shield. However, an exercise treadmill puts out enough hash to obliterate all signals including local AM radio stations.

No preamp is used with the ASUS soundcard. A simple circuit consisting of a series 56 Ohm resistor, .01 mf cap, and back to back diodes parallel to the input protects the audio input from moderate voltage spikes. The VLF signals are in the high audio range (if you are a bat), and an Asus Xonar sound card does a good job of digitizing the entire 10 to 45 KHz signal spectrum.

The signals are processed by Gnuradio (grc) running under Fedora Linux. Xlinrad may be used to scan the spectrum for signals when data is not being taken.

I recommend downloading the current sources for Gnuradio from the project as the Gnuradio shipped with the typical Linux distribution is out of date.

The "audio source" is connected to bandpass filters with a decimation of 100. The decimation reduces the CPU load. The filters' outputs are connected to an RMS converter, then to a low pass filter with a further decimation of 10, and finally a file sink.


The input signal is also connected to a graphical FFT sink.

GRC won't execute if the FFT sink is removed. The FFT size and frequency can be increased but doing so will dramatically increase CPU utilization.

This application appears to take about 5 per cent of a mid-level modern CPU (Core Duo E6550) according to the Linux top(1) display. Since this was written, the system has been upgraded to a 4 core CPU and 32GB RAM.
The minimum requirement for this application is an audio line input with a sampling frequency of 96 KHz. A 192 KHz a/d is better yet, even if the top speed is unused. A good choice seems to be the Asus Xonar sound board. I am using the cheapest $86 PCI/e 1x version.

Excellent results have also been achieved with motherboards using an IDT 92HD202 codec. A motherboard with a Realtek ALC888 gave disappointing results, apparently due to intermodulation. A Gigabyte motherboard with ALC889a codec requires a preamp to overcome excessive noise on its line input.

Gnuradio needs to know which audio source to use. Run arecord -l to get the list of audio device numbers, which can change each time Linux is restarted. Then set the hw: number in the audio source box.

Left: Input protection network consists of a series 1k resistor into a 0.01 cap and two diodes connected anode to cathode to clip input voltage to less than 1 volt. (The 1k resistors reduced the signal and have been replaced with 500 microhenry toroids from my junk box.) The network shown has two channels, one for the east-west loop and the other the north-south loop.

Gnuradio uses a 8192 byte buffer for file output. This requires a higher than desired data rate to keep latency reasonable.

Each of the file outputs feeds to a named pipe. Each pipe is drained by a program (vlf6) that reads 23077 samples, sorts them, averages the middle half of the values, and outputs a timestamp and average value about once every 60 seconds. This processing is designed to reject noise impulses and average the signal from WWVB.

The display programs allow the timebase to be adjusted. The horizontal and vertical axes are adjusted to fit the screen. The various files are available at ftp.omen.com.
XML source code for newer versions of gnuradio-companion is available here..