How to find largest Peaks Values of signal and Save Corresponding X axis and Y Axis Values in MATLAB

조회 수: 1 (최근 30일)
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
Rik
Rik 2023년 2월 21일
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.

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

답변 (1개)

Star Strider
Star Strider 2023년 2월 21일
편집: Star Strider 2023년 2월 21일
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'})
PeakData = 4×4 table
Time Peak Amplitudes Peak Time Differences Peak Amplitude Differences __________ _______________ _____________________ __________________________ 6.3514e+05 0.026385 0 0 2.651e+06 0.026396 2.0159e+06 1.0358e-05 4.6668e+06 0.026394 2.0158e+06 -1.4018e-06 6.6827e+06 0.026396 2.0159e+06 1.6908e-06
figure
plot(X, Y)
hold on
plot(X(locs), pks, '+r')
hold off
grid
xlabel('Time')
ylabel('Amplitude')
EDIT — Corrected typographical errors.
.

카테고리

Help CenterFile Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by