## 4 Activity Recognition Based on Fusion of Point Cloud and Range-Doppler  
### Data Pre-Processing  
In the actual data acquisition process, the signal will be disturbed by noise due to the influence of the environment, hardware, and other factors. Therefore, denoising is needed in data pre-processing. There are many signal denoising methods, such as CFAR (Constant False-Alarm Rate) algorithm, Fourier transforms, wavelet transforms [18], compressed sensing [19; 20; 21], and so on. They have different advantages and are applied in different scenarios. Here we use CA-CFAR (Cell Average Constant False-Alarm Rate) algorithm. CFAR refers to the technology where the radar system judges the signal and noise output by the receiver to determine whether the target signal exists under the condition of keeping the  
Figure 2: The curve of the beat frequency versus time.  
false alarm rate constant. CFAR detector first processes the input noise and then determines a threshold, which is compared with the input signal. If the input signal exceeds this threshold, it is judged as having a target; otherwise, it is judged as having no target. CA-CFAR algorithm is one of the most classical mean CFAR algorithms. It uses the average value of a certain range of cells around the current data to be detected to determine the threshold of the tested cell. It has the lowest loss rate of all CFAR algorithms.  
Since the millimeter-wave radar has a wide coverage area, and the distance between the collected person and the radar is relatively fixed, we consider removing some unnecessary data. This is performed to prevent excessive invalid data, which reduce the speed and accuracy of recognition. Hence, we filter the data whose range values are between 1 m and 2 m. In the following part, we explain how to pre-process 3D point cloud data and range-Doppler data, respectively.  
Considering the irregularity of the number of 3D point cloud data in each frame, we must convert it into a data format with a fixed size and shape so that it can be effectively input into a convolutional neural network (CNN). Therefore, we first establish a three-dimensional discrete coordinate system. Then use Equations (12)-(14) for each frame to calculate the scale of the \(x\), \(y\), and \(z\) axes, in which the two ends of the coordinate axis are the minimum and maximum value of the point cloud data of the axis. Then we create a 10 \(\times\) 32 \(\times\) 32 array and fill the point cloud coordinates of each frame into the corresponding position of the array. It is worth mentioning that we do not directly fill in the coordinate value but count the number of points located in each array. This is to avoid having two different coordinates filled in the same position. Thus, we achieve a three-dimensional array of size 10 \(\times\) 32 \(\times\) 32 that represents the distribution of the point cloud in this frame. However, when the sampling rate is eight frames per second, a single frame of data cannot reflect the timing characteristics between frames. Therefore, we developed a fourth dimension based on the three-dimensional data, which represents the time series, and merged the eight frames of data to obtain a 4D array with a size of 8 \(\times\) 10 \(\times\) 32 \(\times\) 32. So far, the pre-processing of 3D point cloud data is over.  
\[scale_{x}=\frac{X_{\max}-X_{\min}}{10} \tag{12}\]  
\[scale_{y}=\frac{Y_{\max}-Y_{\min}}{32} \tag{13}\]  
\[scale_{z}=\frac{Z_{\max}-Z_{\min}}{32} \tag{14}\]  
On the other hand, the pre-processing of range-Doppler data is relatively simple. As is shown in Figure 3, the range-Doppler data are presented in a picture-like form. Its abscissa is the range, the ordinate is the Doppler speed, and the value in the picture is the thermal value. Hence, we export the range-Doppler data from each frame separately and achieve a 2D array of size 32 \(\times\) 32. Then, to synchronize with the 3D point cloud, we merge the range-Doppler data in eight frames and finally achieve a 3D array with a size of 8 \(\times\) 32 \(\times\) 32.