Smoothing Numerical Differentiation Result

10 visualizaciones (últimos 30 días)
Ahmed Zankoor
Ahmed Zankoor el 23 de Abr. de 2018
Comentada: Ahmed Zankoor el 26 de Abr. de 2018
I want to get the derivative of this S-shaped curve this way (x*(dy/dx)) which is expected to be like the normal distribution bell-shaped curve, I used x(2:end).*diff(y)./diff(x) , gradient function and central difference method. but the result was very noisy since it is a numerical differentiation. My question, is there a way to smooth the result to get a better derivative curve?

Respuesta aceptada

Jim Riggs
Jim Riggs el 23 de Abr. de 2018
Editada: Jim Riggs el 23 de Abr. de 2018
The attached file contains some higher-order methods for computing numerical derivatives. You can start with this. For very well behaved data, further smoothing might be achieved by curve fitting a function to the data and using the function derivative. If a more general method is desired, there are a number of ways to filter noisy data (for example, Matlab function "filter").
  4 comentarios
Ahmed Zankoor
Ahmed Zankoor el 25 de Abr. de 2018
The problem that I can not understand is that the data I want to find the derivative for is not that noisy yet I get a bad derivative, you can see the attached figures. So I do not think it needs filtering.
Ahmed Zankoor
Ahmed Zankoor el 26 de Abr. de 2018
I found the problem, the x variable is generated using normrnd (random variables following normal distribution) and the differences between the values vary greatly. for example dx=[.2 .01 ...] that is why when we compute the derivative its values show heavy noise.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Smoothing 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!

Translated by