我是MATLAB的新手,我写了一些代码来生成正弦波。但是图表不正确。这是我的代码和情节
的屏幕截图
有什么问题?请帮忙!
答案 0 :(得分:4)
MATLAB绘制离散点并简单地绘制一条直线以将相邻点连接在一起。您的时间点介于两秒之间(1秒),您指定的频率为100 Hz。此外,因为您的采样时间是正弦波周期的倍数,所以替换t
的所有值将使sin
结果等于0,尽管存在一些数值不精确。具体来说,如果您查看y轴,您会看到数字的大小在10^{-13}
左右。然而,即使您逃避了这一点,对于指定的波频率,采样时间也会过大,因此点之间的巨大差距可视化为您在图表中看到的锯齿波。
解决方案是简化您的采样时间。尝试一些小的东西,例如1e-4
:
t = 0:1e-4:0.05;
f = 100;
A = 2;
x = A*sin(2*pi*f*t);
plot(t,x);
我们现在得到这个: