DSPRelated.com
Forums

An IIR filter gain questio

Started by Rick Lyons May 13, 2006
Rick Lyons wrote:
> > Well, ... sorry to hear about those physical problems.
i'm just being a wus.
> I guess I don't feel so bad now > knowing I'm not the only one who's fallin' > apart. I can't see street signs while I'm > driving at night, I haven't stopped by > my ex-wife's place to provide any "special service" > for many months,
hmmmm. interesting "ex-"relationship.
> & I'm doomed forever to take > four metformin tablets every stinkin' day.
had to look that one up. is it in lieu of sticking yourself 4 times a day? man, when you look up the price of these things, them druggie companies do about as well as the oil companies. makes me mad as hell (and smug) that they stole the election 5 1/2 years ago.
> Actress Betty Davis said it many years ago, > "Old age ain't for sissies." > Good Hell, she was NOT jokin'.
yeah. and i don't even know the half of it yet. r b-j
On 13 May 2006 22:47:55 -0700, "robert bristow-johnson"
<rbj@audioimagination.com> wrote:

>Rick Lyons wrote: > >> >> Reviewing the exciting narrative on "IIR filter >> scaling" in Dale Grover's and John Deller' DSP >> book, I have arrived at the IIR filter shown as: >> >> x --->(+)--1/Gb-->------Gf*b0--->(+)---> y >> ^ | ^ >> | [z^-1] | >> | | | >> (+)<--a1/Gb--+----Gf*b1--->(+) >> ^ | ^ >> | [z^-1] | >> | | | >> +---a2/Gb---+----Gf*b2-----+ >> >> That is, the original IIR filter's feedback coeffs >> are divided by a feedback gain factor "Gb", >> and feedforward coeffs are multiplied by a >> feedforward gain factor "Gf". The result of >> using these two Gb & Gf gain factors is a new biquad >> whose gain is the original biquad's gain multiplied >> by "Gb times Gf" (GbGf).
Hi R B-J,
>i think the feedforward gain of 1/Gb needs to be changed to just "Gb" >as so: > > x --->(+)---Gb--->------Gf*b0--->(+)---> y > ^ | ^ > | [z^-1] | > | | | > (+)<--a1/Gb--+----Gf*b1--->(+) > ^ | ^ > | [z^-1] | > | | | > +---a2/Gb---+----Gf*b2-----+ >
^^^^^^^^^^^^^^^^^^^^^^^^ |||||||||||||||||||||||| R B-J's Figure 1 Yes, yes. My MATLAB modeling is correct, but my original block diagram was drawn incorrectly. Your "R B-J's Figure 1" above is correct. Thanks for catchin that "boo boo" in my drawing.
>which becomes: > > x -Gb->(+)-------->------Gf*b0--->(+)---> y > ^ | ^ > Gb [z^-1] | > | | | > (+)<--a1/Gb--+----Gf*b1--->(+) > ^ | ^ > | [z^-1] | > | | | > +---a2/Gb---+----Gf*b2-----+
^^^^^^^^^^^^^^^^^^^^^^^^ |||||||||||||||||||||||| R B-J's Figure 2
> > >and thus: > > x -Gb->(+)-------->------Gf*b0--->(+)---> y > ^ | ^ > | [z^-1] | > | | | > (+)<---a1----+----Gf*b1--->(+) > ^ | ^ > | [z^-1] | > | | | > +-----a2----+----Gf*b2-----+
^^^^^^^^^^^^^^^^^^^^^^^^ |||||||||||||||||||||||| R B-J's Figure 3
>
Ah ha. Now this an aspect I didn't see before. I wanted to avoid having a gain factor before the 1st adder, in the block diagram, because having a gain factor there that's less than unity degrades the input signal-to-noise (SNR). But you've now made me realize that having Gb less than unity in your "R B-J's Figure 1" is gonna reduce the SNR of the input to my IIR filter whether I like it or not. Sheece... Thanks for pointing that out to me Robert. (snipped)
> >i presume the Gf thingie is a non-issue. that sorta thing is done all >the time with IIRs. with Gb, you are simply scaling those states with >Gb. if you're doing that for fixed-point issues, i think there are >better ways to either think about it or to implement it (like ditch the >DF2 and do it with DF1). for floating-point, it seems pointless to me, >but there is lotsa esoteric stuff that i dunno. > >r b-j
Some time ago I posted a wise-crack here on comp.dsp that, "IIR filters are for sissies." OK OK, I take it back. Thanks Robert, ... or as we're being forced to say in California, "Thanks Roberto." [-Rick-] (Also,... "Thanks" to Greg Berchin for adding his comments to this thread.)