Signal Quality Improvement Algorithms for MEMS Gyroscope-Based Human Motion Analysis Systems: A Systematic Review

Motion sensors such as MEMS gyroscopes and accelerometers are characterized by a small size, light weight, high sensitivity, and low cost. They are used in an increasing number of applications. However, they are easily influenced by environmental effects such as temperature change, shock, and vibration. Thus, signal processing is essential for minimizing errors and improving signal quality and system stability. The aim of this work is to investigate and present a systematic review of different signal error reduction algorithms that are used for MEMS gyroscope-based motion analysis systems for human motion analysis or have the potential to be used in this area. A systematic search was performed with the search engines/databases of the ACM Digital Library, IEEE Xplore, PubMed, and Scopus. Sixteen papers that focus on MEMS gyroscope-related signal processing and were published in journals or conference proceedings in the past 10 years were found and fully reviewed. Seventeen algorithms were categorized into four main groups: Kalman-filter-based algorithms, adaptive-based algorithms, simple filter algorithms, and compensation-based algorithms. The algorithms were analyzed and presented along with their characteristics such as advantages, disadvantages, and time limitations. A user guide to the most suitable signal processing algorithms within this area is presented.


Introduction
In contemporary/modern society, demographic changes of population and multiple diseases lead to increasing demands on and costs for the healthcare systems [1]. Thus, home-based wearable self-controlled medical sensor systems have become a research topic of interest in the healthcare area, in which human motion analysis is important because of its crucial applications. For example, sensor systems for rehabilitation, athletic performance evaluation/analysis, and monitoring of health for the elderly who are alone at home are in extremely high demand [2].
Microelectromechanical system (MEMS) sensors have been widely used in many areas where miniature sensors that are of a low cost and low weight are desired [3]. MEMS technology has enabled the development of miniaturized inertial sensors, which have been used in motor activity and other health status monitoring systems [4]. They have already been widely applied in motion analysis systems in the medical field for knee/ankle joint measurement [5][6][7][8], gait analysis [9,10], ambulatory measurement and analysis of the lower limbs [11,12], the collection of anatomical joint angles during stair ascent [13], hand gesture recognition [14][15][16], head-motion-controlled 1.
The article was published as a journal article or a conference paper in English.

2.
The article was published in the past 10 years (between 2007 and 2017). 3.
The primary subject of the study was signal error reduction methods/algorithms for MEMS gyroscope-based motion analysis systems that are intended for human motion analysis or have the potential to be used in this area.
Articles were excluded from this paper if they instead focused on avoiding errors in the development and fabrication of the MEMS gyroscope inertial structures or on systems that were not intended for the application of human motion analysis but for other applications, e.g., navigation, global positioning, attitude compensation, space contrail detection, missile control, and trajectory analysis. Articles were also excluded if they focused on methods that were not intended for signal error reduction or signal quality improvement, but rather for other special areas such as fall detection, pedestrian indoor localization, and motion/gesture recognition.

Searching Strategy and Analysis
With the inclusion and exclusion criteria specified above, the search was performed in the following electronic databases: Association for Computing Machinery (ACM) digital library within the area of computer science [29]; IEEE Xplore with the contents of engineering science, scholarly journals, conference reports, and IEEE standards [30]; PubMed with the contents of medicine and health science and scholarly journal articles [31]; and Scopus, which is a multidisciplinary citation database [32]. The searched keyword string was set as (((signal processing OR noise OR drift OR error OR reduction) AND motion*) AND "MEMS gyroscope").
Through database searching without a time limitation, 33 results from 2001 to 2017 were initially found in ACM; 120 results from 1999 to 2017 were found in IEEE Xplore; three results from 2010 to 2016 were found in PubMed; and 35 results from 2005 to 2017 were found in Scopus. Within the publishing year limitation of the most recent 10 years, namely, from 2007 to 2017, 165 (28 from ACM + 104 from IEEE + three from PubMed + 30 from Scopus) results remained. After eliminating the duplicates, 148 results remained. The main author read through the titles and abstracts of the retrieved results and performed an initial analysis to determine whether the inclusion criteria were fulfilled or not. The full texts of those articles that fulfilled the inclusion criteria based on the title and abstract were assessed in detail by the main author. Irrelevant articles were excluded based on the exclusion criteria. The eligibility was checked.
The searching and review procedure is illustrated in Figure 1.

Results
From the 16 reviewed articles, 17 algorithms/methods were identified. They were categorized into four groups, namely, Kalman-filter-based algorithms, adaptive-based algorithms, simple filter algorithms, and compensation-based algorithms, and are presented below. All algorithms/methods were aimed at reducing different signal errors for the MEMS gyroscope-based human motion analysis system (or had the potential for human applications). The proportions of the four types of algorithms in the reviewed results are shown in Figure 2.

Kalman Filter
The Kalman filter is a common filter that is used for sensors. It consists of a loop that contains two steps: time updating, which is a prediction process, and measurement updating, which is a correction process [33]. The Kalman filter process is as follows: • First, initial estimates forx k−1 and P k−1 are obtained. • Then, the two-step loop is entered, as shown below: Time updating process: Measurement updating process: wherex is the posteriori estimated state,x − is the priori state, u is the control vector, z is the measurement signal, k is a discrete point in time, A is the state transition model, B is the control input model, P is the error covariance, Q is the process noise covariance, K is the Kalman gain, H is the measurement matrix, R is the measured noise covariance, and I is the identity matrix. Some common applications of the Kalman filter are noise reduction and signal prediction and estimation. It is one of the most common algorithms for sensor problems such as gyro sensor drift compensation [34].
Kalman filters have also been applied for human tremor estimation [35,36] and can improve the human-operated MEMS gyroscope signal by removing human tremors.

Discrete KF in an Optimal Approach
A Kalman filter is designed based on a steady-state filter gain that is obtained from an analysis of Kalman filter observability with the aim of reducing the bias drift and noise from the outputs signal of the MEMS gyroscope [37]. The Kalman filter is designed with a system state vector that is modeled based on both the true angular rate ω and the bias drift b. The parameters of covariance matrices Q and R are derived from the noise variance of the angular random walk (ARW) and the rate random walk (RRW) and the variance q ω . The steady-state Kalman filter gain K s is analyzed off-line in advance. Parameters A and B are calculated based on the eigenvector matrix S and eigenvalues λ 1 and λ 2 . Finally, with these parameters, the discrete-time KF is applied as shown in Figure 3, which is derived from the figure in the original paper.

Simplified Basic KALMAN Filter
The simplified basic Kalman filter can be used to reduce the noise [25] and temperature drift [26,27]. It is used digitally/discretely to reduce the noise and to estimate the temperature drift trend. The Kalman filter is used to estimate the offset and drift trend. The structure of drift/offset reduction by the Kalman filter is illustrated in Figure 4.

Kalman-Filter-Based Position Estimation Algorithm
A Kalman-filter-based position estimation algorithm for correcting the yaw was presented by Pedro Neto et al. [38] and is illustrated in Figure 5. Figure 5 is derived from the figure in the original paper and shows the relationship between the MEMS gyroscope, the Kalman filter, and the additional accelerometer and magnetometer.

Least Mean Square (LMS) Algorithm
The LMS algorithm was applied in a MEMS gyroscope-based computer head-borne mouse to reduce the noise [25]. The structure of the LMS adaptive filter is illustrated in Figure 6, where d is the desired signal, x is the input,d is the output of the adaptive filter, e is the error signal, and W is the LMS adaptive filter.

Adaptive Sliding Mode Controller
The adaptive sliding mode controller for the MEMS gyroscope was introduced in [39], which can compensate in real time for the fabrication imperfections and estimate the angular velocity and the damping and stiffness coefficients. The block diagram is shown in Figure 7, where W stands for the adaptive indirect sliding mode controller. Figure 7 is derived from Figure 2 in the original paper.

Adaptive Bandpass Filter (ABPF)
The ABPF algorithm is a basic algorithm for reducing the typical noises and tremors in inertial sensor data [40]. As described in the paper, tremor patient data were collected with both a gyroscope and an accelerometer. A Butterworth second-order bandpass filter with an adapted center frequency was designed in the program in a MATLAB Simulink environment. As shown in Figure 8, the method can be mainly summarized as bandpass filtering and filter center frequency adaption. The bandpass filter transfer function is: where ω a is the filter center frequency, which is adapted in the closed loop based on the dominant frequency of the input signal. In Figure 8, frequency f is equal to 2πω a . The damping block limits the changes of the tremor frequency estimation with the frequency step ∆f according to the input modal frequency f mod to adjust the speed of the adaptation.

Weighted-Frequency Fourier Linear Combiner (WFLC) Algorithm
The WFLC algorithm is the most widely used algorithm for tremor modeling [35]. It is a type of adaptive algorithm. It was used to reduce the noise that is associated with human tremors and electrical noise in the application of an MEMS gyroscope-based computer head-borne mouse [25,27]. The discrete WFLC algorithm is: where M is the number of harmonics; µ 0 , µ 1 , and u b are the adaptive parameters; s k is the input and ε k is the error signal at time point k; and

Bandlimited Multiple Fourier Linear Combiner (BMFLC) Algorithm
The BMFLC algorithm is derived from the Fourier Linear Combiner (FLC) and was proposed more recently [35]. Similar to the WFLC algorithm, it can be used to estimate tremors [35]. As shown in the paper [35], the discrete BMFLC algorithm can be described as: where M is the number of harmonics; G is the number of FLC-filters in between; µ is the amplitude adaptation gain; ω 0 and ω f are the lower and upper frequencies of the FLC bank, respectively; and µ b is a bias weight.

Sensor Fusion
Sensor fusion approaches are adaptive algorithms that combine sensory data from independent sources, irrespective of their advantages and disadvantages, to optimize the system performance, as mentioned in [41]. They often involve combining accelerometer and magnetometer data for their compensation characteristics, which is a good solution for complementing the drift-free gyroscope [41].
A sensor fusion method is often applied to reduce error propagation and obtain the integration process initial conditions [42]. In these cases, the MEMS gyroscope signal is still the basis for orientation estimation, but it is refined with the data from the MEMS accelerometer and magnetic sensors in the Miniature Inertial Measurement Unit (MIMU) [43], where the MEMS gyroscope is not used alone, but together with the MEMS accelerometer and magnetometer.
The main structure of the sensor fusion approach exploiting accelerometer and magnetometer data is presented in Figure 9. The detailed algorithms depend on different filter algorithms. The most common filter algorithm used is the Kalman filter, which consists of prediction and correction steps and connects for the adaption of accelerometer and magnetometer estimation.

Low-Pass Filter
A simple digitally implemented RC low-pass filter was applied in the MEMS gyroscope-based motion detection system for noise reduction [25]. The low-pass filter can be described as [44]: where α is the low-pass cut-off frequency parameter, which has a value from zero to one. Using a suitable parameter value, the high-frequency noise can be filtered out.

High-Pass Filter
Analogous to the low-pass filter that is described above, a simple digital high-pass filter was implemented in a similar way in a MEMS gyroscope-based motion detection system for drift/offset reduction [26]. The digitally implemented high-pass filter can be described as [26]: where β is the parameter of the cut-off frequency for the high-pass filter, which has a value from zero to one; x i and x i−1 are the input signals at time points i and i−1, respectively; and y i and y i−1 are the output signals at time points i and i−1, respectively. The high-pass filtering operation was also used to remove most of the sensor measurement biases [45].

Threshold with Delay Method (TWD)
Based on the original threshold method, the threshold with delay (TWD) method is developed with a delay parameter with the aim of not interrupting the continuity of the movement signal when using a threshold method [27]. The algorithm can be described mathematically as: where x and y are the input and output signals, k is the discrete point in time, and D is the delay. With suitable threshold and delay values, the TWD algorithm can be used to filter out the noise around zero and obtain a smooth continuous signal, even if the movements make the signal cross the threshold level several times. The threshold level is usually set to as close to the noise level as possible, but slightly above it [27].

Drift and Offset Compensator (DOC)
The drift and offset compensator (DOC) is a model-free method for compensating for the drift and offset in the MEMS gyroscope signals [45]. It employs FIR/IIR filtering techniques and lends itself to implementation in hardware such as DSPs and FPGAs [45]. The simplified main structure of the filtering process of DOC is illustrated in Figure 10, which is derived from Figure 1 in the original paper.
To compensate for the drawbacks of the angular rate estimation based on only the encoder signals if the encoder step size is higher than the angle that is passed during the sampling interval or of the same order of magnitude [45], an enhanced DOC is also presented in the paper [45]. As shown in Figure 11, the enhanced DOC employs both an accelerometer and a gyroscope for angular rate estimation.

Compensation Method with Temperature
This method employs orientation-based gyroscope compensation, including temperature, and further employs a Kalman-based model that uses an orientation sensor and temperature [46]. The corrected value of the gyro sensor is expressed as [46]: where G real is the gyro sensor value, S bias is the static bias, t bias is the bias due to temperature, M error is the error during motion, and ε is white noise. The median filter on a moving window of size 7 is used to remove the white noise [46]. Then, static bias prediction is used to capture the static drift parameter for static drift compensation. With a separate chip for measuring the temperature of the sensor, the static sensor data variation with the temperature for each axis is analyzed to determine the temperature bias. The total bias is the sum of the temperature bias and the static bias, which can be expressed as: where T is the temperature mean, m × T is the temperature bias, and C is the static bias. After removing the static bias and the bias due to temperature, to eliminate the misalignment error that results in incorrect distribution of the angular velocity along different axes in a tri-axial gyroscope, the Kalman filter is used to remove the noise and compensate for the orientation error by compensating for the value of gyroscope with the values of the orientation sensors [46]. The state space equation is [46]: where θ t is the value from the orientation sensor, . θ is the value from the gyroscope sensor, and ∆t is the sampling time. For the Kalman filter coefficients, the state transition matrix and the observation matrix are A = 1 ∆t 0 1 and H = 1 0 0 1 , respectively [46]. The processing noise and experiment noise are Q = 0.00009 0 0 0.00009 and R = 0.002 0 0 0.002 , respectively [46]. The input of the Kalman filter is X input = Orientation_angle Gyroscope_data [46].
The procedure of the filter method is illustrated in Figure 12. This gyro drift compensation method is not implemented in hardware, such as a microprocessor or dsPIC, but over the sensor service layer of the existing Android sensor stack [46].

Compensation Method with Accelerometer and Magnetometer Data
A complementary-filter-based filter is designed for estimating the angle in the application of a mini wearable wireless sensor system for rehabilitation [47]. It has the advantages of a lower computational burden and higher precision than the Kalman filter [47]. However, it requires the accelerometer data and magnetometer data to be analyzed together with the gyroscope data [47].
A robust and easy-to-implement method for calibrating an inertial measurement unit (IMU) with an MEMS gyroscope, accelerometer, and often a magnetometer, without any external equipment, is introduced in the paper by D. Tedaldi et al. [48]. The calibration protocol can be summarized as the following steps: Let IMU be static for T seconds. Then, rotate the IMU to a different attitude and wait at least t wait seconds. Finally, repeat the rotation process N times to estimate the parameters by the calibration algorithm. The signal must be averaged over a suitable time interval. The accuracy of the calibration strongly depends on the reliability of the classification between static and motion intervals: static intervals are used to calibrate the accelerometers, while motion intervals are also included between consecutive static intervals for gyroscopes [48].

Category of the Algorithms
The reviewed articles, with their corresponding algorithms, were categorized into four groups. The details of their classifications, characteristics/functions, supplements/requirements, related applications, and numbers of papers are summarized in Table 1.
In Table 2, these algorithms were also categorized into groups, and details regarding the main functions, advantages, disadvantages, and numbers of studies are specified.

Discussion
A systematic review was performed with a focus on error reduction algorithms in MEMS gyroscope-based motion analysis systems within the area of human motion analysis or with a clear potential for use in this area (e.g., for robotics). A total of 17 algorithms have been classified into four categories: Kalman-filter-based algorithms, adaptive-based algorithms, simple filter algorithms, and compensation-based algorithms. The most commonly used solution for MEMS gyroscope error reduction within this area is adaptive-based algorithms, followed by Kalman-filter-based algorithms. The majority of them (12 of 17) showed the potential to be simplified to limit the calculation time. All the algorithms can be implemented in real time and used alone or combined with other algorithms or sensors, e.g., accelerometers and/or magnetometers. They are suitable for use in human motion analysis systems, especially for hand, wrist, and head movements.
Kalman-filter-based algorithms are commonly applied for error compensation, position correction, and orientation estimation in different areas. With a focus on error reduction, related Kalman-filter-based algorithms, including the Kalman filter, discrete Kalman filter in an optimal way, simplified basic Kalman filter, and Kalman-filter-based position estimation algorithms, are presented in this paper. They are all based on the Kalman filter and have the main function of noise reduction and offset/drift signal prediction and estimation, including human tremor reduction, drift estimation, and yaw correction during motion analysis.
Adaptive-based and related algorithms, such as LMS, the adaptive sliding mode controller, the adaptive bandpass filter, WFLC, and the sensor fusion algorithm, were used for noise reduction, error compensation and estimation, and human tremor reduction, modeling, and estimation. Sensor fusion algorithms often combine accelerometer and magnetometer data to achieve their compensation characteristics.
Some simple filter algorithms, such as the low-pass filter, high-pass filter, and TWD algorithm, were also applied to reduce signal errors, e.g., noise, drift/offset, and integration drift. They have simple characteristics and thus simple functions. They are simple and easy to implement in real time, but only with simple functions. They are good solutions for simple tasks. However, a better result is usually achieved if they are combined with other algorithms.
Compensation algorithms include DOC, compensation with temperature, compensation with accelerometer and magnetometer data, and the IMU calibration method. They can be applied for noise reduction and angle estimation by compensating for the related gyroscope errors, e.g., drift/offset and bias due to temperature. The compensation algorithms are satisfactory solutions for complementing the drift-free gyroscope, but require other resources in combination to perform their function, including other filter algorithms and additional hardware, such as accelerometers and magnetometers, or even the same sensor unit as a reference.

Conclusions
This paper presents a systematic overview of signal processing algorithms with a focus on MEMS gyroscope error reduction for human motion analysis systems. Sixteen MEMS gyroscope-related signal processing papers that were published in the past 10 years were reviewed to evaluate their functions, error reduction/minimization, and signal improvements. All of them are within the area of human motion analysis applications or have a clear potential for use in this area. Seventeen algorithms, which were categorized into four main groups (Kalman-filter-based algorithms, adaptive-based algorithms, simple filter algorithms, and compensation-based algorithms), were investigated and summarized in terms of their characteristics, functions, supplements/requirements, related applications, advantages, and disadvantages. Some signal processing algorithms can be used alone for MEMS gyroscope error reduction, whereas others should be used with other signal processing algorithms to achieve better results. Some algorithms combine MEMS gyroscope data with data from other sensors as accelerometers or both accelerometers and magnetometers, while some require a reference sensor model. This study also showed the possibility of simplifying the algorithms for a limited calculation capacity and real-time implementation. The algorithms that were investigated in this paper are useful for signal error reduction and signal quality improvement for MEMS gyroscope-based human motion analysis. With a focus on MEMS gyroscope-based movement measurement, the paper aims at being a user guide on when to use which algorithms in related studies.