Recently the SigmaStudio team at ADI produced a prototype block that can reduce background noise in speech signals. Presently it's not built into SigmaStudio, but can be downloaded and installed following the directions at: http://ez.analog.com/message/127455#127455
It's called FullFsNR because unlike earlier offerings, it operates at "normal" sample rates. It works by splitting the incoming audio into over a dozen channels within the speech frequency range, then gating each according to level. Channels found above threshold are allowed through, while those not are assumed to contain primarily noise and are thus shut off. The adjustable threshold determines how it operates -- as a noise gate and/or as a dynamic noise reduction system. Operating adjustments are described below:
How well does it work? Here's some test results:
By setting the threshold low and overwhelming it with noise, the block's response with all channels open can be found. The low-frequency roll-off is from an external 150 Hz Hi-pass filter in the test setup. The block's HF response is -3dB at about 6500 Hz -- a medium-quality voice bandwidth (better than telephone, not quite FM radio).
A test signal consisting of a 500 Hz tone and some below-threshold noise is shown below:
The block's output shows significant noise reduction at frequencies above the tone frequency:
When the input tone is switched on and off, the noise gets shut off completely while the tone is gone:
It works very well. Some suggestions for additional features:
- A version with a "data controlled" threshold, so the threshold (the most likely adjusted parameter) could be made an end-user adjustment via GPIO.
- A wider-bandwidth version for higher-fidelity voice applications.
I'm really impressed that ADI would take the time to implement a user's request such as this, with only a prospect of selling some more chips in return. I hope they do!