# An Improved Back-Projection Algorithm for GNSS-R BSAK Imaging Based on CPU and GPU Platform
## 2 Materials  
We consider a ground-based stationary receiving platform collecting the signals emitted from a GNSS satellite and reflected by a stationary scene. Figure 1 shows the geometric configuration of GNSS-R BSAR, where the origin \(O\) is set to center of the \(XYZ\) coordinate system, \(P(x_{p},y_{p},0)\) is an arbitrary point target in the imaging area (the targets are assumed to be located on the \(XOY\) plane). \(T\) and \(R\) are the transmitter (navigation satellite) and fixed receiver, respectively. The transmitter is located at \(T(x_{T}(t),y_{T}(t),z_{T}(t))\), while the receiver at \((x_{R},y_{R},z_{R})\). \(R_{T}(t)\) is the distance between the satellite \(T\) and target \(P\), \(R_{R}\) is the distance between the receiver \(R\) and target \(P\), \(R_{B}(t)\) is the distance between the satellite \(T\) and receiver \(R\). \(R_{T}(t)\), \(R_{R}\), and \(R_{B}(t)\) can be expressed as  
\[R_{T}(t)=\sqrt{\left(x_{T}(t)-x_{p}\right)^{2}+\left(y_{T}(t)-y_{p}\right)^{2} +\left(z_{T}(t)-z_{p}\right)^{2}} \tag{1}\]  
\[R_{R}=\sqrt{\left(x_{R}-x_{p}\right)^{2}+\left(y_{R}-y_{p}\right)^{2}+\left(z _{R}-z_{p}\right)^{2}} \tag{2}\]  
\[R_{B}(t)=\sqrt{\left(x_{T}(t)-x_{R}\right)^{2}+\left(y_{T}(t)-y_{R}\right)^{2} +\left(z_{T}(t)-x_{R}\right)^{2}} \tag{3}\]  
The range history is \(R(t)=R_{T}(t)+R_{R}\).  
GNSS-R BSAR's receiver contains two channels, a direct channel, and an echo channel. The direct channel connects a Right-Handed Circularly Polarized (RHCP) omnidirectional antenna for receiving direct signals from GNSS satellites, which is used to realize system positioning and obtain accurate carrier phase and code phase to provide reference information for signal synchronization. Based on the Stop-Go model [36], the length of a ranging code (for GPS C/A code is 1 ms) is equivalent to the width of the range pulse. After quadrature demodulation and SAR data formatting [36], the direct signal can be expressed as a two-dimensional form  
\[s(\eta,\tau)=W(\eta)N(\eta)C\left[\tau-\frac{R_{B}(\eta)}{c}\right]\exp\left[ -j2\pi f_{c}\frac{R_{B}(\eta)}{c}\right] \tag{4}\]  
\(\eta\) is the azimuth time, also called slow time, \(\tau\) is the range time, also called fast time. \(W(\eta)\) is the envelope of the received signal in the azimuth dimension, which is a  
Figure 1: Geometric configuration of the GNSS-R BSAR.  
rectangular window. \(N(\eta)\) is the data code of the navigation signal, \(C(\tau)\) is the ranging code sequence, \(f_{c}\) is the carrier frequency of the transmitted signal, and \(c\) is the speed of light. The echo channel connects a high-gain Left-Handed Circular Polarized (LHCP) antenna to receive the echo signal from the target area. After removing the data code, the echo signal can be expressed as  
\[s_{r}(\eta,\tau)=W(\eta)C\left[\tau-\frac{R(\eta)}{c}\right]\exp\left[-j2\pi f _{c}\frac{R(\eta)}{c}\right] \tag{5}\]  
The direct channel and echo channel use the same oscillator to mix the sampling signal, and the analog-to-digital converter chips for sampling the direct signal and echo use the same clock. After demodulation, the signals are sampled and stored by a large storage data collector for postprocessing.