How to find largest Peaks Values of signal and Save Corresponding X axis and Y Axis Values in MATLAB
1 view (last 30 days)
Show older comments
Hello, I have the following Dataset in which first column shows the X-axis and 2nd Column shows the Y-axis.
I want to find Peak Value as shown in the image below and
Save the X and Y axis Values Corresponding Peak. Y axis Values as Amplitude and X axis values as Time
After that I want to subtract 2nd peak from 1st peak, and 4th peak from 3rd Peak.
It should be general for example if i got 6 peaks then 2nd subtract from 1st then 4th from 3rd and 6th from 5th
How can i do that in MATLAB
1 Comment
Rik
on 21 Feb 2023
Just in case you decide to edit this one away as well: I just made it pointless by attaching the original file to this comment.
Answers (1)
Star Strider
on 21 Feb 2023
Edited: Star Strider
on 21 Feb 2023
Try this —
LD = load('Dataset20230221.mat');
Dataset = LD.Dataset;
X = Dataset(:,1);
Y = Dataset(:,2);
[pks,locs] = findpeaks(Y, 'MinPeakProminence',0.01);
PeakData = table(X(locs),pks, [0;diff(X(locs))], [0; diff(pks)], 'VariableNames',{'Time','Peak Amplitudes','Peak Time Differences','Peak Amplitude Differences'})
figure
plot(X, Y)
hold on
plot(X(locs), pks, '+r')
hold off
grid
xlabel('Time')
ylabel('Amplitude')
EDIT — Corrected typographical errors.
.
0 Comments
See Also
Categories
Find more on Get Started with MATLAB 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!