[comp.dsp] A question about SVD

tomh.bbs@shark.cs.fau.edu (Tom Holroyd) (04/08/91)

I'm doing principle components analysis of some multi-channel
timeseries.  I'm using SVD (from Numerical Recipes) on the matrix
whose rows represent the timeseries from each channel.  In other words,
if I have 5 channels and 100 points in my timeseries, I get a matrix
with 5 rows and 100 columns.  Actually my timeseries is much longer
than this, and so I'm using windows of a few hundred points, and sliding
along, doing SVD.
 
My problem is that my components (for example the top component, the one
with the largest eigenvalue) change sign arbitrarily from window to
window.  This is because from SVD's point of view,
                            T         T
                       U.w.V = -U.w.-V
and I can't tell why it picks positive for one window and negative for
the next.  Worse yet is that it may do this for one channel and not
for another, i.e. channel one could flip from one window to the next
and channel two might not.
 
Is there a way to control this?
 
Tom Holroyd
Center for Complex Systems
Florida Atlantic University
tomh@bambi.ccs.fau.edu