How to convert acceleration data to velocity and displacement?

45 views (last 30 days)
I have acceleration data and I need to convert it into velocity and displacement.My sampling frequency is 500 Hz. I used the following approach but my result are not accurate. Need suggestion. My approch:
1>Fist took acceleration data
2>Then I filter that data using butter worth high pass filter of frequency hpf=50. I used this command [b,a]=butter(5,Fhp/Fs,'high');
dataa=filter(b,a,dataa);
3>then to get velocity I used 'cumtrapz' to integrate acceleration with code datav=cumtrapz(dataa)./Fs;
4>again I filter this velocity data and again integrate to get displacement.
5>finally I plotted this data.results are not proper.
suggest me some thing.
my code is
csvData=handles.csvData;% Read File
dataa=(csvData(:,2)).*9.81; % Data is converted to m/sqr.s
[b,a]=butter(5,Fhp/Fs,'high'); %Filter data
dataa=filter(b,a,dataa);
time=csvData(:,1); %first row is time data
datav=cumtrapz(dataa)./Fs; %Acceleration to Velocity convertsion using integration
[b,a]=butter(5,Fhp/Fs,'high'); %Filter data
datav=filter(b,a,datav);
datad=cumtrapz(datav)./Fs; %Velocity to displacement conversion using integration

Answers (1)

KSSV
KSSV on 12 Mar 2016
Dear friend
You have acceleration data, to convert it into velocity and displacement, you need to differentiate the accl. data twice. You may use numerical differentiation like Trapezoidal rule, Simpsons rule etc. You may also use finite difference time schemes like Newmark beta method, wilson method etc.
  4 Comments
Mohammad Saiful Islam
Mohammad Saiful Islam on 24 Jun 2016
Dear Dr. Siva Srinivas Kolukula, Probably you are little wrong with the conversion of acceleration to displacement. You can not get the displacement by double differentiation of acceleration. You can get acceleration from double differentiation of displacement.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!