noisy plot after calculating first derivative

8 views (last 30 days)
Hi everyone
I have a problem.
I have a very smooth plots in MATLAB (fisrt capture which is the original y). I ataach one of them. whenever, I calculate the first, sencon and ... derivative of these data with finite differemnce equations, the graphs are not smooth anymore (first deivative=y').
all data are from numerical model (Abaqus).
what should I do?
is smoothing the soulution? if yes, which type of smoothing
Thanks

Accepted Answer

John D'Errico
John D'Errico on 17 May 2022
You should recognize that differentiation is a noise amplification operator. So any small amounts of noise in your signal, even a tiny amount, will translate into a noisier mess in the derivative. Second derivativves are yet more difficult to estimate.
Should you try to smooth the derivative estimate? NO!!! (Was that a sufficiently emphatic no?) Instead, you need to smooth the signal itself, since that is where the noise lies. Why is that?
Suppose that your noisy function values are each corrupted with noise. Then when you compute the derivative, the noise is still there, and is amplified. But worse, now the noise in the derivative estimates is no longer what is called white noise, but now the neighboring points will be correlated with each other. Anyway, it is best if you just smooth the data itself, and then compute a derivative signal from that. You might use the function smooth, or perhaps a smoothing spline would be a good idea. Without having your data itself, it is difficult to know what may be best, but either of those tools would be a good choice.
  12 Comments
Fahime Sokhangou
Fahime Sokhangou on 18 May 2022
@John D'Errico thanks a lot. I did smoothing and it works for first, second and third derivative with cubic spline (101 points) but for the fourth mode. it is still noisy.
I may use spline with more points.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!