How to clip a sine wave on both side?

5 次查看(过去 30 天)
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..

回答(1 个)

Image Analyst
Image Analyst 2019-7-5
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 个评论
Mohiuddin Mahbub
Mohiuddin Mahbub 2019-7-5
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?

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by