Differentiating a signal using diff in MATLAB

10 visualizaciones (últimos 30 días)
S TOUSIF
S TOUSIF el 4 de Ag. de 2017
Editada: Jan el 4 de Ag. de 2017
Hello, I have differentiated an array of signal using diff command of MATLAB but have a confusion in the result. My input signal is a sinusoidal signal and the differentiated signal is also expected to be sinusoidal. I am getting a sinusoidal signal after differentiating the original. However, the signal is not centered at the origin but is shifted in one side. That is, lets say instead of having amplitudes of 5 and -5, it is like 5.5 and -4.5.
Can you give me some reason why it may be happening? I have attached the file containing the data and also an image of what is happening.
<<
>> The image is after differentiating the signal. The code is: current = diff(x(:,1))/(1/1e5);

Respuestas (1)

Jan
Jan el 4 de Ag. de 2017
Editada: Jan el 4 de Ag. de 2017
The result is exact and correct. You can trust the diff command. Obviously the signal has a sepcific drift, such that the derivative is has not an average of 0:
plot(x(:,1))
Why do you expect that diff replies a signal with average of 0. Obviously only this expectation is the problem.

Categorías

Más información sobre Time-Frequency Analysis 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