## 1 Introduction
The calibration methods proposed in the literature generally differ in modeling and estimating the uncertainties. GNSS array calibration can also be carried out with live line of sight signals since the satellite positions are known. Antenna calibration using GNSS signals and resulting challenges such as mutual coupling, phase centre variations, cross talk in the RF-front end and other effects have recently been studied in the literature [11; 12; 13; 14; 15]. This paper first derives a new model taking all of the factors that produce calibration uncertainties into account. This model separates the constant unknown parameters and those that are dependent on signals DOA to simplify the interpretation of the calibration uncertainties and, more importantly, enable the use of the calibration results for steering vector estimation. A two-stage optimization is employed to fit the measurements with the proposed model in which the first stage estimates the constant unknown parameters and the second stage finds the DOA dependent part and save them in the form of a set of look up tables, each of which assigns amplitude and phase compensation coefficients to one antenna element. In the next part of the paper, the second mode, which is the receiver operation mode, is described. During the calibration procedure, accuracy is the main concern rather than processing time and computational complexity since the calibration procedure for a fixed antenna array platform generally needs to be performed only once. However in applying the calibration results in the receiver operation mode, the processing time and computation complexity are important concerns. For this reason, in the operation mode, an iterative method with a very fast convergence is proposed to estimate the steering vectors of the satellite signals by applying the estimated calibration coefficients and matching the compensation phase and amplitude coefficients from prepared look up tables. In order to evaluate the performance and effectiveness of both methods introduced above, a set of real GPS L1 signals was collected and processed. The experimental set up was similar to [15] where a tactical grade IMU, to provide the orientation angles (pitch, roll, and heading) and an antenna array were mounted on a moving vehicle collecting GPS signals. In [15], an effective approach was proposed in which a certain number of virtual antennas was considered to take potential phase centre variations of 1 cm into account. For this purpose, a least squares algorithm was used to find the best fit for all measurements without assigning any explicit model to the uncertainties. In this approach, the virtual antennas were positioned at a distance of 1 cm from each physical antenna in each direction in the body frame coordinate system. This may reduce the accuracy of calibration since only the phase centre variations in certain positions and directions were considered. In Section 2 the system model is presented. Section 3 introduces the two-stage optimization for calibration, followed by proposing the iterative method for estimating satellite steering vectors. Practical tests and data analyses are provided in Section 4 and finally, Section 5 concludes the paper. _Notation_: Throughout this paper, the following notation is adopted: small bold letters stand for vectors and capital bold letters stand for matrices. Superscripts \(H\) and \(T\) denote conjugate transpose and transpose, respectively. Function _vec_(**A**) denotes the vectorization operator obtained by stacking the rows of the matrix **A** on top of one another. Function _diagMat_(**A**) returns a column vector of the main diagonal elements of **A** and function _diagVec_(**a**) returns a square diagonal matrix with the elements of **a**. (**A**)-1 and (**A**)* symbolize the inverse and pseudoinverse of matrix **A**, respectively. denotes the Euclidean norm of vector **a**. (**a**) and  denote vectors containing the amplitude and phase of the elements of **a**.