How to take the fourth derivative of a reflectance graph
4 次查看(过去 30 天)
显示 更早的评论
Hi I am looking to calculate and plot the fourth derivtative of a reflectance plot for coral spectra - commonly done in papers by the savistky and golay, 1964 method.
I have used the smoothing function on my coral mean spectra (x3) (1st image)
S2 = smooth(S1);
plot(wv1, S2);
xlim([400 750])
Then went to take my 1st derivative (2nd image)
This turned out ok using this coding:
dy = diff(S2)/diff(wv1);
plot(wv1(2:end),dy)
xlim([400 750])
But I believe this is the wrong method for taking the derivative of the reflectance spectra as I loose data going fromm 1446x1 to 1445x1 each time i derive i.e.
taking the second derivative like so:
d2ydx2 = diff(dy)./diff(wv1);
plot(wv1(1:1444),d2ydx2)
xlim([400 750])
producing a graph like image 3 - which when it comes to the 4th i have lost nearly all the data (image 4)
Does anyone know where I am going wrong, as this must be much more straight forward given it has been used so frequently.
Thanks
0 个评论
采纳的回答
Torsten
2019-3-21
If you have the signal processing toolbox licenced, use "sgolay" and "sgolayfilt".
Or download from the file exchange:
https://de.mathworks.com/matlabcentral/fileexchange/30299-savitzky-golay-smooth-differentiation-filters-and-filter-application
4 个评论
Torsten
2019-3-27
I think trying to determine the 4th derivative of such data is quite a challenge, not to say quite impossible in my opinion.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!