There is a small amount of jitter in the x and y data positions when digitizing video motion. For small length scales and/or small image sensor size, that jitter is amplified when calculating the velocity and acceleration. This is especially noticeable in the acceleration data, and creates significant noise effects.
You made a feature request for a smoothing algorithm for position data to reduce the noise in the velocity and acceleration. I have considered this in the past but have not implemented it because of the potential for overuse by students. I think that it is important for students to grapple with the noise in order to learn about uncertainties, and smoothing algorithms that "hide" the jitter may give them a false confidence in the results.
If you really want smoothing, you can always copy and paste the raw Tracker data into a data analysis program with that feature.
I would be interested in hearing others' opinions on this question, though. How many people would use smoothing?
I can see and understand your hesitation for implementing a smoothing option directly into Tracker.
What about including a framework for adding custom algorithms? I believe Tracker uses a three-point differentiation formula for the velocity calculation. With a custom algorithm a user could choose to implement (program) a different formula for differentiation, such as a five-point formula.
Other uses of a custom algorithm would allow for extrapolation and interpolation. Calculation of the n-th time derivative of the position data (jerk, jounce, etc). Various integration algorithms using the calculated velocity and/or acceleration data.
I am currently exporting the data and running a smoothing algorithm in another program. I would love to be able to keep all the calculations contained within the tracker file. It makes going back to old data much easier.
Yes, I could probably make a way for users to add custom algorithms and that might be a good idea. As you probably know, there is a built-in custom "Bounce Detection" algorithm (right-click plot, choose Algorithms) so there is already the beginning of a custom algorithm framework. But this is in the tracker.jar, and you need a way to add the algorithm(s) at runtime. I will need to learn how to make this possible, but I won't have time to do that right away.
Thanks for the suggestion, it's a good one. I'll keep you apprised when I get to it. Doug
Hi Doug,
I can see and understand your hesitation for implementing a smoothing option directly into Tracker.
What about including a framework for adding custom algorithms? I believe Tracker uses a three-point differentiation formula for the velocity calculation. With a custom algorithm a user could choose to implement (program) a different formula for differentiation, such as a five-point formula.
Other uses of a custom algorithm would allow for extrapolation and interpolation. Calculation of the n-th time derivative of the position data (jerk, jounce, etc). Various integration algorithms using the calculated velocity and/or acceleration data.
I am currently exporting the data and running a smoothing algorithm in another program. I would love to be able to keep all the calculations contained within the tracker file. It makes going back to old data much easier.