Deconvolution of experimental peaks

Hi everybody,
I am trying to deconvolute peak from experimental data.
I have a power (mW) as a function of the temperature and I have two peaks overlapping (examples attached). I woul like to deconvolute them but I am not able to find a ay to do so.
Any suggestions?
Thanks in advance.

댓글 수: 7

Daniele Sonaglioni
Daniele Sonaglioni 2022년 11월 23일
이동: Star Strider 2022년 11월 23일
Dear @Star Strider, thanks for your help but probably my question was not fully clear.
What I want to do is to take a single curve, i.e. ageing and bis_ageing alone, and curve-by-curve, try to deconvolute the peaks in the thermogram: in fact, if you note, there is a small pre-peak, very close to the main peak. What I want to do is to find two curves that, summed together, give the measured thermograms. Then I can use these two fitted curves to estimed the area associated with each peak because they are two different physical processes and I want to study both.
To restate in other words, I want to do the same operations you do when studying a Raman spectrum.
Star Strider
Star Strider 2022년 11월 23일
I am not certain that is even possible.
Bjorn Gustavsson
Bjorn Gustavsson 2022년 11월 23일
@Daniele Sonaglioni, yes. Use the suggestion I made in my answer. The mathematics of 1-D and 2-D deconvolution are similar enough that you can use the deconvblind function to do this. The problems are also similar enough that my concerns about noise amplification and Gibbs-ringing are the same.
HTH
I posted a first answer , then deleted it thinking I was completely off topic according to the others answers... but finally maybe I could still be part of the game
so my question is , do we simply want to remove the baseline (red line) and fit the remaining green curve with a two peaks function ? (nb the last action remains to be coded )
data = readmatrix('trial_ageing_deconv.txt');
% data = readmatrix('trial_bis_ageing_deconv.txt');
x = data(:,1);
y = data(:,2);
% first (main) peak
[pks,idx] = max(y);
ix = (x>x(idx)-20 & x<x(idx)+10);
x = x(ix);
y = y(ix);
[mpk,idx] = max(y); % redo it
[Base, yy]=baseline(y); % FEX : https://fr.mathworks.com/matlabcentral/fileexchange/69649-raman-spectrum-baseline-removal/
figure(1)
plot(x,y,'b-',x,Base,'r--',x,yy,'g-.');
Bjorn Gustavsson
Bjorn Gustavsson 2022년 11월 23일
@Mathieu NOE, as far aas I understand that type of background/base-line removal might very much help deconvolution. But the if the "true" signal is convolved with an instrument impulse-response and all linear and shift-invariance conditions are in place one should be able to use deconvlucy (is the pont-spread-function is reasonably known) or deconvblind (which by mathemagic estimates the psf as well) to do deconvolution. If on the other hand the shape of the two peaks are known as 2 different parametrized functions it might be better to fit for those parameters and the background (as a straight-line perhaps) to the measurements.
Mathieu NOE
Mathieu NOE 2022년 11월 24일
I wonder if "deconvolution" is really what we are looking for here. Somewhere I interpret the request to separate that curve into two single peak curves. A simple fit should do the job, now the question is what type of function is the most appropriate
Bjorn Gustavsson
Bjorn Gustavsson 2022년 11월 24일
For the case of fitting 2 parameterized peak-functions and a background to the observations one might also have to model the point-spread of the instrument with a convolution-operation anyways. So in some sense it will still have elements of deconvolution in the solution.

댓글을 달려면 로그인하십시오.

답변 (1개)

Bjorn Gustavsson
Bjorn Gustavsson 2022년 11월 22일

0 개 추천

Have a look at the help and documentation of deconvblind. If you make sure that the curve you want to deconvolve and the point-spread function both are column-arrays of row-arrays it should work. But deconvolution is a tricky operation where noise-amplification and ringing (Gibbs) rapidly put a limit of how far one can get.
HTH

카테고리

질문:

2022년 11월 22일

댓글:

2022년 11월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by