Is there a way to deconvolute this peak, without knowing the convoluting peaks?
11 views (last 30 days)
Teshan Rezel on 20 Jul 2022
Hi folks, I have peaks that look like the attached figure. Is it possible to perform an operation on the data such that the most likely individual gaussian peaks under the graph can be isolated?
I have managed to draw gaussians in the appropriate places, but I would like to make this an automated way to deal with many more peaks. The gaussians I have are being drawn with higher peaks than the original histogram, which I have tackled by multiplying the standard deviation by a fixed number. However, this is a really "janky" solution and I was hoping for a more elegant and reliable one. I was also hoping to make the gaussians look better, bu spreading them out under the original curve more.
Is this possible?
so far, I have:
m = (0:255)';
histogramPath = 'F:\Histogram Analysis.xlsx';
data = readtable(histogramPath,"VariableNamingRule","preserve", "Sheet","Percent-Anisotropic");
x = data.(1)(2:end);
[y1, y2] = findpeaks(x, "NPeaks", 4);
p1 = normpdf(m, y2(1), y1(1)*7);
p2 = normpdf(m, y2(2), y1(2)*4);
p3 = normpdf(m, y2(3), y1(3)*4);
p4 = normpdf(m, y2(4), y1(3)*4);
Bjorn Gustavsson on 20 Jul 2022
You might get some part of the way with deconvblind, from the image processing toolbox, so check the help and documentation to that function. You ought to also temper your expectations a bit - you can only get so far with deconvolution and there is no way I'd believe in a separation of 2 peaks under the wide maxima, there will absolutely not be possible for you to convince me of a separation into multiple peaks that narrow from that broad maxima. The peak on the left - sure deconvolve that one clean and nice that should be doable.