Opensim low pass filter question

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
James Buffi
Posts: 6
Joined: Tue Jul 06, 2010 9:27 am

Opensim low pass filter question

Post by James Buffi » Fri Oct 18, 2013 8:19 am

Does anyone know what type of low pass filter opensim uses to filter joint angle data for inverse dynamics, RRA, etc? At what point in the process is the filter applied?

User avatar
Ajay Seth
Posts: 136
Joined: Thu Mar 15, 2007 10:39 am

Re: Opensim low pass filter question

Post by Ajay Seth » Sun Nov 03, 2013 11:48 pm

For the InverseDynamicsTool and AnalyzeTool the joint angles are filtered using a 3rd order lowpass IIR Butterworth digital filter. The RRATool (and CMCTool) use a lowpass FIR nonrecursive filter, with the order set to 50 with the following reference: http://www.dspguide.com/CH16.PDF
In both cases they are filtered prior to being fitted by GCVSplines and the splines are differentiated to provide velocity and acceleration information.

User avatar
James Buffi
Posts: 6
Joined: Tue Jul 06, 2010 9:27 am

Re: Opensim low pass filter question

Post by James Buffi » Wed Nov 06, 2013 3:15 pm

Thanks Ajay!

User avatar
Antoine Falisse
Posts: 439
Joined: Wed Jan 07, 2015 2:21 am

Re: Opensim low pass filter question

Post by Antoine Falisse » Wed Aug 31, 2016 2:00 am

I have another question related to the low pass filter used in the InverseDynamicsTool.

If I am right, the filter is a dual pass 3rd order filter. Is it thus right to say that, due to the dual pass, the effective cutoff frequency is lower than the selected cutoff frequency? This follows what is discussed in those threads: http://biomch-l.isbweb.org/threads/2662 ... !!!)/page2 and http://biomch-l.isbweb.org/threads/2500 ... #post27431.

If the desired cutoff frequency is 6 Hz, we should thus adjust the selected frequency to 6/0.8634 = 6.9493 Hz in OpenSim to obtain the desired response. I don't think this adjustment is made in OpenSim (https://github.com/opensim-org/opensim- ... Signal.cpp).

Could anyone confirm? I am trying to compare two models/workflows and I want to make sure I am using the same filter. Many thanks.

Ps: 0.8634 = (sqrt(2)-1)^(1/(2*3)) where 3 is the order of the filter.

POST REPLY