Haciendo FFT de la señal del electroencefalograma a 200 Hz: ¿qué tamaño de ventana usar?

Tengo un sensor EEG (ElectroEncephaloGram) de ondas cerebrales que envía datos continuamente a mi programa a aproximadamente 200 puntos de datos por segundo. ¿Alguien puede sugerir qué tamaño de ventana/contenedor debo usar si quiero hacer una transformada rápida de Fourier (FFT) de esta señal?

Estoy pensando en usar el máximo: 1024 puntos, pero eso significaría que necesito casi 5 segundos de datos para actualizar las lecturas. ¿Hay algún tamaño más pequeño que pueda usar para actualizaciones más rápidas que aún sean precisas?

Así es como se ve mi señal (línea naranja, arriba):

señal EEG

¡Gracias!

¿Cuál es la frecuencia más baja que desea identificar? Eso establecerá su requisito.
Comience describiendo POR QUÉ quiere tomar la FFT del eeg.
Es probable que sea el equilibrio entre el tiempo de evaluación y la resolución de frecuencia deseada, en lugar de la frecuencia mínima, lo que impulse la decisión práctica . Puede superponer las ventanas de FFT para generar resultados más frecuentes, pero los cambios recientes se atenuarán en comparación con los que se han mantenido durante toda una ventana.
@ChrisStratton Tienes razón, la resolución es importante, lo olvidé.
Estoy tratando de averiguar si la señal es lo suficientemente buena para identificar las diferentes bandas de ondas cerebrales enumeradas en el enlace. Estoy buscando el rango de 0-50 Hz. en.wikipedia.org/wiki/…

Respuestas (2)

Depende de la compensación que desee entre resolución de frecuencia y tiempo. Cuanto más corta haga su ventana de tiempo, mejor podrá saber cuándo ocurren los cambios, pero lo pagará con una resolución de frecuencia reducida. Las ventanas más largas dan una resolución de frecuencia nítida, pero una resolución de tiempo pobre. Cf. "Límite de Gabor"

Tenga en cuenta que los límites de las bandas de frecuencia de EEG son un poco confusos. No es que el contenido a 3,9 Hz signifique algo completamente diferente a 4,1 Hz desde un punto de vista biológico. Las ventanas de 1 segundo brindan mucha precisión de frecuencia, y he visto cosas geniales hechas con ventanas de menos de 1/4 de segundo. Después de todo, estamos midiendo un cerebro, no un oscilador de cristal.

Tome un fft tan grande como necesite para obtener la resolución en la frecuencia que necesita. No necesita esperar 5 segundos para reevaluar un fft, simplemente deslice su ventana. Por ejemplo, tome los puntos 1-1024 y tome el fft. Luego espere 100ms, tome el fft de los puntos 21-1044, etc. Esto actualizará su fft diez veces por segundo, siempre usando los datos más recientes. Solo necesita 1024 puntos para tomar un fft de 1024 puntos. ¡No es necesario que sean 1024 puntos nuevos !

De hecho, probablemente no esté limitado a un fft. Su programa puede tomar múltiples ffts en múltiples resoluciones para capturar lo que necesite.

Esta es una posibilidad, pero pasa por alto el hecho (mencionado cuando planteé esta posibilidad hace una hora en un comentario) de que una FFT larga no reflejará con total precisión los cambios en la señal lo suficientemente recientes como para haber estado presentes solo durante una parte del intervalo de evaluación. .
@Chris, no lo pasé por alto, es la naturaleza de la bestia. Depende de lo que el OP esté tratando de evaluar. Puede ser valioso observar cómo se desarrollan los picos con el tiempo. Además, este enfoque podría capturar un evento transitorio que podría pasarse por alto al usar muestras que no se superponen. En algún momento, el fft deslizante capturará un transitorio de la manera más óptima posible (aunque atenuado), en lugar de perderlo por completo. Nuevamente, depende de lo que el OP esté tratando de ver. Personalmente, esto me parece más un problema de dominio del tiempo: un banco de filtros de correlación, o tal vez un análisis de ondículas, funcionaría mejor.
Es mejor que un fft no superpuesto para transitorios, pero es inferior para ese propósito a un fft más corto . "Toma tan grande como quieras" pasa por alto esa compensación.
Los dos enfoques no son excluyentes. Quizás "tan grande como quieras" debería ser "tan grande como necesites". voy a editar