D
davew
Guest
On Jan 19, 3:43 pm, Gabor <ga...@szakacs.invalid> wrote:
You're mixing up samples and clock cycles.Tim Wescott wrote:
On Wed, 18 Jan 2012 10:53:09 -0800, davew wrote:
On Jan 18, 6:49 pm, davew <david.wo...@gmail.com> wrote:
(Hi Tim,)
sorry I must admit I waded straight in myself without reading all of
the thread however:
Let c_{n-3} = a_{n-3}, which we can do by definition because a is
good at the beginning of the 3rd clock.
I'm not sure I follow this. Please continue.
As we have one sample per clock cycle on a single channel stream, x{0},
x{1}, x{2} etc. what we want is:
y{0} = A * x{-1} + B * y{-1}
But the best we can do at the desired clock rate (assuming we have a
pipeline delay of 3) is:
y{0} = A * x{-3} + B * y{-3}
Is this doable?
Or to put it in words, if it takes 3 clocks to produce an output y from
x, but you need y on the next clock cycle to combine with the next value
of x then you simply can't have it, or can you?
Pretty much.
So I was trying to elucidate what you _can_ do if you have some imposed
delay, which is to make a stable IIR filter that happens to work for
minimum delays that are greater than 1.
There are limits, the two chief ones being bandwidth and delay. Your
answer is going to have some pretty healthy delays both because of the
computation of the feedback portion of the filter (which is limited to
delays of N or more) and the feed-forward part of your filter (which
needs to have at least N terms if you're going to get a sensible
frequency response). A your bandwidth (as a proportion to your sample
rate) that you can sensibly "ask for" gets ever narrower as your delays
get greater (really, it's probably better to say that your bandwidth in
real terms reaches a plateau above which it's hard to get).
In amongst all the math don't miss the point that I also made, that you
can pre-filter with something easy like a CIC, then decimate, then either
be done or follow that with an IIR filter.
From:
y{0} = A * x{-3} + B * y{-3}
A point that should not be missed is that you really have three
interleaved IIR filters each running at 1/3 the sample rate. If
the signal bandwidth is high enough, there will be a significant
output component at 1/3 the sample rate due to this. As a worst
case, an input with a lot of energy at 1/3 the sample rate would
be almost unfiltered.
-- Gabor