4. SERIES DE FOURIER

Invitame a un Cafe

Representacion En la frecuencia de Señales Periodicas Mediante Series De Fourier

Las series de Fourier constituyen la herramienta matemática básica del análisis de Fourier empleado para analizar funciones periódicas a través de la descomposición de dicha función en una suma infinita de funciones senoidales mucho más simples (como combinación de senos y cosenos con frecuencias enteras). El nombre se debe al matemático francés Jean-Baptiste Joseph Fourier que desarrolló la teoría cuando estudiaba la ecuación del calor. Fue el primero que estudió tales series sistemáticamente, y publicando sus resultados iniciales en 1807 y 1811. Esta área de investigación se llama algunas veces Análisis armónico.

Es una aplicación usada en muchas ramas de la ingeniería, además de ser una herramienta sumamente útil en la teoría matemática abstracta. Áreas de aplicación incluyen análisis vibratorio, acústica, óptica, procesamiento de imágenes y señales, y compresión de datos. En ingeniería, para el caso de los sistemas de telecomunicaciones, y a través del uso de los componentes espectrales de frecuencia de una señal dada, se puede optimizar el diseño de un sistema para la señal portadora del mismo. Refierase al uso de un analizador de espectros.

Respuesta de los Sistemas LTI ante Exponenciales Complejas

En los sistemas LTI es importante poder representar señales como la combinacion lineal de señales basicas que posean 2 propiedades:

  1. El conjunto de señales basicas se puede usar para construir una amplia y util clase de señales
  2. La respuesta de un sistema LTI a cada una de las señales debe ser lo bastante sencilla en estructura como para proporcionarnos una representacion conveniente de la respuesta del sistema a cualquier señal construida como una combinacion lineal de señales basicas.

La respuesta de una sistema LTI antes una señal Exponencial Compleja es la misma señal Exponencial Compleja con un cambio de amplitud $$\large e^{st} \rightarrow H(s)e^{st} $$ $$\large Z^n \rightarrow H[z] Z^{n} $$

Donde $\large H(s)$ y $\large H[z]$ con los valores propios (eingen valores) y $\large e^{st}$ y $\large Z^{n}$ son las funciones propias (eingen funciones)

Esto se puede demostrar para los sistemas continuos

$$ \large \begin{equation} x(t) = e^{st} \ y(t) = \int_{- \infty}^{+ \infty} h(\tau) x(t-\tau)\mathrm{d} \tau \ y(t) = \int_{- \infty}^{+ \infty} h(\tau) e^{s(t-\tau)}\mathrm{d} \tau \ y(t) = e^{st} {\underbrace{ \int_{- \infty}^{+ \infty} h(\tau) e^{-s \tau}\mathrm{d} \tau}_{H(s) \rightarrow \text{Constante Compleja}}} \ y(t) = H(s)e^{st} \end{equation} $$

Para los sistemas discretos

$$ \large \begin{equation} x[n] = Z^n \ y[n] = \sum_{k = - \infty}^{+ \infty} h[k]x[n-k] \ y[n] = \sum_{k = - \infty}^{+ \infty} h[k] Z^{n-k} \ y[n] = Z^n {\underbrace{ \sum_{k = - \infty}^{+ \infty} h[k] Z^-k}_{H[Z]}} \ y[n] = h[z]Z^n \end{equation} $$

En Resumen para los sistemas continuos $$ \large \begin{equation} x(t) = a_1 e^{s_1 t} + a_2 e^{s_2 t} + a_3 e^{s_3 t} \rightarrow \ a_1 e^{s_1 t} \rightarrow a_1 H(s_1) e^{s_1 t} \ a_2 e^{s_2 t} \rightarrow a_2 H(s_2) e^{s_2 t} \ a_3 e^{s_3 t} \rightarrow a_3 H(s_3) e^{s_3 t} \ y(t) = a_1 H(s_1) e^{s_1 t} + a_2 H(s_2) e^{s_2 t} + a_3 H(s_3) e^{s_3 t} \ \quad \ x(t) = \sum_{k} a_k e^{s_k t} \rightarrow y(t) = \sum_{k}a_k H(s_k) e^{s_k t} \end{equation} $$

Para los sistemas Discretos $$ \large \begin{equation} x[n] = \sum_{k} a_k Z_{k}^{n} \ y[n] = \sum_{k} a_k H(Z_k) Z_{k}^{n} \end{equation} $$

Representacion en Series de Fourier de señales Periodicas Continuas

$$ \large x(t) = x(t+T) \quad \forall : t \ \large \omega_0 = \frac{2 \pi}{T} \quad \text{Frecuencia Fundamental} \ \large x(t) = cos(\omega_0 t + \phi) \quad o \quad x(t) = e^{j(\omega_0 t + \phi)} $$

las señales exponenciales complejas que están relacionadas armónicamente cumplen que

$$ \large \phi_k(t) = e^{j k \omega_0 t} = e^{j k \left( \frac{2 \pi}{T}\right) t} \quad k = 0, \pm 1, \pm 2, … $$ SERIE DE FOURIER $$ \Large \boxed{x(t) = \sum_{k = - \infty}^{+ \infty}a_k e^{j k \omega_0 t} = \sum_{k = - \infty}^{+ \infty}a_k e^{j k \left( \frac{2 \pi}{T} \right) t} } $$

Ejemplo: $$ \large \begin{equation} x(t) = \sum_{k = -3}^{3}a_k e^{j k 2 \pi t}\ a_0 = 1, \quad a_1=a_{-1} = \frac{1}{4} \ a_2=a_{-2} = \frac{1}{2}, \qquad a_3=a_{-3} = \frac{1}{3} \ x(t) = 1 + \frac{1}{4} \left ( e^{j 2 \pi t} +e^{- j 2 \pi t} \right ) + \frac{1}{2} \left ( e^{j 4 \pi t} +e^{- j 4 \pi t} \right ) + \frac{1}{3} \left ( e^{j 6 \pi t} +e^{- j 6 \pi t} \right ) \rightarrow \ x(t) = 1 + \frac{1}{2}\cos(2 \pi t) + \cos(4 \pi t) + \frac{2}{3}\cos(6 \pi t) \end{equation} $$

Serie de Fourier para Señales Reales

$$ \large \text{Si} \quad \large x(t) \in \mathbb{Re} \rightarrow x^(t) = x(t) \ \large \rightarrow a_{-k}^ = a_k \rightarrow a_{k}^* = a_{-k} $$

Formas Alternativas para representar Series de Fourier

$$ \large x(t) = a_0 + \sum_{k=1}^{\infty}[a_k e^{j k \omega_0 t}+ a_{-k} e^{-j k \omega_0 t}] \rightarrow a_{-k}^* = a_k \ \large x(t) = a_0 + \sum_{k=1}^{\infty}[a_k e^{j k \omega_0 t}+ a_{k}^* e^{-j k \omega_0 t}] $$ Como son Complejos conjugados entonces $$ \large x(t) = a_0 + \sum_{k=1}^{\infty} 2 \mathbb{Re} \left { a_k e^{j k \omega_0 t} \right } $$ Si $a_k$ se expresa de forma polar entonces

$$ \large a_k = A_k e^{j \theta_k} \rightarrow \ \large x(t) = a_0 + \sum_{k=1}^{\infty} 2 \mathbb{Re} \left { A_k e^{j( k \omega_0 t + \theta_k)} \right } \ \large x(t) = a_0 + 2 \sum_{k=1}^{\infty} A_k \cos ( k \omega_0 t + \theta_k) $$ Que es llamada la serie de fourier de una señal periodica real continua, otra forma de representacion se obtiene cuando

$$ \large a_k = B_k +jC_k \rightarrow \ \large x(t) = a_0 + 2 \sum_{k=1}^{\infty}[ B_k \cos ( k \omega_0 t)- C_k \sin ( k \omega_0 t)] $$

Determinacion de la Serie de Fourier para una Señal Periodica Continua

Se demostrara como calcular los valores de $\large a_k$ $$ \large x(t)\qquad \quad = \sum_{k = - \infty}^{+ \infty}a_k e^{j k \omega_0 t} \ x(t) e^{-j n \omega_0 t} = \sum_{k = - \infty}^{+ \infty}a_k e^{j k \omega_0 t} : e^{-j n \omega_0 t} \ \int_0^T x(t) e^{-j n \omega_0 t} \mathbb{d}t= \int_0^T \sum_{k = - \infty}^{+ \infty}a_k e^{j k \omega_0 t} : e^{-j n \omega_0 t} \mathbb{d}t\ \int_0^T x(t) e^{-j n \omega_0 t} \mathbb{d}t= \sum_{k = - \infty}^{+ \infty}a_k {\underbrace{ \left [ \int_0^T e^{j (k -n)\omega_0 t} \mathbb{d}t \right ]}_{\large \bigstar}} \ \large \bigstar : \int_0^T e^{j (k -n)\omega_0 t} \mathbb{d}t = \int_0^T \cos((k-n)w_0 t) \mathbb{d}t + j\int_0^T \sin((k-n)w_0 t) \mathbb{d}t $$ En $\large \bigstar$ Si $\large k \neq n :$ entonces la integral es igual a cero

En $\large \bigstar$ Si $\large k = n :$ entonces $\large \int_0^T e^{j (k -n)\omega_0 t} \mathbb{d}t = T$

Finalmente reemplazando los valores obtenidos en $\bigstar$ ,cuando $k=n$, en la formula original podemos despejar y obtenemos:

$$ \large \boxed{a_k = \frac{1}{T}\int_0^T x(t)e^{-j k \omega_0 t} \mathbb{d}t} $$ $$ \large \boxed{a_0 = \frac{1}{T}\int_0^T x(t) \mathbb{d}t} $$ y recordando que la serie de Fourier es igual a:

$$ \Large \boxed{x(t) = \sum_{k = - \infty}^{+ \infty}a_k e^{j k \omega_0 t} = \sum_{k = - \infty}^{+ \infty}a_k e^{j k \left( \frac{2 \pi}{T} \right) t} } $$

Ejemplos de Calculo de la serie de Fourier

  • Determinar la serie de Fourier para $\large x(t) = \sin (\omega_0 t)$

  • Determinar la serie de Fourier para $\large x(t) = 1 + \sin (\omega_0 t) + 2 \cos (\omega_0 t) + \cos (2\omega_0 t + \frac{\pi}{4})$

  • Calculo Serie de Fourier de una señal cuadrada

Convergencia de las Series de Fourier

Para que se pueda calcular las series de Fourier se deben cumplir las condiciones de Dirichlet

Condicion 1

Sobre cualquier Periodo $x(t)$ debe ser absolutamente integrable. $$\large \int_T |x(t)| \mathbb{d}t < \infty $$

Condicion 2

La variacion de $x(t)$ en cualquier intervalo finito de tiempo debera estas acotado, entonces existe un numero finito de maximos y minimos durante un periodo.

Condicion 3

En cualquier intervalo finito de tiempo hay solo un numero finito de discontinuidades, ademas esas discontinuidades deben ser finitas.

Fenomeno de Gibss

El fenómeno de Gibbs es la descripción del comportamiento que tiene la serie de Fourier asociada a una función definida a trozos periódica en una discontinuidad no evitable de salto finito. Su nombre se debe a J. Willard Gibbs, quien fue el primero en explicar este fenómeno, en 1899.

Cuando la función que se está desarrollando en Serie de Fourier tiene discontinuidades (señales de variación rápida) no es posible que haya una buena convergencia en los entornos de las mismas.

Señal Cuadrada

Esta señal es un buen ejemplo para demostrar el fenomeno de Gibbs

# Importar librerias basicas
import numpy as np
import matplotlib.pyplot as plt
import sympy as sym

%matplotlib inline
plt.style.use('bmh') # estilo de las graficas
from IPython.display import Latex # para visualizar ecuaciones en jupyter
from scipy import signal as sp


amplitud = 1
periodo = np.pi


t = np.arange(-1, 10, 0.001)
funcion = ((sp.square(2 * t)) * (amplitud / 2.0)) + (amplitud / 2.0)

plt.plot(t, funcion, lw=2)
plt.grid()
plt.annotate('Pi', xy = (np.pi, 1), xytext = (np.pi, 1.1))
plt.annotate('Pi/2', xy = (np.pi / 2.0, 1), xytext = (np.pi / 2.0, 1.1))
plt.ylabel('Amplitud')
plt.xlabel('Tiempo(t)')
plt.ylim(-1,2)
plt.xlim(-0.5, 4)
plt.show()

png

#Importamos todo el modulo sympy
%matplotlib inline

import numpy as np
import matplotlib.pylab as plt

from sympy import *
#ademas importamos las variables simbolicas 'n' y 't'
from sympy.abc import t, n

ao = integrate(2 / pi, (t, 0, pi / 2))
#integramos la funcion (2/pi) cuya variable es 't'
#y limites de integracion entre 0 y pi/2
print('Coeficientes de la serie de Fourier en forma Trigonometrica')
print("\n"+"a0 = ")
pprint(ao)
#Usamos la funcion pprint para mostrar ao

an = integrate((2 / pi) * cos(2 * n * t), (t, 0, pi / 2))

an = integrate((2 / pi) * cos(2 * n * t), (t, 0, pi / 2))
#integramos la funcion (2/pi)*cos(2nt)
#Su variable es 't' y sus limites de integracion son 0 y pi/2

print ("\n"+"an = ")
pprint(an)
#Usamos la funcion pprint para mostrar an

bn = together(integrate((2 / pi) * sin(2 * n * t), (t, 0, pi / 2)))
#integramos la funcion (2/pi*cos(2nt)
#Su variable es 't' y sus limites de integracion
#son 0 y pi/2. Ademas usamos la funcion "together"
#para simplificar la expresion

print("\n"+"bn = ")
pprint(bn)
#Usamos la funcion pprint para mostrar bn

print("\n"+"f(x) = ")
Coeficientes de la serie de Fourier en forma Trigonometrica

a0 = 
1

an = 
⎧sin(π⋅n)                            
⎪────────  for n > -∞ ∧ n < ∞ ∧ n ≠ 0
⎨  π⋅n                               
⎪                                    
⎩   1              otherwise         

bn = 
⎧  cos(π⋅n)    1                             
⎪- ──────── + ───  for n > -∞ ∧ n < ∞ ∧ n ≠ 0
⎨    π⋅n      π⋅n                            
⎪                                            
⎩       0                  otherwise         

f(x) = 
armonicos = 10
serie = (ao/2)
for i in range(1, armonicos + 1):
    serie = serie + (an*cos(2*n*t)).subs(n, i)
for j in range(1, armonicos + 1):
    serie = serie + (bn*sin(2*n*t)).subs(n, j)

pprint(serie)
#Usando el modulo para graficas de sympy
plotting.plot(serie, ylim=(-0.5, 1.5), xlim=(-0.5,5));
2⋅sin(2⋅t)   2⋅sin(6⋅t)   2⋅sin(10⋅t)   2⋅sin(14⋅t)   2⋅sin(18⋅t)   1
────────── + ────────── + ─────────── + ─────────── + ─────────── + ─
    π           3⋅π           5⋅π           7⋅π           9⋅π       2

png

points = [1,2,4,10,30,50]

for ii in points:
    armonicos = ii
    serie = (ao/2)
    for i in range(1, armonicos + 1):
        serie = serie + (an*cos(2*n*t)).subs(n, i)
    for j in range(1, armonicos + 1):
        serie = serie + (bn*sin(2*n*t)).subs(n, j)
    #Usando el modulo para graficas de sympy
    print(f'Numero de terminos = {ii}')
    sym.plotting.plot(serie, ylim=(-0.5, 1.5), xlim=(-0.5,5))
Numero de terminos = 1

png

Numero de terminos = 2

png

Numero de terminos = 4

png

Numero de terminos = 10

png

Numero de terminos = 30

png

Numero de terminos = 50

png

Como se puede apreciar, a medida que se suman más términos a la serie, ésta se va aproximando a la onda cuadrada dado que las oscilaciones se vuelven más rápidas y más pequeñas, pero los picos no disminuyen. Estos picos en las series de Fourier de la función cuadrada nunca desaparecen; son llamados el fenómeno de Gibbs nombrado por el físico estadounidense Josiah Willard Gibbs. Ocurren cada vez que las señales tienen discontinuidades de salto (generalmente en los extremos), y siempre estarán presentes cuando la señal tiene oscilaciones fuertes como en este caso de uno a menos uno.

Propiedades de la serie de Fourier

$$ \large x(t) \overset{fs}{\longleftrightarrow} a_k $$

Linealidad

$$ \large x(t) \overset{fs}{\longleftrightarrow} a_k \ \large y(t) \overset{fs}{\longleftrightarrow} b_k \ \large Z(t) = Ax(t) + By(t) \overset{fs}{\longleftrightarrow} C_k = Aa_k + Bb_k $$

Desplazamiento en el tiempo

$$ \large y(t) = x(t-t_0) \ \large b_k = \frac{1}{T} \int_T x(t-t_0)e^{-jk\omega_0t}\mathbb{d}t \ \text{Si hacemos} \quad \tau = t-t_0 \ \large b_k = \frac{1}{T} \int_T x(\tau)e^{-jk\omega_0 (\tau -t_0)}\mathbb{d}\tau \rightarrow \ \large b_k = \frac{e^{-j\omega_0t_0}}{T} \int_T x(\tau)e^{-jk\omega_0 (\tau)}\mathbb{d}\tau \rightarrow \ b_k = e^{-j\omega_0t_0} a_k \ \large \boxed{x(t-t_o)\overset{fs}{\longleftrightarrow}e^{-j\omega_0t_0} a_k} $$ Cuando una señal periodica se desplaza en $\large t$ las magnitudes de $\large |a_k| = |b_k|$ no se alteran

Inversion de tiempo

$$ y(t) = x(-t) \rightarrow x(-t) = \sum_{k = -\infty}^{\infty}a_k e^{-j k \omega_0 t} $$ Haciendo $k = -m \rightarrow$ $$ y(t) = x(-t) \rightarrow x(-t) = \sum_{m = -\infty}^{\infty}a_m e^{j m \omega_0 t} \rightarrow \large bk = a_{-k} \ \large \boxed{x(-t) \overset{fs}{\longleftrightarrow} a_{-k}} $$

  • Si $\large x(t)$ es par $\large x(t) = x(-t)$ los coeficientes de fourier tambien lo son $\large a_k = a_{-k}$
  • Si $\large x(t)$ es impar $\large -x(t) = x(-t)$ los coeficientes de fourier tambien lo son $\large -a_k = a_{-k}$

Escalamiento en el tiempo

El escalamiento hace que cambie el periodo de la señal

$$ \Large \boxed{x(\alpha t) = \sum_{k = - \infty}^{+ \infty}a_k e^{j k (\alpha\omega_0) t} } $$

Multiplicacion

$$ \large x(t) \overset{fs}{\longleftrightarrow} a_k \ \large y(t) \overset{fs}{\longleftrightarrow} b_k \ \large x(t)y(t) \overset{fs}{\longleftrightarrow} h_k = \sum_{L = -\infty}^{\infty}a_L b_{k-L} $$

Conjugacion

$$ \large x(t) \overset{fs}{\longleftrightarrow} a_k \ \large x(t)^* \overset{fs}{\longleftrightarrow} a^*_{-k} \ $$

Relacion de Parseval

$$ \large \frac{1}{T}\int_T |x(t)|^2 \mathbb{d}t= \sum_{k=-\infty }^{+ \infty}|a_k|^2 $$

Convolucion Periodica

$$ \large x(t)*y(t) = \int_T x(\tau)y(t-\tau)\mathbb{d}\tau \overset{fs}{\longleftrightarrow} T a_k b_k $$

Derivacion

$$ \large \frac{\mathbb{d}x(t)}{\mathbb{d}t} \overset{fs}{\longleftrightarrow} jk \omega_0 a_k = jk (\frac{2\pi}{T})a_k $$

Integracion

$$ \large \int_{- \infty}^{t}x(t)\mathbb{d}t \overset{fs}{\longleftrightarrow} \left ( \frac{1}{j k \omega_0} \right) a_k $$

Representacion en Series de Fourier de señales Periodicas Discretas

La principal diferencia con la serie continua, es que la serie discreta es finita, lo que indica que una señal discreta periodica se puede representar como una combinacion lineal de exponenciales complejas armonicas discretas

$$ \large x[n] = x[n+N] \qquad \omega_0 = \frac{2 \pi}{N} \quad \text{Frecuencia Fundamental} $$

las señales exponenciales complejas que estan relacionadas armónicamente cumplen que

$$ \large \phi_k[n] = e^{j k \omega_0 n} = e^{j k \left( \frac{2 \pi}{N}\right) t} \quad k = 0, \pm 1, \pm 2, … $$ Pero solo existen $N$ Señales distintas, debido a la periodicidad de las señales exponenciales complejas discretas, la serie discreta de fourier esta definida como:

$$ \Large \boxed{x[n] = \sum_{k = }a_k e^{j k \left( \frac{2 \pi}{N} \right) n} } $$

Determinacion de la Serie de Fourier para una Señal Periodica Discreta

Se demostrara como calcular los valores de $a_k$ $$ \large x[n]\qquad \quad = \sum_{k = }a_k e^{j k \omega_0 n} \ \large \sum_{n = }x[n] e^{-j r \omega_0 t} = \sum_{n = } \sum_{k = }a_k e^{j (k-r) \omega_0 n} \ \large \sum_{n = }x[n] e^{-j r \omega_0 t} = \sum_{k = }a_k \sum_{n = } e^{j (k-r) \omega_0 n} \ \large \sum_{n = } e^{j k \omega_0 n} \begin{cases} N, \qquad K = 0 \ 0, \qquad \text{para los otros valores} \end{cases} $$

Resolviendo de la misma manera que para las serries continuas obtenemos que: $$ \boxed{\large \begin{aligned} a_k &= \frac{1}{N} \sum_{n=} x[n] e^{-j k \omega_0 n} \ x[n] &= \sum_{k = }a_k e^{j k \left( \frac{2 \pi}{N} \right) n} \end{aligned} } $$ Recordar que $\large a_k = a_{k+N}$

Ejemplos de Calculo de la serie de Fourier Discreta

  • Determinar la serie de Fourier para $\large x[n] = \sin (\omega_0 n)$

  • Calculo Serie de Fourier de una señal cuadrada

Fenomeno de Gibss

Para las señales discretas no se presenta el fenomeno de Gibbs, estas se representan completamente con componentes finitas, como se puede ver en la solucion de la señal cuadrada

Propiedades de la serie de Fourier Discreta

Las Propiedades son iguales a las de las señales continuas, a diferencia de estos casos:

Multiplicacion

$$ \large x[n] \overset{fs}{\longleftrightarrow} a_k \ \large y[n] \overset{fs}{\longleftrightarrow} b_k \ \large x[n]y[n] \overset{fs}{\longleftrightarrow} d_k = \sum_{L = }a_L b_{k-L} $$ Esta operacion se llama convolucion periodica

Primera Diferencia

$$ \large x[n] - x[n-1] \overset{fs}{\longleftrightarrow} (1- e^{-j k \frac{2 \pi}{N}})a_k $$

Relacion de Parseval

$$ \large \frac{1}{N} \sum_{n=} |x[n]|^2 = \sum_{k= }|a_k|^2 $$

Serie de Fourier y Sistemas LTI

Para las señales continuas $$ \large x(t) = e^{st} \ y(t) = H(s)e^{st} \ H(s) = \int_{- \infty}^{+ \infty} h(\tau) e^{-s \tau}\mathrm{d} \tau $$ En la cual $\large h(t)$ es la respuesta al impulso

Para las señales discretas

Si $\large s ,z$ con señales complejas generales $\large H(s), H[Z]$ se conocen como las funciones del sistema.

Si $\large s=j \omega$ entonces $\large H(j\omega)$ es la Respuesta en frecuencia

$$ \large \boxed{ H(j\omega) = \int_{- \infty}^{+ \infty} h(\tau) e^{-s \tau}\mathrm{d} \tau} $$

Entonces si:

$$ \large x(t) = \sum_{k = - \infty}^{+ \infty}a_k e^{j k (\omega_0) t} \rightarrow \ y(t) = \sum_{k = - \infty}^{+ \infty}a_k H(e^{j\omega_0}) e^{j k (\omega_0) t} $$ Donde $\large y(t)$ tambien es periodica con la misma frecuencia fundamental de $\large x(t)$

Para las Señales discretas $\large |Z| =1$ donde $\large Z = e^{j\omega}$ $$ \large \boxed{ H(e^{j\omega}) = \sum_{n = -\infty}^{+ \infty} h[n] e^{-j \omega n}} $$

$$ \large x[n] = \sum_{k = }a_k e^{j k \left( \frac{2 \pi}{N} \right) n} \ \large y[n] = \sum_{k = }a_k H(e^{j k \left( \frac{2 \pi}{N} \right)}) e^{j k \left( \frac{2 \pi}{N} \right) n} $$

REFERENCIAS

Phd. Jose R. Zapata