Clipping sin wave script, what is not correct ?

52 次查看(过去 30 天)
Write a script to generate the signal values for the figure above corresponding to equally-spaced time values ranging from 0 to 6*pi . Assign these time values to the variable Time. Assign the resulting voltage values to the variable signalVoltage. The sinusoidal function is given by the formula: Y=7sin(x) In order to model the clipping at plus or minus 5 Volts, you will need to replace any values of y that are greater than the threshold of 5 with the value 5. Similarly you will need to replace any values of y that are less than with the value -5
My attempt: Time= 0:6*pi Signal voltage = 7sin(time) Plot ( time, signal voltage) Signalvoltagelim([-5,5])
Don’t know what I am doing wrong. What in my script is wrong ?

采纳的回答

KALYAN ACHARJYA
KALYAN ACHARJYA 2019-10-23
编辑:Voss 2023-8-2
time=linspace(0,6*pi,500);
Y=7*sin(time);
figure()
subplot(121),plot(time,Y);
ylim([-8 8]);
Y(Y>5)=5; % You can replace by any value, here I have consider 5
Y(Y<-5)=-5% You can replace by any value, here I have consider -5
Y = 1×500
0 0.2644 0.5283 0.7916 1.0537 1.3143 1.5730 1.8295 2.0833 2.3342 2.5818 2.8257 3.0655 3.3010 3.5318 3.7575 3.9778 4.1925 4.4012 4.6037 4.7995 4.9885 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000
subplot(122),plot(time,Y);
ylim([-8 8]);
Or
time=linspace(0,6*pi,500);
Y=7*sin(time);
figure()
plot(time,Y);
hold on;
Y(Y>5)=5; % You can replace by any value, here I have consider 5
Y(Y<-5)=-5% You can replace by any value, here I have consider -5
Y = 1×500
0 0.2644 0.5283 0.7916 1.0537 1.3143 1.5730 1.8295 2.0833 2.3342 2.5818 2.8257 3.0655 3.3010 3.5318 3.7575 3.9778 4.1925 4.4012 4.6037 4.7995 4.9885 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000
plot(time,Y);
legend('Original','Clipping')

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by