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.