Estoy usando un FFT para analizar lo que es esencialmente la envolvente de potencia de una señal (vea aquí para obtener información sobre el proyecto que lo contiene) y, dado que los números de potencia son siempre positivos, para eliminar el componente de CC, me gustaría usar una ventana función que es 50/50 positiva y negativa, frente a la función positiva general.
Tomé la función " plano superior ", eliminé el a0
sesgo y lo convertí de cosenos a senos, pero no estoy seguro de que sea óptimo (o incluso significativo).
¿Cualquier sugerencia?
fft
window-functions
Daniel R Hicks
fuente
fuente
Respuestas:
La primera derivada de las funciones de ventana continua más comunes (von Hann, etc.) rechazará DC, pero aún tendrá una respuesta de frecuencia de magnitud similar a la de la función de ventana original; por lo que aún puede utilizar sus criterios originales de "bondad" para la selección de ventanas, si no está relacionado con la fase.
fuente
Si le preocupa hacer análisis espectrales en una señal con un componente DC grande y desea suprimir ese pico DC, entonces una función de ventana no es lo que desea. Como señalaron algunas otras respuestas, un filtro de paso alto (o, visto de manera diferente, un filtro de muesca con la muesca a frecuencia cero) es una solución adecuada.
Para comprender por qué, debe pensar qué aplica la función de ventana a la respuesta de frecuencia de cada salida DFT. El DFT se define como:
Una interpretación de cómo funciona el DFT es como un banco de filtros en frecuencias igualmente espaciadas entre y . Relanzar la suma anterior de la siguiente manera:- f snorte fs- fs2 Fs2
dónde:
Entonces, la salida -ésima DFT se genera tomando primero la señal de entrada y multiplicándola por un exponencial complejo a la frecuencia para producir una señal convertida hacia abajo . La señal resultante se suma sobre la ventana de la muestra para producir la salida DFT . Este es efectivamente un filtro de media móvil (a veces llamado filtro de vagón), cuya respuesta al impulso se puede describir como:x [ n ] - 2 π kk x [ n ] xk[n]NX[k]- 2 πknorte Xk[ n ] norte X[ k ]
La respuesta de magnitud del filtro de vagón se puede encontrar tomando la transformada de Fourier de tiempo discreto (DTFT) de esa respuesta de impulso:
Este es un núcleo Dirichlet , y a veces se lo denomina "sinc periódico", ya que se parece un poco a una función sinc pero se repite periódicamente, lo que no significa un sinc. Esta expresión da la respuesta de magnitud de cada salida DFT, donde se mide como el desplazamiento de frecuencia desde la frecuencia central del bin de salida respectivo. Esto ilustra el efecto de fuga espectral ; cada salida DFT tiene una respuesta de frecuencia que cubre una franja continua del espectro de la señal de entrada, no solo la frecuencia central discreta de cada salida.F
Ahora considere cómo cambian las cosas si aplica una función de ventana a la señal de entrada antes de realizar el DFT:x [ n ]
Con la función de ventana en su lugar, el convertido hacia está pasando efectivamente a través de un filtro FIR con una respuesta de impulso descrita por la función de ventana. Entonces, la respuesta de magnitud por salida del DFT es:Xk[ n ]
donde la DTFT de la función de ventana . Ahora tenga en cuenta que si elige una función de ventana que tiene un cero en DC y la utiliza para premultiplicar antes del DFT, en realidad provocaría el efecto no deseado de anular no solo DC en el espectro resultante, sino también las frecuencias centrales de cada una de las salidas DFT. Esto probablemente no sea lo que quieres.W( f) w [ n ] x [ n ]
Entonces, si realmente desea cancelar el componente de CC de la señal, eliminarlo mediante algún otro tipo de preprocesamiento, no ventanas de dominio de tiempo, es el camino a seguir. Podría usar un filtro de paso alto lineal con una frecuencia de corte muy baja o restar primero la media estimada de la señal, por ejemplo. La elección entre estos métodos debe basarse en las otras restricciones que tiene su sistema.
fuente
No creo que usar una función de ventana sea una buena forma de eliminar DC. Como se mencionó en el endolito, un método común es restar la media antes de la ventana. Otra opción sería aplicar un filtro de paso alto a su señal antes del análisis, por ejemplo, con una frecuencia de corte de alrededor de 10 Hz.
fuente