Derivative of Temperature vs time data

I have a CSV file with temperature data and time. I am trying to model the dynamic response of the temperature sensor, to do so I want to take the derivative of the data. I have used the "diff" command but my data just looks messy.

5 Comments

Torsten
Torsten on 25 Feb 2025
Edited: Torsten on 25 Feb 2025
Maybe you have to smooth your data first. But we cannot tell because we don't have access to your data and we don't know how you applied "diff" on them.
Also, if the time intervals aren't exactly uniform, then you will get a more accurate response with
deriv=diff(temp)./diff(time);
That still won't solve the issue if there is noise in the data, but will help with non-uniform sampling if that's happening as in a polling-like sampling scheme rather than via a triggered A/D converter.
If your times are not equal step, then you probably want to use gradient
Sam Chak
Sam Chak on 25 Feb 2025
Edited: Sam Chak on 25 Feb 2025

Hi Ryan, the diff() function in MATLAB, when applied to the measured data, will return some values. But it does not magically give you a smooth and beautiful mathematical model, like dT/dt = f(T). Just for your info.

P.S. Same as gradient().

And, of course, it also presumes the times have been recorded with sufficient precision to be able to use them...one often finds a timestamp has been recorded but not with sufficient precision to be useful.

Sign in to comment.

Answers (1)

charan
charan on 12 May 2025
Hi Ryan,
Here are some suggestions to calculate a smoother derivative of noisy data:

Products

Release

R2019b

Tags

Asked:

on 25 Feb 2025

Answered:

on 12 May 2025

Community Treasure Hunt

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

Start Hunting!