DSPRelated.com
Forums

Inverse FIR filter (mixed-phase system)

Started by sungdong_Jo April 5, 2011
Hello all,

I am trying to compute the inverse of an FIR filter: 

I tried to implement it with following steps:

- take the FFT of the FIR (h[n] -> H[Z] )
- compute complex 1/H[Z] (in the frequency domain)
- invert back into the time domain. (IFFT)

I was able to get the inverse FIR filter with above steps when the FIR
filter is minimum-phase system. However, when I tried to implement with a
Mixed-phase system. I got the time reversed inverse FIR filter( I checked
with time convolution)
I think this is related with the non-causal system. But I am not clear
about it. please let me know about it. 
and I read some paper 
to get the stable but non-causal inverse FIR filter with mixed-phase
system
It needs a modeling delay .But I don`t know what is the modeling delay 
and what is the effect of it when the modeling delay is applied to the
inverse FIR filter. and how long delay is needed? 

please give me any comments to get a good inverse FIR filter





On Apr 5, 1:25&#4294967295;pm, "sungdong_Jo" <chrisjsd@n_o_s_p_a_m.hotmail.com>
wrote:
> Hello all, > > I am trying to compute the inverse of an FIR filter: > > I tried to implement it with following steps: > > - take the FFT of the FIR (h[n] -> H[Z] ) > - compute complex 1/H[Z] (in the frequency domain) > - invert back into the time domain. (IFFT) > > I was able to get the inverse FIR filter with above steps when the FIR > filter is minimum-phase system.
It's an awkward way to do this, but it might work.
> However, when I tried to implement with a > Mixed-phase system. I got the time reversed inverse FIR filter( I checked > with time convolution)
Seems about right - that's at least close to what the theory says will happen.
> I think this is related with the non-causal system.
It is.
> But I am not clear > about it. please let me know about it.
Read any text on DSP.
> and I read some paper > to get the stable but non-causal inverse FIR filter with mixed-phase > system > It needs a modeling delay .But I don`t know what is the modeling delay > and what is the effect of it when the modeling delay is applied to the > inverse FIR filter. and how long delay is needed? > > please give me any comments to get a good inverse FIR filter
Deconvolution, which is what you attempt to do, is a very hard problem. There are many methods available, most of which are tailored to specific problem statements. Rune
On 04/05/2011 04:25 AM, sungdong_Jo wrote:
> Hello all, > > I am trying to compute the inverse of an FIR filter: > > I tried to implement it with following steps: > > - take the FFT of the FIR (h[n] -> H[Z] ) > - compute complex 1/H[Z] (in the frequency domain) > - invert back into the time domain. (IFFT) > > I was able to get the inverse FIR filter with above steps when the FIR > filter is minimum-phase system. However, when I tried to implement with a > Mixed-phase system. I got the time reversed inverse FIR filter( I checked > with time convolution) > I think this is related with the non-causal system. But I am not clear > about it. please let me know about it. > and I read some paper > to get the stable but non-causal inverse FIR filter with mixed-phase > system > It needs a modeling delay .But I don`t know what is the modeling delay > and what is the effect of it when the modeling delay is applied to the > inverse FIR filter. and how long delay is needed? > > please give me any comments to get a good inverse FIR filter
I just tried this (for a filter defined as a ramp from 1/256 up to 1, in 256 steps), and it worked fine (albeit with a filter that was entirely non-causal). Are you sure your method is correct? I can't give you many specific comments on getting your good inverse FIR filter -- like Rune said, the problem is complex and the solutions are often domain dependent. A good part of this is because in general, a filter will have zeros, or otherwise have ranges of high attenuation. So someone has to decide what to do with signal components at those frequencies that are highly attenuated -- do you amplify the heck out of them, and hope that the result is more signal than noise? Or do you throw up your hands, and set your 'inverse' filter gain to zero at those frequencies, even if 1/0 is anything but 0? A good understanding of Kalman and Wiener filtering goes a long way to providing some theoretical basis for the whys and hows of such filters. I can certainly comment on "modeling delay", however. It's impossible to say without looking at the original paper, but I'm 99.44% sure that what the author means is that if you can set a goal of finding a _delayed_ version of the input signal rather than a completely up-to-date version of the input signal, that you can get a much better estimate of the input signal. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html