From: Rob Gaddi on
Hey y'all --

So I've been working with some filter topologies trying to do
programmable low-pass filtering over a 100,000:1 Fc range in a single
stage, no pre-decimation. (That's unfortunately non-negotiable for
reasons above my control).

The second order sections that I'm using are basically derived as
digital equivalents of analog state variable filters. Flow diagram is:

x[n] -->--+-->--k1-->--{A}-->--+-->--k2-->--{A}-->---- y[n]
| | |
| | -z^-1
| | |
\----------<---------\------------<-------/

Where each {A} is an accumulator, structured as:

-->--+------>---------->--
| |
\--<--z^-1--<--/

There are no registers in the forward path, so y[n] contains (among
other things) k1*k2*x[n]. The most important aspect, however, is that
the negative feedback around the overall loop is -1, which means that
the section has unity gain at DC. As compared to, for instance, direct
form sections, where the gains become ludicrous at low cut-off
frequencies.

I'm trying to find some literature on this sucker in hopes that someone
smarter than I has some more insight into it, just to make sure I know
what I'm getting myself into. But I can't figure out for the life of
me what it's called. It's sorta-kinda-similairish to a Chamberlin
topology, but does all of the work in only two multiplies rather than 3.

In short, to name a thing is to have Google power over it. Anyone know
where to find this one?

Thanks,
Rob

--
Rob Gaddi, Highland Technology
Email address is currently out of order
From: Tim Wescott on
Rob Gaddi wrote:
> Hey y'all --
>
> So I've been working with some filter topologies trying to do
> programmable low-pass filtering over a 100,000:1 Fc range in a single
> stage, no pre-decimation. (That's unfortunately non-negotiable for
> reasons above my control).
>
> The second order sections that I'm using are basically derived as
> digital equivalents of analog state variable filters. Flow diagram is:
>
> x[n] -->--+-->--k1-->--{A}-->--+-->--k2-->--{A}-->---- y[n]
> | | |
> | | -z^-1
> | | |
> \----------<---------\------------<-------/
>
> Where each {A} is an accumulator, structured as:
>
> -->--+------>---------->--
> | |
> \--<--z^-1--<--/
>
> There are no registers in the forward path, so y[n] contains (among
> other things) k1*k2*x[n]. The most important aspect, however, is that
> the negative feedback around the overall loop is -1, which means that
> the section has unity gain at DC. As compared to, for instance, direct
> form sections, where the gains become ludicrous at low cut-off
> frequencies.
>
> I'm trying to find some literature on this sucker in hopes that someone
> smarter than I has some more insight into it, just to make sure I know
> what I'm getting myself into. But I can't figure out for the life of
> me what it's called. It's sorta-kinda-similairish to a Chamberlin
> topology, but does all of the work in only two multiplies rather than 3.
>
> In short, to name a thing is to have Google power over it. Anyone know
> where to find this one?

In the control systems world that'd be a controllability canonical form,
only missing the forward terms from the input and the first state that
are necessary to make the numerator come out right.

Note: This is exactly the answer you asked for, yet it is useless for
your purposes. I must be an engineer*.

Dunno what -- if anything -- it's called in the DSP world.

* http://www.anvari.org/fun/Job/Engineer_and_Manager.html

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
From: Tim Wescott on
Rob Gaddi wrote:
> Hey y'all --
>
> So I've been working with some filter topologies trying to do
> programmable low-pass filtering over a 100,000:1 Fc range in a single
> stage, no pre-decimation. (That's unfortunately non-negotiable for
> reasons above my control).
>
> The second order sections that I'm using are basically derived as
> digital equivalents of analog state variable filters. Flow diagram is:
>
> x[n] -->--+-->--k1-->--{A}-->--+-->--k2-->--{A}-->---- y[n]
> | | |
> | | -z^-1
> | | |
> \----------<---------\------------<-------/
>
> Where each {A} is an accumulator, structured as:
>
> -->--+------>---------->--
> | |
> \--<--z^-1--<--/
>
> There are no registers in the forward path, so y[n] contains (among
> other things) k1*k2*x[n]. The most important aspect, however, is that
> the negative feedback around the overall loop is -1, which means that
> the section has unity gain at DC. As compared to, for instance, direct
> form sections, where the gains become ludicrous at low cut-off
> frequencies.
>
> I'm trying to find some literature on this sucker in hopes that someone
> smarter than I has some more insight into it, just to make sure I know
> what I'm getting myself into. But I can't figure out for the life of
> me what it's called. It's sorta-kinda-similairish to a Chamberlin
> topology, but does all of the work in only two multiplies rather than 3.
>
> In short, to name a thing is to have Google power over it. Anyone know
> where to find this one?

Something that I have used in the past -- and I think that Vladimir has
mentioned as well -- is a 'state space' resonant filter:

[d cos(w) -d sin(w)]
x[n] = [ ] x[n-1] + B u[n]
[d sin(w) d cos(w)]

y[n] = C x[n-1] + D u[n]

This filter works well in certain limited circumstances, and I _think_
it does a better job resolving the poles given a fixed numerical
precision (I distinctly recall proving both that it's better and that
it's no better, then running out of time to cook up a tie-breaker proof).

But it clearly requires more computational effort than a 'regular'
filter unless it saves you from taking a step up in numerical precision.

If you're casting about for filter topologies to use with your 1:10^5
ratio of frequencies, this may be one to investigate.

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
From: Vladimir Vassilevsky on


Rob Gaddi wrote:

> Hey y'all --
>
> So I've been working with some filter topologies trying to do
> programmable low-pass filtering over a 100,000:1 Fc range in a single
> stage, no pre-decimation. (That's unfortunately non-negotiable for
> reasons above my control).
>
> The second order sections that I'm using are basically derived as
> digital equivalents of analog state variable filters. Flow diagram is:
>
> x[n] -->--+-->--k1-->--{A}-->--+-->--k2-->--{A}-->---- y[n]
> | | |
> | | -z^-1
> | | |
> \----------<---------\------------<-------/
>
> Where each {A} is an accumulator, structured as:
>
> -->--+------>---------->--
> | |
> \--<--z^-1--<--/
>
> There are no registers in the forward path, so y[n] contains (among
> other things) k1*k2*x[n]. The most important aspect, however, is that
> the negative feedback around the overall loop is -1, which means that
> the section has unity gain at DC. As compared to, for instance, direct
> form sections, where the gains become ludicrous at low cut-off
> frequencies.
>
> I'm trying to find some literature on this sucker in hopes that someone
> smarter than I has some more insight into it, just to make sure I know
> what I'm getting myself into. But I can't figure out for the life of
> me what it's called. It's sorta-kinda-similairish to a Chamberlin
> topology, but does all of the work in only two multiplies rather than 3.
>
> In short, to name a thing is to have Google power over it. Anyone know
> where to find this one?

As mentioned by Tim, this structure is a lot like what is used in
control systems.

This won't save precision though, you will have to do 64-bit
accumulation. What it could help with is the precision of the
coefficients. You can probably get by 16 bits.

However, you can accomplish exactly the same result with the direct form
feedback path.

y[n] = x[n] + B1*y[n-1] + B2*y[n-2]

B1 ~ 2
B2 ~ 1

Let B1 = 2 - alpha
Let B2 = 1 - beta

Then alpha and beta could be 16-bit numbers.


Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com









From: HardySpicer on
On Mar 16, 6:25 am, Tim Wescott <t...(a)seemywebsite.now> wrote:
> Rob Gaddi wrote:
> > Hey y'all --
>
> > So I've been working with some filter topologies trying to do
> > programmable low-pass filtering over a 100,000:1 Fc range in a single
> > stage, no pre-decimation.  (That's unfortunately non-negotiable for
> > reasons above my control).
>
> > The second order sections that I'm using are basically derived as
> > digital equivalents of analog state variable filters.  Flow diagram is:
>
> > x[n] -->--+-->--k1-->--{A}-->--+-->--k2-->--{A}-->---- y[n]
> >           |                    |                    |
> >           |                    |                  -z^-1
> >           |                    |                    |
> >           \----------<---------\------------<-------/
>
> > Where each {A} is an accumulator, structured as:
>
> >  -->--+------>---------->--
> >       |              |
> >       \--<--z^-1--<--/
>
> > There are no registers in the forward path, so y[n] contains (among
> > other things) k1*k2*x[n].  The most important aspect, however, is that
> > the negative feedback around the overall loop is -1, which means that
> > the section has unity gain at DC.  As compared to, for instance, direct
> > form sections, where the gains become ludicrous at low cut-off
> > frequencies.
>
> > I'm trying to find some literature on this sucker in hopes that someone
> > smarter than I has some more insight into it, just to make sure I know
> > what I'm getting myself into.  But I can't figure out for the life of
> > me what it's called.  It's sorta-kinda-similairish to a Chamberlin
> > topology, but does all of the work in only two multiplies rather than 3..
>
> > In short, to name a thing is to have Google power over it.  Anyone know
> > where to find this one?
>
> In the control systems world that'd be a controllability canonical form,
> only missing the forward terms from the input and the first state that
> are necessary to make the numerator come out right.
>
> Note:  This is exactly the answer you asked for, yet it is useless for
> your purposes.  I must be an engineer*.
>
> Dunno what -- if anything -- it's called in the DSP world.

The same. a state-space canonical form. Normally companion form.

Hardy