Rechteck/Dreieck/Sägezahn/inverse Sägezahn-Wellendaten in Python mit UliEngineering generieren
In einem vorherigen Beitrag habe ich beschrieben, wie man Sinus/Kosinus-Wellendaten mit Frequenz, Amplitude, Offset, Phasenverschiebung und Zeitversatz generiert mit nur einer einzigen Codezeile.
Dieser Beitrag 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 Beitrag für Details und Beispiele für diese Parameter.
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 Beitrag 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")