— recorded brain-wave viewing application
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.
are some screen-shots (click to see larger versions):
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.
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.
binaries and sources
See NEWS.TXT for news of the latest
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
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.
are some related sites or pages that are worth a look:
FFTW: “The Fastest Fourier Transform in the
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
A freeware filter design and analysis toolset from Dr Tony Fisher
my own filter design application, based on mkfilter
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.