GPS-RO
Model of refractive index
| f_refraction2 : | |
Built a model of refractive index. It use a satandard exponential model : Cdry = 77,6 10-2 Rdry = 287,16 H = 7,5 |
|
| input parameters : NN : number of layer |
output parameters : n : array containing the
refractive index n=[1 n1 n2
1]. length(n)=NN+1 |
Algorithm of raytracing
| g_raytracing : | |
This algorithm of raytracing is based on 4 functions. it permits to calculate the ray from a point on the LEO to the GPS orbit. the intersections point with each layers is calculated.It uses the model of refractive index given by f_refraction2. |
|
| input parameters : phi_L_rad : it is f L on the figure 14
of the rapport. It is the initial angle of the ray. |
output parameters : flag : it is the
parameter that say if the ray meet the atmosphere or not (flag=1 ®
the ray meet the atmosphere, flag=0 ® the ray do not meet the
atmosphere) |
| g_ini : | |
Calculate the first intersection of the ray from the LEO with the first upper layer. |
|
| input parameters : phi_l_rad
: it is f L on the figure 14
of the rapport. It is the initial angle of the ray. |
output parameters : flag :
it is the parameter that say if the ray meet the atmosphere or not (flag=1 ® the ray meet the atmosphere, flag=0 ®
the ray do not meet the atmosphere) |
| g_snell : | |
Calculate an intersection of the ray with a lower layer. |
|
| input parameters : angle_rad_in : it is a calculated for the previous layer |
output parameters : flag_R :according to the
parameters : refractive index, radius, incident angle. flag_R=1 ®
the ray intercept the next layer, , flag_R=0 ® the ray do not
intercept the next layer |
| g_snell2 : | |
Calculate an intersection of the ray with aupper layer. while flag_R=1 it is the function g_snell which is used in the raytracing algorithm. when flag_R=0, it is the function g_snell2 which is used |
|
| input parameters : angle_rad_in : it is a calculated for the previous layer |
output parameters : flag_R :according to the
parameters : refractive index, radius, incident angle. flag_R=1 ®
the ray intercept the next layer, , flag_R=0 ® the ray do not
intercept the next layer |
| f_delay : | |
Calculate the time of ray propagation in current layer according to the refractive index n. The ray goes from the point of coordinates (x1,y1) to the point (x2,y2). tps = L1 = sqrt((x2-x1)^2+(y2-y1)^2); |
|
| input parameters : x1,y1 : coordinates
of the intersectionn point with previous layer |
output parameters : tps : time of ray propagation in current layer according to the refractive index n. |
Algorithm of initialisation of Radio Occultation
Since we do not, for the moment, have an imposed satellite geometry, we must choose an
initial position for the LEO and the GPS that will furnish an occultation, The function g_position
do this job.
Normally, the position of both satellites are provided during a radio occultation
In our case, we dont know these positions, thus we chose them.
These position correspond to the last measurement during the radio occultation (it is the
ray with the nearest tangent point with the Earth).
From this initial point, we begin the occultation, we obtain a range of ray from
the lower tangeant point to the higher one. Now it is simple to consider the last ray of
our simulation as the first ray of the radio occultation in real conditions.
To find the initial position, we get a random point on the LEO orbit, then we calculate
the tangeant with the surface of the earth and this point using the function f_tangeant
and we obtain an intersection point with the GPS orbit using the function f_interbis.
It is possible from this straight line to calculate the angle phi_l_rad = f L, then we
make a raytracing while while (flag_touch = 0) and we incremante the initial angle f L=f L+D i. when
flag_touch = 1, we have the initial angle.
| g_position : | |
Calculate the initial position of the Radio Occultation |
|
| input parameters : xl,yl : random
point on LEO orbit |
output parameters : phi_L_ini : it is the initial angle f L |
Algorithm of detection
from this initial position of both satellites to simulate a radio occultation.
At each epoch of measurement of the receiver, we need to find the position of the GPS at
the time when it emits the signal. It is the job of the function f_detecction2.
As there is a delay of propagation D t, if the receiver
measures the signal at UTC time, this signal was emitted at UTC time minus D t. We use a global time reference. The algorithm of initialisation
gives the position of GPS and LEO.
The parameter te is the period of sample measurement of the LEO. The signal
arriving at the LEO at time k*te was emitted at time k*te-D tk where D tk is
the delay of the signal arriving at time k*te to go from the GPS to the LEO.
At each epoch i*te, we have to find the position of the GPS at the time it
emitted the signal arriving at time i*te which is consistent with velocity of both
spacecraft. We have functions f_orbite_LEO and f_orbite_GPS which gives the positions of
the satellites given the initial position, direction, and time. The satellites are moving
in orbits of opposite direction. We attribue a value to the parameter sens: sens = 1 for
the positive direction and sens = 0 for the negative direction. We use two orbit
propagateur functions : f_orbite_LEO and f_orbite_GPS.
In order to find the position xg1,yg1, we sweep over a range of
takeoff angles at the position xl1,yl1 (we use f_LEO(xl0,yl0,te,1)=(xl1,yl1)).
We calculate for each angle the position of the ray intersecting the GPS orbit (xg1,yg1)
and the corresponding time delay. We use this time delay to find the position of the GPS
on its orbit at the time t1, see figure 24, by using the function
f_orbite_GPS(xg0,yg0,t1,0)=( xg_out1, yg_out1).
With the function f_ou, we can know if the interction is upper or lower
than the real position of the GPS on its orrbit. We calculate the distance d between the
point of intersection (xg1,yg1) and (xg_out1, yg_out1).
We do this for each angle until the distance is less than a critereon e
.When we have found the raypath wich gives a distance d <e ,
we consider that the signal was emitted by the GPS at the position (xg1,yg1)
.
The idea to extend the algorithm in case of multipath is to sweep over a range of angles
to detect more than one raypath giving the distance d<e.
Several dichotomies on the initial angle are calculated in different regions.
| f_detection2 : | |
Calculate the raytracing of a ray from a reception position of the LEO and a universal time. |
|
| input parameters : flag :if flag=0, ray is out atmosphere teta_inibis : Initial angle of the dichotomy delta_t_in : Time of ray propagation for previous ray xl_in,yl_in : Position of LEO at reception o_leo : It is the number o_leo of ray in global RO. xg_ini,yg_ini : Position of GPS for previous ray tp_leo : Time reception of LEO r_gps : Radius of GPS orbit (r,n) : It is the parameters of the refractive index model given by the algorithm of refractive index model |
output parameters : d : Precision distance xg,yg : Position of GPS at the emission of the ray teta_out : Final angle of the dichotomy Xa,Ya : Array containing samples of the raytracing delta_t_out : Time of ray propagation L : Number of sample of the raytracing |
Program to simulate a global Radio occultation
The program detection calculate the all ray going from the
GPS to the LEO during a Radio occultation. It uses the function f_refraction2 for the
model of refrractive index then the function g_position for the initialisation. finally,
it uses the function f_detection2 to built the real raytracing by taking into account the
motion of both satellites
| detection: | |
Calculate all the raytracing between GPS and LEO |
|
| input parameters : NN : Number of layers |
output parameters : X : 2-D array, each line
contains x-samples of a raytracing |
Program to find a multipath in a given layer for
a immobile LEO
| multipath: | |
f_refraction2.m | f_refraction2.c |
|
Calculate the needed changing in the refractive index for a given layer which can produce multipath according to a precision. |
|
| input parameters : NN :
Number of layers |
output parameters : erreur :
error of the result |
Program to calculate the all raytracing from the GPS to the immobile LEO
| raymulti: | |
The program raymulti calculate all the raytracing in the case where you have a multipath in a choosen layer.It get the change in the refractivee index by calculate this change with multipath program |
|
| input parameters : NN :
Number of layers |
output parameters : X : 2-D array, each line
contains x-samples of a raytracing |
Page last modified 27 August-1999
Mail to jh@acri.fr