BWView — recorded brain-wave viewing application
This application, released as free software under the GNU GPL v2 for Linux and Windows, is designed for getting a rapid visual understanding of recorded brain-wave data. It uses FFT-accelerated convolution to do the analysis, which enables much greater flexiblity than using the traditional FFT-of-windowed-data approach. The frequency is plotted on a log scale, which is much better for viewing data that includes a wide range of frequencies. The window size is proportional to the wavelength at any frequency, so the convolution is effectively being done with a complex wavelet at various different scales. (Another way of putting it is that the analysis is effectively being done with the front half of a digital heterodyne filter.) The ratio of window size to wavelength can be varied easily to allow different aspects of the data to be shown.
Here are some screen-shots (click to see larger versions):
The first two screenshots show some EEG data (provided by Jim Meissner) viewed at different scales and window widths. The next two show some recorded test tones with nothing changed except the window width. The test tones were amplitude-modulated at this point, and in the first shot you can see this displayed as a carrier and side-bands, and in the second as individual pulses. This demonstrates one of the effects of changing the window width. Also, if you look at the signal display area, you’ll notice that the recorded data is really low-res, only using about 6 discrete values. The final shot shows an overview of some EEG data (showing strong alpha) viewed in a much larger window, using a coloured ‘sideways waterfall’ display.
The tool uses the FFTW library for transforms, and the SDL library for cross-platform video and I/O support. On Windows, the executable has been built using MinGW and MSYS. On Linux it might never have happened without GNU, Linux and Debian. Many thanks to the people behind these projects for their work.
Download binaries and sources
See NEWS.TXT for news of the latest updates.
Windows binaries: The Windows archive below includes the SDL.DLL file, the BWVIEW executable and full source and documentation. If you wish to redistribute this (e.g. on a CD), please take time to review the GPL and LGPL licences that cover this software. There are certain provisions in those licences to ensure that the recipient has full access to the source code (for all the software, including SDL and FFTW), which you would need to take care of.
Windows support tool: CatEEG is a little tool written by Jack Spaar that saves data from the serial port to a file. This is useful for Windows users because it allows EEG data to be read from an EEG device (e.g. the modularEEG) and saved to a file which can then be monitored in real-time as it grows using BWView.
Linux binaries: I’m not providing packaged binaries (RPM, DEB, etc) for Linux at the moment. Anyway Linux users are more accustomed to building things for themselves than Windows users are. See below for the source — build instructions are included in the file BUILD.Linux. Any problems, let me know.
Source code: The source code archives below are available in the TGZ format. Build instructions and documentation are included for both Linux and Windows. Actually, it should be possible to build BWView on any UNIX that SDL 1.2 supports, and even on MacOS or other platforms. Please let me know if you successfully build the app on another platform, and I may be able to add scripts or binaries to this page.
Example data: Two example data files are included in the Windows binary archive. Linux users need to download them separately below. This archive also includes the full DOWNEY.DAT file. The data was provided by Jim Meissner of Meissner Research. This data is useful for trying and testing the application if you don’t have any other data files handy.
Here are some related sites or pages that are worth a look:
FFTW: "The Fastest Fourier Transform in the West"
SDL: Simple DirectMedia Layer, cross-platform low level audio/video/etc
Stephen M Sprenger’s pages on DSP
DSP Guide: A practical book on DSP that can be downloaded in chapters
mkfilter: A freeware filter design and analysis toolset from Dr Tony Fisher
Fiview: my own filter design application, based on mkfilter
Cookbook formulae for audio EQ biquad filter coefficients by Robert Bristow-Johnson
OpenEEG: The project I am involved in to create a low-cost open-source EEG unit and software.
EEGMIR: My prototype EEG biofeedback app for the OpenEEG project.