フィルターのクリア

I would like to count the number of peaks of a signal.

42 ビュー (過去 30 日間)
mohamed ali
mohamed ali 2023 年 2 月 25 日
コメント済み: Star Strider 2023 年 2 月 26 日
Hello everone,
]I am working with a signal produced from my simulink model and I am doing some analysis on the signal but I dont know how to calculate the number of cycles?
Best regards

採用された回答

Star Strider
Star Strider 2023 年 2 月 25 日
編集済み: Star Strider 2023 年 2 月 25 日
Use the signal Processing Toolbox findpeaks function to count the peaks. The plotted signal does not appear to be noisy, so it will likely not be necessary to use other name-value pair arguments (such as 'MinPeakProminence') to define the peaks). (I have no idea if this works with Simulink, since I very rarely use Simulink.)
Just use:
t = ...; % Time Vector
s = ...; % Signal Vector
[pks,locs] = findpeaks(s);
NrPks = numel(pks)
.
  2 件のコメント
mohamed ali
mohamed ali 2023 年 2 月 26 日
thank you so much, your answer really helped!
Star Strider
Star Strider 2023 年 2 月 26 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (2 件)

Askic V
Askic V 2023 年 2 月 25 日
編集済み: Askic V 2023 年 2 月 25 日
t = 0:0.01:2;
y = sin(20*t);
[z, ind] = findpeaks(y);
plot(t,y)
hold on
plot(t(ind), z, 'o')
number_cylces = numel(diff(z))
number_peaks = 6
If you need to find number of cycles, you need to fnd the number of peaks first. Matlab has a built in function called findpeaks :)

Image Analyst
Image Analyst 2023 年 2 月 25 日
In addition to findpeaks, if you don't have the Signal Processing Toolbox, you can use islocalmax in base MATLAB.

カテゴリ

Help Center および File ExchangeDescriptive Statistics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by