Differentiating a signal using diff in MATLAB

10 Ansichten (letzte 30 Tage)
S TOUSIF
S TOUSIF am 4 Aug. 2017
Bearbeitet: Jan am 4 Aug. 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);

Antworten (1)

Jan
Jan am 4 Aug. 2017
Bearbeitet: Jan am 4 Aug. 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.

Kategorien

Mehr zu Time-Frequency Analysis finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by