I'm trying to numerically differentiate a signal. As a test, I created a y=sin(x) signal. When I use diff(y), the output amplitude is scaled down to 0.1 instead of 1. The analytical solution is cos(x), therefore I'd expect the output to have an amplitude of 1 as well. What am I missing?

 Respuesta aceptada

Mischa Kim
Mischa Kim el 15 de Mayo de 2014
Editada: Mischa Kim el 15 de Mayo de 2014

0 votos

Jonas, diff only calculates the differences between adjacent elements, the dy. To get the derivative you need to devide by dx, e.g.
x = 0:0.1:10;
y = sin(x);
dydx = diff(y)/(x(2)-x(1)); % assuming dx to be constant
plot(x(1:end-1),dydx)

Más respuestas (0)

Categorías

Más información sobre Statistics and Machine Learning Toolbox en Centro de ayuda y File Exchange.

Preguntada:

el 15 de Mayo de 2014

Comentada:

el 15 de Mayo de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by