How to find fwhm for each peak?
60 次查看(过去 30 天)
显示 更早的评论
this is my coding in matlab. A is the result from picoscope. the result get from detecting lightning signal.
y = A(:,1);
x = (-0.6:4.000000046744390e-07:1.4);
plot(x,y)
title("FA-31")
ylabel("voltage(V)")
xlabel("time(s)")
vmax = max(y);
vmin = min (y);
%Find the half max value.
halfMax = max(y) / 2;
% Find where the data first drops below half the max.
index1 = find(y >= halfMax, 1, 'first');
% Find where the data last rises above half the max.
index2 = find(y >= halfMax, 1, 'last');
fwhm = index2-index1 + 1; % FWHM in indexes
% if you have an x vector
fwhmx = x(index2) - x(index1);


The formula I use in matlab for find fwhm is I get from Internet. Can u help me how to get the fwhm for all peak?
5 个评论
Image Analyst
2021-2-10
What's your definition of "peak"? How many do you say are there? Do you want to attach "A" so we can try things with your actual data?
save('answers.mat', 'A');
Then attach 'answers.mat' with the paper clip icon.
采纳的回答
Star Strider
2021-2-10
The Signal Processing Toolbox findpeaks function can return the FWHM of every peak. See the documentation sections on Determine Peak Widths and w for the necessary details. To return only the results from the largest or most prominent peaks, other name-value pair arguments will allow selections based on these (and other) criteria.
5 个评论
Braulio Rodriguez
2021-9-19
编辑:Braulio Rodriguez
2021-9-19
I'm interested on the broad peak. The peaks between roughly 0-5 pixels mess up my FWHM calculation. I cannot exclude these peaks on the basis of sole intensity, as the intensity varies from picture to picture, but the location of the first 'artificial' peaks are always approx. on the same range.
Star Strider
2021-9-19
@Braulio Rodriguez — See I am trying to find the full width at half max value and plot the waveform with markers for an appropriate example.
.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

