Page 1 of 1

EEG - frequency processing question

Posted: Tue Mar 20, 2012 5:15 am
by Matthew
Hello,

I am trying to take the 2D array of samples from 64 EEG channels in the ring buffer, and process these to determine in real-time the respective power of delta, theta, alpha, beta, and gamma brain wave activity.

I am attempting to do this using bandpass filters within an auto-indexing for-loop, however the output graph is not displaying any power in these frequency bands. The only error I can see is a message in the filter control suggesting that the Nyquist stability criterion is not being met. According to our calculations, the sampling rate (2048 Hz) should be more than enough to accommodate the filter settings.

Is there a better way to go about this? Might I be missing something? Any assistance would be very much appreciated.

Best,

Matthew

Posted: Thu Mar 22, 2012 3:42 pm
by Coen
Filtering 2 D arrays (rows: channels, columns: samples) in WHILE and FOR loops can be a bit tricky in LabVIEW. Please refer to subvi Ref-Mon-Jazz.vi in ActiView as an example of a working setup. The code is based on an old LabVIEW example "IIR filter by N Specs for N Chan.vĂ¯", that's apparently not included in current versions of LabVIEW anymore. In LabVIEW 8.6 (and higher ?), a similar setup is found in the "Implement IIR Cascade filter for N Chan.vi", (from the library NI_MAPro.lvlib) that is used as a subvi in the example "IIR Filtering and Response.vi".

Best regards, Coen (BioSemi)

Re: EEG - frequency processing question

Posted: Thu May 31, 2012 1:50 am
by Matthew
Thanks very much for your reply, Coen. I have since explored LabView's library of subVIs, and have been able to accomplish my original goal by avoiding filtering and instead performing power spectrum analyses for each channel.