Es wird versucht, eine 2Hz Rechteckwelle mit 4Hz zu zeichnen (siehe folgende Abbildung). Warum bin ich nicht eine Gleichförmigkeit für Probe eingekreist rot wird die IMO bei -1 durch zweiten roten Pfeil markiert werden soll:Falsche Rechteckwellenabtastung mit scipy
Hier ist mein Python-Code (unter der Annahme ipython Shell und importiert numpy (als np) , scipy (Signal) und matplotlib (PLT))
t4 = np.linspace(0,4,16,endpoint=False)
s2t4 = signal.square(2.0*np.pi*2.0*t4)
t500 = np.linspace(0,4,500,endpoint=False)
s2t500 = signal.square(2*np.pi*2*t500)
plt.ylim(-2,2); plt.plot(t500,s2t500,'k',t4,s2t4,'b',t4,s2t4,'bo'); plt.show()
Meine Schätzung wäre Gleitkommafehler. Der Punkt, den Sie eingekreist haben, ist wahrscheinlich sehr geringfügig kleiner als 2,75, also ist der Wert 1. Der einfachste Weg, dies zu beheben, wäre, Ihre dreieckige Welle an den Mittelpunkten der Rechteckwelle und nicht an den Ecken zu messen. –