Introduction

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.

NoHum

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.

Download

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

Usage

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.