VLF reception


VLF stands for Very Low Frequency and refers to radio waves in the 3 kHz to 30 kHz band. The nice thing about these frequencies is that they can be processed with a normal PC by plugging the antenna (usually with a small amplifier) directly into the computer's sound card.

This page contains a couple of applications that I developed as I needed the functionality. Perhaps they can be of use to someone else as well.


Unless you live in a remote area, you will probably experience mains hum interference when listening to VLF. The interference consists of the 50 Hz component and harmonics generated by the electrical grid. When prototyping a basic antenna amplifier I realized that it would be impossible for me to do any listening at home without some kind of filter. After searching around a bit I figured it would make for a pretty interesting project.

I tried a few different techniques. Syncing and subtracting a generated waveform worked well for the 50 Hz component, but generating the harmonics and matching the amplitude didn't work very well. Applying a series of notch filters had the same problem of finding the right frequencies to reject. A comb filter seems to be used by some, but I never quite liked it. I also tried recording the noise into a buffer long enough to fit one 50 Hz period. This buffer was computed by exponential averaging and subtracted from the signal. This method did show some promise, but was very fragile to small changes. I eventually decided that a more robust method was necessary, even if it meant lower sound quality.

The result is an application that filters the signal using spectral subtraction, which is a popular technique in the mobile phone industry. Although the filter introduces some artifacts of its own, it is a great improvement over the torture of inducing a constant hum into one's ears.

The filter performs well as long as the noise signal is reasonably clean, one that sounds like hum. A more distorted signal, normally referred to as buzz, with large spikes and discontinuities has proved harder to suppress. Your mileage may vary.


NoHum is available as a Mac OS X application and has been tested with Mac OS X 10.11.


After launching NoHum all you have to do is to select an input channel from the Input pop-up button and a channel to output the filtered signal to from the Output pop-up button. The current sample rate and resolution is displayed for each channel. You can also select a whole device to send the output to which can be convenient when listening using headphones.

Performance can be optimized for your particular signal by adjusting some of the filter's parameters.