Van Den Bogert, Ton

06-13-2008, 12:10 AM

Emma Pratt wrote:

> Can anyone suggest some experimental techniques that will

> highlight the relative problems of using the GCV smoothing

> and different values of MSE in the Woltering filter routine,

> for gait analysis?

There was a related question today by Julius Verrel.

I may be one of the earliest users of GCVSPL, Herman Woltring sent it to

me on a 9 track tape in 1985. This eventually led to the formation of

Biomch-L, but that is a different story.

GCVSPL can be used in three modes: GCV, MSE, and fixed smoothing. I am

writing the following from memory, please consult the documentation for

authoritative information. Also I recommend reading Woltring's 1985

paper in Human Movement Science. That paper presents some tests on

actual data.

The Generalized Cross Validation (GCV) mode determines the optimal

amount of smoothing based on statistical analysis of the signal. The

amount of smoothing is chosen such that you get minimal error in

estimating a data point that was left out. While this is intuitively

appealing, I quickly found out that this does not always give good

results. If the noise is not perfectly uncorrelated and Gaussian, GCV

may think that some of your noise contains useful information, and do

insufficient smoothing. This may not be apparent when you look at joint

angles, but if you do inverse dynamic analysis, joint moments (which

contain second derivatives) may become too noisy.

The MSE mode is useful if you know the magnitude of the noise. In this

mode, GCVSPL will increase the amount of smoothing just enough that the

difference between smoothed signal and original signal is equal to the

square root of the MSE. I found this to be give better results than

GCV. For instance, if your raw data is motion capture data (in mm) and

you know your noise is 0.5 mm, set MSE to a value of 0.25 to get the

desired result. If it is not smooth enough, you probably underestimated

the noise level and you can try a higher MSE.

In fixed smoothing, you set the amount of smoothing (p value) yourself.

This is the fastest mode because it does not involve iteration. In the

release notes, Woltring explains that (except for boundary effects) the

GCVSPL acts like a Butterworth filter, and there is a relationship

between p and the cutoff frequency. This is how I always use GCVSPL

now. The advantage is that you can report your cutoff frequency when

describing Methods and this relates to other filtering methods. It also

avoids the situation that every trial is smoothed differently.

If you use GCVSPL this way, it does not really do anything different

than a Butterworth filter, with the following differences:

- Different results near the beginning and end of data. What is "near"

depends on the cutoff frequency.

- GCVSPL can process data that is not sampled at a constant sampling

rate (but large gaps are not interpolated well!)

- GCVSPL can resample filtered data at arbitrary time points

- GCVSPL can calculate signal derivatives from splines, without finite

differences

For most applications, you can use a Butterworth filter (e.g. Matlab

functions "butter" and "filtfilt") and get the same results.

By the way, there have been several Matlab interfaces developed for

GCVSPL, and they can be found in the ISB software repository

(www.isbweb.org). These may need to be updated for new Matlab versions.

ISB also has the original Fortran code and an Windows/MSDOS command-line

interface which I adapted from Woltring's original test program.

Finally a specific answer to Julius' question: from the above

explanation it should be clear that there is no relationship between MSE

and cutoff frequency. In MSE mode, the cutoff frequency will depend on

the MSE value you provide, and on the signal. If it is a very low

frequency signal, the cutoff frequency will be lower. Afterwards,

GCVSPL tells you which p value it used, and you can convert this into a

cutoff frequency (in Hz) using the formula in the GCVSPL release notes.

There are probably other relevant postings in the Biomch-L archives,

search for "GCVSPL".

Ton van den Bogert

--

A.J. (Ton) van den Bogert, PhD

Department of Biomedical Engineering

Cleveland Clinic Foundation

http://www.lerner.ccf.org/bme/bogert/

P Please consider the environment before printing this e-mail

Cleveland Clinic is ranked one of the top hospitals

in America by U.S. News & World Report (2007).

Visit us online at http://www.clevelandclinic.org for

a complete listing of our services, staff and

locations.

Confidentiality Note: This message is intended for use

only by the individual or entity to which it is addressed

and may contain information that is privileged,

confidential, and exempt from disclosure under applicable

law. If the reader of this message is not the intended

recipient or the employee or agent responsible for

delivering the message to the intended recipient, you are

hereby notified that any dissemination, distribution or

copying of this communication is strictly prohibited. If

you have received this communication in error, please

contact the sender immediately and destroy the material in

its entirety, whether electronic or hard copy. Thank you.

> Can anyone suggest some experimental techniques that will

> highlight the relative problems of using the GCV smoothing

> and different values of MSE in the Woltering filter routine,

> for gait analysis?

There was a related question today by Julius Verrel.

I may be one of the earliest users of GCVSPL, Herman Woltring sent it to

me on a 9 track tape in 1985. This eventually led to the formation of

Biomch-L, but that is a different story.

GCVSPL can be used in three modes: GCV, MSE, and fixed smoothing. I am

writing the following from memory, please consult the documentation for

authoritative information. Also I recommend reading Woltring's 1985

paper in Human Movement Science. That paper presents some tests on

actual data.

The Generalized Cross Validation (GCV) mode determines the optimal

amount of smoothing based on statistical analysis of the signal. The

amount of smoothing is chosen such that you get minimal error in

estimating a data point that was left out. While this is intuitively

appealing, I quickly found out that this does not always give good

results. If the noise is not perfectly uncorrelated and Gaussian, GCV

may think that some of your noise contains useful information, and do

insufficient smoothing. This may not be apparent when you look at joint

angles, but if you do inverse dynamic analysis, joint moments (which

contain second derivatives) may become too noisy.

The MSE mode is useful if you know the magnitude of the noise. In this

mode, GCVSPL will increase the amount of smoothing just enough that the

difference between smoothed signal and original signal is equal to the

square root of the MSE. I found this to be give better results than

GCV. For instance, if your raw data is motion capture data (in mm) and

you know your noise is 0.5 mm, set MSE to a value of 0.25 to get the

desired result. If it is not smooth enough, you probably underestimated

the noise level and you can try a higher MSE.

In fixed smoothing, you set the amount of smoothing (p value) yourself.

This is the fastest mode because it does not involve iteration. In the

release notes, Woltring explains that (except for boundary effects) the

GCVSPL acts like a Butterworth filter, and there is a relationship

between p and the cutoff frequency. This is how I always use GCVSPL

now. The advantage is that you can report your cutoff frequency when

describing Methods and this relates to other filtering methods. It also

avoids the situation that every trial is smoothed differently.

If you use GCVSPL this way, it does not really do anything different

than a Butterworth filter, with the following differences:

- Different results near the beginning and end of data. What is "near"

depends on the cutoff frequency.

- GCVSPL can process data that is not sampled at a constant sampling

rate (but large gaps are not interpolated well!)

- GCVSPL can resample filtered data at arbitrary time points

- GCVSPL can calculate signal derivatives from splines, without finite

differences

For most applications, you can use a Butterworth filter (e.g. Matlab

functions "butter" and "filtfilt") and get the same results.

By the way, there have been several Matlab interfaces developed for

GCVSPL, and they can be found in the ISB software repository

(www.isbweb.org). These may need to be updated for new Matlab versions.

ISB also has the original Fortran code and an Windows/MSDOS command-line

interface which I adapted from Woltring's original test program.

Finally a specific answer to Julius' question: from the above

explanation it should be clear that there is no relationship between MSE

and cutoff frequency. In MSE mode, the cutoff frequency will depend on

the MSE value you provide, and on the signal. If it is a very low

frequency signal, the cutoff frequency will be lower. Afterwards,

GCVSPL tells you which p value it used, and you can convert this into a

cutoff frequency (in Hz) using the formula in the GCVSPL release notes.

There are probably other relevant postings in the Biomch-L archives,

search for "GCVSPL".

Ton van den Bogert

--

A.J. (Ton) van den Bogert, PhD

Department of Biomedical Engineering

Cleveland Clinic Foundation

http://www.lerner.ccf.org/bme/bogert/

P Please consider the environment before printing this e-mail

Cleveland Clinic is ranked one of the top hospitals

in America by U.S. News & World Report (2007).

Visit us online at http://www.clevelandclinic.org for

a complete listing of our services, staff and

locations.

Confidentiality Note: This message is intended for use

only by the individual or entity to which it is addressed

and may contain information that is privileged,

confidential, and exempt from disclosure under applicable

law. If the reader of this message is not the intended

recipient or the employee or agent responsible for

delivering the message to the intended recipient, you are

hereby notified that any dissemination, distribution or

copying of this communication is strictly prohibited. If

you have received this communication in error, please

contact the sender immediately and destroy the material in

its entirety, whether electronic or hard copy. Thank you.