Tengo muchas señales de EEG y quiero analizarlas usando métodos lineales como STFT (Short Time Fourier Transform). En STFT, ¿cómo puedo optimizar la longitud de la ventana de análisis para reflejar el espectro de frecuencia de cada ventana de análisis de manera adecuada?
fourier-transform
stft
Maen
fuente
fuente
Respuestas:
Este es el clásico "principio de incertidumbre" de la Transformada de Fourier. Puede tener alta resolución en el tiempo o alta resolución en la frecuencia pero no ambas al mismo tiempo. Las longitudes de ventana le permiten intercambiar entre los dos.
Si desea detectar "eventos" en su señal EEG con una resolución de, digamos, 10 ms, esta debería ser la longitud de su ventana. Esto le dará una resolución de frecuencia de aproximadamente 100 Hz.
fuente
La longitud óptima de la ventana dependerá de su aplicación. Si su aplicación es tal que necesita información del dominio del tiempo para ser más precisa, reduzca el tamaño de sus ventanas. Si la aplicación exige que la información del dominio de frecuencia sea más específica, aumente el tamaño de las ventanas. Como Hilmar mencionó,
Uncertainty Principle
realmente no te deja otra opción. No puede obtener una resolución perfecta en ambos dominios a la vez. Puede obtener una resolución perfecta en un solo dominio a costa de una resolución cero en el otro (dominios de tiempo y frecuencia) o en una resolución intermedia, pero en ambos dominios.No sé si esto responde a su pregunta, ya que preguntó específicamente sobre STFT. Podría intentar utilizar
wavelet transforms
para obtener la información en la señal.Wavelet transforms
le dará una resolución en un rango mucho mayor al analizar la señal en múltiples resoluciones de ventana.fuente
No conozco EEG, pero el problema básico (tal vez debería decir fundamental) al usar el STFT es elegir una longitud de ventana adecuada. Si su EEG es periódico y desea resolver los fundamentales y los armónicos, debe usar una ventana 'larga'. Si, en cambio, desea detectar el inicio o la presencia de algún evento o si está más interesado en la envolvente del espectro, puede usar una ventana 'corta'.
fuente
He pasado mucho tiempo optimizando ventanas en análisis de frecuencia de tiempo o bancos de filtros . Se pueden optimizar para detección, eliminación de ruido, separación de señal ... Depende mucho de la aplicación. Como el análisis de frecuencia de tiempo es generalmente redundante, la optimización de las ventanas de análisis o síntesis son tareas diferentes. Y longitud solo un parámetro en el diseño de la ventana.
El problema es aún más complejo ya que la formulación discretizada de la optimización es mucho más complicada que el caso del dominio del tiempo continuo (véase, por ejemplo, una transformación Gabor óptimamente concentrada para componentes de frecuencia de tiempo localizados ).
Así que mi regla práctica actual es: comenzar con una forma y longitud de ventana que parezca correcta. Luego repita el análisis con dos ventanas con el doble y la mitad de la longitud, y combine los resultados.
fuente
Por lo general, el tamaño de ventana amplia brinda una mejor resolución de frecuencia pero una resolución de tiempo deficiente y viceversa. Mire este ejemplo donde generé un espectrograma de una onda sinusoidal con 5kHz y una frecuencia de muestreo de 22050Hz, a partir de mi código C ++.
El espectrograma anterior tiene un tamaño de ventana de 2048 muestras y una superposición de 1024 muestras.
Mira este espectrograma:
Este tiene un tamaño de ventana de 512 muestras y una superposición de 256 muestras.
¿Puedes ver la diferencia? El primero tiene mejor resolución de frecuencia que el segundo. Pero el segundo tiene una mejor resolución de tiempo en comparación con el primero. Por lo tanto, elegir el tamaño de la ventana depende de su aplicación. Si se trata de muestras de voz para rastrear el tono, elegir el tamaño de ventana más grande debería ser el adecuado.
fuente