I'm currently trying to remove some noise from a "contaminated" audio file. From what's given, I know that the noise is isolated to a specific frequency band - that is, from ~1400 Hz - ~1800 Hz.
The most straightforward approach is to obviously implement a stop-band filter - which I've done successfully. However, I wanted to explore alternative options being that a band-pass filter also eliminates the desired signal.
Here's what I've done thus far:
In MATLAB, I explored some aspects of the signal, such as it's power spectrum, autocorrelation, etc:
It's clear that the noise is concentrated in the band I mentioned above, and it appears that the noise is Gaussian.
My initial thought was to apply a spectral subtraction method, such as the Ephraim-Malah Algorithm, but one of the assumptions made by this method is that the underlying noise is Gaussian White Noise. In the file I have, the noise is limited to only a particular band, not the entire signal. My concern is that if I were to apply the algorithm, I would unintentionally introduce minor distortions to potentially good portions of the signal.
At the moment, I'm considering splitting the signal into two portions: use a stop-band filter to extract the unaffected frequencies, and use a band-pass filter to capture the noisy region, apply the algorithm to the latter band, and recombine the signals.
Is this an appropriate approach, or is there a simpler and/or better method that I could use?
Being that I have an idea of what the noise is, I could potentially use a Weiner Filter.