Re: Volterra series
- From: "Andor" <andor.bariska@xxxxxxxxx>
- Date: 31 Jul 2006 00:20:09 -0700
Thanks for the detailed reply, Robert!
See comments below.
robert bristow-johnson wrote:
Randy Yates wrote:
Andor wrote:...
r b-j wrote:
the characterization of non-linear systems
is difficult. possibly more art than science (unless one were to
brute-force employ Volterra series to do it).
Can you (or anybody) expand on how one would actually go about
brute-force employing Volterra series to characterize a non-linear
black box? The little I've read about it I didn't comprehend.
I've also just wondered in general about these Volterra series for a
long time - never understood them either.
let me explain the philosophy a little and then the only "analysis"
method that i know (it's horribly numerically intensive):
first imagine a Time-Invariant, possibly non-linear, uniformly sampled
SISO system with finite memory (a finite delayed "forgetting time" from
which before any input has no effect on the current output). an FIR
filter would be an example but it is, of course, linear. so, IN
GENERAL, the output of this possibly linear or possibly non-linear
system would be:
y[n] = f( x[n], x[n-1], x[n-2], ... x[n-N+1], x[n-N] )
for some general function, f( ), and where N is the "order" and N+1 is
the number of states. the special case of this being linear would be
the simple FIR where
f( x[n], x[n-1], ... x[n-N] ) = h[0]*x[n] + h[1]*x[n-1] + ...
h[N]*x[n-N]
in that case you can think of the function f( ) as being an N+1
dimensional plane that passes through the origin. clear to this point?
Cool, an FIR filter is a hyperplane!
now, all Volterra really did is connect the concept of this function of
N+1 variables to the multivariable Taylor Series (or more specifically
McLauren Series) that we learned about in 3rd semester calculus:
f( x0, x1, ... xN ) = C + a0*x0 + a1*x1 + ... + aN*xN
+ a00*x0^2 + a01*x0*x1 + a02*x0*x2 + ... + a0N*x0*xN
+ a11*x1^2 + a12*x1*x2 + ... + a1N*x1*xN
+ a22*x2^2 + ... + a2N*x2*xN
...
+ aNN*xN^2
+ a000*x0^3 + a001*x0^2*x1 + a002*x0^2*x2 + ... +
a00N*x0^2*xN
+ terms with other triplets x0*x1*x2, etc.
+ terms with all possible combinations of 4 factors
x0*x1*x2*x3, etc.
This is just a technicality, but I don't think that f(...) is assumed
to be smooth (and therefore has a Taylor or McLaurin series). Smooth
functions are a very restrictive model for non-linearity - eg. a
piecewise linear function is not smooth. Probably we assume that f is
continuous, at which point it is arbitrarily well approximated by
polynomials (Weierstrass approximation theorem).
there are an infinite number of possible terms but the hope is (just
like with a finite power series) that we can add up a finite number of
these terms to quantitatively represent f( ). if you know the values
of all of the coefficients of any significance, you have modeled the
system.
does this make sense?
Yes.
now, the only way i know of to use this to try to model a black box is
to, in advance, decide on N and how many (and which) terms above you're
keeping. all of those higher power terms can be calculated from the
input and treated like just another sample in a big vector that is dot
producted against the vector of coefficients that you're trying to
figger out (just like the dot product in an FIR). then, to *get* those
coefficients, you hook up your Volterra "filter" to the same input as
to the Black Box and subtract the Black Box output (just like the
"desired" signal, d[n] in an LMS filter) from the Volterra output and
use that difference signal to slightly adjust the coefficients up or
down using the same gradient descent method that LMS adaptive filters
use. maybe, by next week, the coefficients will settle down to nice
stable values.
does that make sense?
Definitely so. It is really a regression problem: you have an n x (N+2)
data grid that you model as n equations of the form
y_k = f( x_{k,0}, x_{k,1}, ...., x_{k,N} ) + e_k, 1 <= k <= n,
where e_k is some possible iid measurement noise. The Volterra series
approach is to assume f() continuous and approximates f with a p-th
degree polynomial in N+1 variables - which has the nice property that
it is linear in the unknown coefficients, and thus can be solved using
the usual LS methods. The big drawback is the sheer number of
parameters involved, which grows exponentially with p (curse of
dimensionality).
Thanks, that has made everything much clearer!
Regards,
Andor
.
- Follow-Ups:
- Re: Volterra series
- From: Jerry Avins
- Re: Volterra series
- References:
- Volterra series
- From: Andor
- Re: Volterra series
- From: Randy Yates
- Re: Volterra series
- From: robert bristow-johnson
- Volterra series
- Prev by Date: Re: why amplitude is very high in CCS
- Next by Date: f2812 - cpu timer & General purpose timer
- Previous by thread: Re: Volterra series
- Next by thread: Re: Volterra series
- Index(es):
Relevant Pages
|