Average of a each vertical section of a stepped sawtooth wave

1 回表示 (過去 30 日間)
Raj
Raj 2021 年 3 月 24 日
コメント済み: Raj 2021 年 3 月 28 日
Hello everyone. I need a help to find the average of each vertical steps in a stepped sawtooth wave. For clarity, I have attached the figure of sawtooth wave. Just to reiterate how can I find the average of each small vertical steps in the attached stepped sawtooth wave? Thank you for the help in advance.

採用された回答

Matt J
Matt J 2021 年 3 月 25 日
I would fit a line to the steps with polyfit, then find the intersections of the line fit with the vertical edges.
  3 件のコメント
Matt J
Matt J 2021 年 3 月 25 日
編集済み: Matt J 2021 年 3 月 25 日
x=linspace(0,10,1000); %Example staircase data
y=round(x);
p=polyfit(x,y,1);
yl=polyval(p,x);
idx=diff(sign(yl-y))<0;
xs=x(idx); ys=yl(idx);
plot(x,y,xs,ys,'ro')
Raj
Raj 2021 年 3 月 28 日
Thank you so much for your clear explanation.

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

その他の回答 (1 件)

Greg Dionne
Greg Dionne 2021 年 3 月 25 日
If you have the Signal Processing Toolbox, FINDCHANGEPTS is worth a look (it will give you the indices of each step of which you can take the average later -- see https://www.mathworks.com/matlabcentral/answers/313651-additional-findchangepts-function-output?s_tid=srchtitle for an example on how to extract each mean).
Otherwise see if you can get ISCHANGE to work.
  2 件のコメント
Raj
Raj 2021 年 3 月 25 日
Thank you so much for your response. I have that tool box. However, I am not sure how to start with a code for my case. Could you please give me some pseudocode type sketch. I will attach a sample data if you need for this.
Greg Dionne
Greg Dionne 2021 年 3 月 25 日
The example in "help findchangepts" should hopefully get you started.
If you post your data though, maybe another volunteer can come up with something even better!

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

カテゴリ

Help Center および File ExchangeMultirate Signal Processing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by