hi, I produced this square wave signal, but as you can see the square peaks have no upper limit. how can i solve?
x=0.03*square(f*t,duty)
in reality I seem to see that the graph is the other way around

 채택된 답변

Jon
Jon 2022년 6월 30일

1 개 추천

You probably are not correctly specifiying the duty cycle. If you want the square wave to be "on" half the time you should set duty = 50, also note that the first argument to square is in radians, so each cycle is 2*pi radians. You have to scale your input accordingly.

추가 답변 (1개)

Sam Chak
Sam Chak 2022년 6월 30일

2 개 추천

Doesn't seem to have any issue.
t = linspace(0, 3*pi, 3001)';
f = 2;
duty = 50;
x = 0.03*square(f*t, duty);
plot(t/pi, x, t/pi, 0.03*sin(2*t))
grid on
ylim([-0.05 0.05])

카테고리

도움말 센터File Exchange에서 Time Series에 대해 자세히 알아보기

제품

릴리스

R2022a

질문:

2022년 6월 30일

답변:

Jon
2022년 6월 30일

Community Treasure Hunt

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

Start Hunting!

Translated by