# A Voting-Based Star Identification Algorithm Using a Partitioned Star Catalog
## 3 Star Identification
### Star Identification Algorithm Based on Voting Decision  
The core of star identification uses an algorithm to match the features of stars between the star image and the navigation feature library, thus obtaining information about the stars. The navigation feature library uses the angular distance between stars as a feature; therefore, obtaining the angular distance between stars in the star image is necessary. The imaging model of the star sensor can be approximated as a pinhole model. The starlight from infinity is treated as parallel light, which is projected onto the surface of the image sensor through the optical system, and then the stars on the image sensor are created. Figure 6 shows the imaging model of the star sensor. As shown in Figure 6, \(o-xyz\) depicts a coordinate system of a star sensor, and \(p_{i}\) and \(p_{j}\) are the projections of stars on the surface of the image sensor, with their centroid coordinates being \((x_{i},y_{i})\) and \((x_{j},y_{j})\), respectively. The observation vectors for the stars \(p_{i}\) and \(p_{j}\) are \(w_{i}\) and \(w_{j}\), which are calculated as follows:  
\[\left\{ \begin{aligned} & w_{i}=\frac{1}{\sqrt{x_{i}^{2}+y_{i}^{2}+f ^{2}}}[-x_{i}-y_{i}\,f]^{T}\\ & w_{j}=\frac{1}{\sqrt{x_{j}^{2}+y_{i}^{2}+f^{2}}}\left[-x_{j}-y_ {j}\,f\right]^{T}\end{aligned} \right. \tag{11}\]  
where \(f\) represents the focal length of the star sensor. Similar to Formula (8), the angular distance between stars \(p_{i}\) and \(p_{j}\) is given by the following:  
\[ds_{ij}=arccos\left(\frac{w_{i}\cdot w_{j}}{|w_{i}||w_{j}|}\right) \tag{12}\]  
To effectively match the features of stars between the star image and the navigation feature library, a star identification algorithm based on a voting decision is proposed. During the optical system manufacturing of the star sensor, distortion is inevitable and the closer it is to the edge of the FOV, the greater the distortion will be. Therefore, selecting the stars closer to the center of the FOV is advisable during star identification, which could reduce the impact of distortion. As shown in the schematic star image in Figure 7, we choose those stars within the 3/4 FOV for star identification, and the stars near the edge of the FOV are discarded. Figure 6: The imaging model of the star sensor. The yellow stars represent the stars within the FOV of the star sensor. Assuming there are \(k\) stars within the 3/4 FOV of the star sensor, the \(C_{k}^{2}\) angular distances between these stars form the set \(M_{ds}\). In the basic unit \(M_{\theta}^{i}\) of the navigation feature library, all the angular distances in the set \(M_{ds}\) are sequentially searched. Based on the search results, voting is conducted for \(M_{\theta}^{i}\) by the following method:  
\[\left\{ \begin{aligned} & PTS_{i}=PTS_{i}+1,\left|ds_{ij}-\theta_{mn} \right|\leq\epsilon\\ & PTS_{i}=PTS_{i},\left|ds_{ij}-\theta_{mn}\right|>\epsilon\end{aligned} \right. \tag{13}\]  
where \(PTS_{i}\) represents the voting score of the basic unit \(M_{\theta}^{i}\), \(ds_{ij}\) represents the angular distance between stars \(p_{i}\) and \(p_{j}\) in \(M_{ds}\), \(\theta_{mn}\) represents the angular distance between stars \(m\) and \(n\) in the basic unit \(M_{\theta}^{i}\), and \(\epsilon\) is the error threshold. As shown in Formula (13), if two stars \(m\) and \(n\) in the basic unit \(M_{\theta}^{i}\) could obtain the angular distance \(\theta_{mn}\) and \(ds_{ij}\), equal within the error threshold \(\epsilon\), then the stars \(m\) and \(n\) match the stars \(p_{i}\) and \(p_{j}\). In this case, the voting score \(PTS_{i}\) of the basic unit \(M_{\theta}^{i}\) increases; otherwise, \(PTS_{i}\) remains unchanged. Since the number of angular distances in set \(M_{ds}\) is \(C_{k}^{2}\), the theoretical maximum voting score for the basic unit \(M_{\theta}^{i}\) is \(C_{k}^{2}\).