## 3 Data Fusion Algorithm  
### Mathematics of the Data Fusion Algorithm  
Starting from the idea that it would be less expensive and safer to replace the classical arrangement of the IMU sensors (rectangular triads of gyros and accelerometers) with multiple miniaturized gyro and accelerometer sensors mounted on each of the three axes  
Figure 4: Attitude algorithm evaluation with experimentally acquired data: (**a**) the angular speeds (\(\omega_{x}\), \(\omega_{y}\), \(\omega_{z}\)) provided by the gyro sensors; (**b**) graphical characteristics of the attitude angles provided by the algorithm and by the reference navigator. of the IMU (in linear detection clusters) to measure the same quantity and subsequently fuse their data, we conceived a data fusion method to combine the outputs of these multiple sensors to estimate better values for the components of the variables needed to calculate the satellite attitude, position and speed by using inertial methods. The developed algorithm uses a mechanism based on the maximal ratio combining the data fusion method involved in the processing of the signals in the telecommunications field [79; 85; 86]. According to this data fusion mechanism, each sensor in a linear detection cluster is assigned a weight \(w\) which is inversely proportional to the standard deviation calculated for a data package consisting of the last \(m\) samples that it supplies to the measurement system. The mechanism generates a parallel data fusion architecture for the algorithm in this way, as is presented in Figure 5[79; 84; 87; 88]. Considering \(n\) sensors in the detection cluster of the same IMU axis, the evaluation of the standard deviation of the signal for the \(i\)-th sensor in the cluster, for a data frame of \(m\) consecutive samples, is realized by using the formula:  
\[\sigma_{i}=\sqrt{\frac{1}{m}\sum_{j=1}^{m}\left(r_{i,j}-\bar{r}_{i}\right)^{2} }, \tag{14}\]  
where \(r_{i,j}\) denotes the \(j\)-th sample in the data frame measured by the \(i\)-th sensor and \(\bar{r}_{i}\) is the mean of the data frame,  
\[\bar{r}_{i}=\frac{1}{m}\sum_{j=1}^{m}r_{i,j}. \tag{15}\]  
Keeping in mind that the data fusion mechanism produces a weighted mean of the \(n\) sensors signals, the value of the sample \((m+1)\) in the fused signal is evaluated considering the quality of the \(n\) gyros signals for the previous \(m\) consecutive samples acquired from each of them. Therefore, the analysis of these \(n\) data frames (\(m\) consecutive samples for each sensor), obtained from the sensors in the cluster, provides \(n\) weights which are considered in the evaluation of the data fusion algorithm output for the next \((m+1)\) sample. The sensor weights \(w_{i,m+1}\) (\(i=\overline{1,n}\)) for the \((m+1)\) sample are attributed in order to respect an inverse proportionality rule in relation to the standard deviation of its signal for a data package made up of the last \(m\) samples; a smaller standard deviation provides a larger weight to the sensor. If \(r_{i,m+1}\) denotes the sample \((m+1)\) obtained from the \(i\)-th sensor, then the output of the data fusion algorithm at this \((m+1)\) sample \(f_{m+1}\) is given by:  
\[f_{m+1}=\left(\sum_{i=1}^{n}w_{i,m+1}\cdot r_{i,m+1}\right)/\left(\sum_{i=1}^{ n}w_{i,m+1}\right). \tag{16}\]  
Figure 5: Architecture of the data fusion algorithm. Applying the relations of inverse proportionality between weights and standard deviations, and bearing in mind that the sum of the weights equaling the unity [79; 84; 88],  
\[ \begin{array}{l}\sigma_{1}\cdot w_{1,m+1}=\sigma_{2}\cdot w_{2,m+1}=\ldots= \sigma_{n}\cdot w_{n,m+1},\\ \sum\limits_{i=1}^{n}w_{i,m+1}=w_{1,m+1}+w_{2,m+1}+\ldots+w_{n,m+1}=1,\end{array}