Hi Dave,

thank you very much for the valuable, detailed response.

One open question to me is still foe application in CW Contest QSO operation, 
say with 30WPM speed, what would be the expected, typical delay time (ms) 
introduced by the NoiseNuller?

  

  

Tnx, cu, vy 73 Andy

HB9CVQ, DK2VQ, AK4IG

  

 <https://www.qrz.com/db/HB9CVQ> https://www.qrz.com/db/HB9CVQ

  

  

From: David Gilbert <[email protected]> 
Sent: Thursday, July 16, 2026 10:58 PM
To: [email protected]; [email protected]
Subject: Re: [Elecraft] Noise Nuller

  


Hi, Andy.

For some reason I didn't get your post via the Elecraft reflector.   A friend 
of mine forwarded it to me, so sorry for any delay.

1.   There is a little bit of delay between what I hear from my K3 receiver's 
speakers and what I hear from NoiseNuller, but it is only enough to create a 
slight echo effect.   It would not be enough to affect the pace of making QSOs.

2.   For the Spatial processing mode, yes ... you should train the application 
on noise only first.   It only takes a few seconds , but if you use a period 
where there is both noise and signal the reduction is less effective.   The 
number of seconds needed for training is mostly a function of the noise 
profile.   I've been able to get good results with as few as 2 or 3 seconds if 
the noise is somewhat uniform even if it is quite loud, but that nasty solar 
panel noise I used in the demonstration seemed to work best with 6 to 10 
seconds.   When I made the   recording I used in the demonstration I simply 
started the recording and then waited for several seconds before transmitting 
the narrative, but if the noise covers more than just the signal you can tune 
off a bit to train for the noise and then tune back to the signal.   If you 
listen carefully to the recording you can hear where the noise drifted and I 
had to retune the transmitted frequency of the narration, but even thoug
 h the noise had shifted the training still worked.   That's sort of the 
inverse of tuning off frequency to train the noise, but the result is similar.

3.   If the noise changes in profile too much, yes, you'd probably have to 
retrain the application.   But the noise I used for the video is about as 
variable as I can imagine anyone having to deal with.   It was pretty nasty 
stuff and once the application was trained on it the reduction captured it.

4.   I've never tried training on a pre-recorded noise file before switching to 
Live feed.   That's an interesting idea and I think it might work.   Browsers 
have an annoying habit of saving stuff in a cache and I had lots of problems 
when developing applications.   I'd make a change to the app but the browser 
was using things from the previous version unless I remembered to always clear 
the cache each time using CTRL-F5.   That might work to some advantage for your 
suggestion ... train the noise on the pre-recorded file and then switch to 
Live.   Let's both give it a try and see if it works.

5.   if I understand it correctly (and I might not), the DJ5EU approach is more 
traditional.   It takes the signals from the two antennas, equalizes their 
amplitudes, and shifts the phase of one of the signals until it is 180 degrees 
out of phase of the other signal so that their sum cancels.   That works but it 
requires equalizing the amplitudes and it is less effective the closer the 
initial phases are ... which is why he uses the rotator to get better 
difference in the phases.   It has the advantage that it is less dependent upon 
the nature of the noise than my NoiseNuller application is.   For example, the 
DJ5EU approach could more easily handle noise that changed from storm static to 
arc welder noise, whereas my application would probably need to be quickly 
retrained.   The NoiseNuller application works completely differently.   It 
performs FFT processing of both signals, which results in "bins" of data for 
each slice of the frequency spectrum.   Each bin has both phase 
 and amplitude information, so NoiseNuller spends a few seconds statistically 
analyzing the profile of the noise and decides which bins from each signal are 
mostly associated with the resulting noise profile.   When the application 
performs a reverse FFT to turn the digital data back into audio it first 
diminishes the amplitude of each FFT bin according to how strongly it was 
associated with the noise.   Bins that aligned only with the noise get ignored 
completely.   Bins that are associated with the noise only some of the time 
during the training period get a diminished amplitude but not deleted because 
the might later be part of a desired signal.   Bins that weren't part of the 
noise get left alone.   It's pretty sophisticated, but I can't claim any credit 
for it.   I developed the entire application with the help of ChatGPT ... I 
didn't write a single byte of the code myself.    

In my opinion, NoiseNuller does have some advantage over the DG5EU approach.   
For one, it takes very little change in phase between the two antennas for 
NoiseNuller to work.   For example, if the difference between the same bins 
from each signal is only 5 or 10 degrees, it's easy to completely block one 
versus the other.   It's just a decision, not a sum/difference.

Another advantage of the FFT approach is that NoiseNuller doesn't care in the 
least how the phase difference between the two signals was created.   As long 
as there is a phase difference it can make a decision.   In my case, I've been 
able to get very good separation of noise even at lower frequencies simply 
using the two yagis that are only ten feet apart (an OB2-40 10 feet above an 
OB16-30) on my tower.   Yagis function by manipulating phase (which can be seen 
by using the Far Field tab in EZNEC) and that phase impact is of course a 
function of the spatial direction, both for azimuth and for elevation.

As with most things, each approach has its advantages.   My answer to most 
things has always been "it depends".     ;)

Best regards,
Dave




______________________________________________________________
Elecraft mailing list
Home: http://mailman.qth.net/mailman/listinfo/elecraft
Help: http://mailman.qth.net/mmfaq.htm
Post: mailto:[email protected]

This list hosted by: http://www.qsl.net
Please help support this email list: http://www.qsl.net/donate.html
Message delivered to [email protected] 

Reply via email to