DSPRelated.com
Forums

IIR audio filtering

Started by daro...@yahoo.fr September 1, 2008
Hi !
I have little experience with time filtering ,ad i'd very much appreciate some input. So here's the deal:
I'm trying to enhance audio with some non-linear processing
so basically I have an audio extract that i cut into
50% overlapping frames.
Subsequently, i window each frame by a smoothing window.
then I bandpass each frame F with an IIR filter (order N) using the function 'filter' producing an output P, apply some more processing to P that doesn't add any delay, and after that i bandpass P (using another IIR order N with the same order N). producing an output Q.
Now the thing is i want to add Q to the original frame F, so delay compensation is involved. The trouble I have with the above processing is:
-How do I perform delay compensation ?
what i did was something like :
final_output = [Q(delay+1:end);zeros(delay,1)] + F where F is the original
input...
-My bandpass IIR filters have changing caracteristics, ie the the cutoff frequencies F1 and F2 changes from one frame to another. Could this be the main source for artefacts ?
By the way do I really need to multiply by a smoothing window ??
thank you very much, any help is appreciated
Hello,

Is this delay coming from IIR filter? If so, filter
yoursequencewith the same filter butfirst reverse the sequence.In
thiscase youwill have zero phase IIR filterso no delay will be
involved.

BR



d...@yahoo.fr:

> Hi !
> I have little experience with time filtering ,ad i'd very much
> appreciate some input. So here's the deal:
> I'm trying to enhance audio with some non-linear processing
> so basically I have an audio extract that i cut into
> 50% overlapping frames.
> Subsequently, i window each frame by a smoothing window.
> then I bandpass each frame F with an IIR filter (order N) using the
> function 'filter' producing an output P, apply some more processing
> to P that doesn't add any delay, and after that i bandpass P (using
> another IIR order N with the same order N). producing an output Q.
> Now the thing is i want to add Q to the original frame F, so
> delay compensation is involved. The trouble I have with the above
> processing is:
> -How do I perform delay compensation ?
> what i did was something like :
> final_output = [Q(delay+1:end);zeros(delay,1)] + F where F is the original
> input...
> -My bandpass IIR filters have changing caracteristics, ie the the
> cutoff frequencies F1 and F2 changes from one frame to another.
> Could this be the main source for artefacts ?
> By the way do I really need to multiply by a smoothing window ??
> thank you very much, any help is appreciated
>