3

I have a vector containing acceleration measurements and the corresponding vector of times in which measurements are taken.

To obtain velocity and displacement I used the cumtrapz() function already implemented in MATLAB. This should be fine, as I read here Numerical integration of non-uniform acceleration samples and here https://stackoverflow.com/questions/9881430/numerical-integration-using-simpsons-rule-on-discrete-data.

My doubts are related to the disturbances introduced by the integration algorithm as I found in a book a chapter in which the author says that the trapezium rule introduces low-frequency disturbances.

I tried to remove these disturbances and unwanted 0-frequency components (the acceleration was not 0-mean therefore I had a linear trend in the velocity) applying a 2nd order, highpass, butterworht filter with cut-off frequency at 5 Hz (in both directions to null the phase shift) to the velocity and the displacement but I don't know if this is enough or too much because I need very accurate values for velocity and displacement since I have to use them to plot a surface in the state-space (EDIT: phase-space).

How can I choose the correct cut-off frequency in order not to loose any important information knowing that the experimental structure is excited in a range of frequencies from 5 to 100 Hz?

EDIT Since I have to integrate noisy data, is it advisable to use an higher order method if my goal is accuracy?

Rhei
  • 402
  • 6
  • 19
  • Did you try a higher order method? Something like this? – nicoguaro Nov 02 '14 at 02:23
  • I tried that method but nothing changed – Rhei Nov 02 '14 at 13:47
  • Can we take a look at your data? – nicoguaro Nov 02 '14 at 23:05
  • No sorry, I am not allowed to show them, not even partially. The measurements are taken at constant time intervals if this can help – Rhei Nov 03 '14 at 05:45
  • Not really. I will say that you should different schemes then. It's difficult to suggest something when you say that different method lead to same results and we can't see the data. – nicoguaro Nov 03 '14 at 12:35
  • The only way to have an insight in to the integrated data is to plot them since the vectors have more than 400000 elements. In plotting them there is no appreciable difference. The check I use is to plot the surface I talk about in this question http://scicomp.stackexchange.com/questions/16068/plot-a-surface-from-data-sets-in-matlab and see if this resemble the expected result (which should be a piecewise-linear surface in the direction of the displacement). What I mean when I said that nothing changed is that I get the same surface, although the numerical values might not be exactly the same – Rhei Nov 03 '14 at 13:44
  • In the mentioned question you are not showing the surface that you want to plot. On the other hand, there are another ways to have insight of the dataset, e.g., computing the Fourier spectrum of it. – nicoguaro Nov 03 '14 at 16:17
  • And how can I use the fourier spectrum to understand if the signal has been integrated correctly? – Rhei Nov 03 '14 at 16:23
  • I don't know. I do not have any knowledge about your dataset. I just used that as an example to make the point that plotting is not the only way of getting insight from your data. If you want to continue the discussion, we can move it to chat. – nicoguaro Nov 03 '14 at 16:34
  • 1
    I presume from your comments regarding frequencies that the acceleration data is oscillatory? – Geoff Oxberry Nov 03 '14 at 21:06
  • 1
    My acceleration is a measurement of the structure vibration due to a logarithmic sine-sweep base excitation. – Rhei Nov 03 '14 at 21:09
  • 1
    If you have acceleration data and initial conditions for velocity and position, plus knowledge of the allowable frequency range, you might try using a Fourier representation of your acceleration data and integrate that twice in time. – Geoff Oxberry Nov 29 '14 at 03:03
  • questions: can you confirm that your measurement has at least 30% of the decimal places of information it could that are filled? If you have 8 digits, can you confirm that your data is substantially unlike this: "0.0000001".

    thought: You might compute the energy (integration of power over time) as a function of cutoff frequency, and select frequency so that you are removing only a small percentage of the total energy put into the system.

    – EngrStudent Sep 08 '15 at 15:12
  • I know that the question was asked a long time ago, but I think you can get an answer to it here: https://www.mathworks.com/help/signal/examples/practical-introduction-to-digital-filtering.html#d119e3875 – bpop Sep 06 '18 at 10:15

0 Answers0