Subject: LPC vs. polynomial predicting

From: SCHILDBACH WOLFGANG <[email-masked]>
Date: Tue, 15 Oct 91 11:26:04 -0600

Is it really a good idea to use Linear Predictive Coding for the glove?
From what I understand LPC works with fourier coefficients of the data
given, or, in other words, it tries to model the data as a sum of sines
and cosines. Now I would guess that most movements you make are not sinu-
soidal but rather polynomial (i.e. the velocity should go like a parabola).
(Of course, some research has to be done at that, but it shouldn't be to
hard for those of you who have gloves to write a little hack that records
your glove movements on time and display this data.)
	Now if the velocity is mainly polynomial, wouldn't it be better
to model it as a polynomial?

	For references on Kalman filters, LPC etc. try

Teukolsky, Vetterling, Press, Flannery: Numerical Recipes in (C|FORTRAN|PASCAL)

which is technical (the matter is, after all) but easy to understand. It
contains a lot of sources that might help.

	For filtering the glove output, I would suggest what I would call a
"plausibility filter": If the (pos,vel) measurement at time 0 is (x0,v0) and
time t is x1, solve x1=x0+v0 t+1/2 a t^2 for a (the acceleration) and check if
it gives a reasonable value. If not, reject the measurement and predict it in-
stead.

Ciao
 Wolfgang

---

From: Dave Stampe-Psy+Eng <[email-masked]>
Date: Tue, 15 Oct 91 14:47:19 -0400

I think one of the problems with ANY predictive filtering of the poer glove
is going to be the sparseness of the data (that is, the wide spacing of
the samples).  These methods work best with finer data.

BTW, an idea about speeding the glove's readout: from my fooling around,
the glove's computer reads the receivers after pulsing the two transmitters
(20 mS each) then reads the fingers with an RC circuit and comparator for
each finger.  This takes the remaining 35 mS of the 75 mS glove cycle: in
fact, when you bend the fingers, you can *hear* the transmitter's click
rate change, showing that the finger read cycle gets shorter.
SO: why not "hardwire" the finger sensor RC circuits low (or high, I forget
which) and cut 35 mS off the sample period?  An external A/D converter 
could read the finger positions with at least 4 bits of precision.
Of course, there are obvious disadvantages here, but it might push the sample
rate up to 25 Hz, which is much better than the current 13.3 Hz

-Dave Stampe

---

From: [email-masked] (David Burgess)
Date: Tue, 15 Oct 91 15:11:31 EDT

I normally just listen to this list, but since I'm up to my neck in filters and predictors right  
now, I couldn't help but run my mouth:
Linear predictive coding predicts with a linear filter: a differential equation, or, in the digital  
domain, a difference equation.  Implementation is easy: you just feed the signal into the  
filter and take the result.  The trick is picking the right filter.
Low pass filters will control jitter, but may give sluggish response.
A properly tuned second order filter is good for many control/conditioning applications,  
like the suspension system of your car.  It will reduce jitter, but still can be tuned to give a  
quick response.  A second order difference equation looks like:
y[n] = x[n] + ax[n-1] + bx[n-2] + cy[n-1] + dy[n-2]
where x is the input, y is the output, n is the time index, any all the other things are  
coefficiants.  choose a,b,c,d carefully, because bad choices will give unstable filters that  
can oscillate uncontrolably or go racing off into infinity.
I once experimented with polynomial prediction on my mouse driver, and found the first  
order prediction was ok, but higher order (quadratic, cubic, etc.) resulted in really bad  
overshoot.
Disclaimers: I've never used a power-glove.  I'm not a professional DSP engineer.

--david