square wave not "limited"

3 次查看(过去 30 天)
Federico Paolucci
Federico Paolucci 2022-6-30
回答: Jon 2022-6-30
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
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
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])

类别

Help CenterFile Exchange 中查找有关 Multirate Signal Processing 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by