Interference Signal Identiﬁcation of Sensor Array Based on Convolutional Neural Network and FPGA Implementation

: The pulse carries important physiological and pathological information about the human body. The piezoresistive sensor used to capture vascular pulsation information has transitioned from a single-point to a sensor array. However, the interference signal between channels has become a key bottleneck restricting the development of the sensor array pulse diagnosis equipment. The sensor in contact with vascular pulsation obtains the pulse signal. When some sensors are displaced due to vascular pulsation, other sensors will be driven to move, which will produce interference signals. Signal interference is a common problem for sensor arrays, but few people have analyzed this problem from the perspective of the algorithm. In this paper, an interference signal recognition algorithm of the sensor array based on a convolutional neural network (CNN) is proposed. Firstly, a simple mechanical structure model was established to analyze the generation mechanism of interference signals in one MEMS sensor array acquisition system. Then, a CNN model with fewer parameters was designed for identifying interference signals. Finally, the CNN model was implemented on a ﬁeld-programmable gate array (FPGA). The results show that the CNN algorithm could identify interference signals well, and the accuracy of the algorithm was 99.3%. The power consumption of the CNN accelerator was 0.673 W at a working frequency of 100 MHz. The interference signal identiﬁcation algorithm is proposed to ensure the accurate analysis of array signals. FPGA implementation lays the foundation for the miniaturization and portability of the equipment.


Introduction
The combination of Chinese and Western medical treatments is a characteristic of Chinese fight against the new coronary pneumonia, and it has received good results. Chinese medicine, with its several thousand years history, has attracted increasing attention. A pulse wave is produced by the regular contraction and the relaxation of the heart and contains a wealth of physiological information about the body [1]. Doctors can detect pathological changes in various organs in the human body by touching the pulse. Pulse diagnosis is an important method in Chinese medicine and Ayurveda in India [2,3]. Doctors can detect the pulse strength, width, length, and frequency of the blood vessel through their fingers, and analyze a patient's physical state. However, this method lacks one quantifiable standard [4,5]. Objective research on pulse diagnosis has emerged at home and abroad. A single-point sensor, such as a piezoelectric sensor [6], piezoresistive sensor [7], infrared sensor [8], or ultrasonic sensor [9,10], was used in early pulse wave acquisition equipment.
Because the piezoresistive sensor and piezoelectric sensor can simulate the finger feeling of traditional Chinese medicine doctors, they occupy a mainstream position in pulse diagnostic instruments. However, early single-point sensors could not measure the pulse width or pulse length. Sensor arrays can measure the information of a blood vessel more fully; vascular pulsation will produce a three-dimensional topographic map on the sensor array. By measuring the width and length information on the three-dimensional topographic map, the indirect measurement of pulse width and pulse length can be realized [11,12]. Therefore, sensor arrays have become the focus of current research.
Ki Young Shin et al. developed a sensor array module containing seven piezoresistive sensors, through which the position of the radial artery can be determined [13]. Peng et al. proposed a multi-channel pulse wave signal acquisition system with 12 pressure sensors arranged in a row to measure the width of the radial artery [12]. Wang et al. designed a pulse signal acquisition system of a photoelectric sensor array, using nine photoelectric sensors to detect spatial information to locate the pulse center [14]. The introduction of the sensor array could obtain more abundant pulse information, and provide an important basis for the clinical diagnosis and treatment of diseases [15,16]. However, the problem of signal interference has become a key bottleneck restricting the development of sensor array pulse diagnosis equipment.
The sensor in contact with vascular pulsation obtains the pulse signal. When some sensors are displaced due to vascular pulsation, other sensors are driven to move, which produces interference signals. Matti Kaisti et al. designed a three-channel pulse wave acquisition system [17]. Three MEMS pressure sensors are assembled in a triangular shape on a flexible wristband for pulse detection of the radial artery. The three sensors are directly connected by a rigid structure. When a sensor touches the vibration point of the radial artery, it produces displacement. The displacement of the sensor drives the displacement of the rigid structure. The displacement of the rigid structure changes the pressure on the other sensors, and the signals of other sensors are disturbed. Chen et al. developed a radial artery pulse acquisition system based on a dense pressure sensor array worn on the fingers [18]. Eighteen ultra-small MEMS pressure sensors are integrated on a flexible printed circuit board (FPC). These eighteen sensors are also physically connected, and the interference phenomena appeared. The most obvious manifestation of this interference is a kind of interference wave that is axisymmetric with the pulse wave. The problem of array signal interference is common, but few people have analyzed this problem.
In classification, machine learning and deep learning methods based on statistical recognition have been widely studied. Compared with other classification algorithms, convolutional neural networks (CNNs) have a higher accuracy [19]. This paper proposes a sensor array interference signal recognition algorithm based on a CNN. This work makes the following contributions: i.
We established a simple mechanical structure model to analyze the generation mechanism of interference signals in the MEMS sensor array acquisition system; ii. We designed a CNN model with fewer parameters to identify the interference wave; iii. We implemented the CNN model a on field-programmable gate array (FPGA).
The completion of this work provides help to obtain information, such as pulse width and pulse length, from the array sensor, which may help doctors better understand the patient's physical condition.

MEMS Sensor Array Acquisition System
This paper uses a MEMS sensor array acquisition system, as shown in Figure 1a [20]. The sensor array is an important module of the system. The sensor array module was composed of three components: the sensor array, the inflatable airbag and the bending structure. The MEMS pressure sensor chip (MPS20N0100D, MEMStek Co., Ltd., Wuxi City, Jiangsu Province, China) was selected as the sensitive element. The circuit structure diagram of the sensor chip is shown in Figure 1b. Four identical piezoelectric resistors, R1-R4, form a Wheatstone bridge. When the sensor is subjected to an external force, the resistance of the four resistance strain gauges will change, the balance of the original Wheatstone bridge circuit will be broken, and the bridge will output a voltage signal proportional to the pressure. The schematic diagram of the MEMS sensor array is shown in Figure 1c; Figure 1d is a physical diagram. The MEMS pressure sensor was composed of 8 MEMS sensors arranged in 4 rows and 2 columns. The sensor contact material was food-grade silica gel, which has good biocompatibility and will not cause damage to the wrist after collection. In order to ensure sufficient contact between the acquisition module and the skin of the wrist, the bending structure was designed to be curved. The acquisition used airbag pressurization to make the sensor array exert pressure on the subject's wrist. The system can provide a static pressure of 0-210 mmHg during the acquisition process; the pressure applied to the wrist of the subject was increased in steps of 10 mmHg, and the pressure of each step was maintained for about 15 s to obtain a set of stable pulse signals. After completing the entire collection process, the airbag was deflated.

Single-Point Vibration Signal Generator
This paper presents the design of a single-point vibration signal generator to study the generation mechanism of interference signals in the sensor array. The structure of the generator is shown in Figure 2a, which is mainly composed of a motor, a long contactor, a vibration point and a frequency regulator. When the motor begins to run, the slider is driven by the principal axis. Then, the slider drives the long contactor up and down periodically, with a displacement range of 1 mm. Lastly, the long contactor drives the vibration point up and down and touches the surface of a sensor lightly. Figure 2b is a physical diagram of the device.

Mechanical Analysis of Interference Signals
The output voltage value of the sensor is related to the pressure on the surface of the sensor. When the pressure on the sensor increases, the output voltage value increases. When the pressure decreases, the output voltage value decreases. Vascular pulsation drives the skin to move up and down and squeezes the sensor to generate a pulse wave signal, as shown in Figure 3a. Due to the physical connection, the adjacent sensors are forced to move up and down, which will make the contact pressure between the sensor and the skin surface change, resulting in interference signals. The interference signal is shown in Figure 3b. In this paper, a mechanical structure model is established by using a sensor array acquisition system and one single-point signal generator to verify the above hypothesis. As shown in Figure 4, the sensor array is attached to the curved surface of the signal generator. The sensor array is attached to the curved surface of the signal generator, in which sensors B and C are in contact with the vibration point. When the vibration point moves upward, the pressure on sensors B and C increases, and the output voltage values of sensors B and C increase. Due to the upward movement of the vibration point, sensors B and C are displaced upward. Since the sensors are connected together by a bending structure, the forced movement of sensors B and C reduces the contact pressure between sensor A, sensor D and the bending surface, resulting in the reduction in the output voltage of B and C. In order to verify the correctness of the above hypothesis, this study used a single vibration point signal generator to replace vascular pulsation and analyzed the impact of a single vibration point on the neighboring sensor from a mechanical point of view. As shown in Figure 5, for the convenience of description, the sensors of the sensor array are named: Sensor 1, Sensor 2, Sensor 3, through to Sensor 8. We put the vibration point at Sensor 1 and Sensor 2 and ensured that all sensors were in contact with the bending structure for signal collection.  Figure 6 shows the output signals of Sensors 1-8, respectively. Since Sensors 3, 4, 5, 6, and 7 were not in contact with the vibration point, they should not have vibration signals. However, because all the sensors were fixed on the bending structure, the phenomenon described above occurred. This signal is referred to as an interference wave in this article. Compared with vibration signal, the interference wave has the same period, the shape is similar, and the phase difference is 180 • . Due to the attenuation characteristics of signal transmission, the signal strength of the interference wave is lower than the vibration signal. As the distance increases, the attenuation of the interference signal increases.

Signal Preprocessing
This study used a MEMS sensor array acquisition system to collect signals from the radial artery of one subject's wrist. During the collection process, the data of 11 pressure sections from 10 to 120 mmHg were collected at a step value of 10 mmHg, and the pressure was maintained for 15 s in each step. In order to make the classification and labeling of the data more accurate, preprocessing was necessary. To carry this out, firstly, one data point from each pressure segment of the original data was selected. Next, a 0.5 Hz-25 Hz bandpass filter was used to filter the selected data [21]. Then, a data value of a specific length was intercepted from the filtered data. In order to enhance the model's anti-interference ability, the data were normalized. Lastly, the data were labeled and inputted into the data set.

CNN Model
CNNs are models of deep learning that are good at extracting global features. CNNs also show strong adaptability in the recognition of one-dimensional pulse wave signals. Figure 7 is a one-dimensional CNN model. The input of the one-dimensional CNN model is a one-dimensional form of data, so the convolution kernel adopts a one-dimensional structure accordingly. The output of each convolution and pooling is also a one-dimensional feature vector. The model is mainly composed of a CONV (convolutional) layer and an FC (fully connected) layer. The CONV layer mainly implements feature extraction, which includes three operations: convolution operation, activation operation, and pooling operation. After the CONV layer, the FC layer fuses the feature and finds the relationship between the "learned" output vector and the feature vector.

CNN Model Design
In order to design a CNN with high accuracy and fewer parameters, and find the relevant model parameters, we conducted a set of experiments. The experimental software and hardware development environment is: PyTorch 1.4.0 (CUDA version), Python 3.8.5, and an NVIDIA GeForce GTX 1660Ti GPU.
In order to reduce the number of calculations, this article down-sampled the original input signal of 1024 sampling points, and used signals with lengths of 512, 256, 128, 64, and 32, respectively. The corresponding sampling frequencies of 109 Hz, 54.5 Hz, 27.25 Hz, 13.625 Hz and 6.8125 Hz satisfied the Nyquist sampling theorem. As shown in Figure 8, the results show that when the input signal length was less than 128, the accuracy of the model was reduced. In CNN, a large part of the weight parameters and calculations come from the first fully connected layer. In order to reduce the weight parameters, this paper proposes reducing the number of FC layers and neurons. This paper proposes two structures of the FC layer; the experiment results are shown in Table 1. In order to reduce the weight parameters and computational complexity, this paper proposes four structures by modifying the ratio of input and output channels, as shown in Table 2. In this case, m and n represent the number of input channels and the number of output channels, respectively. As shown in Figure 9a, under the premise of high accuracy and low training time, structure 1 had fewer weight parameters.  When the number of CNOV layers is 2, 3, 4, 5, 6, and 7, the influence of the number of convolutional layers on the model is shown in Figure 9b. It can be seen that when the number of layers is 3, the number of weight parameters is the least and the number of layers has little effect on the accuracy of the model. According to the above experiment, the final CNN selected is shown in Figure 10, which contains five CONV layers, one FC layer, and 1470 parameters.   Figure 11a, the CNN hardware acceleration structure includes three parts: the arithmetic module, the storage module and the control module. The arithmetic module includes the convolution kernel (CK) module, the post-processing (PP) module and the FC module. The CK module is used to perform convolution sliding window operations. The PP module is used to implement the accumulation of multiple input feature maps, the ReLU activation function and the calculation of maximum pooling. The FC module implements the fully connected layer. These computing modules all use pipelined calculations. The trained weight parameters and bias parameters are stored in two ROMs, and the input data are stored in a RAM. In this study, the output of each computing module was placed in the on-chip buffer area, which helped to reduce the data access. We used two BRAM blocks to form a ping-pong structure. There are two sets of read and write ports. The first layer can read RAM1 and write RAM2, and the next layer can write RAM1 and read RAM2. Therefore, the ping-pong buffer can avoid overlap and improve performance.
The input data of the CONV layer of the first layer are read from the RAM, and the input data of other layers are from the on-chip BRAM. In order to distinguish the first CONV layer, a state machine is used in the control module. As shown in Figure 11b, the system first executes the CK and PP of the first CONV layer, and then executes the CK and PP of the other layers in the sequence. When the final FC finished, one result is output.

Computing Module Design
The CK module is a computationally intensive component in the system. In order to increase the performance, a pipelined design was adopted. In the convolution window, each cycle completes the multiplication and accumulation of a unit. After the calculation of a convolution window is completed, the convolution window moves forward to the next operation. The structure of the processing element (PE) in the CK module is shown in Figure 12. In the CNN algorithm, we fill 0 before and after the input signal. After the convolution operation, a PP (post-processing) module was used to implement accumulation, ReLU and max-pooling. The accumulation after the convolution operation and the accumulation of the offset are all realized by the accumulator. The ReLU activation function is realized by judging the sign bit of the data. The maximum pooling is completed by using a comparator.
As shown in Figure 13, in the FC module, the calculations between the output neuron nodes are parallel, and the calculation of a single output neuron node adopts a pipeline method. An input node read in each cycle is multiplied by the weight and then accumulated. When the product of all inputs and weights is added, it is output after offset. After the accumulation finished, the offset was added. The whole module is implemented with multipliers and accumulators. At the falling edge of valid, the input data were filled with 0, and the weight with 1. Figure 13. FC's timing diagram.

Data Sources
In this experiment, 50 cases of data were collected with the MEMS sensor array collection system, including 38 male subjects and 12 female subjects. All subjects were in the age range of 20-40 years old. There were three types of raw data: pulse wave, interference wave, and irregular noise. The final data set was composed of 1650 samples, including 550 pulse waves, 550 interference waves, and 550 irregular noise waves. We randomly sampled 500 pulse waves, 500 interference waves, and 500 noise waves as the training set, and the remaining samples were composed of the test set. The platform for generating the data set was MATLAB 2019a.

Model Training
Other parameter settings of this model are shown in Table 3. The loss curve and accuracy curve obtained during one training session are shown in Figure 14.

Test Results
Confusion matrixes are usually used to evaluate the performance of the model. For each category i in the multi-class problem, all samples except the ith category can be regarded as negative samples. The accuracy, precision, recall, F1, and macro − F1 can be calculated by the following equation: TP is true positive: the number of positive segments classified correctly. TN is true negative: the number of negative segments classified correctly. FP is false positive: the number of negative segments classified incorrectly. FN is false negative: the number of positive segments classified incorrectly.
As shown in Table 4, we obtained a confusion matrix after testing 150 samples. The classification accuracy of this model was 99.3%. The macro − F1 calculated by the formula was 0.99, which shows that the model has a highly stable classification ability for the interference wave.

FPGA Simulation and Testing
We implemented the CNN accelerator on the Xilinx FPGA platform. This design was implemented on the Xilinx xc7a100tfgg484-2 platform, using a pipeline structure. The synthesis tool was Vivado2018.03.
The resource utilization rate of the CNN accelerator in this paper at 100 MHz operating frequency is shown in Table 5. Although our CNN model was relatively simple, the power consumption of the CNN accelerator was also very low, consuming only 0.673 W at a working frequency of 100 MHz.

Conclusions
In this paper, we propose an FPGA-based CNN accelerator to identify interference signals. Firstly, we performed a mechanical analysis of the interference phenomenon between channels and discussed the reason for the interference signal. Then, we used CNN to identify the interference signal. In order to reduce the weight parameters, we specially designed a CNN model based on experiments. The classification accuracy of the model is 99.3%. Finally, we implemented a CNN accelerator on Artix XC7A100T, which cost only 0.673 W under a working frequency of 100 MHz.
Signal interference in multi-channel systems is an unavoidable natural phenomenon, especially in communication systems. Due to some factors on the signal transmission path, the signal interference appears on adjacent channels and sub-adjacent channels, which affects the entire communication system. In Chinese medicine, the human wrist is divided into three positions, called Cun, Guan, and Chi. The three positions carry different physiological and pathological information. The sensor array group covering the three positions has one physical connection. The vibration of one sensor array forces the other sensor array to move, which creates channel interference. In future research, our team will explore the formation mechanism of the adjacent channel interference and suppress this phenomenon algorithmically.

Data Availability Statement:
The raw/processed data required to reproduce these findings cannot be shared at this time as the data also form part of an ongoing study.