Is there a way to deconvolute this peak, without knowing the convoluting peaks?
Show older comments
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:
clc;
clear;
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);
figure;
hold on;
plot(x);
plot(p1);
plot(p2);
plot(p3);
hold off;
Accepted Answer
More Answers (0)
Categories
Find more on Descriptive Statistics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!