MATLAB: Fit Damping Coefficient from Acceleration Samples

accelerationdampingdatadifferentialequationexperimentalfactorfittingfminsearchlsqcurvefitmassminimizationodeoptimizationsamplesspring

I am trying to find the best damping coefficient to be used in my mass – spring – damper differential equation: I only have (noisy) acceleration measurements, and integrating them in order to find velocity and position does not look very formal. Here below is the code. Someone has some methods to suggest and how to implement them? Thank you.
m = 3; k = 100; bGuess = 3; x0 = 0.2; omegaf = 5;
x = @(t) x0 .* exp(- 10 .* t) .* cos(omegaf .* t);
dydt = @(t, y) [y(2); ((- b / m) * y(2) - (k / m) * (y(1) - x(t)))];
[t, y] = ode45(dydt, [0 10], [0; 0]);
samples = importdata('samples.txt');

Best Answer

It depends on how you want to approach this.
If you have the data and want to fit it to an equation to estimate the parameters, the approach in How to filter noise from time-frequency data and find natural frequency of a cantilever? would likely be appropriate.
If you want to fit a differential equation to it, the approach in Parameter Estimation for a System of Differential Equations would be the way I would do it.