我想使用mathematica软件获得连续的方波。
Plot[SquareWave[{0, 10}, x], {x, 0, 10},
ExclusionsStyle -> Directive[Dotted, Red]]
但是,如果我将xmax设置为100,则图片将超出预期。
Plot[SquareWave[{0, 10}, x], {x, 0, 100},
ExclusionsStyle -> Directive[Dotted, Red]]
结果如下:
(http://i.stack.imgur.com/NfWVK.png)
另一种产生方波的方法呢?我不记得我所看到的地方,但我知道我们可以使用UnitStep
。
但是,它仍然存在问题。
Plot[10 UnitStep[-Sin[0.4 Pi t]], {t, 0, 200}, Exclusions -> None,
PlotStyle -> Thick]
Plot[10 UnitStep[-Sin[0.4 Pi t]], {t, 0, 500}, Exclusions -> None,
PlotStyle -> Thick]
(http://i.stack.imgur.com/iPRLc.png)
实际上,方波生成用作时钟信号,所以我希望它稳定,连续。
希望你能帮助我解决这个问题。听到您的到来。
答案 0 :(得分:1)
SquareWave
没有错。问题是Plot
进行了相当粗略的初始采样,并且没有检测到所有离散区域。您只需要Plot
PlotPoints
规范:
Plot[SquareWave[{0, 10}, x], {x, 0, 100}, PlotPoints -> 1000,
ExclusionsStyle -> Directive[Dotted, Red]]
PlotPoints
需要设置得足够大,以便初始采样能够达到每个时间间隔。
或者,您可以明确提供要绘制的点并使用ListLinePlot
ListLinePlot[
Flatten[Table[
{{i,10},{i+1,10},{i+1,0},{i+2,0}} ,
{i, 0, 100, 2}], 1]]
我不会立即看到如何应用这种情况下的潇洒。