Ejemplos de transformadas de Fourier:

En el presente notebook se han definido y graficado diversas funciones y sus correspondientes transformadas de Fourier.


In [2]:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact

In [3]:
plt.style.use('classic')

Pulso cuadrado:

Sea $$ f(x):=\left\{ \begin{matrix} 1, &\rm{si}\quad |x|<a \\ 0, &\rm{si}\quad|x|>a \\ \end{matrix}\right. , $$

con transformada de Fourier $$ {\cal F}[f](k)=2\frac{\sin(k a)}{k}. $$


In [4]:
def p(x,a):
    if abs(x)<a:
        return 1.
    else:
        return 0.
pulso = np.vectorize(p) #vectorizando la función pulso

Definimos 1000 puntos en el intervalo $[-\pi,\pi]$:


In [5]:
x = np.linspace(-10,10,1000)
k = np.linspace(-10,10,1000)

In [6]:
def p(a=1):
    plt.figure(figsize=(12,5))
    plt.subplot(1,2,1)
    #fig,ej=subplots(1,2,figsize=(14,5))
    plt.plot(x,pulso(x,a), lw = 2)
    plt.xlim(-10,10)
    plt.ylim(-.1,1.1)
    plt.grid(True)
    plt.xlabel(r'$x$',fontsize=15)
    plt.ylabel(r'$f(x)$',fontsize=15)
    plt.subplot(1,2,2)
    plt.plot(k,2*(np.sin(k*a)/k), lw = 2)
    plt.xlim(-10,10)
    plt.grid(True)
    plt.xlabel('$k$',fontsize=15)
    plt.ylabel('$\\tilde{f}(k)$',fontsize=15)

In [7]:
#p(5)
#plt.savefig('fig-transformada-Fourier-pulso-cuadrado.pdf')

In [8]:
interact(p, a=(1,10))


Out[8]:
<function __main__.p(a=1)>

Función Guassiana

Sea $$ f(x):=e^{-\alpha x^2}, \qquad \alpha>0, $$ con transformada de Fourier $$ {\cal F}[f](k)=\sqrt{\frac{\pi}{\alpha}}e^{-k^2/(4\alpha)}. $$


In [9]:
def gaussina(alpha=1):
    plt.figure(figsize=(12,5))
    plt.subplot(1,2,1)
    plt.plot(x,np.exp(-alpha*x**2), lw=2)
    plt.xlim(-3,3)
    plt.grid(True)
    plt.xlabel('$x$',fontsize=15)
    plt.ylabel('$f(x)$',fontsize=15)
    plt.subplot(1,2,2)
    plt.plot(k,np.sqrt(np.pi/alpha)*np.exp(-k**2/(4.*alpha)), lw=2)
    plt.xlim(-10,10)
    plt.ylim(0,2)
    plt.grid(True)
    plt.xlabel('$k$',fontsize=15)
    plt.ylabel('$\\tilde{f}(k)$',fontsize=15)

In [10]:
interact(gaussina, alpha=(1,50))


Out[10]:
<function __main__.gaussina(alpha=1)>

In [11]:
#gaussina(5)
#plt.savefig('fig-transformada-Fourier-gaussiana.pdf')