Announcement

Collapse
No announcement yet.

Filtering issue of GRF data

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Filtering issue of GRF data

    Hello,

    This is Youngmin Chun and I am a doctoral student at the University of Idaho. I have a issue with filtering GRF data while I am processing data. As you can see below, the vGRF data is fluctuating even before the initial contact to the ground after filtering whereas the raw data didn't display it. Also, the magnitude of changes is increased when I changed the order of Butterworth filter from 2nd to 4th order. The signal was filtered using MATLAB, but the same issue appears on V3D as well. It will be a big issue to detect the initial contact if the filtered signal exceeds 20 N (threshold of initial contact). If anyone knows why the signal is changed before the initial contact or how to solve it, please let me know.
    SharedScreenshot1.jpg
    2ndand4thorder.jpg

  • #2
    Re: Filtering issue of GRF data

    The reason that your GRF starts changing before heelstrike is that you used a zero-lag filter, so the filter runs twice: forward and then backward in time. This is the standard type of filter and that is not necessarily wrong.

    Also, when going backward in time, there is a very sudden change in the first derivative of the GRF, which causes "ringing" of the filter. This is worse in higher order filters, as you already demonstrated. I would use the 2nd order.

    If you use the GRF to detect heelstrike, you may want to do it on the raw data, or use a filter that runs forward in time only (Matlab: filter, instead of filtfilt).

    If you use the GRF for inverse dynamic analysis, it is recommended to use the same filter as the filter that is used for the kinematic data [1]. If the kinematic data has an acceleration caused by impact, and you calculate acceleration after using a zero-lag filter on the kinematics, that acceleration will start before heelstrike. So, to keep the analysis consistent, so that F=ma remains valid, the GRF must be filtered with the same zero-lag filter so it also starts before heelstrike.

    For other uses of the GRF, you may be better off not filtering.

    Ton van den Bogert

    [1]Kristianslund W, Krosshaug T, van den Bogert AJ (2012) Effect of low pass filtering on joint moments from inverse dynamics: Implications for injury prevention. J Biomech 45: 666-671

    Comment


    • #3
      Re: Filtering issue of GRF data

      Dr. van den Bogart,

      I really appreciate it for your answer. I will look up and read your paper for more details.

      Comment


      • #4
        Re: Filtering issue of GRF data

        To add to the points raised on filtering of marker and GRF data prior to inverse dynamics.

        It is recognized that foot impacts produce high frequency changes in 3D marker and GRF data, and an unsuitable low pass filter (LPF) will introduce error (oscillations) into the filtered data about the point of contact. The lower the cut off frequency the greater the error and oscillations introduced to the filtered data due to the limits the filter imposes on the maximum rate of change of the filtered data when traversing the point of impact.

        A classic example of unsuitable LPF’s are seen in the analysis knee moments during landing, running and side stepping. Where 3D marker coordinate data have been LPF with cut-off 5-20Hz. This introduces large errors in the coordinated data and in turn oscillations in segment location relative to its true location and a mismatch to GRF data. Producing large oscillations (errors) observed in joint moments post foot impact.

        The incorrect solution is to low pass filter the GRF data with the same filter used on the coordinate data. This introducing error into GRF data in an attempt to make bad joint moment data look better without addressing the original errors. The lower the cut-off will reduce the oscillations in joint moments (10Hz, Kristianslund et al. 2012) but at the expense of validity and loss of any usefulness of the segment, GRF and joint moment data.

        If your objective is to measure joint angles and joint moments during impact and loading response then the common suggestions that you should filter walking data at 6-10Hz and running data at 10-20Hz are wrong. This does not consider the study objectives, presence of impacts or the errors introduced by such low pass filtering on marker or GRF data. With loading response of about 100ms and conservative estimated frequency of 10Hz a minimum low pass filter for the GRF data could be estimated at 5x the frequency of interest, giving minimum of 50Hz LPF for walking.
        Examples of different LPF filters on GRF are attached. For walking GRF a LPF greater than 50Hz would be recommended. For running and landing (ie. Impacts) greater than >100Hz. While the initial jump of a CMJ could be filtered as low as 20Hz, if the landing was included in the analysis then >100Hz would be necessary. The use of a LPF below 20Hz cut-off will make GRF unusable in all cases.

        The correct solution to remove these oscillation in joint moment data is do not filter 3D marker data. GRF, filter yes but only with a 200Hz low pass filter or similar to remove high frequency noise. The second step is to use suitable models, markers and methods in your 3D approach.

        Not entirely answering your original question.

        Allan Carman
        Attached Files

        Comment


        • #5
          Re: Filtering issue of GRF data

          Dr. Carmen,

          I appreciate it for the reply. It's very helpful for me. I am about to filter my data (drop jump) following power spectral density analysis. The calculated optimal cut-off frequencies were 11 Hz for marker trajectory data and 79 Hz for GRF data, which seems to be in line with your recommendation. Thank you again.

          Comment


          • #6
            Re: Filtering issue of GRF data

            Needless to say, I disagree with Allen Carman on this.

            Allen: your GRF plots clearly illustrate the same effect that was already shown by the OP: a low pass filter will spread out the impact peaks over time. And a zero-lag filter (as you used) will show GRF starting earlier, even before there is physical contact. This may seem wrong, but my point is that you are doing the same thing to the acceleration. If you do an inverse dynamic analysis, you use sum(F) = m*a to solve for unknown forces. If the acceleration and GRF have not been filtered in the same way, you get impact artifacts in the calculation of joint loads.

            In real human data, we never know the ground truth for joint loads, but you can demonstrate this with simulated data where the ground truth is known [1]. There are also some papers with real data that show these impact artifacts (but without comparing to ground truth) [2,3].

            If you see very fast changes in joint moments, that is suspicious because joint moments originate from muscles. Muscles are not capable of changing their force so quickly.

            Based on current literature, the consensus is that GRF and kinematics should be filtered with the same filter, when both are used as input for inverse dynamic analysis. Any statement to the contrary requires supporting data or citations, which you did not provide.

            If GRF and kinematics are not combined into inverse dynamic analysis, matched filtering is nto required and the PSD analysis is indeed a good way to decide how to filter them.

            Oscillations can be prevented by using low-order filters. I would never go above 2nd order. The underlying reason for this is that the drop off of the response needs to be gradual, and the optimal frequency response depends on the power spectrum of signal and noise. The theory behind this comes from the Wiener filter, and the principle has also been demonstrated in biomechanics [4].

            Time advance can be prevented by only filtering forward in time. This introduces time lag, but if all signals are processed with the same filter, this does not matter. I think it is best to avoid zero lag filters (unless needed for other reasons). Zero lag filters will double the filter order and decrease the cutoff frequency.

            So my preferred approach is: second-order Butterworth filter, forward in time only, same for GRF and kinematics, experiment with the (single) cutoff frequency until the output of the analysis has a good signal to noise ratio. This is subjective. I like to make the cutoff frequency as high as possible, so some noise is visible but not so much that the signal is overwhelmed. This sort of subjective experimentation is feasible because you have only one cutoff frequency.

            When you do ensemble averaging (multiple trials or multiple gait cycles), this reduces the noise also so you can then set the filter at a higher frequency and still get good results. You can even try without any filtering at all.

            Ton

            [1] van den Bogert AJ, de Koning JJ (1996) On optimal filtering for inverse dynamics analysis. Proc. 9th Congress of the Canadian Society for Biomechanics, Burnaby, B.C., Canada, pp. 214-215. https://isbweb.org/data/invdyn/
            [2] Bisseling RW, Hof AL (2006) Handling of impact forces in inverse dynamics. J Biomech 39: 2438-2344.

            [3] Kristianslund W, Krosshaug T, van den Bogert AJ (2012) Effect of low pass filtering on joint moments from inverse dynamics: Implications for injury prevention. J Biomech 45: 666-671.
            [4] Hatze H (1981) The use of optimally regularized Fourier series for estimating higher order derivatives from noisy biomechanical data.

            Comment


            • #7
              Re: Filtering issue of GRF data

              What about filtering the moments themselves? That is suggested by this paper:

              https://www.ncbi.nlm.nih.gov/pubmed/21727008

              Ross

              Comment


              • #8
                Re: Filtering issue of GRF data

                I forgot about that paper, but yes, that is entirely valid. In fact, possibly even better. You should do no filtering at all, and only filter the final joint load trajectories to separate the signal from the noise. The advantage is that you are not filtering the position data (which does not need filtering), only the accelerations.

                Filtering accelerations and GRF before inverse dynamic analysis (with the same filter), or filtering joint loads afterwards, should give identical results, because the relationship between joint loads, ground reaction forces, and accelerations is linear.

                Ton

                Comment


                • #9
                  Re: Filtering issue of GRF data

                  I think that if you are going to filter the force plate data then the the best way to do this is to start by recording the force and moment data at a high sample rate so that you can see what is actually happening. You can then filter the data after collecting it and review the filtered results to see what has happened. The ability to review the raw data in any data collection environment is very useful.

                  When I worked for Oxford Metrics, setting up gait labs in the 80's, the majority of labs in North America installed AMTI force plates which offered two hardware filter settings, 1050Hz or 10.5Hz, for the force and moment data. If the lab was using the Helen Hayes Software (HHS) then we had to set the filter to 10.5Hz because the HHS analysis did not perform any significant internal filtering, and without the filters the gait reports would look very noisy. A 10.5Hz filter generated nice clean gait plots but occasionally I would be asked to diagnose problems when a normal gait didn't return a "normal" report.

                  This usually involved visiting the lab, walking over the plates myself and then trying to figure out what was happening. Typically I would find that a force plate mounting was loose or that a raised floor support was tapping on a mounting plate as the subject approached the plate. After a lot of sessions I figured out that the best way to find the problem, without requiring a day on site, was to sample at a high rate, set the AMTI filters to 1050Hz, and then review the raw analog data. This could show ghost forces and moments if the problem was close to the force plate, or an adjacent plate, and typically a lot of high frequency ringing if the mounting plate was to not secured or the force plate was loose on the mounting plate. The high frequency ringing did not show up as ringing when the force plate filters were set to 10.5Hz but did affect the generated signals. Once I discovered this, I would install the force plates and do all the initial setup tests at a high sample frequency and bandwidth before configuring the force plate amplifiers to meet the HHS requirements by setting the AMTI filters to 10.5Hz.

                  Seeing noise in the force signals when there was nobody on the plate was very always a useful diagnostic information - an ability that has been removed these days when data collection systems only report forces and moments when there is a foot on the plate, ignoring external noise that can affect the recorded signals.

                  One factor that we never discussed at the time was how much latency would be introduced by the 10.5Hz force and moment filters, and the effect that it probably had on the reported forces and moments.

                  Comment


                  • #10
                    Re: Filtering issue of GRF data

                    Ed Cramp's stories from the trenches are always enlightening!

                    We're getting a bit off the original topic, but I totally agree with Ed's comment that raw data, at high sampling rate, should be available for inspection. It always annoys me when the equipment vendors try to "help" us by doing some processing before we get to see the data.

                    We need to see the noise, and we need to see the non-zero forces that occur when someone walks on the floor near the force plate.

                    If I remember correctly, Cortex (Motion Analysis Corp.) could make the ground reaction forces zero when below a certain threshold. This makes the visualization more clear, but if the data is recorded that way, problems are hidden. This feature was turned on by default, and not in saved settings, so after starting up, we always needed to turn this off manually.

                    Hopefully nobody is using hardware filters at 10.5 Hz anymore... Real-time (analog or digital) filters introduce a time delay in the data which would be a nightmare for any efforts at synchronization. At 10.5 Hz, that is probably about 70 ms.

                    Ton van den Bogert

                    Comment


                    • #11
                      Re: Filtering issue of GRF data

                      Ton,

                      Although we appear to have different views on the cause of the oscillations and the most appropriate methods to eliminate these, and not just smooth them over. We probably would agree on the need for greater critical attention and research into the validity and reliability of 3DMA methods. The oscillations which have been seen in joint moments by some studies being one.

                      Ton “If you see very fast changes in joint moments, that is suspicious because joint moments originate from muscles. Muscles are not capable of changing their force so quickly”.


                      Absolutely. What needs to be done is to understand what in the model design and analytical methods is giving rise to these oscillations. Then take appropriate steps to correct methods to remove these oscillations.

                      Ton “Based on current literature, the consensus is that GRF and kinematics should be filtered with the same filter, when both are used as input for inverse dynamic analysis. Any statement to the contrary requires supporting data or citations, which you did not provide.”

                      You are right in there is need for supporting data and publications. This filtering debate was first brought to my attention when a PhD student came to me concerned with large oscillations in joint moment data following foot impact in fast side stepping. The 3D marker data were filtered. The advice from the supervisor was to filter the GRF data to reduce these oscillations (similar to Kristianslund et al. 2012). Which brought into questioning the validity of the results with such heavily filtered 3D marker and GRF data. It also goes against what we understand about impact duration, frequencies of interest, sampling rates and filtering. In addition the results of interest during loading are now highly dependent on the filter you choose (10-15-20Hz). My advice was simple, don’t filter the 3D marker data, filter GRF but with a high cut-off to remove noise, and switch to a cluster, 6df least squares approach. The oscillations vanished. What would have been interesting would have been to determine how much of the error was the results of the poor filtering and how much resulted from the model (a lower body constrained joint 3df model).

                      Ton “Oscillations can be prevented by using low-order filters. I would never go above 2nd order. The underlying reason for this is that the drop off of the response needs to be gradual, and the optimal frequency response depends on the power spectrum of signal and noise. The theory behind this comes from the Wiener filter, and the principle has also been demonstrated in biomechanics [4].”

                      A key word here is prevented. The oscillation may be partly introduced by an inappropriately low cut-off for a LPF relative to the higher frequencies present in 3D marker and GRF data at impact. There is also an element due to the 3D model used and possibly to a lesser extent high frequency oscillations of the plate itself with forceful landings, such as drop jumps. One method to prevent is not filtering 3D data, it is not necessary, as well as ensuring a suitably high cut-off (100-200 Hz) for GRF data, and appropriate model design, particularly reconstructing foot location. The improved results you see with a low order filter (2nd order) may be due to the larger leak of higher frequencies above the cut-off into the filtered data. Going to a 1st or 2nd order filter and lowering the cut-off (10Hz) does not prevent oscillations but attempts to hide the inaccuracies.

                      Ton “Time advance can be prevented by only filtering forward in time. This introduces time lag, but if all signals are processed with the same filter, this does not matter. I think it is best to avoid zero lag filters (unless needed for other reasons). Zero lag filters will double the filter order and decrease the cutoff frequency.”

                      The aim is validity and reliability, it does matter. To filter GRF data use a 4th order zero lag LPF with a high enough cut-off frequency to remove random noise without substantial attenuating/distorting the signal. As shown previously with a >100Hz, 4th order, zero lag LPF for filtering GRF involving impact (running, landing, side stepping, drop jumps). Passing data twice for a zero lag filter does lower the cut-off frequency and increase the attenuation of high frequencies (see diagram). However the effect is more pronounced the lower the order of the filter. Therefore I would recommended and common practice to use a 4th order zero lag Butterworth digital filter with an analysis of residuals to choose appropriate cut-off to remove noise but preserve signal (Burkhart et al. 2011). Zero lag filters do not double the order of the filter.

                      Ton “So my preferred approach is: second-order Butterworth filter, forward in time only, same for GRF and kinematics …”

                      Do not agree with this and cannot see any reason to do this.
                      However:

                      Ton “I like to make the cut-off frequency as high as possible

                      I agree. If you were to LPF then the cut off needs to be as high as possible to remove noise and based on an understanding of noise and expected signal.
                      This does contradict Kristiansland et al. (2012) who are suggesting matching frequencies with a very low cut-off (10Hz) for both 3D marker and GRF data to reduce oscillations. The article does start with the incorrect assumption that filtering of both force and marker trajectories is needed.

                      Then unexpectedly:
                      Ton “You can even try without any filtering at all.” and
                      Ton “… but yes, that is entirely valid [Edwards et al., 2011; no filtering of 3D marker data, post filtering of moment data]. In fact, possibly even better. You should do no filtering at all, and only filter the final joint load trajectories to separate the signal from the noise. The advantage is that you are not filtering the position data (which does not need filtering), only the accelerations.”

                      Yes, this is my point: do not filter 3D data. The why is based on an understanding of errors introduced by the model (joint constraints) and the post processing used (filtering, gap filing). You may not need to filter force or moment data either considering the least squares approach (6 markers per segment) and generating ensemble averages (6-12 curves).

                      There is another reason why you don’t filter 3D coordinate data. 3D markers are prone to errors in the 3D reconstruction process. Seen as step discontinuities in tracked marker paths, such as markers switching from 3 to 2 cameras, phantom points being included in a path or incorrectly reconstructed or identification. A good least squares procedure can identify frames of high segment RMS error and remove or correct offending markers when reconstructing segment axes from a marker cluster. Smoothing these errors into the path prevents their identification and removal and adversely effects accuracy of segment location. I would like to see reporting of segment RMS errors (difference between 3D markers and the same reconstructed from segment location and fixed local coordinates of the markers).

                      Going back to an earlier statement:
                      Ton “Based on current literature, the consensus is that GRF and kinematics should be filtered with the same filter, when both are used as input for inverse dynamic analysis…”

                      As you would have guessed I do not agree if this reflects the current literature or consensus. I would say the majority who filter 3D marker data do so because that is just how it has been done without too much critical thought as to why or the implications; but you should certainly know where I stand on filtering 3D marker data.

                      The same goes for gap filing, largely done because it is expected and it has always been done. Again, unnecessary and a poor practice that introduces error. The best way to fill in a missing path if it is essential is to reconstruct the segment axes with a least squares approach based on all available markers and virtual joint centres. Then fill in the missing pieces based on the reconstructed segment.

                      cheers
                      Allan
                      Attached Files

                      Comment


                      • #12
                        Re: Filtering issue of GRF data

                        If you can get good results without filtering, by all means do it that way!

                        Filtering was big issue in the 1980s when data came from hand-digitized 16 mm film, and was very noisy. Filtering was necessary and results were sensitive to how the filtering was done. Old-timers like me have trouble letting go of that mindset.

                        Nevertheless, I always try to set the filter cut off as high as possible. Some years ago, we had some arm motion data from throwing, and I was surprised to see that the angular accelerations could be clearly seen above the noise without any filtering. We should be open-minded. As long as motion and force data are treated the same way.

                        The need for filtering depends on noise level and sampling rate in the data, and the amplitude of the real acceleration signal.

                        Accelerations are normally calculated by finite differences. If the noise level in marker data is P, and sampling frequency is F, the noise level in velocity data is sqrt(2)*P*F (sqrt(2) instead of 2 because two samples of position data have independent random errors). The noise level in acceleration will be again a factor sqrt(2)*F larger, so 2*P*F^2.

                        Let's say we are looking at running. If marker data has noise of 0.5 mm, and is sampled at 200 Hz, the accelerations have a noise level of 0.001 * (200)^2 = 40 m/s2. The true acceleration of lower extremity body segments is in the order of 5 g [1], so the noise level is 80% of the signal. Filtering seems necessary in this case, and this will be discovered by the procedure I always use: start with a very high filter frequency (for both markers and GRF). Examine the variables of interest (joint moments), and repeat the analysis while gradually lowering the filter frequency until the signal to noise ratio is acceptable. This is subjective, and the criterion depends on what you want to do with the results. If a peak moment value is needed, it will always be overestimated when there is noise. But this will be the same in all subjects and all conditions, so may not affect statistical analysis.

                        I agree on gap filling for marker data, it should not be necessary. Unless too many markers drop out, inverse kinematic analysis will still work with missing markers. Virtual markers use single-segment kinematic models. Full IK can tolerate even more marker drop out and is more robust (but requires joint models with less than 6 DOF).

                        Ton

                        [1] Lafortune MA (1991) Three-dimensional acceleration of the tibia during walking and running. J Biomech 24: 877-886.

                        Comment


                        • #13
                          kneepow2.gifI've long suspected the first positive power burst at the knee in gait is an artifact caused by mismatch in the filtering around heel-strike. I think this must have been the reason David Winter ignored it and labelled the next (negative) power burst "K1". This would make an excellent student project.
                          Last edited by Chris Kirtley; June 10th, 2020, 01:36 AM. Reason: Added piicture

                          Comment

                          Working...
                          X