Gere facilmente dados de forma de onda quadrada/triangular/dente de serra/dente de serra inversa em Python usando UliEngineering

Em um post anterior, eu detalhei como gerar dados de onda seno/cosseno com frequência, amplitude, offset, deslocamento de fase e offset de tempo usando apenas uma única linha de código.

Este post estende esta abordagem mostrando como gerar dados de onda quadrada, onda triangular, onda dente de serra e onda dente de serra inversa - ainda em apenas uma linha de código.

Todos os parâmetros, incluindo frequência, amplitude, offset, deslocamento de fase e offset de tempo se aplicam para aquelas funções também - veja o post anterior para detalhes e exemplos para aqueles parâmetros.

Estamos usando a biblioteca UliEngineering, mais especificamente o pacote UliEngineering.SignalProcessing.Simulation: Primeiro, instale UliEngineering.

Onda quadrada

square_wave_example.py
from UliEngineering.SignalProcessing.Simulation import square_wave

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

Forma de onda quadrada

Onda triangular

triangle_wave_example.py
from UliEngineering.SignalProcessing.Simulation import triangle_wave

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

Forma de onda triangular

Onda dente de serra

sawtooth_example.py
from UliEngineering.SignalProcessing.Simulation import sawtooth

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

Forma de onda dente de serra

Onda dente de serra inversa

inverse_sawtooth_example.py
from UliEngineering.SignalProcessing.Simulation import inverse_sawtooth

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

Forma de onda dente de serra inversa

Código de plotagem

Este código foi usado para gerar os plots para este post no 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 torná-lo ainda maior!
plt.gcf().set_size_inches(10, 5)
plt.plot(data, label="original")
plt.savefig("/dev/shm/square-wave.svg")

Check out similar posts by category: Data Science Mathematics Python