Generar fácilmente datos de onda cuadrada/triangular/diente de sierra/diente de sierra inverso en Python usando UliEngineering

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

square_wave_example.py
from UliEngineering.SignalProcessing.Simulation import square_wave

data = square_wave(frequency=10.0, samplerate=10e3)

Onda cuadrada

Onda triangular

triangle_wave_example.py
from UliEngineering.SignalProcessing.Simulation import triangle_wave

data = triangle_wave(frequency=10.0, samplerate=10e3)

Onda triangular

Diente de sierra

sawtooth_example.py
from UliEngineering.SignalProcessing.Simulation import sawtooth

data = sawtooth(frequency=10.0, samplerate=10e3)

Diente de sierra

Diente de sierra inverso

inverse_sawtooth_example.py
from UliEngineering.SignalProcessing.Simulation import inverse_sawtooth

data = inverse_sawtooth(frequency=10.0, samplerate=10e3)

Diente de sierra inverso

Código de trazado

Este código se usó para generar las gráficas para este post en Jupyter:

plot_waveforms.py
%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")

Echa un vistazo a artículos similares por categoría: Ciencia de datos Matemáticas Python