Skate Mate

Ally Bell, Charlotte Ramiro, Stella Stark

With this application, we wanted to explore what motion analysis can tell us about a figure skater's skill level and movement on the ice and provide feedback.

Figure 2: The placement of the phone on the ice skater's ankle.

Collecting Data

We used data from the right ankle of skaters with different levels of experience by attaching a phone with the Phyphox accelerator on them. While we used a phone because it was what we had on hand, any device with an accelerometer would be able to replicate the data (for example, an Apple Watch, FitBit, or regular accelerometer sensor). The coordinate system in which we recorded our data can be seen in Figure 1, while the actual position of the phone on the skater can be seen in Figure 2.

In further iterations, we would like to use sensors in different places of the skater. The skater could open an application on their phone or FitBit/watch and be able to put it in their back pocket or wrist and have it buzz when the skater reaches an optimal frequency. Having this notification appear on the wrist or the pocket increases the chance that the wearer will be able to react to the data. Additionally, it makes it so that the wearer does not need to purchase an ankle attachment for the skating device.

Figure 1: The coordinate system on the phone collecting the data.


For our beginner dataset, we took data from a beginner skater with jerky and unstable movements.


For our"intermediate" dataset, we took data from an intermediate skater who was more confident than the beginner but still had imperfect form.


For our "expert" dataset, we took data from a seasoned figure skater with very clean and smooth movements.

The goal of this project is to look at the correlation with frequencies in motion and skill levels ice skating.


The Motion Model

The movement we were analyzing occurs in all three dimensions. In the z direction, there is a movement that quickly accelerates outward in the positive z direction and then accelerates in the negative z direction. This movement creates the 'sway' in the skating path that can be seen in the GIFs. In the x direction, the skater moves their foot slightly forward (positive x) and then it is used to push backwards (negative x). In the y direction, the foot is lifted off the ice (positive y), then pushed back down (negative y). Due to this complex movement, we needed to analyze all three directions of motion.

The Fourier Transform

In order to find the frequencies of interest, we needed to preform a Discrete Fourier transform. The Discrete Fourier Transform allows us to see which frequencies are present in the data, as well as how common those frequencies appear. This was crucial for us, because we needed to compare the frequencies of the data in order to understand the differences between the skating data.

Filtering the Dataset

A crucial part of our code was the filtration process. when we first plotted our data, we found that it was quite noisy. Before we could analyze it, we needed to filter out as much unnecessary fuzz as possible. We are only interested in the frequency and acceleration of the skate hitting the ice, which is shown by the large spikes in the linear acceleration data. The cleaner data set will enable us to make clearer comparisons between our datasets; therefore, we used a 3 point moving average filter, which dampens the variability over the data set. You can see this in action when looking at Figures 3 and 4.

tempallyx = ally_line_xt(:,2);

ally_line_xt_filt = zeros(size(tempallyx));

ally_line_xt_filt(1) = 1/3*tempallyx(1) + 1/3*tempallyx(2);

for k = 2:length(ally_line_xt)-1

ally_line_xt_filt(k) = 1/3*tempallyx(k) + 1/3*tempallyx(k-1) + 1/3*tempallyx(k+1);


ally_line_xt_filt(end) = 1/3*tempallyx(end) + 1/3*tempallyx(end-1);

Figure 3: Filtered vs. unfiltered acceleration data for a beginner in the x direction of motion in the time domain.

Figure 4: The filteres vs. unfiltered data for a beginner in the x direction in the frequency domain.

The Tests

Skater 1 - Beginner

Skater 2 - Intermediate

Skater 3 - Professional

What does this tell us? How can it be applied?

When we compare the frequency graphs directly, we can see the clear differences in the beginner, intermediate, and professional skaters. The amplitude of the frequencies increases with experience, and the variation within those frequencies decreases with experience. This is very promising, as it tells us that we are able to extrapolate skill levels from this data. This makes sense. As we can see from the gifs in our last section, the beginner skater has a very inconsistent motion, showing that they are not using much of one frequency. The professional skater has very smooth, even movements, indicating that they should have a high amplitude of a few frequencies.

For this application, as well as the state of development of our product, we are less interested by the value of the frequency and more by the amplitude of it.

Value creation

Skating is a fantastic workout - as a strong cardiovascular exercise that targets almost every major muscle group, while staying low impact on joints. By analyzing the frequencies in motion in all three axes, our project aims to help skaters improve their form and fitness. SkateMate is trained using a beginner, intermediate, and expert dataset and uses a discrete Fourier transform as well as noise filters in order to identify patterns at skating levels. The user will be able to attach the accelerometer to their foot, and it will provide feedback on their skating style and how they could improve. For example, if the user is lifting their foot too much and using jerkier movements, the SkateMate will be able to identify this and suggest that they lift their foot a bit less and go for a smoother and more periodic motion. This will help skaters at any level to improve their form, and get a better workout, improving their health.

Steiner, M. Kathryn. “Fitness Benefits of Ice Skating.” Live in Motion. New England Baptist Hospital blogs, January 23, 2017. Accessed September 12, 2017.

Our team

Ally Bell


Charlotte Ramiro


Stella Stark