CGA FAQ: Time-normalising


from BIOMCH-L 28/12/95
Last week I asked the question below about normalizing gait data.  Here
are the replies.  I want to thank every who replied and I agree with
Dr. George about ansemble averaging not being the best solution. However,
I am trying to get a program up and running to yield the same time base
1st.  I'll worry about the ansemble averaging problem once I get the
data to all have the same time base.  To date I have incorporated Dr.
Sanders Fortran subroutine into a program.  The normalized wave form
is off somewhat though.  I think it is because I do not have any data
before & after the frames I want to standardize to.  His routine
requires 3 frames of data on both ends so I padded the ends with the
1st & last frames.  I have also down loaded the Excel add-in template
called XLmath as mentioned by Dr. Sinclair.  I have not tried it yet
though because my pkunzip program will not unzip the file & I run Excel
on a Mac.  I have just finished incorporating the Quick Basic spline
subprogram sent to me from Dr. Ingram into a program & seems to work
very well so far.  I have printed graphic data out from 1 file (time
in % cycle - 59 frames of data) and the splined data (time in % cycle
with 101 - frames of data and they line up almost identically.  I did
not try the C program sent by Dr. McFadyen (of the 3 programs sent to
me, "C" is my worst programing language).

Thanks again for all of your help.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Original Question:

I need to either write or purchase a program to average multiple trials
of gait data (i.e. knee angle, knee moment, knee power).  Does anyone
know of a cheap program that will do this?  Otherwise I will need to
write a program to standardize the data to percent cycle (easy), spline
all data to have exactly same time base (hard part), then output an
averaged data set +/- SD (easy).

I am told that one of Herman's library functions should fit my needs,
but I have not had any luck determining which one...

Thanks for your help & have a great holiday season...

gsrash01@ulkyvm.louisville.edu

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Replies

=========================================================================
From: hurmuzlu@seas.smu.edu (Dr. Yildirim Hurmuzlu)
Subject: Normalize waveforms for averaging
To: GSRASH01@ULKYVM.LOUISVILLE.EDU
Date: Thu, 21 Dec 1995 11:54:25 -0600 (CST)

We have used Igor on Macintosh by WaveMetrics. It is under $500.00 and
it is ideal to process gait data.

Their phone # is :(503) 620-3001

Dr. Yildirim Hurmuzlu
Associate Professor of Mechanical Engineering
Southern Methodist University
Dallas, TX 75275

Phone  : (214) 768-3498
Fax    : (214) 768-1473
e-mail : hurmuzlu@seas.smu.edu

========================================================================

From: "Ross Sanders" 

Date:          Fri, 22 Dec 1995 08:57:49 GMT+1200

G'day Greg,

I have attached a Fortran subroutine (normal) that I have been using
for several years to normalise data to a common time base - usually
percentiles. I have found it to be very reliable. If you do not have
a fortran compiler let me know and I will send you the executable
version. The file is in text format.

Good luck with it.

Ross Sanders PhD

+++++++++++++++++++++++++++++++++++++++++++++++
Program Cut - Contact Dr. Sanders if interested
+++++++++++++++++++++++++++++++++++++++++++++++

===================================================================

Date: Thu, 21 Dec 1995 12:37:26 -0800 (PST)
From: MSO@shcc.org

Buy a VICON system and link vicon clinical manager to Excel.  So what
if it costs $300,000.

Michael Orendurff
mso@shcc.org

===================================================================

From: p.sinclair@cchs.su.edu.au (Peter Sinclair)

Dear Greg,

A couple of months ago Jim Martin from the University of Texas posted
a message about performing spline interpolations.

Jim performed these in Excel using an add-in template called XLmath.
XLmath v3.0 is share ware and can be down loaded from any number of CICA
bulletin boards. Try: ftp://ftp.cica.indiana.edu The directory for windows
was:/pub/pc/win3/excel/  The file is: xlmth30.zip

I have since downloaded this program and find it very easy to use for
time normalising data. Being free is also a significant advantage.

Cheers,

Peter Sinclair

Division of Biomechanics             E-mail: p.sinclair@cchs.su.edu.au
Faculty of Health Sciences           Phone:  (02) 646 6137
The University of Sydney             Fax:    (02) 646 6520
East St
Lidcombe NSW 2141
Australia

=========================================================================

Date: Thu, 21 Dec 1995 22:45:15 -0500 (EST)
From: Nat Ordway - Orthopedics SUNY Syracuse 

Hello!

I did a similar sort of thing. Using LabView, I wrote a program to
interpolate the data and find a point every 2% of the gait cycle. Then
I was able to average sets of data.

Let me know if you would like more details.

Nat Ordway
Dept of Orthopedic Surgery
SUNY Syracuse
ordwayn@vax.cs.hscsyr.edu

========================================================================

Date: Fri, 22 Dec 1995 09:20:19 +0000

From: Christopher.Johnston@ah.slu.se (Christopher Johnston)

Dear Gregory

We do this type of normalizing here at the equine lab.  We use two programs
depending on what the data is and how to trigger strides or stance etc...
The easier is a product by DSP Development Corp. out of Boston Mass. called
DADiSP.  It costs about 2000 US.  It is nice because of the multiple window
function and allows easy experimentation of values with direct results.  All
the necessary functions are incorporated in the software for your work.  The
other is LabView which is intuitively not as nice, but excellent when the
data is synchronized and the variables are known.  This program allows
almost real time analysis.  LabView is a product of National Instruments
Corp. out of  Austin TX:

Software is available for this type of work on the Biomech-L, the Ohio
server I believe, as well as Ton van Bogert has modified Hermans routine to
do this or has developed another.  Additionally, I know that the Calgary Lab
has developed this type of software for their system.

Regards

Chris

Chris Johnston, DVM
Equine Biomechanics Lab.
School of Veterinary Medicine
P O Box 7011
750 07 Uppsala, Sweden
Christopher.Johnston@ah.slu.se

=========================================================================

Date: Fri, 22 Dec 1995 13:51:28 +0000
From: Dirk Twisk 

Yes, to spline and interpolate you need Woltring's GCV routine. It
can be found in NETLIB. I could also send a copy to you, but our
program has been modified slightly to suit our needs. I have
converted the source code to C, and the original is in Fortran. Let
me know.

Dirk Twisk

=========================================================================

Date: Fri, 22 Dec 95 15:01:06 +0100
From: jharlaar@cca.vu.nl (Jaap Harlaar)

Hi,

if you consider the splining of the data as the hardest part of the
ensemble-averaging, you should look at the signal processing toolbox of
Borlands' Turbo-Pascal. They include some very nice procedures, which will
make it easy to do.
Success!

Jaap Harlaar

Mr. Jaap Harlaar, MSc, biom.eng.           tel. +31 20 444 0773
Dept. Rehabilitation Medicine              fax. +31 20 444 0787
University Hospital "Vrije Universiteit"
De Boelelaan 1117
NL 1081 HV  Amsterdam                 email: jharlaar@cca.vu.nl
The Netherlands

========================================================================

From: "George, Terrence E." 
Date: Fri, 22 Dec 95 09:26:00 EST

Mr. Rash,

a couple other things to consider in your averaging:

1) the baseline level (dc, offset) can vary by several degrees (angles) both
between subjects and between different experiments (diff. marker placements,
individually calibrated) on the same subject.  This doesn't matter if you're
only looking at the change in joint angles.

2) the % of gait cycle between landmarks of the cycle can vary, and simply
averaging trials at every increment of the overall cycle can (probably will)
produce a curve which does not actually represent the family of curves.  Here
is an simple example of imaginary data which can be applied to more
complicated cases:

trial 1: :10   0    0    0    10   20   10   0    10
trial 2: :10   0    10   20   10   0    0    0    10
average::10   0    5    10   10   10   5    0    10
better:  :10   0    0    10   20   10   0    0    10.

The 'better' curve is a more accurate representation of the family of curves
and the peak height relative to other landmarks of the curve than the
'average' curve.  I hope this gets the idea across.  The 'better'
representation might be obtained by averaging fractions of a cycle together,
ie, heel stike to peak pressure, peak to toe off, toe off to heel strike.  I
once found a situation where to maintain the proper shape of a family of
curves, I had to average the derivatives of the curves and then integrate
that average (the slope of y at all values of x was the variable being
sought).

Good Luck and Merry Christmas

Terry

Terrence E. George, Rehabilitation Research Engineer
Assistive Technology Research Center
National Rehabilitation Hospital
102 Irving Street NW
Washington, DC 20010
202-877-1963        Fax: 202-723-0628         E'mail: teg2@mhg.edu

========================================================================

From: MCFADYEN BRAD 

Dear Gregory,

Here is code (written in C) for a module I use to rubberband (with linear
interpolation) my timebase. It has worked fine for me. It also will fix a
point like toe-off at a percentage of the cycle. Hope it makes sense as
it is even more convoluted in the transfer and with comments (I am not a
programmer you should realize..but you are welcome to use it).

Good luck

Brad McFadyen,

Bradford J. McFadyen, Ph.D.
Email:brad.mcfadyen@pht.ulaval.ca (r10510@er.uqam.ca --- until
January 1st)

Departement de Physiotherapie          Institute Francois-Charon
Faculte de Medecine                           525, boul. Wilfrid-Hamel est
Pavillion Ferdinand-Vandry               Quebec, PQ
Universite Laval                                 G1M 2S8
Quebec, PQ                                         Tel: 418-529-9141
G1K 7P4                                             Fax: 418-529-3699
Tel: 418-656-7935
Fax: 418-656-5476

++++++++++++++++++++++++++++++++++++++++++++++++
Program Cut - Contact Dr. McFadyen if interested
++++++++++++++++++++++++++++++++++++++++++++++++

========================================================================

From: jharlaar@cca.vu.nl (Jaap Harlaar)

Hi,
if you consider the splining of the data as the hardest part of the ensemble-
averaging, you should look at the signal processing toolbox of Borlands'
Turbo-Pascal. They include some very nice procedures, which will make
it easy to do.
Success!

Jaap Harlaar

=============================================================================

Greg,

Hi, I don't know if you remember, but we met at the NACOB meeting in Chicago
a few years back.  At the time I was with the Texas Sports Science
Institute.  I saw your message on the Biomech-L about normalizing data in
gait studies.  I have a cubic spline written in Quick Basic that will do
what you want in a fairly straight forward manner.  It is easy to understand
and use and is written as a subroutine that can be incorporated into a data
analysis program.  If you want it I'll send it to you.  Another program that
I have started using over the last few months is MatLab.  It is an extreemly
powerful matrix based math program for which you can by tool kits for doing
signal processing including splines and interpolations.  The cost is high
(over a thousand) but it is very versital.

I am in the process of moveing my office so my e-mail will take a while to
get to me.  If you are in a hurry you can call me direct at (713) 483-3730.
Let me know if you think you can use what I have.

Have a great holiday season,

Steve Ingram,  Krug Life Science @ Johnson Space Center, NASA


++++++++++++++++++++++++++++++++++++++++++++++
Program Cut - Contact Dr. Ingram if interested
++++++++++++++++++++++++++++++++++++++++++++++

Want to know more? Email the CGA list! [n/a]

Back to Clinical Gait Analysis home page