FECG and MECG charachterization using machine learning (2018)

Introduction

Fetal Electrocardiography (FECG) signal contains very meaningful information that would help doctors to make decision during pregnancy and labor. It is also an important indicator of the fetal status. However, extracting FECG from non-invasive sensors is not easy since the FECG signal is weak compared to the Maternal ECG (MECG) signal. In conventional signal processing methods, it requires an adaptive filter with MECG signal and mixture Electrocardiography (ECG) signal to reveal the FECG signal. This procedure requires significant computation power and multiple sensors applied on the pregnant women. As machine learning algorithms become more and more popular, applying neural network to signal processing is widely adapted in all types of applications. This paper presents a method based on neural network to recognize FECG signal from abdominal ECG signal acquired by non-invasive sensors. In this paper, training and evaluation procedure are done in TensorFlow on a heterogeneous platform. This algorithm can precisely identify both MECG and FECG signal from a maternal abdominal ECG signal.

../../_images/FECG1.png

Figure 1. FECG vs MECG with Label

This figure shows one channel of simulated signals by using FECGSYN in MATLAB. In this setup, the sample rate is set to 250 Hz; Mother’s heart rate is set to 90 beats per minute (bpm) and the fetal heart rate is set to 150 bpm. FECGSYN returns a simulated dataset contains 8 channels of maternal AECG data. The figure is the AECG signal with both MECG and FECG marked with different color. As shown in this figure, the third FECG is completely overlapped with the second MECG signal. The purpose of this algorithm is to detect FECG and MECG in maternal AECG signal by using MLP neural network algorithm.

Training the Neural Network with Tensorflow

The neural network training and evaluating process is done by using Google TensorFlow with GPU support [4]. A few python libraries are used to add visualization to the program. A desktop computer is used to run all the tests. It is a heterogeneous platform contains an Intel(R) Core(TM) i7-6700 CPU @ 3.4 GHz and a NVIDIA GeForce GTX 1070 @ 1.506 GHz as an algorithm accelerator.

One of the most important steps of building a neural network is to properly prepare the training input datasets. As it is presented in the next figure, the AECG mixture signal will be passed into a FIFO to be buffered. For each iteration, a new data is inserted into the buffer at the beginning of the queue, the original data in the buffer will be shift towards the end of list by one. The data at the end of the list will be discarded. The data in the buffer will be used as the input of the neural network. By examine a single FECG and MECG signal, the buffer size is set to 30. After the data passed through the trained neural network, it is supposed to detect if there is a FECG or MECG signal in the AECG signal.

../../_images/FECG2.png

Figure 2. Training Data Preprocessing

Result

../../_images/MECG1.png

Figure 3. MECG Training Data

../../_images/MECGRESULT.png

Figure 4. MECG Detection Result

../../_images/FECGRESULT.png

Figure 5. FECG Detection Result

Conclusion

In this paper, an MLP neural network algorithm is presented to detect the MECG and FECG signal from the mixture signal acquired using non-invasive sensors. To test the algorithm, an opensource FECG signal simulator FECGSYN is used to generate the mixture signal for training the neural network. This algorithm successfully characterizes MECG and FECG with a single channel AECG mixture signal. Also, with two channels of AECG signals, the neural network can detect FECG signal very accurately.

Note

Note: The page is a demonstration of the project basic layouts, details can be found in my papers.