how to hold max amplitude of a signal until next amplitude value is bigger?

8 views (last 30 days)
for a signal with varying amplitude, I need to find max amplitudes and hold that max value untill another max value is detected. the hold can be i.e for 1000 samples, if not max value is detected after 1000 samples it should slowly go back to its original position as shown in figure. can anybody help how to do that in simulink?

Answers (1)

Image Analyst
Image Analyst on 30 Jul 2017
Edited: Image Analyst on 30 Jul 2017
Take a look at the boundary() and envelope() functions. Try them and write back, attaching your data and code, if you can't figure out the parameters to use with them. Anyway, that's what I'd do in MATLAB. I don't have Simulink so I don't know if you can do that in Simulink, or if Simulink has better approaches.
  2 Comments
Mohammad Wasi Ahmadi
Mohammad Wasi Ahmadi on 30 Jul 2017
if you have Matlab, you must have simulink also.
envelope() and boundary() cannot be done in simulink because the whole length of the signal is not known. however, envelope() does not return what I am asking for, which is holding the peak value for some time.
Image Analyst
Image Analyst on 30 Jul 2017
"if you have Matlab, you must have simulink also." Absolutely not true. If you have a student suite, you get both, but I have a professional license for MATLAB only.
Try movmax() instead.

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!