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
Inverse FIR filter (mixed-phase system)
Started by ●April 5, 2011
Reply by ●April 5, 20112011-04-05
On Apr 5, 1:25�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 filterDeconvolution, 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
Reply by ●April 5, 20112011-04-05
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 filterI 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