使用Mathematica绘制长波方波

时间:2015-03-24 11:09:02

标签: wolfram-mathematica

我想使用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

实际上,方波生成用作时钟信号,所以我希望它稳定,连续。

希望你能帮助我解决这个问题。听到您的到来。

1 个答案:

答案 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]]

我不会立即看到如何应用这种情况下的潇洒。