Re: Cleanup after freq.domain manipulation
On Sep 7, 5:15*pm, "nigelh" <nigel.ho...@hydrix.com> wrote:
> ... *I want to filter an audio
> signal to remove specific (varying) tones by reducing the magnitude of
> their coefficients in the frequency domain. *(So, for each "block" of input
> samples I perform an FFT, symmetrically adjust the complex coefficients,
> perform an inverse FFT, and append the result to the output signal.) *After
> attenuating selective frequencies in a "notch-like" fashion and converting
> back to the time domain, I observe ripples near the edges of the signal
> that create high-frequency noise. *To remedy this, I have tried using
> constant-overlap-add, which has reduced but not eliminated the
> high-frequency noise.
do you know for sure that you're doing your overlap-add correctly?
you need to make sure that the impulse response associated with the
frequency response you just dialed in is limited in length to L
samples. then if N is the size of your FFT, the most you can advance
per frame with overlap-add (or overlap-save) is N-L+1 samples.
> I understand that multiplication in the frequency domain = convolution in
> the time domain,
with the Discrete Fourier Transform (which is what you are doing if
you're doing this with a computer), then multiplication in the
frequency domain causes *circular* convolution in the time domain.
this is a property of the DFT (or "FFT") that is fundamental. the DFT
or FFT really does things to periodic signals, so you need to do a
"work-around" to apply that circular tool to non-periodic signals.
overlap-add and overlap-save are the only work-arounds i know of to
perform linear convolution with something that inherently does
circular convolutions.
> and that the attenuation operation I am performing
> probably resembles the application of some FIR filter in the time domain.
yeah, in the *circular* time domain.
> What strategies are commonly used to avoid these time-domain artefacts
> from frequency-domain operations?
i think the only ones are overlap-add and overlap-save.
r b-j
|