Piecewise plotting with clipping

3 views (last 30 days)
Anthony Walden
Anthony Walden on 28 May 2022
Commented: Dyuman Joshi on 19 Feb 2024
I have a piecewise function where the upper and lower limits of the functions are set to 0.5 and -0.5 for the amplitude of the function cos(pi*t). I am not sure how to code the portion where the amplitude needs to remain at 0.5 for all y values above 0.5 and same for all values to fall below -0.5. I know that cos(pi * t) is a sinusoid with an amplitude from 1 to -1, I need to clip the signal so that the upper clipped values remain at 0.5 and -0.5 for the lower values that get clipped. Any help would be appreciated! My signals class has also introduced me to MATLAB which I have never used before and they have thrown me in the deepend of the pool and I am struggling to tread water. I haven't been able to find any videos on YouTube that help so far, I will continue to look.

Answers (1)

Dyuman Joshi
Dyuman Joshi on 28 May 2022
t = 0:0.001:10;
y = cos(pi*t);
y(y>0.5)=0.5;
y(y<-0.5)=-0.5;
plot(t,y)
ylim([-1 1])
  3 Comments
Dyuman Joshi
Dyuman Joshi on 28 May 2022
Please accept the answer if it solved your issue.
Dyuman Joshi
Dyuman Joshi on 19 Feb 2024
Another approach -
t = 0:0.001:10;
y = cos(pi*t);
y = max(min(y, 0.5), -0.5);
plot(t,y)
ylim([-1 1])

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!