The Cyber-Spy.Com Usenet Archive Feeds Directly
From The Open And Publicly Available Newsgroup
This Group And Thousands Of Others Are Available
On Most IS NNTP News Servers On Port 119.
Cyber-Spy.Com Is NOT Responsible For Any Topic,
Opinions Or Content Posted To This Or Any Other
Newsgroup. This Web Archive Of The Newsgroup And
Posts Are For Informational Purposes Only.
References: <3DD25F72.5793B8D5@webaccess.net> <6PuA9.5701$XF5.email@example.com> <3DD27F3D.667A4D75@webaccess.net> <3DD2FD36.8877972F@webaccess.net> <3DD3A4A5.688DDDDD@webaccess.net>
Subject: Re: Historical question: negative feedback and the op amp
X-Newsreader: Microsoft Outlook Express 5.50.4920.2300
Date: Thu, 14 Nov 2002 15:55:18 GMT
NNTP-Posting-Date: Thu, 14 Nov 2002 10:55:18 EST
Organization: Cox Communications
"Chuck Simmons" wrote in message
> Mike wrote:
> > "Chuck Simmons" wrote in message
> > news:3DD2FD36.8877972F@webaccess.net...
> > > Mike wrote:
> > > >
> > > > "Chuck Simmons" wrote in message
> > > > news:3DD27F3D.667A4D75@webaccess.net...
> > > > > Mike wrote:
> > > > > >
> > > > > > "Jeroen" wrote in message
> > > > > > news:GyuA9.80964$I6.firstname.lastname@example.org...
> > > > > > >
> > > > > > >
> > > > > > > In case of IIR filters, feedback reduces the number of
> > calculations
> > > > > > needed.
> > > > > > > In this case feedback isn't a thing that slows things down.
> > > > > >
> > > > > > Actually, it does slow down the maximum operating frequency. I
> > > > pipeline
> > > > > > an FIR filter almost without limit, and obtain very high clock
> > > > frequencies.
> > > > > > In an IIR filter, the maximum operating frequency is often
> > determined by
> > > > the
> > > > > > feedback loop. In the general case, the feedback term has to be
> > fully
> > > > > > calculated in one clock cycle.
> > > > >
> > > > > An IIR can produce output with one multiply and one add at the
> > > > > of the sample for that iteration. Does anyone not do this? It is
> > basic.
> > > > > This means that there is no difference in output speed of an FIR
> > versus
> > > > > an IIR with fixed sampling and infinite speed arithmetic.
> > > >
> > > > Yes, but if your arithmetic isn't infinite speed, then there's a
> > practical
> > > > limitation due to the feedback loop in the IIR filter. As a result,
> > FIR
> > > > clock rate can be significantly faster than for an IIR filter with
> > > > equivalent word widths.
> > >
> > > I don't see this at all. Forgetting that an FIR filter cannot be used
> > > a compensator for controlling a dynamical system of order two or
> > > greater, exactly the same amount of time is available for computation
> > > fixed sample rate for both. For both the IIR and the FIR, the
> > > computation is a difference equation but the FIR has no output terms
> > > it. In the control situation, the pipeline used for the FIR must be
> > > short because, in most cases, the nth output from the controller
> > > on the nth input. If not, the controller will fail anyway unless made
> > > even more complex than the high order already required to control a
> > > dynamical system because of delay. Delay requires estimation which
> > > simply means the order goes up. Estimators are of limited use because
> > > errors introduced from the outside that are unknown to the estimator
> > > which is designed for perfect dynamics (what else?).
> > Okay, here's what I'm thinking: the FIR output is given by
> > y(k) = a0*x(k-1) + a1*x(k-2) + .... + aN-1*x(k-N)
> > For the sake of simplicity, let's ignore the multiplications for this
> > example. Once the multiplications are completed, I still have to find
> > sum of the products. If I'm running at a fast clock rate, there's not
> > to do all these additions, but I can start pipelining. On the first
> > cycle, I'll add adjacent terms in pairs:
> > b01(k) = a0*x(k-1) + a1*x(k-2)
> > b23(k) = a2*x(k-3) + a3*x(k-4)
> > ...
> > On the next clock cycle, add the b terms in pairs:
> > c02(k) = b01(k) + b23(k)
> > c46(k) = b45(k) + b67(k)
> > ...
> > Keep going until the process is complete. Each level is registered; the
> > computation takes place at the same time that the b(k+1) terms are being
> > calculated.
> > We can go further: if there's inadequate time to complete the additions
> > one clock cycle, they can be pipelined as well. I built an FIR a few
> > ago that used a Booth multiplier with a latency of three clock cycles,
> > tree of adders with latency of two clocks at the top of the tree, and
> > clocks at the bottom (as the word widths increased). The overall latency
> > something like 12 clock cycles from the time that the last data word
> > the filter.
> > In the IIR filter, the y(k) result is needed during the next clock
> > and there's no practical way to delay it in the general case.
> > -- Mike --
> But in typical IIR implementations the data present in the processor at
> each sample is only one data point less than for your FIR. However,
> piplining will usually not be of interest because of the lower order
> required for realization of an IIR filter.
> However, let's take up the control of dynamical systems and see why an
> FIR, in general, will not work.
> Generally, a sampled system modelled by a system of n linear first order
> ODEs (the same as an nth order ODE) with constant coefficients gives
> rise to a quotient of polynomials say p(z)/q(z) where the degree of q(z)
> is n and the degree of p(z)<=n (deg(p)>deg(q) is non-causal). Assume
> that there is an FIR controller we wish to apply which is given by
> r(z)/z^k where r(z) is a polynomial of degree k. Obviously, the closed
> loop system including the FIR is stable if all of the zeros (roots) of
> z^k*q(z)-r(z)*p(z) are inside the unit circle. There will be n+k zeros
> of this polynomial. However, of the coefficients of this polynomial, we
> may select arbitrarily at most k+1 leaving n-1 coefficients to chance.
> In other words, we can force at most k+1 zeros inside the unit circle by
> selecting the coefficients of r(z) while the other n-1 can be anywhere.
> That is, give an arbitrary p(z)/q(z), we cannot, in general, stabilize
> it with an FIR.
> An interesting point is that if n=1, we can always use an FIR. At n=2,
> we have one pole we cannot place.
> It is easy to see that for any p(z) and q(z) there is a stabilizing
> controller of the IIR type which is of at most order n (the polynomials
> are of degree at most n).
> Another FIR problem is that an FIR places k system zeros at the origin
> of the unit circle. This causes extreme parameter sensitivity which
> translates to poor stability margin even assuming an FIR stabilizing
> controller exists (by no means given as shown).
> An advantage in an IIR is that it can be broken into cascades of order
> at most 2. This greatly reduces parameter sensitivity. The penalty for
> cascades is one multiply and add for each cascade section if we require
> that output from a new sample be available with one multiply and add.
> Cleary, there is little reason to even look for a possible but unlikely
> FIR to controller for a dynamical system.
Okay, but I was answering a different question. I can make a faster FIR
filter because I can trade latency (and hardware) for speed, even if the FIR
is higher order. Maybe I missed the point of your original comment - I
thought it was limited to a comparison of IIR and FIR filters, not those
filters contained in in a feedback loop.
On the other hand, the speed of a control loop containing an IIR or FIR
filter is another matter. Assuming that an FIR filter could be used to
control the system under consideration, the additional latency of a
pipelined FIR introduces even more delay in the loop, which decreases
stability even further.
-- Mike --
Go Back To The Cyber-Spy.Com
Usenet Web Archive Index Of
The sci.electronics.design Newsgroup