Automatic tuning of digital noise reduction
Pieter-Tjerk de Boer, PA3FWM web@pa3fwm.nl(This is an adapted version of part of an article I wrote for the Dutch amateur radio magazine Electron, May 2018.)
In a previous installment [10], I described a digital noise-reduction algorithm. This algorithm uses a threshold: frequency bins whose power is above this threshold are considered as desired signal, while the other bins are assumed to be noise and therefore candidates for removal. But this threshold needed to be set by hand (schematically indicated by the variable resistance in the figure in [10]), and getting that setting right needs some effort and depends on the situation.
Since then I thought of a simple algorithm, and implemented it in the Twente WebSDR, for setting the threshold automatically. For this I choose the so-called median of all bins; that's the power level which half the bins are above and the other half are below. Thus, the threshold is set such that exactly half of the bins are to be removed. This works surprisingly well: almost always it gives a useful noise reduction, without distorting the desired signal too much.
For example, when only a few bins contain the desired signal, those few bins will definitely be passed on; the rest is noise, and out of those only half are passed on. Thus, we've gotten rid of half the noise power, that's a 3 dB improvement, the equivalent of half an S point.
This reasoning is a bit too simple though; after all, the bins that we are removing are precisely those which contain a bit less noise than average, and there's also the "smearing" as discussed in [10]. But it does indicate why this simple algorithm gives an appreciable gain.
This algorithm would only remove too many bins if in more than half of the bins the desired signal exceeds the noise. But in that case the signal is so strong that one probably doesn't need the noise reduction and had better switch it off.
References:
[10] Technische notities van PA3FWM, Electron 4/2017; online in English here.