Normalmente, la transformada de Fourier (FT) de una función de una variable se define como $$f_k=\int^\infty_{-\infty}f(x)\exp\left(-2\pi i k x\right) dx.$$ Esto significa que $f_k$ obtiene las unidades de $f$ veces las unidades de $x$ : $[f_k]=[f]\times[x]$ . Para una matriz de entradas $\{f_n\equiv f(x_n)\}$ de longitud $N$ el transformada discreta de Fourier (DFT) se define normalmente como $$f_k=\sum_{n=0}^{N-1}f_n \exp\left(-2\pi i k n/N\right). $$ Esto significa que $f_k$ tiene las mismas unidades que $f$ : $[f_k]=[f]$ . ¿Qué falta aquí? Para que la DFT sea una aproximación de la FT, seguramente las unidades deben ser las mismas. En otras palabras, si tengo que comparar el valor teórico de alguna cantidad transformada de Fourier con una obtenida numéricamente a partir de una transformada discreta de Fourier, ¿cómo puedo hacerlo de forma coherente? La norma obvia sería $\frac{x_0-x_{N-1}}{N}$ pero, ¿es realmente así?
Respuestas
¿Demasiados anuncios?La fórmula para $N$ -DFT debería ser:
$$\tilde{F}[k] = \sum_{n=0}^{N-1} \tilde{f}[n]\exp(-2\pi ikn/N),$$
donde $\tilde{f}[n]$ es la entrada discreta y $\tilde{F}[k]$ es la salida de frecuencia discreta. Opcionalmente se puede escalar por $N^{-1/2}$ .
Los índices $n$ y $k$ son adimensionales. Por lo general, $\tilde{f}[n]$ se obtiene de $f(x)$ por muestreo, lo que implica elegir el período de la muestra $X$ (misma unidad que $x$ ), y extrayendo $\tilde{f}[n] = f(nX)$ . Desde $nX$ tiene la unidad de $X$ Así que $n$ no tiene unidad.
Comparación de la FT continua $\mathscr{F}\{f\}$ y la "aproximación DFT" es espinosa porque hay que considerar la discretización y el preprocesamiento. Si muestreamos por $\tilde{f}[n] = f(nX)$ , entonces se descartan los siguientes datos:
- $f(x)$ para $x < 0$ y $x > (N-1)X$ ,
- $f(x)$ entre los puntos de muestreo $x = 0$ , $x = X$ , ..., $x = (N-1)X$ .
Trabajando enteramente en el dominio continuo, esto corresponde a multiplicar $f(x)$ por un $c(x)$ un "peine" formado por funciones delta desplazadas:
$$c(x) = \sum_{n=0}^{N-1} \delta(x-nX).$$
Por lo tanto (ignorando el escalamiento), la DFT sobre datos muestreados implica:
- Informática $\mathscr{F}\{f \times c\}$ ,
- Muestreo del resultado a frecuencias discretas. Para encontrarlas, $\tilde{F}[k]$ corresponde al periodo $\frac{NX}{k}$ por lo que la frecuencia angular es $\omega = \frac{2\pi k}{NX}$ . Tenga en cuenta que aquí $k$ es adimensional, y el factor $\frac{2\pi}{NX}$ tiene una dimensión de $x^{-1}$ (Edición: esto supone $k < N/2$ ; si $k > N/2$ debemos considerar las frecuencias negativas $k - N$ ).
Del teorema de convolución, $\mathscr{F}\{f(x) \times c(x)\}$ es proporcional a la convolución de $\mathscr{F}\{f\}$ y $\mathscr{F}\{c\}$ . Por lo tanto, $\mathscr{F}\{c\}$ actúa para distorsionar la deseada $\mathscr{F}\{f\}$ .
Mediante una inspección, $\mathscr{F}\{c\}$ consiste en sumas de exponenciales complejas con frecuencias que ocurren en intervalos regulares. Trazado en Wolfram Alpha (por ejemplo, $\mathtt{abs(1+exp(ix)+exp(2ix)+exp(3ix))}$ ) vemos que ésta tiene unos picos periódicos a partir de $\omega = 0$ . Queremos que esto sea lo más parecido a $\delta(\omega)$ como sea posible, y puede hacer lo siguiente para mejorar los resultados (SUPONIENDO $f(x)$ tiene un ancho de banda finito, es decir, $\mathcal{F}(f)$ se reduce a alta frecuencia).
- Aumentar el número de muestras $N$ : esto "agudiza" los picos de $\mathscr{F}\{c\}$ . De hecho, en el límite, el FT de un tren delta infinito es otro tren delta infinito.
- Disminuir el intervalo de muestreo $X$ : esto aumenta la distancia entre los picos. Con la hipótesis del ancho de banda finito, tras la convolución las frecuencias de muestreo seguirían dando resultados bastante buenos.
- Procesamiento adicional de la señal en $f(x)$ (más allá de mi alcance).
(Edición: se ha corregido la gramática y la redacción redundante).
Para obtener un límite $$f_k=\int^\infty_{-\infty}f(x)\exp\left(-2\pi i k x\right) dx$$ a partir de una transformada discreta de Fourier, hay que buscar realmente lo que se quiere decir con la fórmula $$f_k=\sum_{i=-N/2}^{N/2}f_i \exp\left(-2\pi i k x_i\right).\;\; (*)$$ Esta fórmula está tomando muestras de paso indeterminado en el $x$ dirección y se no convergen a una transformada de Fourier sólo para $N\to\infty$ . Para converger, también hay que suavizar el paso y no olvidar entrar en $-\infty$ , es decir ( $i$ es un índice confuso con el imaginario $i$ también ocurre, usemos $j$ ) $$f_k=\Delta x\sum_{j=-\infty}^{\infty}f_j \exp\left(-2\pi i k (j \Delta x)\right). $$ Y envía $\Delta x$ a cero. El factor delante es necesario porque de lo contrario su $f_k$ divergirían. O se puede entender en el sentido de que las muestras deben pesarse con respecto al muestreo original al hacerse más finas. Se puede ver fácilmente que para $[k]=1$ , $[\Delta x]=[x]$ y este es exactamente el factor correspondiente a $dx$ en el FT continuo.
En la fórmula $(*)$ si se da cualquier otro paso que no sea el de la dimensión de la unidad, se no daría una buena aproximación numérica a la FT continua. Por ejemplo, para un paso de media unidad, el valor numérico de $f_k$ sería aproximadamente dos veces mayor que la de $f(k)$ . Creo que esto ilustra tal vez con más fuerza por qué el paso $\Delta x$ tiene que estar delante de la DFT para dar una aproximación real.
(Este post se ha revisado bastante).
Estás asumiendo erróneamente que una secuencia debe tener exactamente la misma unidad para ser considerada la aproximación de una señal. En general, una secuencia $f_k$ puede considerarse como una aproximación de $f(x)$ si $f_k=\int^{x_{k+1}}_{x_k} f(x) dx $ . Es evidente que las unidades difieren aquí.
Tenga en cuenta que por esta regla, $f_k=0$ es una aproximación de $f(x)=0$ , $c*f_k$ es una aproximación de $c*f(x)$ y $f_k+g_k$ es una aproximación de $f(x)+g(x)$ .