Métodos potenciales de prospección, FCAGLP
MPP-2022
Por medio de la TDF obtenga la derivada primera respecto del espacio de la señal digital que resulta de tomar muestras equiespaciadas de
$$s(x)=\cos\left(K x \right),$$en un intervalo de 500 m. La señal contínua $s(x)$ tiene longitud de onda $\lambda=100$ m. Considere un intervalo de muestreo espacial, $\Delta x$, por debajo del criterio de Nyquist de manera de sobremuestrear adecuadamente a $s(x)$. Compare el resultado obtenido con la derivada analítica de la señal original.
Obtendremos muestras de $s(x)$ considerando $\Delta x=\lambda_0/20$. Observemos que a lo fines de este ejemplo, vamos por debajo del criterio de Nyquist ($\Delta x <\lambda_0/2$) de forma tal de sobremuestrear adecuadamente la señal. Calculamos también la derivada $s^{\prime}(x)=\frac{ds(x)}{dx}$ de manera analítica para contrastar con el resultado del procesamiento digital.
La Transformada de Fourier, $\mathcal{F}(k)$, nos permite calcular la derivada de la señal $s(x)$ por medio de
$$\mathcal{F}\left\{\frac{ds(x)}{dx}\right\} = i k \mathcal{F}\left\{ s(x) \right\}.$$Como sabemos, en el caso digital $s(x_n)$ utilizamos la TDF:
$$\text{TDF}\left\{\mathbf{\dot{s}}\right\} = i\: \mathbf{k} \circ \text{TDF}\left\{\mathbf{s}\right\},$$donde $\circ$ representa el producto elemento por elemento entre dos vectores. El vector $\mathbf{k}$ contiene los número de onda angulares $k$. Su contraparte digital es el vector número de onda angular digital adimensional $\boldsymbol{\kappa}$. Las componentes de cada vector están vinculados por
$$\kappa_j = k_j \Delta x.$$El paso crucial para el procesamiento es obtener correctamente los valores del vector número de onda $\mathbf{k}$. Para ello, observamos que ningún número de onda angular digital $\kappa_j$ en el vector $\boldsymbol{\kappa}$ supere en módulo al número de onda angular digital adimensional de Nyquist ($\pi$):
$$-\pi \leq \kappa_j <+\pi .$$El vector número de onda angular deberá cumplir una relación similar, pero respecto a su valor máximo dado por el criterio de Nyquist:
$$-\dfrac{\pi}{\Delta x} \leq k_j <+\dfrac{\pi}{\Delta x} .$$Dado que el procesamiento en el dominio transformado es habitual en prácticamente todas las ramas de la ciencia y del procesamiento de la información, podemos calcular los números de onda angulares digitales por medio de numpy.fft.fftfreq()
. Si tenemos N
muestras equiespacidas en dx
, entonces
k_adimensional = (2.*np.pi)*np.fft.fftfreq(N) # [-]
k = k_adimensional / dx # [1/longitud]
True
Ahora si, procesamos. Calculamos la TDF de la señal, operamos en el dominio transformado (números de onda) y volvemos al dominio original (espacio). Al momento del procesamiento de las señales por medio de la TDF, debemos tomar recaudos para saber si utilizamos número de onda angulares adimensionales ($\kappa$) o números de onda angulares ($k$). Por ejemplo, si hemos calculado $\kappa$, debemos obtener los número de onda $k = \kappa/\Delta x$ para emplear la identidad en el dominio transformado para la derivada primera.
True
Visualizamos el resultado y comparamos con la solución analítica:
Observemos que sucede al calcular la derivada cuando el dato digitalizado tiene valores distintos en los bordes de la ventana de observación. Este fenómeno se conoce como errores de terminación o efectos de borde de grilla. En los métodos potenciales, debido a este fenómeno, hay que realizar un preparado de las grillas previo al procesamiento con transformada discreta de Fourier.
Realizamos el mismo ejemplo pero tomando 4.5 longitudes de onda para la ventana de observación. Como podemos observar, en el dato digitalizado los valores en los extremos (primera y última muestra) no son iguales. Esta discontinuidad conduce a un efecto de Gibbs notable al procesar por la TDF. El problema reside en pensar en la continuación periódica de la señal digitalizada, la cual ahora involucra discontinuidades en los bordes.
Este mismo efecto fue analizado en análisis de señales al considerar la serie de Fourier de una función cajón (boxcar). El orígen de este fenómeno es una característica propia de la transformada de Fourier. En pocas palabras, es difícil para las funciones seno y coseno (debido a su carácter contínuo, suave y derivable) el aproximar discontinuidades.
Observemos que sucede si la señal fuera $s(x)=\cos\left(k x\right)$ con ruido casi imperceptible en el dominio ambiental. Repitiendo el análisis anterior, el resultado muestra como los altos número de onda que corresponden al ruido son amplificados. Esto es debido a que el operador de derivada actúa como un filtro pasa altas.
Elegimos $\Delta x = \lambda_0/100$ para digitalizar la señal contamidada por ruido aleatorio. El muestreo ahora habilita a amplificar el ruido de alto número de onda sin aliasing, un efecto poco deseable. Esto es asi ya que ahora es posible representar números de onda mucho mayores a la señal de interés, en este caso, las componentes de alto número de onda del ruido.
Como se observó en el ejempo anterior, elegir un intervalo de muestreo mayor (e.g., $\Delta x =\lambda_0/20$) hace que el ruido de alto número de onda entre aliado con bajo número de onda en el resultado.
Para terminar, un widget para interactuar con este efecto:
interactive(children=(FloatSlider(value=0.0, description='amp. ruido [ ]', max=0.1, step=0.02), FloatSlider(va…
Eso es todo por hoy.