how do I fit a Raman spectrum that has multiple peaks using Gaussian bands?
43 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Salvatore Maida
el 27 de Jun. de 2023
Comentada: Mathieu NOE
el 6 de Jul. de 2023
Hi everyone, I need to rent experimental data divided into two separate columns x and y, with the app Curve fitting I can do it but I display little information, for example I would like to view all 7 bands of the fit and not just the sum, I also want to get a table that contains all the Fitted data.
4 comentarios
Respuesta aceptada
Hiro Yoshino
el 28 de Jun. de 2023
How about trying GMM?
This is a standard way to estimate multiple gaussian distribution over the data using EM method.
2 comentarios
Hiro Yoshino
el 28 de Jun. de 2023
@Salvatore Maida You may need to tweak the setting (params and etc...) to make it converge as you wish but this technique is for it.
Más respuestas (1)
Salvatore Maida
el 28 de Jun. de 2023
6 comentarios
Mathieu NOE
el 6 de Jul. de 2023
finally decided to give a try with peakfit
so with a limited amount of time we can get a fairly good result (thanks to the author of the submission ! )
if you give some good initial guess values (position and width) you get this output :
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1428168/image.png)
load('data.mat');
data = MD700;
ind = data(:,1)<850; % we don't want to use the data above x = 850
data = data(ind,:);
Np = 5; % number of peaks
trials = 10; % number of trials , keep the best one
IG = [160 20 350 300 450 100 500 80 600 200]; % initial guess : [position1 width1 position2 width2 ... ]
% nb the number of peaks Np must be coherent with the size of IG (twice as
% big)
peakfit(data,0,0,Np,1,0,trials,IG)
Ver también
Categorías
Más información sobre Data Distribution Plots 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!