Una pregunta intuitiva sobre el significado de los contenedores en un espectro de potencia de FFT

0

En los análisis de Fourier y FFT, vemos el espectro de potencia con una resolución de frecuencia.

Estoy tratando de entender el significado de esto. ¿Qué es binning? ¿Qué indica el espectro de potencia?

Para exponer mi pregunta, doy el siguiente ejemplo.

Digamos que agrego cosenos a diferentes frecuencias y fases como:

1Hz con amplitud 4

2HZ con amplitud 2

3Hz con amplitud 1

4HZ con amplitud 0.5

5Hz con amplitud 2

6HZ con amplitud 0.8

7Hz con amplitud 1

8HZ con amplitud 2

9HZ con amplitud 3

10HZ con amplitud 0.1

11HZ con amplitud 0.3

12HZ con amplitud 0.5

Y digamos que quiero crear un espectro de potencia agrupando con resolución de frecuencia de 4Hz, por lo que tendré 3 compartimientos como:

Entonces, para la primera bandeja, tendré 1Hz 2Hz 3Hz y 4Hz

para la segunda bandeja tendré 5Hz 6Hz 7Hz y 8Hz

para la tercera bandeja tendré 9Hz 10Hz 11Hz y 12Hz

Por lo tanto, mi primer bin corresponderá frecuencias entre 1Hz y 4Hz y la potencia se cuantificará al cuadrar las amplificaciones y agregarlas como: (4 ^ 2 + 2 ^ 2 + 1 ^ 2 + 0.5 ^ 2)

mi segundo bin corresponderá frecuencias entre 5Hz y 8Hz y la potencia se cuantificará al cuadrar amplitudes y agregarlas como: (2 ^ 2 + 0.8 ^ 2 + 1 ^ 2 + 2 ^ 2)

mi tercer bin corresponderá frecuencias entre 9Hz y 12Hz y la potencia se cuantificará al cuadrar las amplificaciones y agregarlas como: (3 ^ 2 + 0.1 ^ 2 + 0.3 ^ 2 + 0.5 ^ 2)

¿Comprendí el significado del espectro de potencia y la resolución de frecuencia? Antes de profundizar en FFT, solo quiero estar seguro del panorama general.

    
pregunta user16307

2 respuestas

1
  

Entonces, para la primera bandeja, tendré 1Hz 2Hz 3Hz y 4Hz

No.

La FFT calcula la Transformada Discreta de Fourier (DFT). La DFT es la integral. $$ X_k = \ sum_ {n = 0} ^ {N-1} x_n \ left (\ cos (2 \ pi kn / N) - j \ sin (2 \ pi kn / N) \ right) $$ Solo para simplificar las cosas, voy a ignorar los términos del seno, para poder hablar de la suma. $$ X'_k = \ sum_ {n = 0} ^ {N-1} x_n \ cos (2 \ pi kn / N) $$

Esta suma tiene un par de buenas propiedades. Si nuestra función original fuera solo el coseno. $$ x_n = \ cos (2 \ pi \ mathbf {1} n / N) $$ entonces la suma es $$ X'_k = \ begin {cases} N / 2, & n = \ mathbf {1} \\ 0, & n \ neq \ mathbf {1} \ end {cases} $$ En la vida real, esto significa que su señal de 4 Hz no aparecerá en ninguna de las otras bandejas (8 Hz, 12 Hz, etc.). Bien, podemos detectar una señal de 4 Hz mirando en el contenedor $ k = 1 $. Este patrón se repite si reemplaza el \ $ \ textbf {1} \ $ en negrita con cualquier otro entero, la señal solo aparecerá en una bandeja.

Las cosas se deshacen cuando dejas de usar números enteros. Si sustituyo el \ $ \ textbf {1} \ $ con una fracción como \ $ \ textbf {1/4} \ $ o \ $ \ textbf {6/4} \ $, entonces la suma es mucho más difícil de calcular. Si haces esto en Matlab o en algún otro lenguaje de programación, ¡encontrarás que estos coeficientes no son todos cero! Parte de su señal de 6 Hz encuentra su camino en todos estos coeficientes.

Para tener una idea aproximada de cómo se distribuyen los coeficientes, se verán como una función sinc escalada:

Esto le sucede a todas sus frecuencias que no son múltiplos de 4 Hz. Que asco Para evitar esto, puede intentar filtrar la señal antes de tomar la FFT utilizando una función de ventana, lo que hará que la fuga espectral se reduzca. Sin embargo, no puede eliminarlo totalmente a menos que pueda administrar la FFT con contenedores de 1 Hz. (Tenga en cuenta que todavía se quedará atascado con todo el ruido de 0,5 Hz que se filtra a través de los intervalos, siempre habrá algo que sobra).

Esto realmente no responde a tu pregunta como se indica, pero espero que te empuje en la dirección correcta.

    
respondido por el Greg d'Eon
0

Usted estipula que la resolución de frecuencia es de 4Hz. Esto significa que la duración de la señal que convierte es de 0.25 segundos. Es fácil ver que las señales de 1Hz, 2Hz, etc. no habrán tenido un número entero de ciclos en ese tiempo.

Desafortunadamente, cuando usa la FFT (que es solo una forma eficiente de realizar una DFT) para calcular el espectro de una señal que contiene ciclos incompletos de ondas sinusoidales, la energía se "filtrará" entre los contenedores.

Si activa una copia de MATLAB, Octave o SciPy con Python, y carga estas formas de onda, o mejor aún, solo una forma de onda para no confundirse con una señal y FFT, entonces esto es lo que veremos. El uso de una señal de entrada de 1Hz, 2Hz, o 3Hz resultará en que algo de energía termine en cada contenedor. El uso de una señal de 4Hz, ya que se ajusta exactamente a 0.25 segundos, le dará energía solo en el contenedor de 4Hz y en ninguna otra parte.

Hay una serie de aspectos técnicos que se deben dominar para obtener resultados de análisis de espectro 'sensibles' a partir de una FFT cuando entran ciclos incompletos de ondas sinusoidales. Usar una función de ventana para multiplicar la señal antes de FFT reduce el efecto de ciclos parciales derramando energía en los contenedores equivocados. Generalmente, se necesita una resolución de alrededor del 20% del espaciado de las señales de entrada si desea resolverlas, utilizando ventanas típicas.

No hay espacio en una respuesta como esta para un tutorial completo sobre análisis de espectro. Solo tenga en cuenta que una FFT es solo una parte de lo que se necesita para pasar de las señales horarias a un espectro de potencia significativo.

La salida de la FFT a menudo se llama 'bandejas'. Esto es sólo la terminología. En una serie de tiempo de n puntos, tiene una señal descrita por n valores complejos, que generalmente se denominan muestras, a veces "muestras de tiempo". Cuando la señal es FFT, tiene una descripción diferente de exactamente la misma señal, con la misma potencia total (consulte el teorema de Parseval), con n valores de frecuencia complejos, que a veces se denominan 'muestras de frecuencia', pero más a menudo se llaman ' contenedores '. Tanto las bandejas como las muestras se ejecutan de 0 a n-1, ¡cuidado con Matlab que usa 1 a n de indexación!

La amplitud de la agrupación Nth, es el voltaje de la sinusoidal de entrada con N ciclos en la longitud de la entrada de tiempo. Nada más y nada menos. La FFT asume que todas las ondas sinusoidales de entrada son exactamente periódicas. Si intenta poner uno que no lo es, asumirá que lo es, dándole resultados que no espera para el análisis de espectro. Entonces, cuando su salida tiene una resolución de 4Hz, solo espera múltiplos de entrada de 4Hz. Por lo tanto, una señal de 1Hz de corta duración se divide en componentes a 4Hz y sus múltiplos reconstruirán su forma.

Debido a este supuesto de periodicidad de entrada, la FFT probablemente no sea el mejor lugar para comenzar cuando se intenta comprender el análisis espectral.

A menos que, hasta que esté contento con lo que está sucediendo, utilice siempre una FFT larga, use una resolución mejor que el 20% de su mejor espaciado de frecuencia de entrada. Esto le garantizará una diferencia de al menos 5 ciclos en la entrada. Esto significa que la fuga espectral al menos será manejable, verá algo que parece plausible, incluso si no es estrictamente correcto. Luego, más adelante, puede agregar una función de ventana (busque en estos) y esta regla de 5 ciclos significará que aún podrá resolver sus señales de entrada, mientras obtiene una fuga mucho menor que antes.

He echado un vistazo rápido a la web y no he encontrado nada que valga la pena enlazar con usted, porque tomo nota de la palabra clave 'intuitivo', y la mayoría de las cosas que puedo encontrar están llenas de fórmulas.

Debes jugar con algunas entradas y ver algunas salidas . Obtenga una copia de MATLAB (bajo costo para los estudiantes), Octave (gratis), Python + SciPy (gratis) o incluso una hoja de cálculo de Excel (ubicua), cree algunas series de tiempo y vea dónde va la potencia del espectro. Mantenga la resolución bien, es decir, al menos 5 ciclos en el registro de tiempo y 5 ciclos de diferencia entre las señales espaciadas más cercanas. Mantenga las señales un número entero de ciclos, al menos al principio.

    
respondido por el Neil_UK

Lea otras preguntas en las etiquetas