Electronic – Doing FFT of electroencephalogram signal at 200Hz – what window size to use

biopotentialdspfft

I got a brainwave EEG(ElectroEncephaloGram) sensor that is continuously sending data over to my program at about 200 data points per second. Can someone suggest what window/bin size I should be using if I want to do a Fast Fourier Transform(FFT) of this signal?

I'm thinking of using the maximum – 1024 points, but that would mean that I need almost 5 seconds of data to update the readings. Is there some smaller size I can use for faster updates that would still be accurate?

Here's how my signal looks like (orange line, top):

EEG signal

Thank you!

Best Answer

It depends on the tradeoff you want between frequency and time resolution. The shorter you make your time window, the better you'll be able to tell when changes occur, but you'll pay for it in reduced frequency resolution. Longer windows give sharp frequency resolution, but poor time resolution. Cf. "Gabor Limit"

Keep in mind that the limits for the EEG frequency bands are a bit fuzzy. It's not like content at 3.9 Hz means something completely different than 4.1 Hz from a biological standpoint. 1 second windows provide plenty of frequency accuracy, and I've seen cool things done with windows shorter than 1/4 second. We are measuring a brain after all, not a crystal oscillator.