在 Matlab 中绘制 sin(x) 图 - 奇怪的结果

plotting sin(x) graph in Matlab - strange results

您好,我正在尝试在 Matlab 中绘制图表,但我得到了奇怪的结果: 我应该画 y=asin(bx+c) 当 a,b,c 从一个图变为另一个图时.. 但正如你所看到的,当我将 'b' 值更改为一个大值时 figure app中的图形变得奇怪了。

使图形变得奇怪的原因之一是 matlab 函数中的 'N' 值:x=linspace(x0,xt,N) 例如,为什么当我将 N 更改为 200 时,图表会变得疯狂? 'N' 究竟在做什么,也许我没听懂:(

所以这是我的代码,问题出在 'figure 4'(第 'c' 节),那里的图表看起来不像 sin(x) 而在图 1,2,3 中,一切都很好。

[在向我提供解决方案时,请考虑我需要包含 3 个完整周期的图表]。

代码:

%------a------%
vm1=20;
vm2=41;
vm3=79;
f=44;
w=2*pi*f;

t=linspace(0,6*pi,120);  %6pi for 3 cycles
v1=vm1*sin(w*t+pi/3);
v2=vm2*sin(w*t-pi/4);
v3=vm3*sin(w*t);

plot(t,v1,t,v2,t,v3);
ylabel('v(t)[V]');
xlabel('t[sec]');
legend('v_1(t)','v_2(t)','v_3(t)');

%-----b-----%
vsum=v1+v2+v3;
figure;plot(t,vsum,'linewidth',2);
ylabel('v(t)[V]');
xlabel('t[sec]');
legend('v_s(t)');

%-----c-----%
f1=200;
w1=2*pi*f1;
f2=200*3.2;
w2=2*pi*f2;
f3=200*4.3;
w3=2*pi*f3;

v1_new=vm1*sin(w1*t+pi/3);
v2_new=vm2*sin(w2*t-pi/4);
v3_new=vm3*sin(w3*t);
figure;plot(t,v1_new,t,v2_new,t,v3_new);
ylabel('v(t)[V]');
xlabel('t[sec]');
legend('v_1new(t)','v_2new(t)','v_3new(t)');

vsum_new=v1_new+v2_new+v3_new;
figure;plot(t,vsum_new,'linewidth',2);
ylabel('v(t)[V]');
xlabel('t[sec]');
legend('v_s(t)');

在您的函数中 "y=a * sin(b*x+c)" b 改变正弦波的周期,即完成一个完整周期所需的时间。

周期:T = 2*pi / b

所以如果你想有 3 个周期,你应该计算 T 并确保你的 t 从 0 到 3*T。

t = linspace(0,6*pi/w1,120);