How to clip a sine wave on both side?

5 views (last 30 days)
Mohiuddin Mahbub
Mohiuddin Mahbub on 5 Jul 2019
I want clip specific portion of both positive and negative side of sine wave.. How to do it. I used MinMax block but it only cliped one side..

Answers (1)

Image Analyst
Image Analyst on 5 Jul 2019
First get the min and max values, then determine the threshold as some fraction from the center and clip:
maxy = max(y)
miny = min(y)
middley = (miny + maxy)/2;
% Determine top point as, say 90% ofthe way from the middle line to the max
fraction = 0.9;
upperThreshold = middley + fraction * (maxy - middley);
lowerThreshold = middley - fraction * (middley - miny);
% Now clip
indexesTooHigh = y > upperThreshold;
y(indexesTooHigh) = upperThreshold;
indexesTooLow = y < lowerThreshold;
y(indexesTooLow) = lowerThreshold;
  1 Comment
Mohiuddin Mahbub
Mohiuddin Mahbub on 5 Jul 2019
I want to use it on Simulink..I am generating wave then I need to clip it and send it to another block..So is there any block model for this clip operation that can be done on both side of sine wave?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!