Sensors: A Hybrid FPGA-Based System For EEG-and EMG-Based Online Movement Prediction
Sensors: A Hybrid FPGA-Based System For EEG-and EMG-Based Online Movement Prediction
Article
A Hybrid FPGA-Based System for EEG- and
EMG-Based Online Movement Prediction
Hendrik Wöhrle 1, *, Marc Tabie 1 , Su Kyoung Kim 1 , Frank Kirchner 1,2 and Elsa Andrea Kirchner 1,2
1 DFKI GmbH, Robotics Innovation Center (RIC), Robert-Hooke-Str. 1, D-28359 Bremen, Germany;
[email protected] (M.T.); [email protected] (S.K.K.); [email protected] (F.K.);
[email protected] (E.A.K.)
2 Robotics Group, Department of Mathematics and Computer Science, University of Bremen,
Robert-Hooke-Str. 1, D-28359 Bremen, Germany
* Correspondence: [email protected]; Tel.: +49-421-178-456-559
Abstract: A current trend in the development of assistive devices for rehabilitation, for example
exoskeletons or active orthoses, is to utilize physiological data to enhance their functionality and
usability, for example by predicting the patient’s upcoming movements using electroencephalography
(EEG) or electromyography (EMG). However, these modalities have different temporal properties
and classification accuracies, which results in specific advantages and disadvantages. To use
physiological data analysis in rehabilitation devices, the processing should be performed in real-time,
guarantee close to natural movement onset support, provide high mobility, and should be performed
by miniaturized systems that can be embedded into the rehabilitation device. We present a
novel Field Programmable Gate Array (FPGA) -based system for real-time movement prediction
using physiological data. Its parallel processing capabilities allows the combination of movement
predictions based on EEG and EMG and additionally a P300 detection, which is likely evoked
by instructions of the therapist. The system is evaluated in an offline and an online study with
twelve healthy subjects in total. We show that it provides a high computational performance and
significantly lower power consumption in comparison to a standard PC. Furthermore, despite the
usage of fixed-point computations, the proposed system achieves a classification accuracy similar to
systems with double precision floating-point precision.
1. Introduction
In the last couple of years, the analysis of physiological data has been successfully applied to
achieve different research or application goals, e.g., to control different kinds of devices, to allow
locked-in patients to communicate with their environment, or to adapt technical devices to the cognitive
state of a human [1–11].
Especially in the field of neurorehabilitation and support of daily activities the interest to use
physiological data has increased. A restriction or loss of the mobility due to a neurological disease or
injury, such as stroke or spinal cord injuries, usually reduces the patients quality of life considerably.
In such a case, physiological data can be applied to adapt a rehabilitation or support device, for instance
an active orthosis or exoskeleton, in order to accelerate or improve the rehabilitation process of patients
or to provide a suitable amount of support in daily life.
In this context, the capabilities of the rehabilitation device are a relevant issue. A rehabilitation
device should support therapy approaches that involve functional training that is tailored to the
physical conditions and therapy state of the patient (assist-as needed) [12,13].
To achieve this, the adaptation of robotic rehabilitation systems (e.g., active orthoses or
exoskeletons) [14–22] with real-time analysis of physiological data related to neuronal or muscular
activity to predict movements seems to be a promising approach [23–30]. Data that can be acquired
non-invasively from the human body, for instance surface Electroencephalography (EEG) and surface
Electromyography (EMG), have a range of advantages for practical purposes, e.g., they provide a good
time resolution, the data acquisition equipment is relatively cheap and portable. Several studies could
show that the approach to adapt assistive or therapeutic devices with respect to physiological data
motivates the patients and encourages the active participation in the exercises, which can result in an
increased neuroplasticity in, e.g., stroke rehabilitation and, thus, therapy success [31–36].
One important aspect to achieve practical usability of a therapeutic device is to provide a high
mobility [37,38]. This can be achieved by the development of small computing systems that control
the device, but also process the physiological data and are embedded into the rehabilitation device or
other equipment like wheelchairs [39] and exoskeletons [29]. However, systems like Brain-Computer
Interface (BCI) are nowadays often used in artificial and stationary experimental setups. Reasons for
this are (1) the immobility of the utilized hardware for data acquisition, (2) the experimental conditions
in which BCI systems are still employed, but also (3) the size of the computing devices required for
the analysis of the human EEG or EMG. Recently, substantial progress has been achieved regarding
(1) and (2) (see Section 2.4). Although the development of highly performant and power-efficient
miniaturized computing devices is an important aspect for rehabilitation applications, aspect (3) has
rarely been in the focus of previous research.
For many rehabilitation applications, four different types of requirements are important for the
development of embedded systems. First, the system should be as small as possible and have a low
power consumption. Secondly, a computing device that is embedded into a larger rehabilitation device
must provide the ability to communicate with various other systems and provide additional features
such as the possibility to record data. These “high-level” functionalities are very diverse in structure
and their implementation is usually based on a wide range of different software libraries. Fortunately,
apart from certain types of communication (e.g., motor control to actuate a device), these functionalities
are mostly not time-critical. Hence, these features are well-suited for a realization in software. and
can be performed by a generic Central Processing Unit (CPU). Thirdly, for the actual processing of the
physiological data, a set of different signal processing and Machine Learning (ML) algorithms has to
be applied on the incoming stream of physiological data in real-time. Depending on the amount of
data and the complexity of the algorithms, this part can be computationally expensive. If we aim to use
movement prediction for the control of an assistive or therapeutic device physiological signals must
be chosen that provide this information. However, their analysis should be performed with minimal
latency. Fourthly, if different physiological signals are combined to predict movements in a hybrid
approach, multiple different signal processing operations have to be applied asynchronously and in
parallel to different streams of data. This can be a problem if the processing should be performed in
miniaturized processing devices.
In this paper, we propose a hybrid Field Programmable Gate Array (FPGA)-based approach for
the implementation of a hybrid BCI, since this can fulfill the requirements discussed above. Our system
is based on the Xilinx Zynq® [40], that combines a generic CPU with programmable logic (which is
equivalent to an FPGA). This combination makes it possible to implement high-performance processing
devices, which are power-efficient, have small dimensions, and can replace a bulky stationary PC.
The CPU of the system offers the possibility to use standard software for user interaction as well
as high-level and configuration tasks, which are tasks that are usually not performance-critical.
Computationally expensive and time-critical operations can be transferred to hardware-accelerators
that are implemented using the FPGA, which assists the generic CPU. Multiple hardware accelerators
can work independently and asynchronously on different tasks, e.g., to process multiple physiological
signals at the same time. Since FPGAs offer the capability to exploit massive parallelism to accelerate
computations, they represent a well-suited technology for the implementation of performance-critical
Sensors 2017, 17, 1552 3 of 41
operations. FPGAs achieve this by offering the possibility to use computing architectures that can
represent the underlying algorithms. For instance, in signal processing and machine learning systems
such as BCIs, data is often processed by multiple consecutive operations. For these applications,
the system can be represented by dataflow architectures, where data is streamed directly from one
processing step to the next one. This allows exploiting pipelining parallelism and avoiding overhead
due to, e.g., transfers between hardware accelerator and external memory. For the target application,
a further advantage of FPGAs is the possibility to obtain a tight integration of the actuated rehabilitation
device and the data processing system, since FPGAs offer the possibility combine motor control and
commutation methods with data processing operations on the same die. Furthermore, an advantage of
an FPGAs over other types of hardware-accelerators (e.g., hard-wired Application-Specific Integrated
Circuits (ASICs)) is the possibility to benefit from hardware acceleration, but to still have the possibility
to adapt the system to different application properties, for instance to the number of different channels
used by a specific system, or to exchange or add specific components, which can be helpful if better
methods become available or the application requirements change.
In many applications, it is helpful to rely on multiple physiological signals instead on a single
one [41]. Since different physiological signals exhibit different properties and contain different
information, it can be advantageous to switch between them or use a combination of them. Especially
in robotic devices for neurorehabilitation, the combination of EEG and EMG provides advantages over
a single modality. For instance, EEG and EMG can be combined to either predict as many movements
as possible or to enhance the reliability of movement prediction. If the system provides the capability
to combine EEG or EMG-based movement predictions in different ways, it can be used to adapt
a possible rehabilitation system to the diagnosis of a patient or different needs of patients in different
stages of therapy [25,42]. Depending on the type of combination, the system can be used in therapy
sessions for successfully treated patients to enforce their involvement, or alternatively in therapy
sessions for patients who still have great difficulties to initiate or execute movements or control the
rehabilitation device by means of physiological data. EEG and EMG also exhibit different temporal
properties in relation to a movement onset, i.e., it is possible to detect movement intentions early using
EEG, while changes in the EMG can only be observed close to the actual movement onset. Moreover,
the feasibility to predict movements using EMG might depend on the severity of a paresis, is not
applicable for paralyzed patients, and is difficult for patients with spasms or tremor. Furthermore,
the combination can help to enhance the reliability of control commands of the device [43,44]. A further
advantage of such a combination is the possibility to adapt the data-dependent signal processing and
machine learning methods used for the EEG-based movement detection by using the EMG-based
predictions [45,46].
In the second contribution, we show that the parallel processing capabilities of our proposed
mobile system can be used to process multiple different streams of data at the same time in order to
increase the reliability of the movement predictions. This is achieved by combining movement-related
patterns with each other or with EEG patterns evoked by task-relevant signals, such as an instruction
of the therapist to the patient. This is of special interest for patients in early stages of therapy that
require instruction and show poor movement capabilities. We expect that the so called P300 is evoked
by instructions given by the therapist to the patient. We showed already that this pattern is evoked by
seldom, task relevant instructions and can be recorded in complex interaction scenarios [47]. In this
work we use a more controlled scenario, where we combine an oddball paradigm with delayed
responses on task-relevant events to evoke EEG patterns related to the recognition of task relevant
stimuli and movement preparation. Here, we investigate in a controlled scenario whether single-trial
P300 detection can be used to improve movement classification performance for controlled therapy
sessions in which patients perform movements only after instruction of a therapist. For this purpose
we systematically combine the analysis of EMG-data and the two different EEG-patterns to predict
movements before they occur and to evaluate the effect of different combinations.
The remainder of this paper is structured as follows. In Section 2, we give an overview about
related work. Subsequently, the architecture of the proposed system and the applied data processing
methodology are discussed in Sections 3 and 4, respectively. The proposed system is evaluated on
physiological data obtained in an example application scenario, the procedures for the experimental
evaluation are described in Section 5. The obtained results are presented and discussed in Section 6.
The conclusion and a plan for future work is given in Section 7.
2. Related Work
interact with technology in their everyday environment [70]. Especially using BCIs for the control of
neurorehabilitation devices or orthoses and prostheses [71–75] receives increasing attention. In this
context, enhancing the applicability or reliability of BCI systems by combining multiple BCIs to create
hybrid BCIs represents an important aspect [41,76,77].
A signal frequently used in such applications is the P300-Event-Related Potential (ERP) [47,78,79].
For instance, P300-based BCIs have been successfully combined with motor imaginary-based BCIs to
enhance the control possibilities [72,80] or reliability [81] of the combined system. Hence, hybrid BCI
systems can avoid wrong predictions of the upcoming movements to decrease frustration of the patient
and increase therapy success. Especially, movement prediction combined with P300 detection can
ensure a robust prediction of the upcoming movements with an increased prediction accuracy, since
the P300 is detected with a higher accuracy compared to movement prediction. A further possibility is
to combine an EEG-based BCI-system with EMG signals, which can similarly increase the reliability of
the combined system [25,42,43,82–87]. However, to combine several modalities (e.g., EEG, EMG), it is
important that the utilized computing system is capable to process several different data streams in
parallel and real-time to be able to combine the individual predictions. Another possibility that we
do not consider in this study is to increase the reliability of movement predictions by combining the
predictions with other modalities, e.g., eye gaze or limb position [84,88].
signal processing and ML techniques to process the physiological data in real-time and have a low
power consumption.
requires no complex scheduling algorithms to coordinate the work of the actors and can guarantee
deadlock-freeness and bounded memory usage. However, SDF-based systems are not Turing
equivalent, i.e., it is not possible to use an SDF-based system to run ordinary software.
The actors can be of different granularity, ranging from fine-grained actors that implement
single arithmetic operations up to coarse-grain actors that implement a complete algorithm and
include control-flow instances or finite state machines as long as they obey dataflow behavior.
A further possibility is to combine standard-hardware architectures, like von Neumann-based CPUs,
with dedicated hardware accelerators that follow the dataflow enhance the computing performance of
specific, time-critical operations [136]. Accordingly, dataflow architectures are a promising approach
to build high-performance and real-time compliant embedded systems.
CPU1 CPU2
USB3320-EZK TTL μSD-HC
ETH-Phy
Programmable Logic 1x1Gb
KSZ9031
XC7Z7030-3 FBG484
RAM
2x256MB
BrainBus
1x
MT41K128M16JT
DFKI-IP
HSCom
1xUp, 1xDown
JTAG
DFKI-IP
IO/Debugging
(a)
(b) (c)
Figure 1. The ZynqBrain processing platform: (a) printed circuit board; (b) assembled system with
3D-printed cover; (c) battery pack.
The ZynqBrain provides the following standardized interfaces to connect to other systems:
(1) a single USB 2 interface, (2) a 1 Gb Ethernet port, (3) two UART interfaces and (4) a JTAG port.
An important additional feature is the availability of specialized interfaces developed for distributed
computing in robotic systems, called BrainBus and HSCom [137]. These interfaces provide the
possibility to establish connections to control motors [138] and represent an important key feature
for the integration of the ZynqBrain into robotic rehabilitation equipment. The USB interface of the
ZynqBrain was used to connect the ZynqBrain directly to the EEG-acquisition hardware (see below),
a µSD-HC card interface was used as a persistent storage medium to, e.g., store operating system,
software, and recorded EEG data.
For the system used in this paper, we created a 3D-printed cover. Besides the ZynqBrain, the cover
contains a power management unit and two LiFePo cells with a total capacity of 4300 mAh.
computational performance. Task parallelism is especially important for hybrid BCI systems, which
have to apply different operations to different streams of data at the same time. Pipeline parallelism
represents the separation of a computation in several stages that can be executed in parallel and fits
well to stream based computations as required here. Due to the task parallelism, the different DFHWA
operate in parallel without interference.
The DFHWAs are implemented using the reSPACE [132,135] framework, which consists of a
library of predefined, parametrizable actors. Hence, all actors are configurable components that can be
adapted to specific requirements and combined to build more complex systems. These include basic,
widely used algorithms such as Finite Impulse Response (FIR) and Infinite Impulse Response (IIR)
filters, direct current offset removal, standardization, etc. For instance, for the system proposed in this
paper, we use a specific set of actors to build four DFHWAs with different purposes (for details about
the applied algorithms see Section 4). Another possibility provided by reSPACE is a customizable
generator for matrix-multiply based algorithms, which generates a node according to the specification
given by a domain specific language. The operations are mapped directly to the programmable logic
to allow resource and power efficient arithmetic operations. This makes it possible to generate nodes
that implement algorithms frequently used in BCIs, such as spatial filters [139,140] or classifiers.
The DFHWAs are connected to the CPU via an AXI-Lite bus for the transfer of configuration
parameters (for details about the used algorithms, see Section 4) and data. Different parameters of the
processing can be configured using a set of software-accessible registers. In order to process EEG or
EMG data, it is transferred to the input First-In, First-Out (FIFO) buffers and the results are collected
from the output FIFO buffers or result registers. The data transfer is performed using Direct Memory
Access (DMA). This setup has the advantage that the host CPU is not involved in the data transfer and
the computations performed in the DFHWAs and is therefore not occupied by these. Subsequently,
the actual computations are performed asynchronously by the DFHWAs. As soon as the results are
available, the CPU is notified via an Interrupt ReQuest (IRQ).
To access the DFHWAs from a software application, device drivers are needed that interface with
the DFHWAs and run as kernel modules. They can be automatically generated by reSPACE according
to the meta-data that provides all necessary information to generate the interface of the DFHWAs.
Figure 2. Hybrid parallel processing for electroencephalography (EEG) and electromyography (EMG)
detection. The numbers shown in each processing step refer to the detailed description in Section 4.
For the hardware implementation in the corresponding DFHWAs, fixed-point operations were
used, while all software implementations are based on double precision floating-point operations.
For the proposed system, the integer and fractional parts of the fixed-point operations and
representation were manually optimized stepwise to obtain an optimal accuracy.
Sensors 2017, 17, 1552 10 of 41
• MRCP: Both the ERD/ERS and the MRCP have been used to detect movement intentions
(Section 2). Since the MRCPs-based movement-prediction is more reliable than the
ERD/ERS-based procedure close to the actual movement onset [143], we choose MRCP for
movement prediction in our system.
• EMG: Similarly, the EMG is used as a signal that indicates an upcoming movement.
• P300: The P300 is not directly related to an upcoming movement. However, it can be used to
select one of several different modes of a BCI system. In this paper, we follow this approach. It
is assumed that the subject is most of the time in an idle state and switches to an active state
following the instruction of a human or virtual trainer or therapist. In such an application, the
successful detection of the P300 in response to a command can be used as an indicator that the
subject will perform a movement in the near future. Subsequent to the command, we expect a
movement in a time window with a length of 5 s.
(1) Variance Filter: To obtain a signal with smoothed baseline noise and enlarged signal amplitudes
during movement phases, a running variance method was used for preprocessing of the EMG
signals. The calculation was based on [144], but was computed as described in [145] to calculate
the running variance v at time t as:
!2
0 0
1 1
v(t) = ∑
WVF − 1 i=−
2
x (t + i ) − ∑
WVF − 1 i=−
x (t + i ) , (1)
2w 2w
Sensors 2017, 17, 1552 12 of 41
where WVF = 2w + 1 is the window length. Variance filtering does not change the dimensionality
of the data.
(2) Adaptive Threshold Comparison and Classification: The actual onset detection was based on
the comparison of the variance-filtered signal with an adaptive threshold. The threshold was
computed as
T (t) = µ(t)WAT + pσ (t)WAT , (2)
with µ the mean value, σ the standard deviation, WAT the length of the window for the mean and
standard deviation and p the sensitivity factor of the threshold [146]. To compute the standard
deviation, the methods described in [145] were used again. The adaptive threshold compensates
slow drifts in the EMG signals or changing noise levels in the signal caused by, e.g., resistance
changes at the electrode side. The classification was performed using a threshold comparison.
That is, a segment was classified as belonging to the movement class if the single sample of
the variance filtered signal of more than a previously chosen number of channels nCOT were
higher than T. Due to the adaptive threshold based movement detection, the flow for EMG-based
movement prediction required no explicit training phase. A single classification was computed
for each data segment.
(3) Detrending: First, detrending was used to remove slowly varying signal components using an IIR
filter [147], which could otherwise produce a bias in the data.
(4) (a + b) Decimation: Subsequently, the sampling rate was decimated in two steps [148,149], the first
step reduced the sampling frequency from 5 kHz to 125 Hz. In the second step, a further reduction
of the sampling frequency to 25 Hz was performed. The anti-alias FIR of the second step was
parameterized so that all frequencies greater than 4 Hz were attenuated as proposed in [150,151].
In the decimation, each data segment is reduced to a c dimensional vector. The output of the
second decimation step was sent back to the main memory for further segmentation in software.
(5) Spatial Filtering: The axDAWN spatial filter [140] was applied to decrease the number of
channels to four, creating a 25 × 4 dimensional matrix. This operation can be realized as a
matrix multiplication (using DSP48 [121] slices if realized in hardware) and was implemented
using a specialized accelerator for matrix operations [152].
(6) Feature Generation: To generate features for classification the time samples were transformed into
local straight line features, i.e., polynomial features of order one [47,57]. To this end, every segment
Sensors 2017, 17, 1552 13 of 41
was divided into subsegments of length of 400 ms that are shifted by 120 ms. A polynomial was
fitted to each subsegment. The polynomials allow to describe the P300 by a series of slope values.
The extracted slopes were combined in a single 24-dimensional feature vector.
(7) Feature Standardization: A further operation was component-wise feature standardization, i.e.,
x−µ
we computed xs ← σ T T , where µ T , σ T are the element-wise mean and standard deviation of all
vectors in the training data set, respectively. This operation removes bias from the data due to
a constant offset. Feature standardization does not change the dimensionality of the feature vector.
(8) Classification: A Passive-Aggressive Algorithm, type-I (PA-1) [153] was used for classification.
The PA-1 classifier is a linear binary online classifier, that is based on a maximum-margin
hyperplane and can be applied to nonseparable problems. Preliminary investigations showed
no significant differences in classification performance to a linear soft-margin Support Vector
Machine (SVM). Similarly to a soft-margin SVM, the PA-1 provides a hyperparameter C to
control regularization. C was optimized using a grid-search in the range {100 , 10−1 , . . . , 10−6 }.
A stratified three-fold nested cross validation was used for model selection on the training
data [154]. Subsequent to the classification, a threshold correction [155] was used to compensate
the bias in the data related to class imbalance.
(9) Spatial Filtering and Feature Generation: Since the MRCP is reflected by a temporal pattern in the
data, time-domain features can be used for the detection of the MRCP. Accordingly, the axDAWN
spatial filter [140] can be applied for the MRCP detection to reduce the number of channels to a
single channel, i.e., creating a 20 dimensional feature vector.
(10) Feature Standardization: The feature vectors were standardized using the approach discussed in
Section 4.4 (7), leaving the dimension of the feature vector unchanged.
(11) Classification: The 20 dimensional feature vector was classified using a Passive-Aggressive
Algorithm, type-I [153]. Similar to the P300 detection, the regularization hyper-parameter C
was optimized in the range {100 , 10−1 , . . . , 10−6 } using a 3-fold nested cross validation. Again,
we observed no significant differences in classification performance to a linear soft-margin SVM
in preliminary investigations and applied a threshold correction to compensate class imbalance
as proposed in [155].
5. Experimental Evaluation
The evaluation was split into two different parts:
1. A preliminary offline evaluation to test and evaluate the system regarding different parameters
and combination of modalities and select the best parameters for the online evaluation.
2. A subsequent online evaluation to verify that the system works in a real application.
The experimental setup was identical for both the online as well as the offline part.
Sensors 2017, 17, 1552 14 of 41
dynamic switch
true of true class true true
negative positive negative
Evaluation windows windows windows
(determination of false false
positive negative
correctness/error type) windows window
Prediction
Score
Classification 0
time
Labeling
movement
(assignment of pre-movement
onset return to
ls unknown phase
true label w.r.t ... t=[-1000,...,-120] ms (leave button button board
board) (resting state)
movement onset) ...
t=0 ms
overlapping data pre-movement
segments lw phase in-movement
t=[-80,-40] ms phase
Figure 3. Segment-based evaluation. The true label was assigned to each segment based on the
temporal relationship to a movement onset. Since we observed highly subject-specific differences
of the time when a movement can be predicted before the actual movement onset, we used the
following dynamic method to determine whether the true class of a segment is the movement or rest.
In all cases the segments ending at −80 or −40 ms relative to the movement onset were expected
to predict a movement (i.e., belong to the movement class, denoted as pre-movement phase). All
segments ending in the interval [−1 s,. . . , −120 ms] were further investigated whether they belong
to a consecutive sequence of predictions of the movement class with at most one exceptional case
(pre-movement unknown phase). All segments ending between the movement onset and the end of
the movement plus an additional tolerance period of 200 ms were not included in the performance
evaluation (post-movement phase). All remaining segments were assigned to the resting class. For
training of the classifier, the segments ending in the interval [−120, . . . , 120] ms were used as examples
for the movement class, all remaining segments (apart from examples ending in the in-movement
phase) were used as examples for the resting class.
Figure 4 shows the experimental setup and procedures. The subjects were seated in a chair in front
of a table. A monitor, a button board and a buzzer were placed on the table (Figure 4a). The subjects
were asked to perform 40 self-paced movements of their right arm according to an oddball paradigm.
In the resting state, the hand of the subject was placed on the board. To perform a correct movement,
the hand of the subject had to leave the button board, press the buzzer, and return to the button
board. The distance between buzzer and button board was approximately 30 cm. Events from button
board and buzzer were labeled in the acquired data to determine the movement onset and the end of
the movement.
Sensors 2017, 17, 1552 15 of 41
OK
(a) (c) Standard Target Standard Standard
ISI 900-1100ms
ISI 900-1100ms ISI 900-1100ms min. 3 mal
(100ms) (100ms) ISI 900-1100ms (100ms)
ERROR: Reaction
to fast
(d) Standard Target Error
Standard Standard
ISI 900-1100ms
ISI 900-1100ms ISI 900-1100ms ISI 900-1100ms
mind. 3 mal
(100ms) (100ms) (100ms)
ISI 900-1100ms
(b) >2s
< 5s waiting Movement onset Movement end
time
<2s ERROR: Reaction
to Standard
(e) Standard Standard Error
Standard Standard
ISI 900-1100ms
ISI 900-1100ms ISI 900-1100ms ISI ISI 900-1100ms
900-1100ms
(100ms) (100ms) (100ms)
(100ms)
Resting Phase
Default Standard Target
Movement
Movement onset Movement end
Figure 4. Illustration of the conducted experiments. (a) Three pictures of the setup, showing from left
to right: the resting phase, the movement phase and the buzzer press; (b) Visualization of the paradigm;
(c) Correctly performed movement; (d,e) Notification of incorrectly performed movements.
The oddball paradigm was implemented using the software Presentation (Neurobehavioral
Systems, Inc., Albany, CA, USA). A green circle with a black fixation cross was shown to the subjects.
Two different kinds of stimuli were shown to the subjects: Standards, which were indicated by the
disappearance of the vertical bar of the fixation cross, and Targets, which were indicated by the
disappearance of the horizontal bar for 100 ms. The Inter-Stimulus Interval (ISI) was 1 s ± 100 ms
(Figure 4b). After a Target stimulus, the subjects had to wait for at least 2 s before they were allowed to
perform a valid movement (Figure 4c). The waiting time was unknown to the subjects. Movements
performed too early (Figure 4d) or not related to a Target stimulus (Figure 4e) were reported to the
subjects by a red flash of the circle as error notification and not taken into account for data analysis.
A run was finished after 40 correct movements. The study consisted of one recording session per subject,
each recording session was divided into three runs as shown in Figure 5 (resulting in 120 movements
per subject and session; 80 movements belong to the training and 40 movements to the test phase).
24 datasets from 8 subjects (3 runs × 8 subjects) were used in the offline evaluation, and 4 datasets from
4 subjects (1 runs × 4 subjects) for the online evaluation.
1 2 3
2 3 1
Preliminary 3 1 2 EEG
Offline (32 channels)
Study
EMG
(8 channels)
1 2 3
Online
Study EEG
(32 channels)
Figure 5. Illustration of the online evaluation/offline cross validation scheme (see also Section 5.3).
In the preliminary offline study, three runs of data were recorded in total. The runs of the data were
used as splits for the cross validation as follows. All combinations of runs in a session were used,
resulting in three different training/evaluation combinations. Two recorded runs were used for training
of the data dependent methods and the remaining run was used for the offline evaluation. In each run
the data was recorded using the Magma-Box-Setup, i.e., it consisted of 4 × 32 = 128 channels of EEG
data and 8 channels of EMG data. Due to the restrictions of the recording hardware discussed in the
text, a modified recording scheme was used for the offline evaluation. Online evaluation: In this case,
the two initial training sets were recorded using the Magma-Box-Setup. In the test/evaluation phase,
a single run was recorded using the USB-Box-Setup. The physiological data was processed in real-time
and the results recorded for subsequent analysis.
Sensors 2017, 17, 1552 16 of 41
classification performance. Third, as discussed above, the CPU implementations were using double
precision floating-point arithmetic, while the FPGA-based system was using fixed-point arithmetic.
Since fixed-point arithmetic can result in numerical problems, a further concern was that this might
decrease the classification accuracy.
We used a segment-based method for performance evaluation for MRCP and EMG (see Figure 3),
since this provides the possibility to evaluate the system under conditions close to a real application
case, where a movement prediction system should perform an ongoing analysis of the physiological
data. For the P300 detection, we use segments of the length of 1 s subsequent to each Standard and
Target marker.
Regarding the classification performance, we are interested in three performance measures:
the overall classification performance in terms of Balanced Accuracy (BA), as well as the types of
errors as given by the False Negative Rate (FNR) and False Positive Rate (FPR). The BA is given by the
arithmetic mean of the True Positive Rate (TPR)/recall and True Negative Rate (TNR)/specificity, i.e.,
1 1
BA = TPR + TNR,
2 2
• A mobile processor-based system (the dual core ARM CPU of the ZC7030 PS, running at 1 GHz,
512 MB DDR SDRAM at 533 MHz), denoted as Mobile CPU-based Reference System (MRS) in
the following.
• A standard desktop PC with an 8-core Intel(R) Core(TM) i7 CPU that was running at 3.07 GHz and
a Linux Ubuntu operating system, version 14.4. denoted as Standard-PC Reference System (SRS)
in the following.
In preliminary performance investigations, we identified the application of the anti-alias FIR filter
applied as part of the decimation operation (see Section 4) as the computationally most expensive step.
Hence, we used OpenMP [157] to apply a channel-wise parallelization of the filtering procedure.
All unnecessary processes were stopped to avoid a distortion of the results. As stated above,
we used pySPACE [123] for processing and evaluation of the software parts of all systems.
part (Section 6.7) reports the results of the validation of the developed system in the subsequently
performed online sessions.
6.1. EMG-Based Movement Prediction: Classification Performance, Computing Time, Resource Utilization
Classification Performance: A grid search was used for optimization of WVF , WAT , and p. Based on
previous experience, the chosen parameter ranges for optimization were WVF ∈ {10, 20, 50, 100, 200} ms,
WAT ∈ {100, 200, 500, 1000, 2000, 5000} ms, p ∈ {3, . . . , 12}. Regarding the channel setup, we estimate
the performance of each single channel as a baseline for comparison, and the following combinations
of channels: nCOT ∈ {1, 2, 4} for channels 1, . . . , 8 and nCOT ∈ {1, 2} for channels 1, . . . , 4, where nCOT
denotes the number of channels that have to be over the computed threshold simultaneously
(see Section 4.1).
To this end, the classification performances of eight single-channels and five different channel
combinations (see Figure 6) were analyzed by a two-way repeated measures ANOVA with the
channel setup (CS, 13 levels as described above) and hardware architecture (HA, 2 levels: CPU-based
system with double precision floating point vs. FPGA-based system with fixed-point arithmetic) as
within-subjects factors. Greenhouse-Geisser correction was applied when necessary and the corrected
p-value is reported. We performed a post-hoc analysis to compare the channel setups and hardware
architecture. Bonferroni-Holm correction was applied for multiple comparisons.
We obtained a significant main effect for CS [F (12, 276) = 211.5, p < 0.001], but no effect of HA
[F (1, 23) = 2.2, p = n.s.]. The best channel setups are ‘1 ∈ [1, . . . , 4]’ and ‘1 ∈ [1, . . . , 8]’ [these setups
vs. all other setups: p < 0.01]. There was no significant difference between CPU and FPGA.
Furthermore, we observe a significant interaction between CS and HA [F (12, 276) = 6.2, p < 0.001].
We found no significant differences between both types of hardware architectures for all channel setups
[p = n.s.], except for channel 1, and for all combinations except ‘2 ∈ [1, . . . , 4]’.
As expected, the channel placed on the left arm show worse performance compared to the other
channel setups [p < 0.001]. Combinations of multiple channels improve the performance, the best
performance is obtained by channel setups ‘1 ∈ [1, . . . , 8]’, ‘2 ∈ [1, . . . , 8]’ and ‘4 ∈ [1, . . . , 4]’. Based on
these results, all subsequent investigations related to the EMG based movement prediction are based
on the setup ‘1 ∈ [1, . . . , 4]’.
EMG Classification Performance of CPU- and FPGA-based Systems for Different Channel Setups
1.0
0.9
Classification Performance [BA]
g
0.95
g 0.96
0.97 g
g
0.92 0.95
0.8 g
0.95 0.95 0.95 g
0.96
g
0.94 0.92
0.94 g
0.93 0.93
g 0.93
g 0.93
0.93 g 0.96
0.96 g 0.90
0.7
0.89 0.89 0.91 0.91 g
0.89
g
0.89
0.87
0.6 0.88
g 0.81
0.81 g
g 0.69
0.69 g
0.5 0.82 0.82
0.72 0.73 CPU
g
g 0.51 g 0.55
0.54 g g 0.53
g FPGA
0.51 0.53
0.55 0.55 g 0.57
0.57 g Mean
0.4 0.51 0.51 0.55 0.55 Median
0.57 0.57
C
FP
C
FP
C
FP
C
FP
C
FP
C
FP
C
FP
C
FP
C
FP
C
FP
C
FP
C
FP
C
FP
PU
PU
PU
PU
PU
PU
PU
PU
PU
PU
PU
PU
PU
G
| {z } | {z } | {z } | {z } | {z } | {z } | {z } | {z } | {z } | {z } | {z } | {z } | {z }
A
Figure 6. Classification performance for the prediction of movements based on the EMG. The median
f and mean (BA) classification performance is reported for each case.
( BA)
Computing Time: Computing times were measured using all 40 ms segments from datasets of
the offline study, in total this data consists of N = 381,991 segments. All measured times contain the
time spent in the core algorithmic kernel and the time required to make the results accessible to the
Sensors 2017, 17, 1552 19 of 41
Python-based top-level framework pySPACE, e.g., for the FPGA-based system this includes the time
required to perform the data transfer between main memory and hardware accelerator.
The required time to process a segment of the proposed system (FPGA) and the reference systems
(MRS and SRS, see Section 5.5) is shown in Figure 7 (left part). We can observe that the required
time to process a segment depends on the number of channels and the utilized computing device.
For all channel setups, the MRS requires the highest amount of time (2.431–15.97 ms, depending
on the number of channels) and has the highest variability of time (σt ≈ 2.7 ms). The SRS provides
a significant speedup over the MRS system (5.6–11.8×, depending on the number of channels) and has
a smaller variability of the processing time (σt ≈ 0.6 ms). The highest performance and lowest variability
of processing time can be obtained by the FPGA-based system (speedup over SRS: 9.0–21.6×, speedup
over MRS: 50.6–253.5×, σt ≈ 0.003 ms). The required time to process a segment represents a delay that
might be, depending on the actual application and the related time constraints, unacceptable.
FFs BRAMs
73.0 (27.6%)
7123 (9.1%)
20
6885 (8.8%)
35 (8.8%)
35 (8.8%)
35 (8.8%)
15.97
8110 (5.2%)
8099 (5.2%)
8079 (5.1%)
10000
6692 (8.5%)
8000 40 80
Computing Time [ms]
15
±2.748 ms
8000
10 6000 30 60
6.94
BRAMs
37.5 (14.2%)
±2.73 ms
BRAMs
LUTs
DSPs
LUTs
DSPs
FFs
FFs
±0.642 ms
6000
2.431
5
1.358
4000 20 40
±0.626 ms
1.4
1.2 4000
±0.627 ms
1.0
0.74
10.5 (4.0%)
0.8
±0.003 ms
±0.004 ms
0.432
±0.003 ms
0.6 2000 10 20
0.4
0.063
0.059
0.048
2000
0.2
0.0
SR
FP
SR
FP
SR
FP
R
R
G
G
S
0 0 0 0
S
| {z } | {z } | {z }
A
1 4 8 1 4 8
System Type/Number of Channels Number of EMG Channels
Figure 7. Left: Computation time for different computing setups for the detection of the movements
based on the EMG. Right: Resource utilization of the Dataflow Hardware Accelerator (DFHWA)
for different numbers of EMG channels. The percentage values refer to the amount of resources
provided by the Zynq ZC7030 (see Section 3.1) (independently utilized 18 kb Block Random Access
Memorys (BRAMs) are reported as 0.5 BRAMs).
Resource Utilization: The resource utilization is shown in Figure 7 (right part). It can be observed
that there is only a small increase in the amount of utilized LUTs, FFs, and DSP48 for an increasing
number of channels. In contrast to this, the increase of utilized BRAMs is more pronounced
(10.5 BRAMs are required for a single channel, 37.5 BRAMs for four channels, and 73 BRAMs for
eight channels). The reason for this increase of utilized BRAMs is the requirement to increase the buffer
sizes of the variance filter and adaptive threshold computations to compute the sliding mean and
variance (see Section 4.1), whereas the actual computational units are used in a multiplexed fashion for
different data samples and channels.
6.2. MRCP-Based Movement Prediction: Classification Performance, Computing Time, Resource Utilization
Classification Performance: The classification performance for different numbers of channels
according to the extended 10–20 system and both hardware architectures was analyzed using a repeated
measures ANOVA with two within-subjects factors: numbers of channels (NC, 4 levels: nc channels
with nc ∈ {32, 64, 96, 124}) and type of hardware architecture (H A, 2 levels: {CPU, FPGA}).
Greenhouse-Geisser correction was applied when necessary. Bonferroni-Holm correction was applied
for multiple comparisons.
The obtained classification performance is shown in Figure 8. A significant main effect can be
observed for NC [F (2.07, 47.6) = 12.7, p < 0.01], but not for H A [F (1, 23) = 1.18, p = n.s.]. The effect
Sensors 2017, 17, 1552 20 of 41
of number of channels is not straightforward for each architecture type. In our application, the highest
BA is achieved with 96 channels (except for 124 channels) [nc = 96 vs. nc = 32: p < 0.001, nc = 96 vs.
nc = 64: p < 0.001, nc = 96 vs. nc = 124: p = n.s.].
0.9 40 80
32 (8.0%)
32 (8.0%)
32 (8.0%)
32 (8.0%)
7000
6000 8000
4259 (5.4%)
4228 (5.4%)
4219 (5.4%)
4216 (5.4%)
0.8 30 60
BRAMs
5000
BRAMs
LUTs
DSPs
LUTs
DSPs
FFs
FFs
6000
g
3727 (2.4%)
3703 (2.4%)
BA:0.875
3699 (2.4%)
3692 (2.3%)
0.7 4000
g
g
BA:0.875 BA:0.864
BA:0.872 20 40
BA:0.871
BA:0.848
3000 4000
0.6
CPU
g
8.0 (3.1%)
BA:0.87 2000
7.5 (2.9%)
7.5 (2.9%)
7.5 (2.9%)
FPGA 10 20
BA:0.832 Mean 2000
0.5 Median 1000
CPU FPGA CPU FPGA CPU FPGA CPU FPGA
| {z } | {z } | {z } | {z } 0 0 0 0
32 64 96 124 32 64 96 124
Number of EEG Channels Number of EEG Channels
Figure 8. Left: Classification performance for the detection of the MRCP for CPU and FPGA for
f and mean (BA) classification performance is reported for each case.
32–124 channels. The median ( BA)
Right: Resource utilization of the DFHWA for different numbers of EEG channels. The percentage
values refer to the amount of resources provided by the Zynq ZC7030.
58.6±41.86 ms
8.27±41.86 ms
100 Prediction Preprocessing
46.69±33.35 ms
Computing Time [ms]
7.83±33.35 ms
39.13±39.13 ms
8.27±39.13 ms
33.12±23.66 ms
80
31.21±31.21 ms
7.35±23.66 ms
7.83±31.21 ms
22.27±22.27 ms
7.35±22.27 ms
18.93±13.52 ms
Computing Time [ms]
7.19±13.52 ms
60
12.89±12.89 ms
7.19±12.89 ms
40
8.51±0.37 ms
0.78±0.37 ms
6.74±0.35 ms
0.75±0.35 ms
5.46±0.37 ms
0.78±0.37 ms
5.11±0.38 ms
0.78±0.38 ms
0.72±0.32 ms
20
4.34±0.35 ms
0.75±0.35 ms
4.8±0.32 ms
4.07±0.35 ms
0.75±0.35 ms
3.16±0.32 ms
0.72±0.32 ms
2.98±0.32 ms
0.72±0.32 ms
2.82±0.29 ms
0.71±0.29 ms
10
1.94±0.31 ms
0.71±0.31 ms
1.91±0.36 ms
0.71±0.36 ms
8
0.32±0.01 ms
0.51±0.01 ms
0.55±0.0 ms
0.25±0.0 ms
0.49±0.0 ms
0.18±0.0 ms
0.46±0.0 ms
0.4±0.0 ms
6
4
2
0
SR
SR
SR
M
M
FP
SR
SR
SR
M
M
FP
SR
SR
SR
M
M
FP
SR
SR
SR
M
M
FP
R
R
R
R
R
R
R
R
G
G
S
S(
S(
S
S(
S(
S
S(
S(
S
S(
S(
S
S(
S
S(
S
S(
S
S(
A
A
2)
4)
2)
4)
2)
4)
2)
4)
2)
2)
2)
2)
| {z } | {z {z } | } | {z }
32 64 96 124
System Type/Number of Channels
Figure 9. Computing times of different computing setups for 32–124 channels for the detection of the
Movement Related Cortical Potential (MRCP). For the Standard-PC Reference System (SRS) system,
the number of threads are put in parenthesis.
Computing Times: The computing times for the different reference systems discussed in Section 5.5
are shown in Figure 9. Reported is the amount of time required to perform a single prediction, i.e.,
to process 200 ms of EEG data. Two values are reported for each setup: the time required for the
preprocessing (which corresponds to the Preprocessing DFHWA shown in Section 4.2) as well as the
time for the actual prediction (which corresponds to the MRCP Processing DFHWA). It can be observed
that, independent from the number of channels, the processing times of the SRS are sufficiently fast to
predict movements online, i.e., they require less than 40 ms of time to process a segment of 40 ms of EEG
data. We can only observe a small speedup by parallelizing the preprocessing (the smallest speedup
of 47 % is obtained for 32 channels, the highest speedup of 66 % can be obtained for 124 channels).
The reason for this observation is a high proportion of serial code related to object construction and
Sensors 2017, 17, 1552 21 of 41
data exchange between nodes in pySPACE. A separate investigation (not shown) revealed that the
speedup increases if the size of the data segments is increased. However, this would also result in an
increase of the latency related to each prediction. Hence, a larger segment size is not feasible for the
application of online movement prediction.
The MRS requires a significantly higher amount of time for each prediction. For a small number
of channels (nc ∈ {32, 64}), it is possible to use the MRS for online prediction (i.e., less than 40 ms
are required to process a segment). However, for these channel setups we obtain a classification
performance worse than for nc ∈ {96, 124}. Hence, an optimal system configuration would consist of
a configuration with a higher number of channels, i.e., nc ∈ {96, 124}. For such a configuration the
MRS does not provide a sufficient amount of computing performance for an online application.
If the DFHWAs are used, the computation times can be considerably reduced and the time
constraints for real-time prediction are met. The achievable speedup depends on the number of
channels. For 32 channels, achievable speedup is the lowest (FPGA vs. SRS: ≈ 4–5.5, FPGA vs.
MRS ≈ 31.4–40.8), the highest speedups can be achieved for 124 channels (FPGA vs. SRS: ≈ 9.8–6.2,
FPGA vs. MRS: ≈ 49.9–70.4).
Resource Utilization: A further concern was again the amount of required resources in relation
to the number of channels. The resource utilization for different PL resources and number of EEG
channels is shown in Figure 8 (right). It can be observed that the increase of resources for an increasing
number of EEG channels is generally low, the highest increase of resources can be observed for the
required LUTs in the preprocessing part of the MRCP (32 vs. 124 channels: 249.7%). A smaller
increase can be observed for the FFs (32 vs. 124 channels: 10.3%), while no increase can be observed
for the BRAMs and DSP48 slices. The reason for this observation is attributable to the delay scaling
technique applied to scale the system to different numbers of channels. As discussed in Section 3.2,
the application of delay scaling increases the number of registers in a DFHWA (which are implemented
as LUTs and FFs), but not the number of multipliers and adders (which are mapped to DSP48 slices).
88 (22.0%)
88 (22.0%)
88 (22.0%)
100 80
7552 (4.8%)
7444 (4.7%)
7319 (4.7%)
7094 (9.0%)
0.95
6749 (8.6%)
6576 (8.4%)
8000 8000
80
0.90 60
BRAMs
BRAMs
DSP48
LUTs
DSPs
LUTs
FFs
FFs
6000 6000 60
0.85
g
BA:0.920 g
BA:0.920
BA:0.920 40
g
BA:0.914 BA:0.915
0.80 g
BA:0.921 4000 4000
16.0 (6.1%)
BA:0.915 40
14.5 (5.5%)
14.0 (5.3%)
BA:0.912
12.5 (4.8%)
CPU
0.75 FPGA 20
Mean 2000 2000 20
Median
0.70
CPU FPGA CPU FPGA CPU FPGA CPU FPGA
| {z } | {z } | {z } | {z } 0 0 0 0
32 64 96 124 32 64 96 124
Number of EEG Channels Number of EEG Channels
Figure 10. Left: Classification performance of the P300 detection for CPU and FPGA for 32–124 channels.
Right: Resource utilization of the DFHWA for different numbers of EEG channels. The percentage
values refer to the amount of resources provided by the Zynq ZC7030.
Classification Performance: The classification performance for the CPU- and FPGA-based systems
of the P300 is shown in Figure 10 (left part). In addition, the The mean and median classification
performance over all numbers of channels and both hardware architectures are 0.91 ± 0.04 and 0.92,
respectively. Hence, in comparison to the MRCP, the P300 can be detected more reliable. For the P300
detection, we also investigate the effect of the number of channels and hardware architecture on the
Sensors 2017, 17, 1552 22 of 41
classification performance. To this end, we perform a two-way repeated measures ANOVA with the
numbers of channels nc ∈ {32, 64, 96, 124} and the hardware architecture H A = {CPU, FPGA} as
within-subjects factors. Similar to the MRCP evaluation, we obtain no difference of the classification
performance between both hardware architectures [F (1, 23) = 1.4, p = n.s.]. However, in contrast
to the MRCP evaluation we obtain also no difference in the classification performance between the
numbers of channels [F (3, 69) = 1.5, p = n.s.].
Computing Time: The P300 processing times are shown in Figure 11. The computing time refers to
the time required to classify a single segment of EEG data. As discussed in Section 4.4, a corresponding
segment has the length of 1000 ms. It can be observed that, similar to MRCP processing times, the
time depends on the number of channels and the utilized system. The highest amount of time is
required by the MRS. However, in this case the MRS is capable to perform online processing if less
than 124 channels are used. Similar to the MRCP and EMG processing, the FPGA-based solution
provides a significant speedup over the MRS and SRS.
1465.09±1046.49 ms
2500
8.27±1046.49 ms
1167.24±833.74 ms
Prediction
7.83±833.74 ms
Time [ms]
978.16±978.16 ms
2000 Preprocessing
8.27±978.16 ms
828.02±591.45 ms
780.24±780.24 ms
7.35±591.45 ms
7.83±780.24 ms
556.76±556.76 ms
473.13±337.95 ms
1500
7.35±556.76 ms
Time [ms]
7.19±337.95 ms
322.28±322.28 ms
Computing
7.19±322.28 ms
212.68±2.54 ms
0.78±2.54 ms
1000
168.5±2.36 ms
0.75±2.36 ms
136.48±3.18 ms
127.75±3.18 ms
Computing
120.01±1.81 ms
0.78±3.18 ms
108.54±2.56 ms
0.78±3.18 ms
101.82±2.69 ms
0.72±1.81 ms
500
0.75±2.56 ms
0.75±2.69 ms
79.02±1.87 ms
74.55±2.13 ms
70.62±1.57 ms
0.72±1.87 ms
0.72±2.13 ms
0.71±1.57 ms
48.43±1.89 ms
47.82±3.55 ms
200
0.71±1.89 ms
0.71±3.55 ms
150
9.91±0.06 ms
0.55±0.06 ms
0.51±0.03 ms
6.28±0.04 ms
0.49±0.04 ms
4.39±0.02 ms
0.46±0.02 ms
8.1±0.03 ms
100
50
0
SR
SR
SR 2)
M )
M
FP )
SR
SR
SR 2)
M )
M
FP )
SR
SR
SR 2)
M )
M
FP )
SR
SR
SR 2)
M )
M
FP )
R
R
R
R
R
R
R
R
G
G
S
S(
S(
S
S(
S(
S
S(
S(
S
S(
S(
S
S(
S
S(
S
S(
S
S(
A
A
4
4
2
2
| {z } | {z {z } | } | {z }
32 64 96 124
System Type/Number of Channels
Figure 11. Computing times of different computing setups for 32–124 channels for the detection of
the P300.
Resource Utilization: The resource utilization for different PL resources is shown in Figure 8 (right).
Similar to the MRCP DFHWA resource utilization, it can be observed that the increase of resources
for an increasing number of channels is generally low. However, due to higher number of processing
steps, the resource utilization is higher than the MRCP DFHWA resource utilization.
p-value is reported. For post-hoc comparisons, we performed paired t-tests. Bonferroni-Holm was applied
for multiple comparisons. We obtained significant main effects for method [F(3, 69) = 43.6, p < 0.001]
and P3 [F(1, 23) = 222.4, p < 0.001], but no effect of HA [F(1, 23) = 1.5, p = n.s.].
The best method is EMG, followed by MoE, MRCP, and MaE [p < 0.001 for all pairs of methods].
A combination with the P3 improves the classification performance [CP3 vs. NP3: p < 0.001].
There was no difference in classification performance between CPU and FPGA [p = n.s.].
g
0.874 g
0.875 g
0.877 g
0.869 0.912 g
0.908 g
0.875 g
0.866
0.9
0.8
0.7
CPU
0.6
FPGA
Mean
Median
0.5
CPU FPGA CPU FPGA CPU FPGA CPU FPGA CPU FPGA CPU FPGA CPU FPGA CPU FPGA
| {z } | {z } | {z } | {z } | {z } | {z } | {z } | {z }
MRCP EMG MaE MoE MRCP (PaM) EMG (PaE) MaE (PaMaE) MoE (PaMoE)
| {z } | {z }
Not combined with P300 (NP3) Combined with P300 (CP3)
Type of Combination
Table 2. Mean False Negative Rate (FNR), False Positive Rate (FPR = 1-Recall) and Precision for the
Hybrid Movement Prediction.
For the FPR, we observe again a significant interaction between movement prediction method
and P3 combination [F (3, 69) = 120.8, p < 0.001]. A further analysis reveals that the combination with
the P3 reduces the FPR for all methods [p < 0.001]. This pattern is observed for both architectures.
Furthermore, for both NP3 there was a difference in FPR between both architectures for all methods
[p = n.s.]. A combination with the P300 improves the FPR for all methods [p < 0.01]. This pattern was
observed again for both architectures.
The precision depends substantially on the applied signal combination method. For the precision,
we observe significant main effects for movement prediction method [F (3, 69) = 205.5, p < 0.001],
combination with P300 [F (1, 23) = 797.4, p < 0.001], and for H A [F (1, 23) = 4, p < 0.05]. Regarding
the precision, the best method is MaE, followed by EMG, MRCP, and MoE [p < 0.001 for all pairs
of methods except MRCP vs. MoE: p = n.s.]. A combination with the P3 improves the precision
[CP3 vs. NP3: p < 0.001]. For the precision, we observed a difference between CPU and FPGA [p < 0.01].
Furthermore, we observe again a significant interaction between movement prediction method
and P3 combination [F (3, 69) = 12.0, p < 0.001] and additionally a significant interaction between
method and H A [F (3, 69) = 6.5, p < 0.001]. A further analysis reveals that the combination with the
P3 improves the precision for all methods [p < 0.001]. This pattern is observed for both architectures.
Moreover, for NP3 there was a difference in precision between both architectures for EMG and MaE
[p < 0.01], but not for MRCP and MoE [p = n.s.]. For CP3, there was no difference in precision for
both architectures for all methods [p = n.s.]. A combination with the P300 improves the precision for
all methods [p < 0.01]. This pattern was observed again for both architectures.
Summary: We observe that the MRCP-based movement prediction is less accurate than the
EMG-based prediction. This can also be observed for the individual trials shown in Figure 13.
The reason for the lower accuracy might be the detection of a movement planning or intention
that does not result in a movement execution [10,158,159]. The classification performance is improved
by the combination of the MRCP with the P300 and/or EMG. Depending on the type of combination,
different properties regarding FPR, FNR and precision can be observed. The combination of the
MRCP with the EMG by a logical and decreases the FPR, but increases the FNR. The opposite can
be observed for the FNR and precision. In an additional combination with the P3000, we observe a
decrease of the FPR, but an increase of the FNR for the MRCP and MoE. While the decrease of the FNR
is only small for the MRCP, we can observe a significantly higher increase for MaE. In this case, up to
25% of the movements are missed. A decrease of the FPR can be observed for the MoE combination.
The precision is increased in general by a combination with the P300.
Sensors 2017, 17, 1552 25 of 41
Unknown (ignored in evaluation) Prediction of rest FPGA and CPU predict movement
FPGA predicts rest, CPU predicts movement CPU predicts rest, FPGA predicts movement
MRCP classification vs. time (96 channels) EMG classification vs. time (1 ∈ [1, . . . , 4])
Subject 1 Subject 1
Subject 2 Subject 2
Subject 3 Subject 3
Subject 4 Subject 4
Subject 5 Subject 5
Subject 6 Subject 6
Subject 7 Subject 7
Subject 8 Subject 8
-3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3
Time relative to movement onset [s] Time relative to movement onset [s]
Figure 13. Predictions relative to the movement onset of the CPU and FPGA-based systems for the
MRCP- and EMG-based movement prediction. The predictions of movements for the interval [−3 s, 3 s]
is depicted relative to each movement onset for MRCP-based predictions (left) and EMG-based
predictions (right). Predictions of rest are left white, the unknown class subsequent to each movement
is shown with a grey background. The prediction of a movement is encoded as follows: the prediction
of a movement by the CPU-based systems as well as the FPGA-based system is shown in black.
The prediction of a movement by the CPU-based system but not the FPGA -based system is shown in
blue, the opposite case is shown in red.
PaMoE (EEG: 96 channels, EMG: 1 ∈ [1, . . . , 4]) PaMaE (EEG: 96 channels, EMG: 1 ∈ [1, . . . , 4])
Subject 1 Subject 1
Subject 2 Subject 2
Subject 3 Subject 3
Subject 4 Subject 4
Subject 5 Subject 5
Subject 6 Subject 6
Subject 7 Subject 7
Subject 8 Subject 8
-3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3
Time relative to movement onset [s] Time relative to movement onset [s]
Figure 14. Predictions relative to the movement onset of the CPU and FPGA-based systems for the
PaMaE and PaMoE combinations. For a more detailed figure description, see Figure 13.
SRS 515 234 514 834 140 39 79 199 124 34 74 154 585 274 594 914
SRS (2) 516 235 515 835 140 39 79 199 125 35 75 155 586 275 595 915
SRS (4) 516 235 515 835 140 39 79 199 125 35 75 155 586 275 595 915
MRS N/A N/A 134 33 73 193 N/A N/A N/A N/A
MRS (2) N/A N/A 134 33 73 193 N/A N/A N/A N/A
FPGA 542 239 559 879 136 40 80 200 129 39 79 159 596 269 599 919
PaM PaE PaMaE PaMoE
System µt Q75
t Q50
t Q25
t µt Q75
t Q50
t Q25
t µt Q75
t Q50
t Q25
t µt Q75
t Q50
t Q25
t
SRS 314 194 234 354 125 34 74 194 190 34 74 154 340 194 234 394
SRS (2) 315 195 235 355 126 35 75 195 191 35 75 155 340 195 235 395
SRS (4) 315 195 235 355 126 35 75 195 191 35 75 155 341 195 235 395
MRS N/A N/A N/A N/A N/A N/A N/A N/A
MRS (2) N/A N/A N/A N/A N/A N/A N/A N/A
FPGA 319 199 239 359 129 39 79 199 199 39 79 159 355 199 239 399
For both the SRS and the FPGA-based system, the MRCP can predict upcoming movements earlier
than the EMG (difference of means: SRS: 375 ms/FPGA: 406 ms, difference of medians: 442 ms/479 ms).
The MoE provides a small increase of the prediction time in comparison to the MRCP (difference
of means: 70/54 ms, difference of medians: 80/40 ms). However, if an and-based combination
(MaE, PaMaE) is used, the prediction times are reduced.
Sensors 2017, 17, 1552 27 of 41
Table 4. Power consumption, reference versus FPGA-based system with different configurations.
g g g
0.898 g
0.897 g
0.868 g
0.893 g
0.900 g
0.902
0.824 0.836
0.9
0.8
0.7
CPU (Offline)
0.6
FPGA (Online)
Mean
Median
0.5
CPU FPGA CPU FPGA CPU FPGA CPU FPGA CPU FPGA CPU FPGA CPU FPGA CPU FPGA
| {z } | {z } | {z } | {z } | {z } | {z } | {z } | {z }
MRCP EMG MaE MoE MRCP (PaM) EMG (PaE) MaE (PaMaE) MoE (PaMoE)
| {z } | {z }
Not combined with P300 (NP3) Combined with P300 (CP3)
Type of Combination
Figure 15. Classification Performance for Hybrid Movement Prediction for the Online Evaluation.
The overall resource utilization of the complete system is shown in Table 5. In addition to
the PL resources required to implement the DFHWAs, resources needed to implement all auxiliary
components (e.g., AXI bus system, DMA cores) are included in Table 5. The percentage values refer to
the ZC7030 resources shown in Table 1. It can be observed that the resource utilization of the PL is
less than 35 % for all components. Hence, it would be possible to integrate further DFHWAs or other
components into the system. Regarding the LUTs and FFs utilization of the complete system it can be
observed that a significant proportion is required for the implementation of the auxiliary components,
which is not the case for the BRAMs and DSP48 slices.
6.8. Summary
The obtained results show that the developed system can be used to predict upcoming movements
before the actual physical movement onset. We confirm previous results from literature that
an EEG-based movement prediction can predict movements earlier, but with a higher error rate
than EMG [25]. For the investigated signals and signal combinations, we observed no significant
difference in classification performance between the CPU- and FPGA-based systems in most cases.
The parallel architecture of the system provides the possibility to process several streams of data
in parallel and without the intervention of a CPU. This has two advantages. First, it provides the
possibility to enhance the reliability of the system by combining the outputs from the MRCP and/or
EMG-based DFHWAs. Second, it provides the possibility to choose the most suitable combination
of predictions for the specific application. For instance, depending on the control algorithm of the
rehabilitation device and the intended application, the EEG might be preferable since it can predict
movements earlier in time, although it is less accurate than the EMG. Furthermore, in paralyzed or
highly paretic patients caused by, e.g., spinal cord injury, the application of an EMG-based movement
prediction might be infeasible.
The DFHWAs for all investigated signals provide significant speedups in comparison to the
chosen mobile reference solution, but also in comparison to a standard PC. Furthermore, the system
has a significantly decreased power consumption in comparison to the standard PC. Moreover,
the resource utilization provides the possibility to integrate further algorithms in the same device,
Sensors 2017, 17, 1552 29 of 41
e.g., further DFHWAs for additional physiological signals and source localization methods to allow
not only the prediction of upcoming movements, but also the affected extremity and/or movement
direction [160,161]. Based on the provided computing performance, a future possibility would also be
the possibility to perform movement prediction with an even higher time resolution than in the actual
system, e.g., shift the segments for MRCP and EMG detection by 1 ms and apply a meta-classifier on
the individual predictions.
Another advantage of our FPGA-based system is the possibility to establish a direct interface
to other electronic devices. This makes it possible to control or adapt an assistive or rehabilitation
device directly in real-time without the need of a software-based interface, which might introduce
additional delays.
EMG was used to estimate the active torque generated by the patient’s muscles. However, the control
approach did also not consider the fusion of EEG and EMG to enhance the classification accuracy to
predict movements.
A hybrid control approach for an upper limb prosthesis based on EEG and EMG was investigated
in [86]. EEG was used to control the exoskeleton asynchronously, joint angles were estimated using
EMG. The study shows that it is possible to estimate the joint angles with root-mean-square errors
of less than 6◦ . However, similar to the studies discussed above, it was not investigated whether
a combination of EEG and EMG can be used to predict movements with an improved accuracy.
A combined EEG/EMG classification for hand and wrist movements in transhumeral amputees
was investigated in an offline study in [87]. It was shown that the EEG/EMG combination outperforms
the classification by either EEG or EMG. However, in contrast to the study in this paper, the aim was
to differentiate between different movements instead of predicting upcoming movements. The authors
point out that a miniature and portable system is required for future practical applications.
In the literature discussed above, the data processing was based on standard PCs. The aim of
FPGA-based BCI systems is to replace a standard PC. In [107,109], Shyu et. al. present an FPGA-based
system for the detection of SSVEPs. The system can be used for the control of a multimedia system [107]
or a hospital bed [109]. Especially the tight integration of EEG signal processing and motor control
to actuate the hospital bed represents an interesting opportunity for other rehabilitation devices.
However, since these systems target the detection of SSVEPs, they have been designed to process only
two EEG channels, and are hence not usable for the detection of, e.g., MRCPs.
The work in [108] presents a low-cost FPGA-based P300 speller. Similar to us, they achieve
a classification performance that is comparable to a standard CPU. However, most parts of the
system are implemented using softcore CPUs (only a band-pass Butterworth filter is implemented in
hardware), and only seven EEG channels can be used. However, the aim of the system is to detect the
P300, the detection of ERD/ERS or MRCP is not considered.
A recent work uses an FPGA-based prototype for fall prediction in everyday life [110], which is
based on a previous software-implementation [85]. Similar to our work they combine EEG processing
(for the detection of movement related potentials) with EMG and show in an offline evaluation
that it is possible to obtain a small numerical error, despite the usage of fixed-point arithmetic in
the FPGA. However, for the fall prediction, a fixed number of only 7 EEG and 8 EMG channels
is sufficient; the classification performance, resource utilization and computing time for different
numbers of channels has not been investigated. The proposed system requires 56 ms for the prediction
of a movement, which is within the reported application time limit of 300 ms for fall prediction,
while the MRCP prediction of our system requires approx. 0.95 ms for the prediction of a movement
using 124 EEG channels (see Figure 9). The study does not investigate the effect of different combination
methods on the classification performance.
In previous works [162,163], we presented preliminary systems for the detection of the P300 and
MRCPs, respectively, using FPGA-based systems. However, these systems were inflexible and did
not exploit the full parallel processing capabilities to process multiple physiological signals at the
same time, so that these systems were only capable to detect either the P300 or MRCP. These systems
did not support the fusion of multiple signals, which can improve the classification performance
significantly, as shown in this work. Furthermore, these preliminary systems have not been validated
in an online evaluation.
Overall, this comparison shows that our FPGA-based system has, similar to other recent hybrid
BCI systems, the capability to process EEG and EMG data in combination. However, to the best of
our knowledge, the combination of MRCP, EMG and additionally the P300 has not been addressed
before. Furthermore, the capabilities of our FPGA-based system can be useful in applications that
require miniaturized BCI-systems with high requirements on performance and flexibility that cannot
be fulfilled by other previously proposed FPGA-based BCI-systems. Hence, it can help to improve the
capabilities of future neurorehabilitation devices.
Sensors 2017, 17, 1552 31 of 41
6.10. Limitations
The evaluation of the proposed FPGA-based system shows that it is feasible to use it for movement
prediction using EEG and EMG data. However, several limitations of the study should be noted.
First, the study has been conducted under laboratory conditions. Typical rehabilitation
applications will be performed under more uncontrolled conditions. Thus, the EEG and EMG will be
affected by artifacts and different kinds of noise. We have chosen the present study design to provide
the possibility to determine the time of the movement onset exactly and to be able to compare the
obtained results to other studies [25,64]. However, the methodology for the detection of the MRCP
and P300 has already been successfully applied in other applications, e.g., the usage of MRCP-based
movement prediction to enhance the user-experience of an exoskeleton by adapting the control
algorithms [58] and the P300 detection for the monitoring of the user’s state [57]. Hence, since we also
observe no significant performance difference between the CPU and FPGA-based implementations,
we assume that the developed system will work under such conditions without major modifications.
Secondly, the current study was conducted using healthy subjects. Although it has been shown
that patients that suffer from, e.g., stroke, are feasible to perform movement-imagination despite
chronic or severe motor impairments [68,69,164], different kinds of brain damages can affect the
EEG [165–170] and EMG [171,172], and hence, possibly the performance of the proposed system.
However, MRCP-based BCIs can be successfully used by patients suffering from stroke [173–175].
For other neurological diseases, such as amyotrophic lateral sclerosis, it has been shown that certain
MRCP characteristics do not differ from healthy patients [176]. Hence, we assume that the proposed
system can be used by patients with neurological motor impairments. Since the system supports
different types of signal combinations for movement prediction, it is possible to choose an operation
mode depending on the specific conditions of a patient. Nevertheless, the specific difference in
classification performance between healthy and impaired subjects depending on impairment and
operation mode has to be investigated in the future.
Thirdly, there are mobile systems available with more advanced CPU architectures and higher
clock frequencies than the MRS that was used in the experiments for comparison. However, although
these might provide a higher computational performance than the MRS, they are less extensible than
the proposed FPGA-based system. Due to the low resource utilization of the DFHWAs, we are able to
integrate further features like artifact removal methods, eye-tracking [177], physiological signals to
monitor fatigue or exhaustion, and also control algorithms and motor commutation components to
drive a rehabilitation device directly.
for patients suffering from movement impairments due to stroke and extend its capabilities with
additional features to remove artifacts and monitor the exhaustion of patients.
Abbreviations
ASIC Application-Specific Integrated Circuit
BA Balanced Accuracy
BCI Brain-Computer Interface
BRAM Block Random Access Memory
CPU Central Processing Unit
DFHWA Dataflow Hardware Accelerator
DMA Direct Memory Access
DSP Digital Signal Processing
EMG Electromyography
EOG Electrooculography
ERD/ERS Event-Related Desynchronization/Synchronization
EEG Electroencephalography
ERP Event-Related Potential
FIFO First-In, First-Out
FIR Finite Impulse Response
FF Flip Flop
FNR False Negative Rate
FPGA Field Programmable Gate Array
FPR False Positive Rate
GPU Graphics Processing Unit
IIR Infinite Impulse Response
ISI Inter-Stimulus Interval
IRQ Interrupt ReQuest
LUT Look-Up Table
MAC Multiply ACcumulate
ML Machine Learning
MRCP Movement Related Cortical Potential
MRS Mobile CPU-based Reference System
PE Processing Element
PL Programmable Logic
PS Processing System
SDF Synchronous Dataflow
SoC System-on-Chip
SSVEP Steady-State Visual Evoked Potential
SNR Signal-to-Noise Ratio
SVM Support Vector Machine
SRS Standard-PC Reference System
TPR True Positive Rate
TNR True Negative Rate
References
1. Birbaumer, N.; Ghanayim, N.; Hinterberger, T.; Iversen, I.; Kotchoubey, B.; Kübler, A.; Perelmouter, J.;
Taub, E.; Flor, H. A spelling device for the paralysed. Nature 1999, 398, 297–298.
2. Guger, C.; Harkam, W.; Hertnaes, C.; Pfurtscheller, G. Prosthetic control by an EEG-based brain-computer
interface (BCI). In Proceedings of the 5th European Conference for the Advancement of Assistive Technology
(AATE), Düsseldorf, Germany, 1–4 November 1999; pp. 590–595.
3. Pfurtscheller, G.; Guger, C.; Müller, G.; Krausz, G.; Neuper, C. Brain oscillations control hand orthosis in
a tetraplegic. Neurosci. Lett. 2000, 292, 211–214.
4. Wolpaw, J.; Birbaumer, N.; McFarland, D.; Pfurtscheller, G.; Vaughan, T. Brain-computer interfaces for
communication and control. J. Clin. Neurophysiol. 2002, 113, 767–791.
Sensors 2017, 17, 1552 33 of 41
5. Blankertz, B.; Dornhege, G.; Krauledat, M.; Müller, K.R.; Kunzmann, V.; Losch, F.; Curio, G. The Berlin
brain-computer interface: EEG-based communication without subject training. IEEE Trans. Neural Syst.
Rehabil. Eng. 2006, 14, 147–152.
6. Birbaumer, N. Breaking the silence: Brain-computer interfaces (BCI) for communication and motor control.
J. Psychophysiol. 2006, 43, 517–532.
7. Leeb, R.; Keinrath, C.; Friedman, D.; Guger, C.; Scherer, R.; Neuper, C.; Garau, M.; Antley, A.; Steed, A.;
Slater, M.; et al. Walking by thinking: The brainwaves are crucial, not the muscles! Presence 2006, 15, 500–514.
8. Enzinger, C.; Ropele, S.; Fazekas, F.; Loitfelder, M.; Gorani, F.; Seifert, T.; Reiter, G.; Neuper, C.;
Pfurtscheller, G.; Müller-Putz, G. Brain motor system function in a patient with complete spinal cord
injury following extensive brain–computer interface training. Exp. Brain. Res. 2008, 190, 215–223.
9. Pfurtscheller, G.; Müller-Putz, G.R.; Scherer, R.; Neuper, C. Rehabilitation with Brain-Computer Interface
Systems. Computer 2008, 41, 58–65.
10. Kirchner, E.; Wöhrle, H.; Bergatt, C.; Kim, S.; Metzen, J.; Kirchner, F. Towards Operator Monitoring via
Brain Reading—An EEG-based Approach for Space Applications. In Proceedings of the 10th International
Symposium on Artificial Intelligence, Robotics and Automation in Space (iSAIRAS-10), Sapporo, Japan,
29 August–1 September 2010; ESA: Sapporo, Japan, 2010.
11. Kirchner, E.; Kim, S.; Straube, S.; Seeland, A.; Wöhrle, H.; Krell, M.; Tabie, M.; Fahle, M. On the Applicability
of Brain Reading for Predictive Human-Machine Interfaces in Robotics. PLoS ONE 2013, 8, e81732.
12. Kirchner, E.; Albiez, J.; Seeland, A.; Jordan, M.; Kirchner, F. Towards Assistive Robotics for Home
Rehabilitation. In Proceedings of the 6th International Conference on Biomedical Electronics and Devices
(BIODEVICES-13), Barcelona, Spain, 11–14 February 2013; pp. 168–177.
13. Iosa, M.; Morone, G.; Cherubini, A.; Paolucci, S. The Three Laws of Neurorobotics: A Review on What
Neurorehabilitation Robots Should Do for Patients and Clinicians. J. Med. Biol. Eng. 2016, 36, 1–11.
14. Lum, P.S.; Burgar, C.G.; Shor, P.C.; Majmundar, M.; Van der Loos, M. Robot-assisted movement training
compared with conventional therapy techniques for the rehabilitation of upper-limb motor function after
stroke. Arch. Phys. Med. Rehabil. 2002, 83, 952–959.
15. Krebs, H.I.; Volpe, B.T.; Aisen, M.L.; Hening, W.; Adamovich, S.; Poizner, H.; Subrahmanyan, K.; Hogan, N.
Robotic Applications in Neuromotor Rehabilitation. Robotica 2003, 21, 3–11.
16. Kwakkel, G.; Kollen, B.J.; Krebs, H.I. Effects of robot-assisted therapy on upper limb recovery after stroke:
A systematic review. Neurorehabil. Neural Repair 2008, 22, 111–121.
17. Lo, A.C.; Guarino, P.D.; Richards, L.G.; Haselkorn, J.K.; Wittenberg, G.F.; Federman, D.G.; Ringer, R.J.;
Wagner, T.H.; Krebs, H.I.; Volpe, B.T.; et al. Robot-Assisted Therapy for Long-Term Upper-Limb Impairment
after Stroke. N. Engl. J. Med. 2010, 362, 1772–1783.
18. Díaz, I.; Gil, J.J.; Sánchez, E. Lower-limb robotic rehabilitation: Literature review and challenges. J. Robot.
2011, 2011, 759764.
19. Maciejasz, P.; Eschweiler, J.; Gerlach-Hahn, K.; Jansen-Troy, A.; Leonhardt, S. A survey on robotic devices for
upper limb rehabilitation. J. NeuroEng. Rehabil. 2014, 11, 1–29.
20. Novak, D.; Riener, R. A survey of sensor fusion methods in wearable robotics. Robot. Auton. Syst. 2015,
73, 155–170.
21. Lambercy, O.; Maggioni, S.; Lünenburger, L.; Gassert, R.; Bolliger, M. Robotic and wearable sensor
technologies for measurements/clinical assessments. In Neurorehabilitation Technology; Springer International
Publishing, Cham, Switzerland, 2016; pp. 183–207.
22. Proietti, T.; Crocher, V.; Roby-Brami, A.; Jarrassé, N. Upper-Limb Robotic Exoskeletons for
Neurorehabilitation: A Review on Control Strategies. IEEE Rev. Biomed. Eng. 2016, 9, 4–14.
23. Hogan, N.; Krebs, H. Physically interactive robotic technology for neuromotor rehabilitation. Prog. Brain. Res.
2011, 192, 59–68.
24. Benitez, L.; Tabie, M.; Will, N.; Schmidt, S.; Jordan, M.; Kirchner, E. Exoskeleton Technology in Rehabilitation:
Towards an EMG-Based Orthosis System for Upper Limb Neuromotor Rehabilitation. J. Robot. 2013,
2013, 610589.
25. Kirchner, E.; Tabie, M.; Seeland, A. Multimodal Movement Prediction—Towards an Individual Assistance of
Patients. PLoS ONE 2014, 9, e85060.
Sensors 2017, 17, 1552 34 of 41
26. López-Larraz, E.; Montesano, L.; Gil-Agudo, Á.; Minguez, J. Continuous decoding of movement intention of
upper limb self-initiated analytic movements from pre-movement EEG correlates. J. NeuroEng. Rehabil. 2014,
11, 1–15.
27. Riener, R.; Novak, D. Movement Onset Detection and Target Estimation for Robot-Aided Arm Training.
Automatisierungstechnik 2015, 63, 286–298.
28. Lopez-Larraz, E.; Trincado-Alonso, F.; Rajasekaran, V.; Perez-Nombela, S.; del Ama, A.J.; Aranda, J.;
Minguez, J.; Gil-Agudo, A.; Montesano, L. Control of an Ambulatory Exoskeleton with a Brain-Machine
Interface for Spinal Cord Injury Gait Rehabilitation. Front. Neurosci. 2016, 10, 359.
29. Kirchner, E.; Will, N.; Simnofske, M.; Vaca Benitez, L.V.; Bongardt, B.; Krell, M.; Kumar, S.; Mallwitz, M.;
Seeland, A.; Tabie, M.; et al. Recupera-Reha: Exoskeleton Technology with Integrated Biosignal Analysis for
Sensorimotor Rehabilitation. In Smart ASSIST; Elsevier: Hamburg, Germany, 2016; pp. 504–517.
30. Soekadar, S.R.; Witkowski, M.; Gómez, C.; Opisso, E.; Medina, J.; Cortese, M.; Cempini, M.; Carrozza, M.C.;
Cohen, L.G.; Birbaumer, N.; et al. Hybrid EEG/EOG-based brain/neural hand exoskeleton restores fully
independent daily living activities after quadriplegia. Sci. Robot. 2016, 5, doi: 10.1126/scirobotics.aag3296.
31. Schaechter, J.D. Motor rehabilitation and brain plasticity after hemiparetic stroke. Prog. Neurobiol. 2004,
73, 61–72.
32. Dobkin, B. Brain-computer interface technology as a tool to augment plasticity and outcomes for neurological
rehabilitation. J. Physiol. 2007, 579, 637–642.
33. Ang, K.; Guan, C.; Chua, K.; Ang, B.; Kuah, C.; Wang, C.; Phua, K.; Chin, Z.; Zhang, H. A clinical study
of motor imagery-based brain-computer interface for upper limb robotic rehabilitation. In Proceedings of
the Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC),
Minneapolis, MN, USA, 3–6 September 2009; pp. 5981–5984.
34. Daly, J.; Wolpaw, J. Brain-computer interfaces in neurological rehabilitation. Lancet Neurol. 2008, 7, 1032–1043.
35. Ang, K.; Chua, K.; Phua, K.; Wang, C.; Chin, Z.; Kuah, C.; Low, W.; Guan, C. A randomized controlled trial
of EEG-based motor imagery brain-computer interface robotic rehabilitation for stroke. Clin. EEG Neurosci.
2014, 46, 310–320.
36. Van Dokkum, L.; Ward, T.; Laffont, I. Brain computer interfaces for neurorehabilitation—Its current status as
a rehabilitation strategy post-stroke. Ann. Phys. Rehabil. Med. 2015, 58, 3–8.
37. Makeig, S.; Gramann, K.; Jung, T.P.; Sejnowski, T.J.; Poizner, H. Linking brain, mind and behavior. Int. J.
Psychophysiol. 2009, 73, 95–100.
38. Kranczioch, C.; Zich, C.; Schierholz, I.; Sterr, A. Mobile EEG and its potential to promote the theory and
application of imagery-based motor rehabilitation. Int. J. Psychophysiol. 2014, 91, 10–15.
39. Edlinger, G.; Guger, C. Laboratory PC and mobile pocket PC brain-computer interface architectures.
In Proceedings of the 27th International Conference of the IEEE Engineering in Medicine and Biology Society
(EMBC), Shanghai, China, 17–18 January 2006; Volume 5, pp. 5347–5350.
40. Xilinx Inc. UG585 Zynq-7000 All Programmable SoC Technical Reference Manual, 1.10 ed.; Xilinx Inc.: San Jose,
CA, USA, 2015.
41. Pfurtscheller, G.; Allison, B.; Bauernfeind, G.; Brunner, C.; Solis Escalante, T.; Scherer, R.; Zander, T.;
Mueller-Putz, G.; Neuper, C.; Birbaumer, N. The hybrid BCI. Front. Neurosci. 2010, 4, 3.
42. Lalitharatne, T.; Teramoto, K.; Hayashi, Y.; Kiguchi, K. Towards hybrid EEG-EMG-based control approaches
to be used in bio-robotics applications: Current status, challenges and future directions. Paladyn 2013,
4, 147–154.
43. Villa-Parra, A.; Broche, L.; Delisle-Rodríguez, D.; Sagaró, R.; Bastos, T.; Frizera-Neto, A. Design of active
orthoses for a robotic gait rehabilitation system. Front. Mech. Eng. 2015, 10, 242–254.
44. Grimm, F.; Walter, A.; Spüler, M.; Naros, G.; Rosenstiel, W.; Gharabaghi, A. Hybrid Neuroprosthesis for the
Upper Limb: Combining Brain-Controlled Neuromuscular Stimulation with a Multi-Joint Arm Exoskeleton.
Front. Neurosci. 2016, 10, 367.
45. Tabie, M.; Wöhrle, H.; Kirchner, E.A. Runtime Calibration of Online EEG-based Movement Prediction using
EMG Signals. In Proceedings of the International Conference on Bio-inspired Systems and Signal Processing
(BIOSIGNALS), Angers, France, 3–6 March 2014; pp. 284–288.
46. Seeland, A.; Tabie, M.; Kim, S.; Kirchner, F.; E.A.Kirchner. Adaptive multimodal biosignal control for
exoskeleton supported stroke rehabilitation. In Proceedings of the IEEE International Conference on
Systems, Man, and Cybernetics (SMC-2017), Banff, AB, Canada, 1–4 October 2017.
Sensors 2017, 17, 1552 35 of 41
47. Kirchner, E.A.; Kim, S.K.; Tabie, M.; Wöhrle, H.; Maurus, M.; Kirchner, F. An Intelligent Man-Machine
Interface-Multi-Robot Control Adapted for Task Engagement Based on Single-Trial Detectability of P300.
Front. Hum. Neurosci. 2016, 10, 291.
48. Bai, O.; Rathi, V.; Lin, P.; Huang, D.; Battapady, H.; Fei, D.; Schneider, L.; Houdayer, E.; Chen, X.; Hallett, M.
Prediction of human voluntary movement before it occurs. J. Clin. Neurophysiol. 2011, 122, 364–372.
49. Ibáñez, J.; Serrano, J.; del Castillo, M.; Barrios, L.; Gallego, J.; Rocon, E. An EEG-Based Design for the Online
Detection of Movement Intention. In Advances in Computational Intelligence; Cabestany J., Rojas I., J.G., Eds.;
Springer: Berlin/Heidelberg, Germany, 2011; pp. 370–377.
50. Lew, E.; Chavarriaga, R.; Silvoni, S.; Millán, J. Detection of self-paced reaching movement intention from
EEG signals. Front. Neuroeng. 2012, 5, doi:10.3389/fneng.2012.00013.
51. Pfurtscheller, G.; Neuper, C. Motor imagery activates primary sensorimotor area in humans. Neurosci. Lett.
1997, 239, 65–68.
52. Pfurtscheller, G.; Da Silva, F. Event-related EEG/MEG synchronization and desynchronization:
Basic principles. J. Clin. Neurophysiol. 1999, 110, 1842–1857.
53. Stančák, A.; Feige, B.; Lücking, C.; Kristeva-Feige, R. Oscillatory cortical activity and movement-related
potentials in proximal and distal movements. J. Clin. Neurophysiol. 2000, 111, 636–650.
54. Paradiso, G.; Cunic, D.; Saint-Cyr, J.; Hoque, T.; Lozano, A.; Lang, A.; Chen, R. Involvement of human
thalamus in the preparation of self-paced movement. Brain 2004, 127, 2717–2731.
55. Shibasaki, H.; Hallett, M. What is the Bereitschaftspotential? J. Clin. Neurophysiol. 2006, 117, 2341–2356.
56. Kirchner, E.; Metzen, J.H.; Duchrow, T.; Kim, S.; Kirchner, F. Assisting Telemanipulation Operators via
Real-Time Brain Reading. In Proceedings of the Machine Learning in Real-time Applications Workshop,
Paderborn, Germany, 15–18 September 2009.
57. Woehrle, H.; Kirchner, E. Online Detection of P300 related Target Recognition Processes During a Demanding
Teleoperation Task. In Proceedings of the International Conference on Physiological Computing Systems,
(PhyCS 2014), Lissabon, Portugal, 7–9 January, 2014; ScitePress: Setúbal, Portugal, 2014; pp. 13–19.
58. Seeland, A.; Woehrle, H.; Straube, S.; Kirchner, E. Online Movement Prediction in a Robotic Application
Scenario. In Proceedings of the 6th International IEEE EMBS Conference on Neural Engineering (NER),
San Diego, CA, USA, 6–8 November 2013; pp. 41–44.
59. Müller, K.R.; Krauledat, M.; Dornhege, G.; Curio, G.; Blankertz, B. Machine learning techniques for
brain-computer interfaces. Biomed. Tech. 2004, 49, 11–22.
60. Lotte, F.; Congedo, M.; Lécuyer, A.; Lamarche, F.; Arnaldi, B. A review of classification algorithms for
EEG-based brain-computer interfaces. J. Neural Eng. 2007, 4, R1.
61. Krusienski, D.; Grosse-Wentrup, M.; Galain, F.; Coyle, D.; Miller, K.; Forney, E.; Anderson, C. Critical issues
in state-of-the-art brain computer interface signal processing. J. Neural Eng. 2011, 8, 025002.
62. Kleissen, R.; Buurke, J.; Harlaar, J.; Zilvold, G. Electromyography in the biomechanical analysis of human
movement and its clinical application. Gait Posture 1998, 8, 143–158.
63. Reaz, M.B.I.; Hussain, M.S.; Mohd-Yasin, F. Techniques of EMG signal analysis: Detection, processing,
classification and applications. Biol. Proced. Online 2006, 8, 11–35.
64. Tabie, M.; Kirchner, E. EMG Onset Detection-Comparison of different methods for a movement prediction
task based on EMG. In Proceedings of the 6th International Conference on Bio-inspired Systems and Signal
Processing (BIOSIGNALS-13), Barcelona, Spain, 11–14 February 2013; pp. 242–247.
65. Fleischer, C.; Reinicke, C.; Hommel, G. Predicting the intended motion with EMG signals for an exoskeleton
orthosis controller. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and
Systems (IROS), Edmonton, AB, Canada, 2–6 August 2005; pp. 2029–2034.
66. Suberbiola, A.; Zulueta, E.; Lopez-Guede, J.M.; Etxeberria-Agiriano, I.; Van Caesbroeck, B. Arm
Orthosis/Prosthesis Control Based on Surface EMG Signal Extraction. In Hybrid Artificial Intelligent Systems;
Springer: Berlin/Heidelberg, Germany, 2013; pp. 510–519.
67. Loconsole, C.; Dettori, S.; Frisoli, A.; Avizzano, C.A.; Bergamasco, M. An EMG-based approach for
on-line predicted torque control in robotic-assisted rehabilitation. In Proceedings of the 2014 IEEE Haptics
Symposium (HAPTICS), Houston, TX, USA, 23–26 February 2014; pp. 181–186.
68. Johnson, S.; Sprehn, G.; Saykin, A. Intact motor imagery in chronic upper limb hemiplegics: Evidence for
activity-independent action representations. J. Cogn. Neurosci. 2002, 14, 841–852.
Sensors 2017, 17, 1552 36 of 41
69. Ang, K.; Guan, C.; Chua, K.; Ang, B.; Kuah, C.; C. Wang, K.P.; Chin, Z.; Zhang, H. A Large Clinical
Study on the Ability of Stroke Patients to Use an EEG-Based Motor Imagery Brain-Computer Interface.
Clin. EEG Neurosci. 2011, 42, 253–258.
70. Liao, L.; Lin, C.; McDowell, K.; Wickenden, A.E.; Gramann, K.; Jung, T.; Ko, L.; Chang, J. Biosensor
technologies for augmented brain-computer interfaces in the next decades. Proc. IEEE 2012, 100, 1553–1566.
71. McFarland, D.J.; Wolpaw, J.R. Brain-Computer Interface Operation of Robotic and Prosthetic Devices.
Computer 2008, 41, 52–56.
72. Rebsamen, B.; Burdet, E.; Zeng, Q.; Zhang, H.; Ang, M.; Teo, C.L.; Guan, C.; Laugier, C. Hybrid P300 and
Mu-beta Brain Computer Interface to Operate a Brain Controlled Wheelchair. In Proceedings of the 2nd
International Convention on Rehabilitation Engineering & Assistive Technology, Bangkok, Thailand, 13–15
May 2008; pp. 51–55.
73. Gancet, J.; Ilzkovitz, M.; Motard, E.; Nevatia, Y.; Letier, P.; de Weerdt, D.; Cheron, G.; Hoellinger, T.;
Seetharaman, K.; Petieau, M.; et al. MINDWALKER: Going one step further with assistive lower limbs
exoskeleton for SCI condition subjects. In Proceedings of the 4th IEEE RAS EMBS International Conference
on Biomedical Robotics and Biomechatronics (BioRob), Rome, Italy, 24–27 June 2012; pp. 1794–1800.
74. Do, A.; Wang, P.; King, C.; Chun, S.; Nenadic, Z. Brain-computer interface controlled robotic gait orthosis.
J. NeuroEng. Rehabil. 2013, 10, 111.
75. Looned, R.; Webb, J.; Xiao, Z.; Menon, C. Assisting drinking with an affordable BCI-controlled wearable
robot and electrical stimulation: A preliminary investigation. J. NeuroEng. Rehabil. 2014, 11, 51.
76. Allison, B.; Leeb, R.; Brunner, C.; Müller-Putz, G.; Bauernfeind, G.; Kelly, J.; Neuper, C. Toward smarter BCIs:
Extending BCIs through hybridization and intelligent control. J. Neural. Eng. 2012, 9, 013001.
77. Amiri, S.; Fazel-Rezai, R.; Asadpour, V. A review of hybrid brain-computer interface systems. Adv. Hum.
Comput. Interact. 2013, 2013, 1.
78. Lotte, F.; Guan, C. An efficient P300-based brain-computer interface with minimal calibration time.
In Proceedings of the Assistive Machine Learning for People with Disabilities symposium (NIPS’09 Symposium),
Vancouver, BC, Canada, 12 December 2009.
79. Wöhrle, H.; Kirchner, E. Online Classifier Adaptation for the Detection of P300 Target Recognition Processes
in a Complex Teleoperation Scenario. In Physiological Computing Systems; da Silva, H., Holzinger, A.,
Fairclough, S., Majoe, D., Eds.; Springer: Berlin/Heidelberg, Germany, 2014; pp. 105–118.
80. Su, Y.; Qi, Y.; Luo, J.; Wu, B.; Yang, F.; Li, Y.; Zhuang, Y.; Zheng, X.; Chen, W. A hybrid brain-computer
interface control strategy in a virtual environment. J. Zhejiang Univ. 2011, 12, 351–361.
81. Riechmann, H.; Hachmeister, N.; Ritter, H.; Finke, A. Asynchronous, parallel on-line classification of P300
and ERD for an efficient hybrid BCI. In Proceedings of the 5th International IEEE/EMBS Conference on
Neural Engineering (NER), Cancun, Mexico, 27 April–1 May 2011; pp. 412–415.
82. Leeb, R.; Sagha, H.; Chavarriaga, R.; del R Millán, J. A hybrid brain–computer interface based on the fusion
of electroencephalographic and electromyographic activities. J. Neural Eng. 2011, 8, 025011.
83. Kiguchi, K.; Hayashi, Y. Motion Estimation Based on EMG and EEG Signals to Control Wearable Robots.
In Proceedings of the IEEE International Conference on Systems, Man, and Cybernetics, Manchester, UK,
13–16 October 2013; pp. 4213–4218.
84. Novak, D.; Omlin, X.; Leins-Hess, R.; Riener, R. Predicting targets of human reaching motions using different
sensing technologies. IEEE Trans. Biomed. Eng. 2013, 60, 2645–2654.
85. De Venuto, D.; Annese, V.F.; de Tommaso, M.; Vecchio, E.; Sangiovanni Vincentelli, A.L. Combining EEG and
EMG Signals in a Wireless System for Preventing Fall in Neurodegenerative Diseases. In Ambient Assisted
Living: Italian Forum 2014; Springer International Publishing, Cham, Switzerland, 2015; pp. 317–327.
86. Kawase, T.; Sakurada, T.; Koike, Y.; Kansaku, K. A hybrid BMI-based exoskeleton for paresis: EMG control
for assisting arm movements. J. Neural Eng. 2017, 14, 016015.
87. Li, X.; Samuel, O.; Zhang, X.; Wang, H.; Fang, P.; Li, G. A motion-classification strategy based on sEMG-EEG
signal combination for upper-limb amputees. J. NeuroEng. Rehabil. 2017, 14, 2.
88. Corbett, E.A.; Sachs, N.A.; Körding, K.P.; Perreault, E.J. Multimodal decoding and congruent sensory
information enhance reaching performance in subjects with cervical spinal cord injury. Front. Neurosci. 2014,
8, 123.
Sensors 2017, 17, 1552 37 of 41
89. Gargiulo, G.; Bifulco, P.; Calvo, R.; Cesarelli, M.; Jin, C.; Schaik, A. A mobile EEG system with dry electrodes.
In Proceedings of the IEEE Biomedical Circuits and Systems Conference, Baltimore, MD, USA, 20–22
November 2008; pp. 273–276.
90. Liao, L.D.; Wang, I.J.; Chen, S.F.; Chang, J.Y.; Lin, C.T. Design, fabrication and experimental validation of
a novel dry-contact sensor for measuring electroencephalography signals without skin preparation. Sensors
2011, 11, 5819–5834.
91. Lin, C.T.; Liao, L.D.; Liu, Y.H.; Wang, I.J.; Lin, B.S.; Chang, J.Y. Novel dry polymer foam electrodes for
long-term EEG measurement. IEEE Trans. Biomed. Eng. 2011, 58, 1200–1207.
92. Vos, M.D.; Kroesen, M.; Emkes, R.; Debener, S. P300 speller BCI with a mobile EEG system: Comparison to
a traditional amplifier. J. Neural Eng. 2014, 11, 036008.
93. Ehinger, B.; Fischer, P.; Gert, A.; Kaufhold, L.; Weber, F.; Pipa, G.; König, P. Kinesthetic and vestibular
information modulate alpha activity during spatial navigation: A mobile EEG study. Front. Hum. Neurosci.
2014, 8, 71.
94. Lo, C.C.; Chien, T.Y.; Chen, Y.C.; Tsai, S.H.; Fang, W.C.; Lin, B.S. A Wearable Channel Selection-Based
Brain-Computer Interface for Motor Imagery Detection. Sensors 2016, 16, 213.
95. Matthews, R.; Turner, P.; McDonald, N.J.; Ermolaev, K.; Mc Manus, T.; Shelby, R.A.; Steindorf, M.
Real time workload classification from an ambulatory wireless EEG system using hybrid EEG electrodes.
In Proceedings of the 2008 30th Annual International Conference of the IEEE Engineering in Medicine and
Biology Society, Vancouver, BC, Canada, 20–25 August 2008; pp. 5871–5875.
96. Lin, C.T.; Chen, Y.C.; Huang, T.Y.; Chiu, T.T.; Ko, L.W.; Liang, S.F.; Hsieh, H.Y.; Hsu, S.H.; Duann, J.R.
Development of Wireless Brain Computer Interface With Embedded Multitask Scheduling and its
Application on Real-Time Driver’s Drowsiness Detection and Warning. IEEE Trans. Biomed. Eng. 2008,
55, 1582–1591.
97. Lin, C.T.; Ko, L.W.; Chiou, J.C.; Duann, J.R.; Huang, R.S.; Liang, S.F.; Chiu, T.W.; Jung, T.P. Noninvasive
Neural Prostheses Using Mobile and Wireless EEG. Proc. IEEE 2008, 96, 1167–1183.
98. Riera, A.; Dunne, S.; Cester, I.; Ruffini, G. STARFAST: A wireless wearable EEG/ECG biometric system
based on the ENOBIO sensor. In Proceedings of the 6th International Workshop on Wearable Micro- and
Nanosystems for Personalised Health, Oslo, Norway, 24–26 June 2008.
99. Lin, C.T.; Ko, L.W.; Chang, M.H.; Duann, J.R.; Chen, J.Y.; Su, T.P.; Jung, T.P. Review of wireless and wearable
electroencephalogram systems and brain-computer interfaces—A mini-review. Gerontology 2009, 56, 112–119.
100. Lin, C.T.; Ko, L.W.; Chang, C.J.; Wang, Y.T.; Chung, C.H.; Yang, F.S.; Duann, J.R.; Jung, T.P.; Chiou, J.C.
Wearable and wireless brain-computer interface and its applications. In Proceedings of the International
Conference on Foundations of Augmented Cognition, San Diego, CA, USA, 9–24 July 2009; pp. 741–748.
101. Brown, L.; van de Molengraft, J.; Yazicioglu, R.F.; Torfs, T.; Penders, J.; Van Hoof, C. A low-power, wireless,
8-channel EEG monitoring headset. In Proceedings of the Annual International Conference of the IEEE
Engineering in Medicine and Biology (EMBC), Buenos Aires, Argentina, 31 August–4 September 2010;
pp. 4197–4200.
102. Tolbert, J.R.; Kabali, P.; Brar, S.; Mukhopadhyay, S. An accuracy aware low power wireless EEG unit
with information content based adaptive data compression. In Proceedings of the Annual International
Conference of the IEEE Engineering in Medicine and Biology Society, Minneapolis, MN, USA, 3–6 September
2009; pp. 5417–5420.
103. Higgins, G.; Faul, S.; McEvoy, R.; McGinley, B.; Glavin, M.; Marnane, W.; Jones, E. EEG compression using
JPEG2000: How much loss is too much? In Proceedings of the Annual International Conference of the
IEEE Engineering in Medicine and Biology (EMBC), Buenos Aires, Argentina, 31 August–4 September 2010;
pp. 614–617.
104. Casson, A.J.; Yates, D.C.; Smith, S.J.M.; Duncan, J.S.; Rodriguez-Villegas, E. Wearable Electroencephalography.
What is it, why is it needed, and what does it entail? IEEE Eng. Med. Biol. Mag. 2010, 29, 44–56.
105. Wang, Y.; Wang, Y.; Cheng, C.; Jung, T. Developing stimulus presentation on mobile devices for a truly
portable SSVEP-based BCI. In Proceedings of the 35th Annual International Conference of the IEEE
Engineering in Medicine and Biology Society (EMBC), Osaka, Japan, 3–7 July 2013; pp. 5271–5274.
Sensors 2017, 17, 1552 38 of 41
106. Webb, J.; Xiao, Z.G.; Aschenbrenner, K.; Herrnstadt, G.; Menon, C. Towards a portable assistive arm
exoskeleton for stroke patient rehabilitation controlled through a brain computer interface. In Proceedings
of the 4th IEEE RAS EMBS International Conference on Biomedical Robotics and Biomechatronics (BioRob),
Rome, Italy, 24–27 June 2012; pp. 1299–1304.
107. Shyu, K.; Lee, P.; Lee, M.; Lin, M.; Lai, R.; Chiu, Y. Development of a low-cost FPGA-based SSVEP BCI
multimedia control system. IEEE Trans. Biomed. Circuits Syst. 2010, 4, 125–132.
108. Khurana, K.; Gupta, P.; Panicker, R.; Kumar, A. Development of an FPGA-based real-time P300 speller.
In Proceedings of the 22nd International Conference on Field Programmable Logic and Applications (FPL),
Oslo, Norway, 29–31 August 2012; pp. 551–554.
109. Shyu, K.; Chiu, Y.; Lee, P.; Lee, M.; Sie, J.; Wu, C.; Wu, Y.; Tung, P. Total Design of an FPGA-Based
Brain-Computer Interface Control Hospital Bed Nursing System. IEEE Trans. Ind. Electron. 2013,
60, 2731–2739.
110. Annese, V.F.; Crepaldi, M.; Demarchi, D.; de Venuto, D. A digital processor architecture for combined
EEG/EMG falling risk prediction. In Proceedings of the Design, Automation Test in Europe Conference &
Exhibition (DATE), Dresden, Germany, 14–18 March 2016; pp. 714–719.
111. Belwafi, K.; Ghaffari, F.; Djemal, R.; Romain, O. A Hardware/Software Prototype of EEG-based BCI System
for Home Device Control. J. Signal. Process. Syst. 2016, pp. 1–17.
112. Chi, Y.; Wang, Y.; Wang, Y.; Maier, C.; Jung, T.; Cauwenberghs, G. Dry and Noncontact EEG Sensors for
Mobile Brain-Computer Interfaces. IEEE Trans. Neural Syst. Rehabil. Eng. 2012, 20, 228–235.
113. Page, A.; Sagedy, C.; Smith, E.; Attaran, N.; Oates, T.; Mohsenin, T. A Flexible Multichannel EEG Feature
Extractor and Classifier for Seizure Detection. IEEE Trans. Circuits Syst. II Express Briefs 2015, 62, 109–113.
114. Bailey, D. Design for Embedded Image Processing on FPGAs, 1st ed.; John Wiley & Sons, Hoboken, NJ, USA, 2011.
115. McAllister, J., FPGA-based DSP. In Handbook of Signal Processing Systems; Springer: New York, NY, USA,
2013; pp. 363–392.
116. Vanderbauwhede, W.; Benkrid, K. High-Performance Computing Using FPGAs; Springer: New York, NY,
USA, 2013.
117. García, G.; Jara, C.; Pomares, J.; Alabdo, A.; Poggi, L.; Torres, F. A survey on FPGA-Based sensor systems:
Towards intelligent and reconfigurable low-power sensors for computer vision, control and signal processing.
Sensors 2014, 14, 6247–6278.
118. Trimberger, S. Three Ages of FPGAs: A Retrospective on the First Thirty Years of FPGA Technology.
Proc. IEEE 2015, 103, 318–331.
119. Tessier, R.; Pocek, K.; DeHon, A. Reconfigurable Computing Architectures. Proc. IEEE 2015, 103, 332–354.
120. Xilinx Inc. UG473 7 Series FPGAs Memory Resources User Guide, 1.11 ed.; Xilinx Inc.: San Jose, CA, USA, 2014.
121. Xilinx Inc. UG479 7 Series DSP48E1 Slice User Guide, 1.8th ed.; Xilinx Inc.: San Jose, CA, USA, 2014.
122. Altera Corp. Altera’s User-Customizable ARM-Based SoC; Altera Corp.: San Jose, CA, USA, 2014.
123. Krell, M.; Straube, S.; Seeland, A.; Wöhrle, H.; Teiwes, J.; Metzen, J.H.; Kirchner, E.; Kirchner, F.
pySPACE—A signal processing and classification environment in Python. Front. Neuroinf. 2013, 7,
doi:10.3389/fninf.2013.00040.
124. Renard, Y.; Lotte, F.; Gibert, G.; Congedo, M.; Maby, E.; Delannoy, V.; Bertrand, O.; Lécuyer, A. Openvibe:
An open-source software platform to design, test, and use brain–computer interfaces in real and virtual
environments. Presence 2010, 19, 35–53.
125. Martin, G.; Smith, G. High-level synthesis: Past, present, and future. IEEE Des. Test 2009, 26, 18–25.
126. Windh, S.; Ma, X.; Halstead, R.J.; Budhkar, P.; Luna, Z.; Hussaini, O.; Najjar, W.A. High-Level Language
Tools for Reconfigurable Computing. Proc. IEEE 2015, 103, 390–408.
127. Skalicky, S.; Wood, C.; Łukowiak, M.; Ryan, M. High level synthesis: Where are we? A case study on matrix
multiplication. In Proceedings of the International Conference on Reconfigurable Computing and FPGAs
(ReConFig), Cancun, Mexico, 9–11 December 2013; pp. 1–7.
128. Dennis, J. First version of a data flow procedure language. In Programming Symposium; Lecture Notes in
Computer Science; Robinet, B., Ed.; Springer: Berlin/Heidelberg, Germany, 1974; Volume 19, pp. 362–376.
129. Lee, E.; Messerschmitt, D. Synchronous data flow. Proc. IEEE 1987, 75, 1235–1245.
130. Lee, E.A.; Parks, T.M. Dataflow process networks. Proc. IEEE 1995, 83, 773–801.
131. Bhattacharyya, S.; Deprettere, E.; Leupers, R.; Takala, J. Handbook of Signal Processing Systems; Springer:
New York, NY, USA, 2013.
Sensors 2017, 17, 1552 39 of 41
132. Wöhrle, H.; Kirchner, F. Reconfigurable Hardware-Based Acceleration for Machine Learning and Signal
Processing. In Formal Modeling and Verification of Cyber-Physical Systems; Lecture Notes in Computer Science;
Drechsler, R., Kühne, U., Eds.; , Springer: Wiesbaden, Germany, 2015.
133. Williamson, M.C.; Lee, E.A. Synthesis of parallel hardware implementations from synchronous dataflow
graph specifications. In Proceedings of the Conference Record of the 30th Asilomar Conference on Signals,
Systems and Computers, Pacific Grove, CA, USA, 3–6 November 1996; pp. 1340–1343.
134. Roquier, G.; Bezati, E.; Mattavelli, M. Hardware and software synthesis of heterogeneous systems from
dataflow programs. J. Electr. Comp. Eng. 2012, 2012, 484962.
135. Wöhrle, H.; Teiwes, J.; Krell, M.; Seeland, A.; Kirchner, E.; Kirchner, F. Reconfigurable Dataflow
Hardware Accelerators for Machine Learning and Robotics. In Proceedings of European Conference
on Machine Learning and Principles and Practice of Knowledge Discovery in Databases, Nancy, France,
15–19 September 2014.
136. Yazdanpanah, F.; Alvarez-Martinez, C.; Jimenez-Gonzalez, D.; Etsion, Y. Hybrid dataflow/von-Neumann
architectures. IEEE Trans. Parallel Distrib. Syst. 2014, 25, 1489–1509.
137. Zenzes, M.; Kampmann, P.; Stark, T.; Schilling, M. NDLCom: Simple Protocol for Heterogeneous Embedded
Communication Networks. In Proceedings of the Embedded World Exhibition & Conference, Nuremberg,
Germany, 23–25 February 2016.
138. Bartsch, S.; Manz, M.; Kampmann, P.; Dettmann, A.; Hanff, H.; Langosz, M.; von Szadkowski, K.;
Hilljegerdes, J.; Simnofske, M.; Kloss, P.; et al. Development and Control of the Multi-Legged Robot
Mantis. In Proceedings of the 47th International Symposium on Robotics (ISR-2016), Munich, Germany,
21–22 June 2016.
139. Rivet, B.; Souloumiac, A.; Attina, V.; Gibert, G. xDAWN Algorithm to Enhance Evoked Potentials:
Application to Brain Computer Interface. IEEE Trans. Biomed. Eng. 2009, 56, 2035–2043.
140. Wöhrle, H.; Krell, M.; Straube, S.; Kim, S.; Kirchner, E.; Kirchner, F. An Adaptive Spatial Filter for
User-Independent Single Trial Detection of Event-Related Potentials. IEEE Trans. Biomed. Eng. 2015,
62, 1696–1705.
141. van der Walt, S.; Colbert, S.; Varoquaux, G. The NumPy Array: A Structure for Efficient Numerical
Computation. IEEE Comput. Sci. Eng. 2011, 13, 22–30.
142. Jones, E.; Oliphant, T.; Peterson, P. SciPy: Open Source Scientific Tools For Python. 2001. Available online:
http://www.scipy.org (accessed on 21 January 2017).
143. Seeland, A.; Manca, L.; Kirchner, F.; Kirchner, E. Spatio-temporal Comparison Between ERD/ERS and
MRCP-based Movement Prediction. In Proceedings of the 8th International Conference on Bio-inspired
Systems and Signal Processing (BIOSIGNALS-15), Lisbon, Portugal, 12–15 January 2015.
144. Nikolic, M.; Krarup, C. EMGTools, an Adaptive and Versatile Tool for Detailed EMG Analysis. IEEE Trans.
Biomed. Eng. 2011, 58, 2707–2718.
145. Krell, M.; Tabie, M.; Wöhrle, H.; Kirchner, E. Memory and Processing Efficient Formula for Moving
Variance Calculation in EEG and EMG Signal Processing. In the Proceedings of the International
Congress on Neurotechnology, Electronics and Informatics (NEUROTECHNIX 2013), Vilamoura, Portugal,
16–17 November 2015; pp. 41–45.
146. Semmaoui, H.; Drolet, J.; Lakhssassi, A.; Sawan, M. Setting Adaptive Spike Detection Threshold for
Smoothed TEO Based on Robust Statistics Theory. IEEE Trans. Biomed. Eng. 2012, 59, 474–482.
147. Dick, C.; Harris, F. FPGA signal processing using sigma-delta modulation. IEEE Signal Process. Mag. 2000,
17, 20–35.
148. Crochiere, R.; Rabiner, L. Optimum FIR digital filter implementations for decimation, interpolation, and
narrow-band filtering. IEEE Trans. Acoust. Speech Signal Process. 1975, 23, 444–456.
149. Bellanger, M. Computation rate and storage estimation in multirate digital filtering with half-band filters.
IEEE Trans. Acoust. Speech Signal. Process. 1977, 25, 344–346.
150. Jansen, B.; Allam, A.; Kota, P.; Lachance, K.; Osho, A.; Sundaresan, K. An exploratory study of factors
affecting single trial P300 detection. IEEE Trans. Biomed. Eng. 2004, 51, 975–978.
151. Ghaderi, F.; Kim, S.; Kirchner, E. Effects of eye artifact removal methods on single trial P300 detection,
a comparative study. J. Neurosci. Methods 2014, 221, 41–47.
152. Wöhrle, H.; Kirchner, F. CAEMO—A high performance matrix coprocessor for SoCs. Microprocess. Microsyst.
2017. submitted.
Sensors 2017, 17, 1552 40 of 41
153. Crammer, K.; Dekel, O.; Keshet, J.; Shalev-Shwartz, S.; Singer, Y. Online Passive-Aggressive Algorithms.
J. Mach. Learn. Res. 2006, 7, 551–585.
154. Cawley, G.C.; Talbot, N. On over-fitting in model selection and subsequent selection bias in performance
evaluation. J. Mach. Learn. Res. 2010, 11, 2079–2107.
155. Metzen, J.; Kirchner, E. Rapid Adaptation of Brain Reading Interfaces based on Threshold Adjustment. In
Proceedings of the 35th Annual Conference of the German Classification Society, (GfKl-2011), Farankfurt,
Germany, 30 August – 2 September, 2011; p. 138.
156. Straube, S.; Krell, M. How to evaluate an agent’s behaviour to infrequent events? Reliable performance
estimation insensitive to class distribution. Front. Comput. Neurosci. 2014, 8, doi:10.3389/fncom.2014.00043.
157. OpenMP Architecture Review Board. OpenMP Application Program Interface, Version 3.0. May
2008. Available online: http://www.openmp.org/wp-content/uploads/spec30.pdf (accessed on
14 December 2016).
158. Kornhuber, H.; Deecke, L. Hirnpotentialaänderungen bei Willkürbewegungen und passiven Bewegungen
des Menschen: Bereitschaftspotential und reafferente Potentiale. Pflüg. Arch. Eur. J. Physiol. 1965, 284, 1–17.
(In Germany)
159. Deecke, L.; Scheid, P.; Kornhuber, H. Distribution of readiness potential, pre-motion positivity, and motor
potential of the human cerebral cortex preceding voluntary finger movements. Exp. Brain Res. 1969,
7, 158–168.
160. Wang, Y.; Makeig, S. Predicting intended movement direction using EEG from human posterior parietal
cortex. In International Conference on Foundations of Augmented Cognition, San Diego, CA, USA, 19–24 July
2009; pp. 437–446.
161. Lew, E.Y.L.; Chavarriaga, R.; Silvoni, S.; Millán, J.d.R. Single trial prediction of self-paced reaching directions
from EEG signals. Front. Neurosci. 2014, 8, 222.
162. Wöhrle, H.; Teiwes, J.; Kirchner, E.A.; Kirchner, F. A Framework for High Performance Embedded Signal
Processing and Classification of Psychophysiological Data. In Proceedings of the International Conference
on Biomedical Engineering and Technology (ICBET), Copenhagen, Denmark, 19–20 May 2013; pp. 60–66.
163. Wöhrle, H.; Teiwes, J.; Tabie, M.; Seeland, A.; Kirchner, E.A.; Kirchner, F. Prediction of Movements by Online
Analysis of Electroencephalogram with Dataflow Accelerators. In Proceedings of the International Congress
on Neurotechnology, Electronics and Informatics (NEUROTECHNIXX), Rome, Italy, 25–26 November 2014;
pp. 31–37.
164. Johnson, S.H. Imagining the impossible: Intact motor representations in hemiplegics. Neuroreport 2000,
11, 729–732.
165. Platz, T.; Kim, I.H.; Pintschovius, H.; Winter, T.; Kieselbach, A.; Villringer, K.; Kurth, R.; Mauritz, K.H.
Multimodal EEG analysis in man suggests impairment-specific changes in movement-related electric brain
activity after stroke. Brain 2000, 123, 2475–2490.
166. Kaiser, V.; Daly, I.; Pichiorri, F.; Mattia, D.; Müller-Putz, G.; Neuper, C. Relationship between electrical brain
responses to motor imagery and motor impairment in stroke. Stroke 2012, 43, 2735–2740.
167. Gong, W.; Zhang, T.; Shan, L. Cortical lateralization in stroke patients measured by event-related potentials
during motor imagery. Mol. Med. Rep. 2013, 8, 1701–1707.
168. Castro, A.; Diaz, F.; Sumich, A. Long-term neuroplasticity in spinal cord injury patients: A study on
movement-related brain potentials. Int. J. Psychophysiol 2013, 87, 205–214.
169. Xu, R.; Jiang, N.; Vuckovic, A.; Hasan, M.; Mrachacz-Kersting, N.; Allan, D.; Fraser, M.; Nasseroleslami, B.;
Conway, B.; Dremstrup, K.; Farina, D. Movement-related cortical potentials in paraplegic patients: Abnormal
patterns and considerations for BCI-rehabilitation. Front. Neuroeng. 2014, 7, 35.
170. Park, W.; Kwon, G.H.; Kim, Y.H.; Lee, J.H.; Kim, L. EEG response varies with lesion location in patients with
chronic stroke. J. NeuroEng. Rehabil. 2016, 13, 21.
171. Dewald, J.; Sheshadri, V.; Dawson, M.; Beer, R. Upper-limb discoordination in hemiparetic stroke:
Implications for neurorehabilitation. Top. Stroke Rehabil. 2001, 8, 1–12.
172. Cesqui, B.; Tropea, P.; Micera, S.; Krebs, H. EMG-based pattern recognition approach in post stroke
robot-aided rehabilitation: A feasibility study. J. Neuroeng. Rehabil. 2013, 10, 75.
173. Jochumsen, M.; Niazi, I.; Mrachacz-Kersting, N.; Jiang, N.; Farina, D.; Dremstrup, K. Comparison of spatial
filters and features for the detection and classification of movement-related cortical potentials in healthy
individuals and stroke patients. J. Neural Eng. 2015, 12, 056003.
Sensors 2017, 17, 1552 41 of 41
174. J., M.; Niazi, I.; Taylor, D.; Farina, D.; Dremstrup, K. Detecting and classifying movement-related cortical
potentials associated with hand movements in healthy subjects and stroke patients from single-electrode,
single-trial EEG. J. Neural Eng. 2015, 12, 056013.
175. Kamavuako, E.; Jochumsen, M.; Niazi, I.; Dremstrup, K. Comparison of features for movement prediction from
single-trial movement-related cortical potentials in healthy subjects and stroke patients. Comput. Intell. Neurosci.
2015, 2015, 71.
176. Gu, Y.; Farina, D.; Murguialday, A.R.; Dremstrup, K.; Birbaumer, N. Comparison of movement related
cortical potential in healthy people and amyotrophic lateral sclerosis patients. Front. Neurosci. 2013, 7, 65.
177. Ando, T.; Moshnyaga, V.; Hashimoto, K. A low-power FPGA implementation of eye tracking. In Proceedings
of the IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Kyoto, Japan,
25–30 March 2012; pp. 1573–1576.
© 2017 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access
article distributed under the terms and conditions of the Creative Commons Attribution
(CC BY) license (http://creativecommons.org/licenses/by/4.0/).