Subscribe to RSS
DOI: 10.1055/s-0038-1634215
Introducing BF++: A C++ Framework for Cognitive Bio-Feedback Systems Design
Publication History
Received:
24 September 2001
Accepted:
09 July 2002
Publication Date:
07 February 2018 (online)
![](https://www.thieme-connect.de/media/10.1055-s-00035037/200301/lookinside/thumbnails/10-1055-s-0038-1634215-1.jpg)
Summary
Objective: This paper addressed the issue of building-up a framework for the realization of several cognitive bio-feedback (CBF) systems. It minimizes the programming effort and maximizes the efficiency and the cross-platform portability so that it can be used with many platforms (either software or hardware).
Methods: A generic CBF system was decomposed into six modules: acquisition, kernel, feedback rule, patient feedback, operator user interface and persistent storage. The way in which these modules interact was defined by immutable software interfaces in a way that allows to completely substitute a module without the need to modify the others.
Results: Three Brain Computer Interface engines were developed with less than 40 lines of C++ code each. They can also be used under virtually any platform that supports an ANSI C++ compiler.
Conclusion: A framework for the implementation of a wide range of CBF systems was developed. Compared to the other approaches that are described in the literature, the proposed one is the most efficient, the most portable across different platforms, the most generic and the one that allows the realization of the cheapest final systems.
-
References
- 1 Bayliss JD, Ballard DH. Single trial P3 epoch recognition in a virtual environment. Neuro-computing 2000; 32-33: 637-42.
- 2 Guger C, Schlögl A, Walterspacher D, Pfurtscheller G. Design of an EEG-based brain-computer interface (BCI) from standard components running in real-time under windows Biomed. Technik 1999; 44: 12-6.
- 3 McFarland DJ, Lefkowicz AT, Wolpaw JR. Design and operation of an EEG-based brain-computer interface (BCI) with digital signal processing technology. Behav. Res. Meth. Instrum. Comput. 1997; 29: 337-45.
- 4 Au ATC, Kirsch RF. EMG-based prediction of shoulder and elbow kinematics in able-bodied and spinal cord injuried individuals. IEEE Trans. Biomed. Eng. 2000; 8: 471-80.
- 5 Wolpaw JR, Birbaumer N, Heetderks WJ, McFarland DJ, Peckam PH, Schalk G, Donchin E, Quatrano LA, Robinson CJ, Vaughan TM. Brain computer interface technology: A review of the First International Meeting. IEEE Trans. Biomed. Eng.; 2000. 8: 164-73.
- 6 Farwell LA, Donchin E. Talking off the top of your head: A mental prostesis utilizing event-related brain potentials. Electroencephalogr. Clin. Neurophysiol. 1988; 70: 510-23.
- 7 Kennedy PR. et al. Direct control of a computer from the human central nervous system. IEEE Trans. Biomed. Eng. 2000; 8: 198-202.
- 8 Alexandrescu A. Modern C++ design: Generic programming and design patterns applied. Boston, MA: Addison Wesley; 2001
- 9 Stroustrup B. The C++ programming language. 3rd ed. Boston, MA: Addison Wesley; 1997
- 10 Gamma E, Helm R, Johnson R, Vlissides J. Design patterns CD. Boston, MA: Addison Wesley; 1998
- 11 Stroustrup B. Learning standard C++ as a new language. C/C++ Users Journal, 1999
- 12 Davies R. Documentation for newmat10, a matrix library in C++. Available at http://webnz.com/robert/nm10.htm. Accessed on Sept. 1, 2001
- 13 Blitz++ Class Library. Available at www.oonumerics.com/blitz Accessed on Sept. 1, 2001
- 14 Intel Performance Libraries. Available at http://developer.intel.com/software/products/perflib/index.htm. Accessed on Sept. 1, 2001
- 15 The wxWindows Cross Platform GUI Library. Available at www.wxwindows.org. Accessed on Sept. 1, 2001
- 16 Schalk G, Wolpaw JR, McFarland DJ, Pfurtscheller G. EEG-based communication: presence of error potential. Clinical Neurophysiology 2000; 111: 2138-44.
- 17 Speech Application Programming Interface (SAPI) Software Development Kit (SDK). Available at http://research.microsoft.com/srg/sapi.asp. Accessed on Sept. 1, 2001
- 18 Campbell C. How to exploit multiple monitor support in Memphis and windows NT 5.0,. Available at www.microsoft.com/MSJ/0697/monitor/MONITOR.HTM. Accessed on Sept. 1 2001
- 19 Microsoft Accessibility Technology for Everyone. Available at www.microsoft.com/enable/. Accessed on Sept. 1, 2001
- 20 Extensible Markup Language (XML) XML. Available at www.w3.org/XML. Accessed on Sept. 1, 2001
- 21 Bianchi L. Converting VCL Components Into Windows Resources. C/C++ Users Journal, 2000
- 22 Babiloni F, Cincotti F, Bianchi L, Pirri G, Millán J, Mouriño J, Salinari S, Marciani MG. Recognition of imagined hand movements with low resolution surface laplacian and linear classifiers. Medical Engineering & Physics. 2001; 23/5: 323-8.
- 23 Lafreniere D. State machine design in C++. C/C++ Users Journal, 2000
- 24 The BCI 2000 Project. Available at www.bciresearch.org/BCI2000/bci2000.html. Accessed on Sept. 1, 2001