What are the details of the Woltring Filter?

There are several references available that pertain to the Woltring Filter. In-depth information about this filter can be found at the International Society of Biomechanics web page. The direct web address is:


There are numerous resources at this site that explain the Woltring filter as well as a link to download the original Fortran code.

The question of Butterworth vs. Woltring is actually not that complex a question. From the above-stated web, Woltring has shown that spline smoothing is equivalent to a double Butterworth filter. The difference is that with splines it is possible to process data with unequal sampling intervals and the boundary conditions are well defined, and in the text Three-Dimensional Analysis of Human Movement by Allard, Stokes, and Blanchi, on page 93 under the section: Spline Package GCVSPL. For periodic, equidistantly sampled splines, the equivalence with the double Butterworth filter (Equation 5.14) can be demonstrated via a Fourier transformation and a variational argument.

So essentially, using a Woltring filter is equivalent to using a Butterworth filter. Because the Butterworth filter is an analog filter that has been in use for a long time, you would naturally expect to find many references that use this filter. The history of the Woltring filter is relatively young, therefore its use may not be as well documented. The development of this filter was designed to apply more specifically to kinematic data which is prevalent in biomechanics research.

The MSE setting (mean squared error) and GCV setting (General Cross Validation) are documented in the website listed above.

Our own investigation yielded this response: GCV makes an estimate of noise by doing General Cross Validation for all the data points and uses some statistical processes to choose a noise level with which to filter to give the final results. The MSE method allows you to simply type the noise level in, and the spline is fitted to the data points allowing the given level of tolerance. The units are in mm^2. This processing method is thus quicker and ensures the same level of smoothing for all trajectories, whereas the GCV smoothing can vary from trajectory to trajectory. It is arguable which approach is better. If a particular site is very familiar with the details of this filter, they could measure the noise in their system and apply an appropriate MSE value. In truth, the MSE option allows people who want to get graphs as smooth as VCM to do that, by experimenting with their values.

Our implementation was taken directly from the work done by Herman Woltring.

See his original work in the following:

  • Woltring, H.J. (1986) A FORTAN package for generalized cross-validatory spline smoothing and differentiation. Advances in Engineering Software, 8(2), 104-113.

In addition, Mr. Woltring wrote up this topic in Chapter 5 (Smoothing and Differentation Tewchniques Applied to 3-D Data) in a text dedicated to the topic. This text, Three-Dimensional Analysis of Human Movement was edited by Paul Allard, Ian A.F. Stokes, and Jean-Pierre Blanchi. It was copyrighted in 1995 and published by Human Kinetics. They can be reached at 800-747-4457 or at http://www.humankinetics.com

Some others that may be useful:

  • Dohrmann, C.R., Busby, H.R., & Trujillo, D.M. (1988). Smoothing Noisy Data Using Dynamic Programming and Generalized Cross-Validation. ASME Journal of Biomechanical Engineering, 110, 37-41.
  • Craven, P., & Wahba, G. (1979). Smoothing Noisy Data with Spline Functions, Estimating the Correct Degree of Smoothing by the Method of Generalized Cross-Validation. Numerical Mathematics, 31, 377-403.
  • Busby, H.R., & Trujillo, D.M. (1985). Numerical Experiments With a New Differentiation Filter. Journal of Biomechanical Engineering, 107, 293-299.
  • Hodgson, A.J. (1994). Considerations in Applying Dynamic Programming Filters to the Smoothing of Noisy Data. ASME Journal of Biomechanical Engineering, 116, 528-531.
  • Trujillo, D.M., & Busby, H.R. (1983). Investigation of a Technique for the Differentiation of Empirical Data. Journal of Dynamic Systems, Measurement, and Control, 105, 200-202.
  • Cappello, A., La Palombara, P.F., & Leardini, A. 1996. Optimization and Smoothing Techniques in Movement Analysis. International Journal of Bio-Medical Computing, 41, 137-151.
  • Corradini, M.L., Fioretti, S., & Leo, T. (1993). Numerical Differentiation in Movement Analysis: How to Standardise the Evaluation of Techniques. Medical & Biological Engineering & Computing, 31, 187-197.
  • Dujardin, F.H., Ertaud, J.Y., Aucouturier, T., Nguen, J., & Thomine, J.M. (1997). Smoothing Technique Using Fourier Transforms Applied to Stereometric Data Obtained From Optoelectronic Recordings of Human Gait. Human Movement Science, 16, 275-282.
  • Fioretti, S. (1996). Signal Processing in Movement Analysis (a state-space approach). Human Movement Science, 15, 389-410.
  • Giakas, G., & Baltzopoulos, V. (1997). A Comparison of Automatic Filtering Techniques Applied to Biomechanical Walking Data. Journal of Biomechanics, 30, 847-850.
  • Vint, P.F., & Hinrichs, R.N. (1996). Endpoint error in Smoothing and Differentiating Raw Kinematic Data: An Evaluation of Four Popular Methods. Journal of Biomechanics, 29, 1637-1642.
Still need help?