How to find largest Peak Values of signal and Save X,Y Values in MATLAB

3 Ansichten (letzte 30 Tage)
Hammad Younas
Hammad Younas am 21 Feb. 2023
Kommentiert: Rik am 21 Feb. 2023
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
  2 Kommentare
Rik
Rik am 21 Feb. 2023
I recovered the removed content from the Google cache (something which anyone can do). Editing away your question is very rude. Someone spent time reading your question, understanding your issue, figuring out the solution, and writing an answer. Now you repay that kindness by ensuring that the next person with a similar question can't benefit from this answer.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

KSSV
KSSV am 21 Feb. 2023
Read about the function max, findpeaks.
The above functions gives you index of the max value, using this index you can get x-value as well.
  2 Kommentare
Jan
Jan am 21 Feb. 2023
Bearbeitet: Jan am 21 Feb. 2023
@Hammad Younas: The question contains only a vague description of what the input is. I guess it is a matrix? If you provide a small example (small enough to be posted here without stress, large enough to reproduce a result), the reader can use it to suggest working code. But it is inefficient, if the readers spend time to invent some input data.
Currently KSSV's answer hits the point already. I'd append: After letting findpeaks determine the peaks, use: result = x(1:2:end) - x(2:2:end), to get the differences.
Please do not address specific persons by using the @-method. Remember that they get a hint, that you try to catch their attention. Imagine what will happen, if all users do so: The active members get a pile of messages and reading them reduces their time to answer questions. If all asking users push their questions in this way, the quality of the forum will suffer. Thanks for caring about this suggestion.
Rik
Rik am 21 Feb. 2023
Deleted comment:
Approximately at 21 Feb 2023 08:02:28 GMT
@KSSV it does not work Sir.

Melden Sie sich an, um zu kommentieren.


Sam Chak
Sam Chak am 21 Feb. 2023
If you are referring 'e' as the exponential function, and so on, then try this:
e1 = exp(1)
e1 = 2.7183
e2 = exp(2)
e2 = 7.3891
e3 = exp(3)
e3 = 20.0855

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by