Prev: THD without using an FFT
Next: Time-Varying Systems
From: robert bristow-johnson on 11 Jul 2010 23:35 On Jul 11, 6:34 pm, Vladimir Vassilevsky <nos...(a)nowhere.com> wrote: > lsfinn wrote: > > Hi, > > > I've a filter expressed as a parallel bank of (~50) second order sections. > > Each second order section represents a high-Q resonant feature. I need to > > invert the filter: i.e., if F = A1+A2+... and y = Fx, I need F^{-1} s.t. x > > = F^{-1}y. (F is invertible.) > > You might want to ask RBJ; this is his area. i don't think necessarily so. > > My $0.02: > > The straightforward way would be collapse the filter into transfer > function, factorize it and then invert. Using multiple precision math. > > There could be many ways to approximate the inverse or to solve for the > inverse as numeric optimization problem. Vlad, i can't add a penny to what you or Tim have said. if Sam has access to both x and y of his filter bank, he could try some sorta adaptive filter in series where the input is y and the desired signal is x. r b-j
From: Tim Wescott on 12 Jul 2010 02:13 On 07/11/2010 08:35 PM, robert bristow-johnson wrote: > On Jul 11, 6:34 pm, Vladimir Vassilevsky<nos...(a)nowhere.com> wrote: >> lsfinn wrote: >>> Hi, >> >>> I've a filter expressed as a parallel bank of (~50) second order sections. >>> Each second order section represents a high-Q resonant feature. I need to >>> invert the filter: i.e., if F = A1+A2+... and y = Fx, I need F^{-1} s.t. x >>> = F^{-1}y. (F is invertible.) >> >> You might want to ask RBJ; this is his area. > > i don't think necessarily so. > >> >> My $0.02: >> >> The straightforward way would be collapse the filter into transfer >> function, factorize it and then invert. Using multiple precision math. >> >> There could be many ways to approximate the inverse or to solve for the >> inverse as numeric optimization problem. > > Vlad, i can't add a penny to what you or Tim have said. > > if Sam has access to both x and y of his filter bank, he could try > some sorta adaptive filter in series where the input is y and the > desired signal is x. Yes, I think we need to know more. -- 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
From: Greg Berchin on 12 Jul 2010 08:47 On Sun, 11 Jul 2010 15:17:32 -0700 (PDT), Rune Allnor <allnor(a)tele.ntnu.no> wrote: >On 11 Jul, 23:30, "lsfinn" <lsfinn(a)n_o_s_p_a_m.psu.edu> wrote: >> Hi, >> >> I've a filter expressed as a parallel bank of (~50) second order sections. >> Each second order section represents a high-Q resonant feature. I need to >> invert the filter: i.e., if F = A1+A2+... and y = Fx, I need F^{-1} s.t. x >> = F^{-1}y. (F is invertible.) .... >Denote the transfer function of one section as > >H(z) = B(z)/A(z). > >The expression for the inverted filter will then be > >H'(z) = A(z)/B(z). The parallel bank of second order sections is the partial fraction decomposition of the full transfer function. The transfer function therefore has the same poles as the individual filters. But it does not have the same zeroes. Rudimentary example: X Xz^-1 --- = ------- (X,x arbitrary) has a zero at infinity. z+x 1+xz^-1 A B A(z+b) + B(z+a) (A+B)z + Ab + aB z + (Ab+aB)/(A+B) --- + --- = --------------- = ---------------- = (A+B)----------------- z+a z+b (z+a)(z+b) (z+a)(z+b) (z+a)(z+b) has a zero at -(Ab+aB)/(A+B). As the OP mentioned, numerical precision problems make computing the full transfer function impossible. However, knowing the poles of the full transfer function (which are the zeroes of the inverted transfer function) should give enough a priori information for a decent system identification. Think of a formulation of Prony's Method in which the poles are already known exactly http://cnx.org/content/m12762/latest/, equation 3. Greg
From: Vladimir Vassilevsky on 12 Jul 2010 13:31 robert bristow-johnson wrote: > On Jul 11, 6:34 pm, Vladimir Vassilevsky <nos...(a)nowhere.com> wrote: > >>lsfinn wrote: >> >>>Hi, >> >>>I've a filter expressed as a parallel bank of (~50) second order sections. >>>Each second order section represents a high-Q resonant feature. I need to >>>invert the filter: i.e., if F = A1+A2+... and y = Fx, I need F^{-1} s.t. x >>>= F^{-1}y. (F is invertible.) >> >>You might want to ask RBJ; this is his area. > > i don't think necessarily so. I far as I remember you worked on the problem of decomposing a transfer function into the *parallel* set of biquads. It is not obvious to me what to do with numerator. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
From: robert bristow-johnson on 12 Jul 2010 13:35
On Jul 12, 1:31 pm, Vladimir Vassilevsky <nos...(a)nowhere.com> wrote: > robert bristow-johnson wrote: > > On Jul 11, 6:34 pm, Vladimir Vassilevsky <nos...(a)nowhere.com> wrote: > > >>lsfinn wrote: > > >>>Hi, > > >>>I've a filter expressed as a parallel bank of (~50) second order sections. > >>>Each second order section represents a high-Q resonant feature. I need to > >>>invert the filter: i.e., if F = A1+A2+... and y = Fx, I need F^{-1} s.t. x > >>>= F^{-1}y. (F is invertible.) > > >>You might want to ask RBJ; this is his area. > > > i don't think necessarily so. > > I far as I remember you worked on the problem of decomposing a transfer > function into the *parallel* set of biquads. which is the opposite direction of what Sam is doing. also, i didn't get very far with that idea, but i should return to it. > It is not obvious to me what to do with numerator. well, if the original composite filter was known to be minimum phase, you switch numerator and denominator. then break it out again into partial fractions, if that is what Sam wants. r b-j |