Smooth data for plotting the DTG curve (thermogravimetric analysis)

24 vues (au cours des 30 derniers jours)
Genevskiy Vladislav
Genevskiy Vladislav le 14 Fév 2020
Commenté : klippel le 27 Juil 2020
Hi everybody,
I'm trying to plot the derivative of the TGA curve. In short TGA measures the mass change of a sample as the temperature increases and loss of material occurs. The DTG is supposed to be the derivative of the mass % over the temperature. I used this simple code to select the columns from excel and plot them in matlab. However the derivative, that I caluclated on excel as (m(i+1)-m(i)) / (T(i+1)-T(i)) gives me this really noisy orange line. The shape itself is correct, I mean the peack is correctly positioned but it's too noisy, It should be smooth as the blue line of TGA. Do you know how I culd solve this problem maybe? I tried to use the smoothdata function but doen't seem to work.
Thanks a lot
mass = xlsread('TGA NaCl PGM (50-50) 220120', 'D42:D11786');
temp = xlsread('TGA NaCl PGM (50-50) 220120', 'B42:B11786');
der_mass = xlsread('TGA NaCl PGM (50-50) 220120', 'E42:E11786');
der_mass1 = smoothdata(der_mass)
[AX,H1,H2] = plotyy(temp,mass,temp,der_mass1)
set(AX(2),'YLim', [-0.8 0.3]);
set(get(AX(1), 'Ylabel'), 'String', 'Weight %', 'Fontsize',15);
set(get(AX(2), 'Ylabel'), 'String', 'Deriv. weight (%/°C)', 'Fontsize',15);

Réponses (1)

Genevskiy Vladislav
Genevskiy Vladislav le 16 Fév 2020
d_mass01=sgolayfilt(d_mass1,1,101);
Found the answer by myself. Used the savitszkiy golay (sgolayfilt) filter to smooth the data and got a decent plot :)
  1 commentaire
klippel
klippel le 27 Juil 2020
Hello!
I have the same problem. However, I couldn't get a better plot using the sgolayfilt function. Can you help me?
Thanks!

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by