En un post anterior, detallé cómo generar datos de onda seno/coseno con frecuencia, amplitud, desplazamiento, desfase y desplazamiento de tiempo usando solo una línea de código.
Este post extiende este enfoque mostrando cómo generar datos de onda cuadrada, onda triangular, diente de sierra y diente de sierra inverso - todavía en solo una línea de código.
Todos los parámetros, incluyendo frecuencia, amplitud, desplazamiento, desfase y desplazamiento de tiempo aplican para esas funciones también - ver el post anterior para detalles y ejemplos de esos parámetros.
Estamos usando la biblioteca UliEngineering, más específicamente el paquete UliEngineering.SignalProcessing.Simulation:
Primero, instala UliEngineering.
Onda cuadrada
from UliEngineering.SignalProcessing.Simulation import square_wave
data = square_wave(frequency=10.0, samplerate=10e3)Onda triangular
from UliEngineering.SignalProcessing.Simulation import triangle_wave
data = triangle_wave(frequency=10.0, samplerate=10e3)Diente de sierra
from UliEngineering.SignalProcessing.Simulation import sawtooth
data = sawtooth(frequency=10.0, samplerate=10e3)Diente de sierra inverso
from UliEngineering.SignalProcessing.Simulation import inverse_sawtooth
data = inverse_sawtooth(frequency=10.0, samplerate=10e3)Código de trazado
Este código se usó para generar las gráficas para este post en Jupyter:
%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) para hacerla aún más grande!
plt.gcf().set_size_inches(10, 5)
plt.plot(data, label="original")
plt.savefig("/dev/shm/square-wave.svg")