Hi Ross,
since you opened this topic, I thought I'd try to share the intermediate
results my findings, as much as I can remember them (that was a few
years back). Most of them concern the continuous time case.
First note regarding the continuous time case is that cutoff modulations
do not affect the BIBO stability at all. More rigorously:
- if the cutoff modulation is done by varying the gains *in front*
(rather than behind) of *all* integrators in the system
- if the cutoff function w(t) is always positive
- if the system is BIBO stable for some cutoff function w(t)
then the system is also BIBO stable for any other positive cutoff function
Particularly, if a linear system is BIBO-stable in time-invariant case
(for the constant cutoff function), then it's also stable for varying
cutoff.
This is very easy to obtain from the state-space equation:
du/dt=w*F(u,x)
where u(t) is the state vector, x(t) is the input vector, w(t) is the
cutoff scalar function and F(u,x,t) is the nonlinear time-varying
version of A*u+B*x. Without reduction of generality we can assume w(t)=1
for the given stable case. Then, we simply rewrite the equation as
du/(w*dt)=F(u,x)
and substitute the time parameter:
d tau = w*dt
Now in "tau" time coordinates the modulated system is exactly the same
as the unmodulated one in the "t" coordinates.
The same doesn't seem to hold for the TPT discrete-time version, though.
In a more general case for *linear* continuous time, IIRC, we have a
sufficient (but it seems, not necessary) time-varying stability
criterion: all eigenvalues of the matrix A+A^T must be "uniformly
negative", that is they must be bounded by some negative number from
above. It is essential to require this uniform negativity, otherwise the
eigenvalues can get arbitrarily close to the self-oscillation case. This
condition is simply obtained from the fact that in the absence of the
input signal you want the absolute value of the state to decay with a
relative speed, which is uniformly less that 1. This will make sure,
that, whatever the bound of the input signal is, a large enough state
will decay sufficiently fast, to win over the input vector B(t)*x(t).
Indeed, ignoring the B*x term, we have
(d/dt) |u|^2=(d/dt)(u^T*u)=u'^T*u+u^T*u'=
(A*u)^T*u+u^T*(A*u)=u^T*A^T*u+u^T*A*u=
u^T*(A+A^T)*u<=|u|^2*max{lambda_i}
where lambda_i are the eigenvalues of A+A^T.
Now on the other hand
(d/dt) |u|^2=2*|u|*(d/dt)|u|
So
2*|u|*(d/dt)|u|<=|u|^2*max{lambda_i}
and
2*(d/dt)|u|<=|u|*max{lambda_i}
Obviously, you don't have to satisfy the condition in the original
state-space coordinates. Instead, you can satisfy it in any other
coordinates, which corresponds to using P^T*A*P instead of A for some
nonsingular matrix P.
Now I didn't manage to get this condition satisfied for the
continuous-time SVF. Reading your post, I admit, that I could have made
a mistake there, but FWIW... First, I discarded the consideration of
varying cutoff, as explained above and concentrated on the varying
damping. Not managing to find a matrix P, I constructed an input signal,
requiring the maximum possible growth of the state vector. The signal,
IIRC was either sgn(s_1) or -sgn(s_1), where s_1 is the first of the
state components (or it could have been s_2). Then I noticed that for
low damping the state vector is moving in almost a circle, while for
higher damping (but still with complex poles) is turns into an ellipse.
This was exactly the problem: "in principle" the circle is having a
bigger size, than the ellipse, but by switching the damping from low to
high you could "shoot" the state point into a much "higher orbit". Much
worse, in certain cases the system state can increase even in the full
absence of the input signal!!! However, IIRC, I managed to show, that
for a sufficiently large "elliptic" orbit (with high damping),
(d/dt)|u|^2<=0 regardless of the current damping. Since we are already
considering the "worst possible" input signal, the system state can't
cross this boundary "orbit" to the outside.
For the discrete-time case the situation is more complicated, because we
can't use the continuity of the state vector function. IIRC, I also
didn't manage to build the "worst-case" signal, but there was the same
problem of the state vector becoming larger in the absence of the input
signal. That's why I was somewhat surprised that you simply managed to
restrict the eigenvalues of the system matrix in some coordinates.
Particularly suspicious is that your coordinate transformation matrix is
"built for the smallest damping", while the more problematic case seems
to occur "at the larger damping". But, as I said, I didn't finish that
research and I could have been wrong. So just take my input FWIW.
Regards,
Vadim
--
Vadim Zavalishin
Reaktor Application Architect
Native Instruments GmbH
+49-30-611035-0
www.native-instruments.com
--
dupswapdrop -- the music-dsp mailing list and website:
subscription info, FAQ, source code archive, list archive, book reviews, dsp
links
http://music.columbia.edu/cmc/music-dsp
http://music.columbia.edu/mailman/listinfo/music-dsp