import matplotlib.pyplot as plt sample_rate = 1000 # sample per second frequency = 5 # Hz duration = 1 # seconds period = sample_rate / frequency # number of samples print(f"The period: {period}") time = [] voltage = [] sample = 0 while sample < sample_rate * duration: t = sample / sample_rate phase = sample % period if phase < period / 2: v = 1.0 else: v = 0.0 time.append(t) voltage.append(v) sample += 1 # this moves the while loop forward plt.figure(figsize=(10,4)) plt.plot(time, voltage, '.-', markersize=3) plt.xlabel("Time (S)") plt.ylabel("Voltage (V)") plt.title("Point-by-Point Square Wave") plt.grid(True) plt.ylim(-0.2, 1.2) plt.show()