La idea de este post es disponibilizar un taller que permita a lxs estudiantes aprender sobre los conceptos relacionados a las señales digitales y como las desiciones que se toman en el proceso de digitalización pueden impactar sustancialmente en el registro o generación de una señal. Para ello se utiliza el lenguaje python con sus respectivas librerias.
# Importando librerias
import numpy as np
t_i = 0
t_f = 1
f_s = 1000
#Importamos librerias
import numpy as np
import matplotlib.pyplot as plt
from __future__ import print_function
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
# Amplitude = A
# Frequency = f
# Phase = phi
# tiempo inicia = t_i
# tiempo final = t_f
# Cantidad de muestras por segundo
f_s = 100#Samples/s
# Punto de inicio y final de mi experimento
t_i = 0
t_f = 1
T_s = 1/f_s # Periodo de muestreo (Lapso de tiempo entre muestra y muestra)
# Espacio muestreal t
t = np.arange(t_i,t_f,T_s)
def sinusoidal(t_i,t_f,f_s,A,f,phi):
s = A*np.sin(2*np.pi*f*t+phi)
plt.figure(1,figsize=(10,7),dpi=200)
plt.plot(t,s,label="signal 1")
plt.title(r"$S_1(t)$")
plt.xlabel("t(s)")
plt.ylabel("Amplitude s(t)")
#plt.xlim(0.5*step,2.5*step)
plt.legend()
plt.show()
%matplotlib inline
interact(sinusoidal,t_i=widgets.FloatSlider(min=0, max=0.9, step=0.1, value=0),t_f=widgets.FloatSlider(min=1, max=10, step=0.1, value=1),f_s=widgets.FloatSlider(min=1, max=1000000, step=1, value=1000),A=widgets.FloatSlider(min=0, max=5, step=0.1, value=1),f=widgets.FloatSlider(min=0, max=1000, step=1, value=1),phi=widgets.FloatSlider(min=0, max=2*np.pi, step=0.01, value=0));
#IntSlider(min=1.001, max=1.002, step=1, value=10)