[Elecraft] Noise Nuller Latency

David Gilbert ab7echo at gmail.com
Sat Jul 25 17:45:03 EDT 2026


A couple of people have privately asked me some questions about my 
NoiseNuller application, but they are good questions so I'm going to 
repeat my answers here.

The first question has to do with the character of the noise that 
NoiseNuller can handle.  Most noise reduction techniques make 
assumptions about the profile of the noise, and usually give some 
options or adjustments for different noise profiles.  If the actual 
noise fits one of the available profiles, the noise reduction works.  If 
not, it doesn't.

The NoiseNuller application doesn't make any assumptions about the 
character of the noise.  It analyzes the noise over the course of an 
initial few seconds using FFT techniques, statistically generates a 
phase profile of that noise for each FFT bin (i.e., frequency 
component), and subtracts the noise bin by bin from whatever follows.  
It doesn't even care much about the amplitude of each frequency 
component since it makes its decisions only based upon phase and how 
often each FFT bin shows up during the analysis period.  It is therefore 
theoretically applicable to almost any noise profile, although noise 
that varies a lot in spectrum over time can reduce the ultimate SNR 
because if the noise covers enough territory the application ends up at 
least partly reducing too many of the bins in amplitude when it 
reconstitutes the FFT series back to normal audio.  That's why CW works 
better than voice ... because CW occupies fewer FFT bins to start with, 
and even if the application tries to reduce them it reduces FAR more FFT 
bins that are associated with the noise.  It's literally a statistical 
filter.

The second question I've received has to do about latency.   Today I 
made a setup where I used my KX2 to periodically transmit some single 
dits into a dummy load near my K3, and I set up a microphone near the K3 
speaker to capture the resulting audio from the K3.  The Line Out of the 
K3 was fed into the Line In of the computer sound card, and the computer 
was running my NoiseNuller application.  I used a video screen capture 
application (OBS Studio) to simultaneously record both the microphone 
near the K3 speaker and the output of the NoiseNuller application.  I 
then extracted the audio from the video recording and inspected it in 
the audio application Audacity using an expanded time scale.  The 
latency between what was recorded by the microphone and what was coming 
out of the NoiseNuller application for each dit appeared to be about 43 
milliseconds.  I can send that audio file to anyone who might want to 
try to determine the latency themself, or to determine if that amount of 
latency would be a problem for them.

However, I don't think that 43 msec latency should be a problem even in 
a contest.  Our brains can distinguish 15 msec but we cannot physically 
react anywhere near that fast.  There are websites where you can test 
your hand reaction time by pressing a mouse button in response to a 
visual prompt, and if anyone can beat even 200 msec I'd be amazed.  I 
don't see how that kind of test is much different than pressing a paddle 
lever in response to the end of a CW transmission.

Here are three online reaction tests:

https://humanbenchmark.com/tests/reactiontime

https://www.reaction-time-test.io/

https://www.mathsisfun.com/games/reaction-time.html

As always, comments (pro or con) and suggestions are welcome.

73,
Dave   AB7E


More information about the Elecraft mailing list