#!/usr/bin/env python # coding: utf-8 # # TRANSFORMACION DE LA VARIABLE INDEPENDIENTE # ## SISTEMAS Y SEÑALES # ### Ingenieria de Telecomunicaciones # ### Universidad Pontificia Bolivariana # ### Por: Jose R. Zapata - [https://joserzapata.github.io/](https://joserzapata.github.io/) # **joser.zapata@upb.edu.co** #

Contenido

#
# In[1]: # Script para ver y ocultar el codigo del jupyter from IPython.display import HTML HTML('''
''') # Modificacion basicas de la variable independiente, generalemente el tiempo. Permiten introducir varias propiedades basicas de los sistemas y señales # In[2]: # importar librerias de python import sympy as sym # Libreria de operaciones matematicass simbolicas import matplotlib.pyplot as plt plt.style.use('bmh') # estilo de las graficas get_ipython().run_line_magic('matplotlib', 'inline') from IPython.display import Latex # para visualizar ecuaciones en jupyter #sym.init_printing() # Definicion de la funcion a graficar que se usara como ejemplo # In[3]: #definicion de t como variable simbolica t = sym.symbols('t', real=True) # Funcion en forma de triangulo trian = t*sym.Heaviside(t) - t*sym.Heaviside(t - 1) # Grafica de la funcion creada print('x(t) = ') sym.plot(trian,(t, -3, 3), ylabel=r'$x(t)$'); # # Corrimiento del tiempo ( Temporal Shift) # # Una señal $x(t)$ o $x[n]$ que se retrasa por $\tau$ segundos se representa como una versión desplazada hacia la derecha el eje t. # # Una señal desplazada en el tiempo $x(t)$ es definida como # # \begin{equation} # y(t) = x(t-\tau) # \end{equation} # con $\tau \in \mathbb{R}$. La señal $x(t)$ es # # - Desplazada a La derecha (retrazada) para $\tau>0$ # - Señal continua $x(t−\tau)$ # - Señal discreta $x[n − \tau]$ # # Ejemplo: Sonares, señales de sismos, radares, señales de varios sensores en diferentes posiciones # In[4]: # Correr la funcion 1 segundo print('x(t) = ') sym.plot(trian,(t, -3, 3), ylabel=r'$x(t)$'); print('x(t-1) = ') x = trian.subs(t, t-1) sym.plot(x,(t, -3, 3), ylabel=r'$x(t-1)$', line_color='red'); # - Desplazada a La izquierda (adelantada) si $\tau < 0$ # - Señal continua $x(t + \tau)$ # - Señal discreta $x[n + \tau]$ # In[5]: # Correr la funcion 1 segundo x = trian.subs(t, t+2) print('x(t) = ') sym.plot(trian,(t, -3, 3), ylabel=r'$x(t)$'); print('x(t+1) = ') sym.plot(x,(t, -3, 3), ylabel=r'$x(t+2)$', line_color='red'); # # Inversion en el Tiempo (Temporal Flipping) # La inversion en el tiempo de una señal $x(t)$ esta definida como # \begin{equation} # y(t) = x(- t) # \end{equation} # Se interpreta geometricamente como el reflejo de la señal respecto al eje vertical # In[6]: # invertir la funcion en el tiempo #Grafica Original print('x(t) = ') sym.plot(trian,(t, -3, 3), ylabel=r'$x(t)$'); # Inversion x = trian.subs(t, -t) # Grafica de la funcion modificada print('x(-t) = ') sym.plot(x,(t, -3, 3), ylabel=r'$x(-t)$', line_color='red'); # # Escalamiento en el tiempo (Temporal Scaling) # La compresión o expansión de la señal en el tiempo es conocida como escalamiento en el tiempo. # # El escalamiento temporal de la señal $x(t)$ se define como # # \begin{equation} # y(t) = x(a \cdot t) # \end{equation} # # con $a \in \mathbb{R}$. La señal $x(t)$ es # # * Estirada o expandida para $0 < a < 1$ # * Comprimida para $a > 1$ # * Invertida en el tiempo y escalda para $a < 0$ # # Una aplicacaion del escalamiento temporal en procesamiento de señales en la adaptacion de la escala de tiempo para el modelamiento del efecto [Doppler](https://es.wikipedia.org/wiki/Efecto_Doppler). # In[7]: # Escalamiento temporal por un numero menor que 1 #Grafica Original print('x(t) = ') sym.plot(trian,(t, -3, 3), ylabel=r'$x(t)$'); # Escalamiento por 0.5 a = .5 x = trian.subs(t, a*t) display(Latex(r'$\large x \left (\frac{1}{2} t \right)$')) # Grafica de la funcion modificada sym.plot(x,(t, -3, 3), ylabel=r'$x(1/2*t)$', line_color='red'); # In[8]: # Escalamiento temporal por un numero mayor que 1 #Grafica Original print('x(t) = ') sym.plot(trian,(t, -3, 3), ylabel=r'$x(t)$', title = 'x(t)'); # Escalamiento por 0.5 a = 2 x = trian.subs(t, a*t) # Grafica de la funcion modificada display(Latex(r'$\large x \left ( 2 t \right)$')) sym.plot(x,(t, -3, 3), ylabel=r'$x(2*t)$', line_color='red'); # # Transformacion General # # El efecto de transformar la variable independiente de una señal $x(t)$ para obtener la señal modificada es de la forma: # # \begin{equation} # y(t) = x(a \cdot t +b) # \end{equation} # # Con la transformación, la variable independiente conserva la forma de x(t). La señal puede ser: # # - Alargada linealmente cuando $|a| < 1$ , # - Comprimida si $|a| > 1$, # - Invertida en el tiempo si $a < 0$, y # - Desplazada en el tiempo si $b$ es diferente de cero. # - siendo desplazada a la derecha si se resta el valor de $|b|$ # - siendo desplazada a la izquierda si se suma el valor de $|b|$ # # **Nota: Primero se hace el desplazamiento y luego se escala** # In[9]: # Transformaciones Generales #Grafica Original print('x(t) = ') sym.plot(trian,(t, -3, 3), ylabel=r'$x(t)$'); # Escalamiento por 0.5 a = .5 # Desplazamiento de -1 x = trian.subs(t, a*t+1) # Grafica de la funcion modificada display(Latex(r'$\large x \left (\frac{1}{2} t +1\right)$')) sym.plot(x,(t, -3, 3), ylabel=r'$x(1/2*t+1)$', line_color='red'); # In[10]: # Transformaciones Generales #Grafica Original print('Otro Ejemplo = ') print('x(t) = ') sym.plot(trian,(t, -3, 3), ylabel=r'$x(t)$'); # Escalamiento por -3 a = -3 # Desplazamiento de 2 x = trian.subs(t, a*t-2) # Grafica de la funcion modificada display(Latex(r'$\large x \left ( -3 t -2 \right)$')) sym.plot(x,(t, -3, 3), ylabel=r'$x(-3*t-2)$', line_color='red'); # # Cambio de Amplitud de la señal # # Estos cambios no se realizan en la variable independiente, si no que afectan la amplitud de la señal # In[11]: #Grafica Original print('x(t) = ') sym.plot(trian,(t, -3, 3), ylabel=r'$x(t)$') # Multiplicar por dos la amplitud print('2 x(t) = ') sym.plot(2*trian,(t, -3, 3), ylabel=r'$2*x(t)$'); # In[12]: #Grafica Original print('x(t) = ') sym.plot(trian,(t, -3, 3), ylabel=r'$x(t)$') # Multiplicar por dos la amplitud print('-2 x(t) = ') sym.plot(-2*trian,(t, -3, 3), ylabel=r'$-2*x(t)$'); # # REFERENCIAS # - https://github.com/spatialaudio/signals-and-systems-lecture # - http://blog.espol.edu.ec/telg1001/senales-operaciones-en-tiempo/ # **Phd. Jose R. Zapata** # - [https://joserzapata.github.io/](https://joserzapata.github.io/) # - https://twitter.com/joserzapata #