FFT Data Transmission via LSL with Ganglion Board

I'm looking for some clarification on the FFT data transmission when using LSL with the Ganglion board, particularly at a 200Hz sampling rate. According to the documentation, FFT data is sent as a 2D array with 125 frequency bins per channel, each bin sized at 0.9765625Hz. However, this configuration seems to exceed the Nyquist frequency of 100Hz for a 200Hz sampling rate, as 0.9765625Hz x 125 equals approximately 122Hz. Could you please provide insight into how the FFT data is structured in this context, and whether there's an adjustment for the Nyquist limit in the LSL transmission? Is this documentation description specific to the 250Hz sampling rate of the Cyton board?

Thank you for your help.


  • wjcroftwjcroft Mount Shasta, CA

    Mentioning Richard @retiutut .

  • retiututretiutut Louisiana, USA
    edited December 2023

    This is the part that makes FFT over networking difficult to work with. Please calculate the bin width based on your board and sampling rate. I did this over OSC while using Max many years ago when I got started with OpenBCI tech.

    I would also consider using AvgBandPower, or BandPower (for all channels), or use TimeSeries data and calculate the FFT on the receiving end.

    I think a perfect solution would be to send out the bin center frequency or bin width with every packet, but that would make an already huge packet much larger. Currently, I think it's something like 125 bins x Number of channels. New data is available every frame, so this datatype is dependent on the FPS in the GUI.


  • Thank you for the clarification. I now understand that I need to calculate the FFT bin widths based on my board's specific recording conditions, such as the sampling rate. Your prompt response is greatly appreciated!

Sign In or Register to comment.