Filter löschen
Filter löschen

How to programe clipping sine wave

22 Ansichten (letzte 30 Tage)
Mvana
Mvana am 2 Aug. 2022
Beantwortet: Munyaradzi am 28 Apr. 2024
TIME =linspace(0,6*pi,200)
SignalVoltage = 7*sin(Time)

Akzeptierte Antwort

Sam Chak
Sam Chak am 2 Aug. 2022
Bearbeitet: Sam Chak am 2 Aug. 2022
Cannot open your jpg (I'm lazy to fix the link). If you study Pure Math in high school, you need to use the sign function to clip the signal. But in MATLAB, it's a pretty easy job do something like this. In Electrical Engineering, you can use the Diode Clipper circuit.
% original sine wave
t = linspace(0, 6*pi, 3600*3+1);
x = 7*sin(t);
plot(t, x, 'linewidth', 1.5), hold on
% clipped sine wave
ub = 4; % upper bound
lb = -4; % lower bound
y = max(lb, min(x, ub));
plot(t, y, 'linewidth', 1.5), hold off
grid on, xlabel('t'), ylabel('x(t)'), ylim([-10 10])
  2 Kommentare
Thando
Thando am 5 Sep. 2022
@Sam Chak, i followed the instruction the exact same way as you instructed @Mvana but im only getting 1/3, is there another way to get all 3 correct
Sam Chak
Sam Chak am 5 Sep. 2022
@Thando, Not exactly sure what you meant by getting 1/3 and all correct. Please enlighten.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Mbongeni
Mbongeni am 8 Aug. 2022
how do i use the end function? i have a row by column vector and matlab instructions say that i must use the end command,but it gives me an error when i try it. What can i do to solve this problem?
  1 Kommentar
Sam Chak
Sam Chak am 8 Aug. 2022
@Mbongeni, Please post a new question and the error
function Mbongeni
% type your code here.
end

Melden Sie sich an, um zu kommentieren.


Munyaradzi
Munyaradzi am 28 Apr. 2024
Time= linspace(0,6*pi,200)
y= 7*sin(Time)
y(y<-5) = -5
y(y>5) = 5
signalVoltage=y

Community Treasure Hunt

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

Start Hunting!

Translated by