From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

noise gating an analog signal

Solved!
Go to solution

Here is the idea (the concept is available in commercial software) - to remove back ground noise from an audio event, acquire a small sample pre-event, and do an FFT of this to discover signal strength in multiple bands; this is hte noise characterization. Then set a threshold for each band a bit higher than the noise signal strength. This then gets applied to the "event" at each frequency band - if the signal during the event does not excede the threshold for that band, that is not part of the event but just the back ground noise. This I follow, my question is how to best implement the filter in LabVIEW - I am thinking of two approaches, (a) filter in the frequency domain (should be easy) but can that be turned back into audio in the time domain? or (b) run the audio sample through a series of band pass filter starting by stripping out the weakest frequencies and working to the strongest and whatever is left is the event audio with everything else stripped out. Has anyone done this in LabVIEW?

Lawrence M. David Jr.
Certified LabVIEW Architect
cell: 516.819.9711
http://www.aleconsultants.com
larry@aleconsultants.com
0 Kudos
Message 1 of 3
(2,963 Views)
Solution
Accepted by topic author lmd2

Either of your approaches can be used in principle. In practice you may not get performance as good as you wish.

 

With either method some time delay between the input audio and output audio will exist.  How much delay can you tolerate?

 

For (a) you do two FFTs. One of the pre-event segment. The other is of the event segment. If the sgements are different lengths, df will be different and this will make the rest of the processing complicated. Padding the shorter segment with zeros is the easiest way to match the dfs but will introduce amplitude errors. After zeroing the below-threshold bins in the event segment FFT, do the inverse FFT. Make sure to use complex numbers on all the frequency domain calculations to avoid losing essential phase information.

 

For (b) you need to deal with the transient responses and delays of the filters. Each filter with different center frequency and bandwidth will have a different transient response and delay. Compensating for those effects can get very messy.  With continuous data the transients die out but for your event-based process this may not be a viable solution.

 

Lynn

Message 2 of 3
(2,940 Views)

thanks for the heads up. Still trying to nail down my client's needs, but this helps.

Lawrence M. David Jr.
Certified LabVIEW Architect
cell: 516.819.9711
http://www.aleconsultants.com
larry@aleconsultants.com
0 Kudos
Message 3 of 3
(2,931 Views)