Numerical Integration of accelerometer signal
11 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hellow,
I did sit to stand test with single IMU on the pelvis.
I have a acceleration data from IMU, and the units are m/s^2. The sample rate was 100Hz.
I did filter (butterwarth 4th order)
fc=3; % cutoff frequency
[b,a] = butter(4,fc/(100));
filtAcc = filter(b,a,y_acceleration);
and than numerical integration by cumtrapz function and remove the drift by detrend function twice: first time to get the velocity (units are [m/s] ?) and second time to get the displacement (units are [m] ?).
vertical_velocity=cumtrapz(filtAcc);
vertical_velocity_detrend=detrend(vertical_velocity);
vertical_displacement=cumtrapz(vertical_velocity_detrend);
vertical_displacement_detrend=detrend(vertical_displacement);
In the reality the displacement of the pelvis is 0.5 [m] or 50 [cm] why I got the displacement are in range -2000 to 2000 [m]?
Thank,
1 comentario
Mathieu NOE
el 1 de Jun. de 2023
Editada: Mathieu NOE
el 1 de Jun. de 2023
double integration of accel signals are always sensitive to offset, drift and other issues
the one major issue I see in your code is that your are doing the cumtrapz integration without taking care of the sampling rate Fs
use dt = 1/Fs to correct it this way
vertical_velocity=dt*cumtrapz(filtAcc);
Respuestas (0)
Ver también
Categorías
Más información sobre Numerical Integration and Differential Equations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!