Referencia: Oppenjeim 4.1. p285, Lathi 7.2 p680
El planteamiento de Fourier es que una señal aperiódica (no periódica) puede observarse como una señal periódica con periodo infinito.
Ejercicio 1. exponencial decreciente con μ(t)
Referencia: Oppenheim Ejercicio 4.1 p290, Lathi ejemplo 7.1 p685, Hsu Ejemplo 5.2 p218
Considere la señal contínua exponencial decreciente, desarrolle la transformada de Fourier
x(t) =e^{-at} \mu (t) \text{ ; } a \gt 0el integral a desarrollar,
X(j\omega) =\int_{-\infty}^{\infty} e^{-at} \mu (t) e^{-j \omega t} \delta t X(j\omega) =\int_{0}^{\infty} e^{-(a+j\omega)t} \delta t =-\frac{1}{a+j\omega} e^{-(a+j\omega)t} \Big|_{0}^{\infty} X(j\omega) =-\frac{1}{a+j\omega} e^{-(a+j\omega)(\infty)} +\frac{1}{a+j\omega} e^{-(a+j\omega)(0)} X(j\omega) = \frac{1}{a+j\omega}para a>0
Se obtiene una parte real y otra imaginaria al evaluar F(w) en un intervalo que incluya -a y a.
También es posible observar la magnitud y fase de F(w) en una gráfica.
Se observa por ejemplo que el valor de la magnitud |F(0)| = 1/a. También que la fase se encuentra acotada en π/2 y que fase(F(-a)) = -π/4.
Usando el algoritmo con Python se obtiene el siguiente resultado:
expresion f(t): -a*t e *Heaviside(t) expresion F(w): 1 ------- a + I*w |F(w)|: 1 ------------ _________ / 2 2 \/ a + w F(w)_fase: /w\ -atan|-| \a/ >>>
Instrucciones en Python
# Transformada de Fourier de señales aperiodicas # integral de Fourier # blog.espol.edu.ec/telg1001/ import sympy as sym import numpy as np import matplotlib.pyplot as plt # INGRESO j = sym.I ; W = sym.oo w = sym.Symbol('w',real=True) t = sym.Symbol('t', real=True,) a = sym.Symbol('a', real=True,positive=True) b = sym.Symbol('b', real=True,positive=True) T = sym.Symbol('T', real=True,positive=True) ft = sym.exp(-a*t)*sym.Heaviside(t) # Ej 4.1 Oppenheim [ta,tb] = [-sym.oo,sym.oo] # Intervalo Integración #ft = sym.exp(-a*np.abs(t)) # Ej 4.2 Oppenheim #[ta,tb] = [-sym.oo,sym.oo] # Intervalo Integración # parametros para grafica a1 = 2 # valor a T1 = 1 # valor T o periodo # intervalo de gráfica [a_lim,b_lim] a_tlim = -2*T1 b_tlim = 2*T1 muestras = 52 # PROCEDIMIENTO ftw = ft*sym.exp(-j*w*t) # integral general en intervalo t Fw_F = sym.integrate(ftw,(t,ta,tb)) if Fw_F.is_Piecewise: Fw = Fw_F.args[0] # primer intervalo Fw = Fw[0] # expresión buscada else: Fw = Fw_F Fw = Fw.simplify() # Magnitud y Fase Fw_magn = sym.Abs(Fw) Fw_fase = sym.atan(sym.im(Fw)/sym.re(Fw)) # SALIDA print('\n expresion f(t):') sym.pprint(ft) print('\n expresion F(w):') sym.pprint(Fw) print('\n |F(w)|:') sym.pprint(Fw_magn) print('\n F(w)_fase:') sym.pprint(Fw_fase) # GRAFICA valores ---------------- # f(t) fta = sym.lambdify(t,ft.subs({a:a1,T:T1})) ti = np.linspace(a_tlim,b_tlim,muestras) fti = fta(ti) # F(w) magnitud y fase Fw_mg = sym.lambdify(w,Fw_magn.subs({a:a1,T:T1})) Fw_fs = sym.lambdify(w,Fw_fase.subs({a:a1,T:T1})) a_wlim = a1*4 wi = np.linspace(-a_wlim,a_wlim,muestras) Fwi_mg = Fw_mg(wi) # evalua wi Fwi_fs = Fw_fs(wi) if Fw_fase.is_constant(): Fwi_fs=np.ones(len(wi))*Fw_fase # F(w) real e imaginaria Fwa = sym.lambdify(w,Fw.subs({a:a1,T:T1})) a_wlim = a1*4 wi = np.linspace(-a_wlim,a_wlim,muestras) Fwi = Fwa(wi) # evalua wi # f(t) dominio t figura, graf_fti = plt.subplots() plt.plot(ti,fti,label='f(t)',color='blue') plt.xlabel('t') plt.ylabel('f(t)') etiq = str(a1)+'; T='+str(T1) plt.title(r'f(t) = $'+str(sym.latex(ft))+'$ ; a='+etiq) plt.grid() # F(w) real e imaginaria figura, graf_Fwi = plt.subplots(2,1) graf_Fwi[0].plot(wi,np.real(Fwi),label='Re(F(w))', color='orange') graf_Fwi[0].legend() graf_Fwi[0].set_ylabel('Re (F(w)) ') graf_Fwi[0].grid() graf_Fwi[1].plot(wi,np.imag(Fwi),label='Imag(F(w))', color='brown') graf_Fwi[1].legend() graf_Fwi[1].set_xlabel('w') graf_Fwi[1].set_ylabel('imag(F(w))') graf_Fwi[1].grid() plt.suptitle(r'F(w) = $'+str(sym.latex(Fw))+'$') # plt.show() # F(w) magnitud y fase figura, graf_Fw = plt.subplots(2,1) graf_Fw[0].plot(wi,Fwi_mg,label='F(w)_magn', color='orange') Fwa0 = Fw_mg(0) Fwa1 = Fw_mg(-a1) Fwa2 = Fw_mg(a1) graf_Fw[0].stem(-a1,Fwa1,linefmt ='--') graf_Fw[0].stem(a1,Fwa2,linefmt ='--') etiqueta1 = '('+str(a1)+','+str(np.round(Fwa2,4))+')' graf_Fw[0].annotate(etiqueta1, xy=(a1,Fwa2)) etiqueta0 = '('+str(0)+','+str(np.round(Fwa0,4))+')' graf_Fw[0].scatter(0,Fwa0) graf_Fw[0].annotate(etiqueta0, xy=(0,Fwa0)) graf_Fw[0].legend() graf_Fw[0].set_ylabel('F(w) magnitud ') graf_Fw[0].grid() graf_Fw[1].plot(wi,Fwi_fs,label='F(w)_fase', color='brown') graf_Fw[1].axhline(np.pi/2,linestyle ='--') graf_Fw[1].axhline(-np.pi/2,linestyle ='--') Fwa1f = Fw_fs(-a1) Fwa2f = Fw_fs(a1) graf_Fw[1].stem(-a1,Fwa1f,linefmt ='--') graf_Fw[1].stem(a1,Fwa2f,linefmt ='--') etiqueta3 = '('+str(a1)+','+str(np.round(Fwa2f,4))+')' graf_Fw[1].annotate(etiqueta3, xy=(a1,Fwa2f)) graf_Fw[1].legend() graf_Fw[1].set_xlabel('w') graf_Fw[1].set_ylabel('F(w) fase') graf_Fw[1].grid() plt.suptitle(r'F(w) = $'+str(sym.latex(Fw))+'$') plt.show()
Ejercicio 2. exponencial decreciente con |t|, función par
Referencia: Oppenheim Ejercicio 4.2 p291, Lathi ejemplo 7. p685, Hsu 5.21 p248
Considere la señal contínua exponencial decreciente, desarrolle la transformada de Fourier
x(t) =e^{-a|t|} \text{ ; } a \gt 0 X(j\omega) = \int_{-\infty}^{\infty}e^{-a|t|} e^{-j \omega t} \delta t X(j\omega) = \int_{-\infty}^{0}e^{at} e^{-j \omega t} \delta t + \int_{0}^{\infty}e^{-at} e^{-j \omega t} \delta t = \int_{-\infty}^{0}e^{at-j \omega t} \delta t + \int_{0}^{\infty}e^{-at-j \omega t} \delta t = \frac{1}{at-j \omega} e^{(a-j \omega) t}\Big|_{-\infty}^{0} - \frac{1}{a+j\omega}e^{-(at+j \omega) t} \Big| _{0}^{\infty} = \Big[ \frac{1}{at-j \omega} e^{(a-j \omega) (0)} - \frac{1}{at-j \omega t} e^{(a-j \omega) (-\infty)} \Big] + - \Big[ \frac{1}{a+j\omega}e^{-(at+j \omega) (\infty)} - \frac{1}{a+j\omega}e^{-(at+j \omega)(0)}\Big] = \frac{1}{a-j\omega} +\frac{1}{a+j\omega} = \frac{a+j\omega+ a-j\omega}{(a-j\omega)(a+j\omega)} X(j\omega) = \frac{2a}{(a^2+\omega^2)}Para desarrollar el ejercicio con el algoritmo, la entrada de señal se expresaría en el algoritmo como:
ft = sym.exp(-a*np.abs(t)) # Ej 4.2 Oppenheim [ta,tb] = [-sym.oo,sym.oo] # Intervalo Integración
el resultado a comparar con el desarrollo analítico es:
expresion f(t): -a*|t| e expresion F(w): 2*a ------- 2 2 a + w |F(w)|: 2*a ------- 2 2 a + w F(w)_fase: 0
Grafica de F(w) magnitud y fase
El algoritmo es el mismo que el ejercicio 1, modificando el bloque de ingreso para el problema
Ejercicio 3. Rectangular centrada en origen
Referencia: Oppenheim Ejercicio 4.4 p293, Lathi ejemplo 7.2 p689, Hsu 5.19 p247
Considere la señal pulso rectangular o pulso compuerta (gate), desarrolle la transformada de Fourier
x(t) =\begin{cases}1 && |t|<T_1, \\ 0 && |t|>T_1\end{cases} X(j \omega) = \int_{-T_1}^{T_1} e^{-j\omega t} \delta t = -\frac{1}{j \omega} e^{-j\omega t}\Big|_{-T_1}^{T_1} = -\frac{1}{j \omega} \Big[ e^{-j\omega (T_1)} - e^{-j\omega (-T_1)}\Big] = -\frac{1}{j \omega} \Big[ e^{-T_1 j\omega } - e^{jT_1\omega } \Big] = \frac{1}{j \omega} e^{T_1 j\omega} - \frac{1}{j \omega} e^{-T_1 j\omega }en este punto es conveniente usar la forma trigonometrica de un exponencial con exponente complejo
= \frac{1}{j \omega} (\cos (T_1\omega)+j \sin(T_1\omega)) - \frac{1}{j \omega} (cos(T_1 \omega) -jsin(T_1\omega)) = \frac{1}{j \omega}\cos (T_1\omega)+j\frac{1}{j \omega} \sin(T_1\omega) - \frac{1}{j \omega} cos(T_1 \omega) +j\frac{1}{j \omega} sin(T_1\omega)) X(j \omega) = 2\frac{\sin(T_1\omega)}{\omega}Para desarrollar el ejercicio con el algoritmo, la señal se expresaría como:
ft = sym.Heaviside(t+T)-sym.Heaviside(t-T) # Ej 4.4 Oppenheim [ta,tb] = [-sym.oo,sym.oo] # Intervalo tiempo
obteniendo el siguiente resultado
expresion f(t): -Heaviside(-T + t) + Heaviside(T + t) expresion F(w): 2*sin(T*w) ---------- w |F(w)|: |sin(T*w)| 2*|--------| | w | F(w)_fase: 0
con la siguiente gráfica f(T)
gráfica de F(w) parte real e imaginaria
El algoritmo es el mismo que el ejercicio 1, modificando el bloque de ingreso para el problema
Ejercicio 4. Pulso unitario
Referencia: Oppenheim Ejercicio 4.3 p292, Lathi ejemplo 7.3 p693, Hsu 5.1 p218
Considere la señal pulso unitario, desarrolle la transformada de Fourier
x(t) = \delta (t) X(j\omega) = \int_{-\infty}^{\infty} \delta (t) e^{-j \omega t} \delta t = 1Es decir la transformada de Fourier tiene componentes de todas las frecuencias.
El algoritmo entrega el siguiente resultado:
expresion f(t): DiracDelta(t) expresion F(w): 1 |F(w)|: 1 F(w)_fase: 0
El pulso unitario se define en Sympy como:
ft = sym.DiracDelta(t) # Ej 4.3 Oppenheim
En la parte gráfica, el pulsos unitarios se grafican con plt.stem(0,1), no requiriendo el resto de las graficas para observar el resultado.
El algoritmo es el mismo que el ejercicio 1, modificando el bloque de ingreso para el problema
Tarea: Realizar otros ejercicios con exponenciales para comprobar la operación del algoritmo.