2 votos

Descomposición compleja de Fourier

Actualmente estoy trabajando en un proyecto de python para el que necesito utilizar la descomposición compleja de Fourier de una función compleja. Tenga en cuenta que esta función es numérica, ya que no tengo la expresión analítica, sólo una lista de valores. Utilicé el fft de scipy para obtener los coeficientes de Fourier y noté que el módulo de los coeficientes no era decreciente. Así que aquí está mi pregunta: para aproximar mejor la función con un número finito de armonías, ¿cómo debo seleccionar las armonías? Después de buscar en internet (y mis conocimientos anteriores) habría elegido las primeras armonías (y si eso, ¿debería seleccionar las armonías $[0,1,-1,2,-2,...]$ o $[0,-1,1,-2,2,...]$ ), pero ahora me pregunto si debería tomar las armonías con las amplitudes más altas (deberían ser las de mayor impacto, ¿no?).

1voto

Snoop Puntos 491

El error cuadrático medio entre una reconstrucción parcial $(z_n)_n$ y la verdadera reconstrucción $(y_n)_n$ de las muestras viene dada por $$MSE=\frac{1}{N}\sum_{n=0}^{N-1}|y_n-z_n|^2=\frac{1}{N}\sum_{n=0}^{N-1}\bigg|\frac{1}{N}\sum_{k=-(N-1)/2}^{(N-1)/2}\hat{y}_ke^{2\pi i \frac{kn}{N}}-\frac{1}{N}\sum_{j \in J}\hat{y}_je^{2\pi i \frac{jn}{N}}\bigg|^2$$ El conjunto $J$ contiene las frecuencias seleccionadas entre $\{-(N-1)/2,...,-1,0,1,...,(N-1)/2\}$ que queremos para nuestra reconstrucción parcial. Si restringimos $\textrm{len}(J)<N$ entonces tenemos que elegir los términos DFT $\hat{y}_j$ que minimicen el MSE. Dado que cada $\hat{y}_j$ incluido en $z_n$ se anula con un componente de $y_n$ si fijamos la longitud de $J$ queremos que el MSE se haga del $N-J$ componentes que representan el menor valor MSE posible. Por ejemplo, si $\textrm{len}(J)=N-2$ entonces $$\begin{aligned}MSE&=\frac{1}{N^3}\sum_{n=0}^{N-1}|\hat{y}_{k_1}e^{2\pi i \frac{k_1n}{N}}+\hat{y}_{k_2}e^{2\pi i \frac{k_2n}{N}}|^2=\\ &=\frac{1}{N^3}\sum_{n=0}^{N-1}(|\hat{y}_{k_1}|^2+\hat{y}_{k_1}\hat{y}_{k_2}^*e^{2\pi i\frac{n(k_1-k_2)}{N}}+\hat{y}_{k_1}^*\hat{y}_{k_2}e^{-2\pi i\frac{n(k_1-k_2)}{N}}+|\hat{y}_{k_2}|^2)=\\ &=\frac{1}{N^3}\sum_{n=0}^{N-1}(|\hat{y}_{k_1}|^2+|\hat{y}_{k_2}|^2)=\\ &=\frac{|\hat{y}_{k_1}|^2+|\hat{y}_{k_2}|^2}{N^2}\end{aligned}$$ Esto se extiende a cualquier $\textrm{len}(J)<N$ . Tienes que escribir un algoritmo que ordene las energías de los componentes de la DFT, y los ponga a cero en la DFT inversa en orden para un determinado $\textrm{len}(J)$ .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X