Home » Blog » Radio » Software Defined Radio » Implementing a DSP Noise Canceller

Implementing a DSP Noise Canceller

dsp noise canceller

A DSP Noise Canceller is easily the most useful Spatial Interference Filtering Technique for hams and shortwave listeners. Here’s how its done. 

Many hams and shortwave listeners use outboard noise cancellers such as the ANC-4 and MFJ1026. These, and more, would be easy to implement inside the radio if they only had dual channels for coherent reception. Here’s how.

The approach is digital beamforming, or as I call it Spatial Interference Filtering Techniques. One way to accomplish this feat is to phase two different antennas together to create a null towards the interference. The other way is to remove interference by injecting a precise anti-phase copy of the interference, at the proper amplitude, into the signal chain. This is exactly what the external ANC-4 does. In the future, we should be able to do these things inside the radio.

All that is needed for digital beamforming is a dual channel radio whose sampling clocks and frequency translation blocks are completely synchronized. Once you have this, implementing a DSP noise canceller is almost trivial. Now, with only two antennas, you can only do a small amount of antenna steering. The better technique is to dedicate one antenna and receiver channel as a noise receiver. The antenna on a noise receiver will pick up lots of noise or interference, but very little of the desired signal. For that, you rely on the main antenna, which provides both signal and interference.

Once the synchronized SDR samples from each receiver are at baseband, you need to compute a set of weights to modify the IQ data. For noise cancelling, these weights are as simple as multiplying the data in the noise channel by -1. Then, you increase or decrease the amplitude weight to properly subtract noise from the desired signal path. This math could be accomplished easily in the radio (FGPA) or software.

GNURadio DSP Noise Canceller Demonstration

A video is worth a thousand words. So, watch my GNURadio DSP Interference Reduction in action.

This demo shows how to remove severe power supply and power line noise to clean up the received signal. You can also experiment adjusting the phase and amplitude of the algorithm. If you examine the GNURadio code, you will notice nothing complicated. It’s just simple subtraction of noise. The key is getting the signals aligned properly – just as you would do in a dual channel coherent SDR receiver.

And this GNURadio implementation is exactly how the ANC-4, MFJ-1026 and other external phasing noise cancellers work. Feel free to download flow diagram and try it yourself. [sdm_download id=”4405″ fancy=”0″ color=”orange” button_text=”GNURadio Noise Canceller File”]

You will need to make some signal and noise audio recordings at 48 kHz sampling rate for this program to work without modification. Have fun.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.