From: lsfinn on
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.)

I'm stuck. Round-off precludes conversion to transfer function form; a
literature search (such as I'm able to do: I'm not trained in this area)
has not turned-up anything that has suggested a way forward. I'd appreciate
any advice from the experts on this list.

Thanks in advance,

Sam

Lee Samuel Finn
Professor of Physics; Astronomy & Astrophysics
104 Davey Laboratroy
The Pennsylvania State University
University Park, PA 16802
Ph: +1(814)863-9598
Fx: +1(814)863-9608



From: Rune Allnor on
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.)
>
> I'm stuck. Round-off precludes conversion to transfer function form; a
> literature search (such as I'm able to do: I'm not trained in this area)
> has not turned-up anything that has suggested a way forward. I'd appreciate
> any advice from the experts on this list.

Won't claim any expert status, but apart form that:

First of all, what you want might not be possible. The deciding
factor is whether the second-order sections (SOS) are minimum
phase. 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 usual condition for this filter to be causal and stable
is that all the roots of the polynomial B(z) are inside the
unit circle in Z domain.

Inverting each SOS this way works for a cascade of SOS'es.
I can't tell off the top of my head if it would work for
a parallel bank of SOS'es; maybe some of the true experts
will chime in on that.

Rune
From: Vladimir Vassilevsky on


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.

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.


Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com
From: Tim Wescott on
On 07/11/2010 03:17 PM, Rune Allnor 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.)
>>
>> I'm stuck. Round-off precludes conversion to transfer function form; a
>> literature search (such as I'm able to do: I'm not trained in this area)
>> has not turned-up anything that has suggested a way forward. I'd appreciate
>> any advice from the experts on this list.
>
> Won't claim any expert status, but apart form that:
>
> First of all, what you want might not be possible. The deciding
> factor is whether the second-order sections (SOS) are minimum
> phase. 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 usual condition for this filter to be causal and stable
> is that all the roots of the polynomial B(z) are inside the
> unit circle in Z domain.
>
> Inverting each SOS this way works for a cascade of SOS'es.
> I can't tell off the top of my head if it would work for
> a parallel bank of SOS'es; maybe some of the true experts
> will chime in on that.

Alas, this is one of those "I can disprove that hypothesis in one step"
things.

Consider the filter H(z) = (z - a) / (z - b) + c -- it's parallel, and
each leg is minimum phase (or close enough), right?

H(z) = ((1 + c)*z - a - b*c) / (z - b). Just find a, b, and c such that

(a + b*c) / (1 + c) > 1

Now you've found a minimum-phase system from your parallel filter bank.

--

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: Tim Wescott on
On 07/11/2010 03:34 PM, Vladimir Vassilevsky 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.
>
> My $0.02:
>
> The straightforward way would be collapse the filter into transfer
> function, factorize it and then invert. Using multiple precision math.

I second that.

> There could be many ways to approximate the inverse or to solve for the
> inverse as numeric optimization problem.

For that matter, if what you're _really_ trying to do is to take the
filter's output signal and deduce it's input signal, then you may well
do better with a Kalman (or Wiener, IOW a "time-invariant Kalman").
This would let you take any noise into account (physical or numeric)
that's added in _after_ the filtering.

I.e., if you have the signal y = h(x) + n, where x is the input signal
to your filter bank and n is a noise signal, and you want the best
estimate of y, then an inverse filter bank may _not_ be the best filter
at all.

--

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
 |  Next  |  Last
Pages: 1 2
Prev: THD without using an FFT
Next: Time-Varying Systems