Rechteck-/Dreieck-/Sägezahn-/inverse Sägezahn-Wellenformdaten in Python einfach generieren mit UliEngineering
In einem vorherigen Post habe ich beschrieben, wie man Sinus-/Kosinus-Wellendaten mit Frequenz, Amplitude, Offset, Phasenverschiebung und Zeitversatz generiert – mit nur einer einzigen Codezeile.
Dieser Post erweitert diesen Ansatz und zeigt, wie man Rechteckwellen-, Dreieckwellen-, Sägezahnwellen- und inverse Sägezahnwellen-Daten generiert – immer noch in nur einer Codezeile.
Alle Parameter, einschließlich Frequenz, Amplitude, Offset, Phasenverschiebung und Zeitversatz, gelten auch für diese Funktionen – siehe den vorherigen Post für Details und Beispiele zu diesen Parametern.
Wir verwenden die UliEngineering-Bibliothek, genauer gesagt das Paket UliEngineering.SignalProcessing.Simulation:
Installiere zunächst UliEngineering.
Rechteckwelle
from UliEngineering.SignalProcessing.Simulation import square_wave
data = square_wave(frequency=10.0, samplerate=10e3)Dreieckwelle
from UliEngineering.SignalProcessing.Simulation import triangle_wave
data = triangle_wave(frequency=10.0, samplerate=10e3)Sägezahnwelle
from UliEngineering.SignalProcessing.Simulation import sawtooth
data = sawtooth(frequency=10.0, samplerate=10e3)Inverse Sägezahnwelle
from UliEngineering.SignalProcessing.Simulation import inverse_sawtooth
data = inverse_sawtooth(frequency=10.0, samplerate=10e3)Plot-Code
Dieser Code wurde verwendet, um die Plots für diesen Post in Jupyter zu generieren:
%matplotlib inline
from matplotlib import pyplot as plt
plt.style.use("ggplot")
from UliEngineering.SignalProcessing.Simulation import square_wave
data = square_wave(frequency=10.0, samplerate=10e3)
# set_size_inches(20, 10) um ihn noch größer zu machen!
plt.gcf().set_size_inches(10, 5)
plt.plot(data, label="original")
plt.savefig("/dev/shm/square-wave.svg")