Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Computing The Satellite's Coordinates Using CORDIC Algorithm

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

International Journal of Emerging Technologies and Engineering (IJETE) ISSN: 23488050

ICRTIET-2014 Conference Proceeding, 30th -31st August 2014

Computing the Satellites Coordinates using CORDIC Algorithm


Ms. Ankita Sharma * Mrs. Neha Sharma** Mrs. Sukomal
**M. Tech. Scholar, S.G.T. Institute of Engineering & technology, Gurgaon
** Asst. Professor, SGTIET, Gurgaon
*** Asst. Professor, SGTIET, Gurgaon

Abstract
This paper describes the application of the CORDIC
Algorithms to find the coordinates of the satellite in the
x-y plane. The mathematical and analytical approach for
the CORDIC algorithm implementation is presented here
which shows that CORDIC algorithm revolves around
the idea of "rotating" the phase of a complex number, by
multiplying it by a succession of constant values.
Keywords: algorithm, azimuth, coordinates, CORDIC,
Elevation, Look angles.

2. MATHEMATICAL ANALYSIS
General equations for a vector rotation lays the
foundation for derivation of the Volder's CORDIC
algorithm. If a vector V with coordinates (x, y) is rotated
through an angle then a new vector V ' can be obtained
with coordinates (x', y') where x' and y' can be obtained
using x, y and by the following method.
X = r cos , Y = r sin
(1)
(x) = (x. cos () y.sin ())
(2)
(y) = (y.cos () +x.sin ())
(3)

1. INTRODUCTION
The coordinates to which an earth station
antenna must be pointed to communicate with the
satellite are called the Look Angles. These are most
commonly expressed as azimuth (Az) and elevation (El).
Azimuth is measured eastwards from the geographic
north to the projection of the satellite path on a locally
horizontal plane at the earth station. Elevation angle is
measured upward from the local horizontal plane at the
earth station to the satellite path.
Fig. 2: Rotation of a vector V by angle

Fig. 1: Look Angles for a Satellite


The name CORDIC is an acronym for Coordinate
Rotation Digital Computer. In 1959 Jack E. Volder
described the Coordinate Rotation Digital Computer or
CORDIC for the calculation of trigonometric functions,
multiplication, division and conversion between binary
and mixed radix number systems. The CORDICalgorithm provides an iterative method of performing
vector rotations by arbitrary angles using only shift and
add.

x = cos()[x - y.tan()]
(4)
y = cos()[y + x.tan()]
(5)
The multiplication by the tangent term can be avoided if
the rotation angles and therefore tan() are restricted so
that tan() =2-i .In digital hardware this denotes a simple
shift operation. Furthermore, if those rotations are
performed iteratively and in both directions every value
of tan () is presentable with = arctan(2-i ) the cosine
term could also be simplified and since cos() = cos(-)
it is a constant for a fixed number of iterations. This
iterative rotation can now be expressed as:
xi+1 = ki [xi yi.di.2-i]
(6)
yi+1 = ki [yi xi.di.2-i]
(7)
where, i denotes the number of rotation required to reach
the required angle of the required vector, cos(arctan(2-i ))
and di = 1. The product of the Kis represents the socalled K factor :

Divya Jyoti College of Engineering & Technology, Modinagar, Ghaziabad (U.P.), India

38

International Journal of Emerging Technologies and Engineering (IJETE) ISSN: 23488050


ICRTIET-2014 Conference Proceeding, 30th -31st August 2014
1
=0

k=

(8)

1
Where
=0 = cos0 cos1 cos2 cos3 cos4
.................cosn-1( is the angle of rotation here for n
times rotation).

Table 1: Values of Angles for 8-bit CORDIC H/W

d-i =
2 =tani
1

i=
arctan(2-i)
45o

in radian
0.7854

0.5

0.4636

0.25

26.565o
14.036o

0.125

0.1244

0.0625

7.125o
3.576o

0.03125

0.0312

0.015625

1.7876o
0.8938o

0.0078125

0.4469o

0.0078

-i

0.2450
0.0624
0.0156

Ki is the gain and its value changes as the number of


iteration increases. For 8-bit hardware CORDIC
approximation method the value of ki as
ki = 7=0 cos = cos0 . cos1 . cos2. cos3 . cos4 .
cos5 . cos6 . cos7
=cos45.cos26.565.. cos0.04469 = 0.6073
(9)
From the above table it can be seen that precision up to
0.4469 is possible for 8-bit CORDIC hardware.
To simplify each rotation, picking i (angle of rotation in
ith iteration) such that i = di . 2-i . di is such that it has
value +1 or -1 depending upon the rotation i. e. di {+1,1} . Then
xi+1 = xi - di yi 2i
(9)
yi+1 = yi - di xi 2-I
(10)
zi+1 = zi - di tan-12-I
(11)
The computation of xi+1 or yi+1 requires an i-bit right
shift and an add/subtract. If the function tan-12-i is pre
computed and stored in table (Table 3.1) for different
values of i, a single add/subtract suffices to compute zi+1.
Each CORDIC iteration thus involves two shifts, a table
lookup and three additions. If the rotation is done by the
same set of angles (with + or - signs), then the expansion
factor K, is a constant, and can be pre computed. For
example to rotate by 30 degrees, the following sequence
of angles be followed that add up to 30 degree.
30.0 45.0 - 26.6 + 14.0 - 7.1 + 3.6 + 1.8 - 0.9 + 0.4 0.2 + 0.1
= 30.1

In effect, what actually happens in CORDIC is that z is


initialized to 30 degree and then, in each step, the sign of
the next rotation angle is selected to try to change the
sign of z; that is, di = sign ( zi ) is chosen, where the sign
function is defined to be -1 or +1 depending on whether
the argument is negative or non-negative. This is
reminiscent of no restoring division. Table 2 shows the
process of selecting the signs of the rotation angles for a
desired rotation of +30 degree.
Table 2: Choosing
force z to zero
I
0
1
2
3
4
5
6
7
8
9

the signs of the rotation angles to


zi - i
+30.0 - 45.0
- 15.0 + 26.6
+ 11.6 - 14.0
- 2.4 + 7.1
+ 4.7 - 3.6
+ 1.1 - 1.8
- 0.7 + 0.9
+ 0.2 - 0.4
- 0.2 + 0.2
+ 0.0 - 0.1

zi+1
-15
11.6
-2.4
4.7
1.1
-0.7
0.2
-0.2
0
-0.1

Figure 3: First three of 10 iteration leading from (x0, y0)


to (x 1, y1) in rotating by +30, rotation mode.

3. ALGORITHMIC APPROACH
CORDIC can be used to calculate a number of
different functions. This explanation shows how to use
CORDIC in rotation mode to calculate sine and cosine
of an angle, and assumes the desired angle is given in
radians and represented in a fixed point format. To
determine the sine or cosine for an angle , the y or x
coordinate of a point on the unit circle corresponding to
the desired angle must be found. Using CORDIC, we
would start with the vector vo:
vo= [1,0]
(12)

Divya Jyoti College of Engineering & Technology, Modinagar, Ghaziabad (U.P.), India

39

International Journal of Emerging Technologies and Engineering (IJETE) ISSN: 23488050


ICRTIET-2014 Conference Proceeding, 30th -31st August 2014

In the first iteration, this vector would be rotated 45


counterclockwise to get the vector v1. Successive
iterations will rotate the vector in one or the other
direction by size decreasing steps, until the desired angle
has been achieved. Step i size is arctan (1/(2i1)) for
i = 1, 2, 3, .

Fig 4: Flowchart for CORDIC Algorithm

4. CONCLUSION
This paper presents mathematical and analytical
aspects of implementing the CORDIC algorithm for
satellites communication. For sinusoidal angle
calculations in look angle computations this method can

provide n-bit accuracy for n iterations. This method is


much simpler than the conventional methods as the
computations are reduced to only shift and add
operations instead of the complex multiplication
operations. On the other hand, when a hardware
multiplier is available (e.g. in a DSP microprocessor),
table-lookup methods and power series are generally
faster than CORDIC.
REFERENCES
[1] Ayansola, O.D, Mathematical modelling of antenna
look angles of geostationary communications satellite
using two models of control stations IEEE Conference
Publications- 3rd International Conference on Advanced
Computer Theory and Engineering (ICACTE), 2010
[2] Ogundele, D.A. Model validation and analysis of
antenna look angles of geostationary satellite. IEEE
Conference Publications . International Conference on
Computer Science and Automation Engineering
(CSAE), 2012
[3] R.Andraka. A Survey of CORDIC Algorithms for
FPGA Based Computersn Proc. Of the 1998
CM/SIGDA Sixth International Symposium on FPGAs,
February1998, Monterey, CA, pp.191-200.
[4] P.W.Baker. Suggestion for a Binary Cosine
Generator, IEEE Transactions on Computers, February,
1975, pp. 1134-1136.
[5] M.Marx. FPGA Implementation of sin(x) and cos(x)
Generators Using the CORDIC Algorithm, Final Year
Project Report, School of Electronic Engineering,
University of Surrey, Guidford, UK, 1999. s
[6] P.Pirsch. Architectures for Digital Signal Processing,
John Wiley & Sons,1998.
[7] N.Takagi. Redundant CORDIC Methods with a
Constant Scale Factor for Sine and Cosine Computation,
IEEE Trans. On Comput., vol. 40, n 9, 1991, pp. 989994.
[8] D.Timmerman, H.Hahn, B.J.Hosticka, B.Rix. A New
Addition Scheme and Fast Scaling Factor Compensation
Methods for CORDIC algorithms, Integration the
VLSI Journal, vol. 11, n 1, 1991, pp. 85-100.
[9] A.Vlachos. Design and Implementation of CORDIC
Modules for ADCS, MSc Project Report, School of
Electronic Engineering, University of Surrey, Guidford,
UK, 1999.
[10] J.Volder. The CORDIC Computing Technique, IRE
Trans. Comput., Sept.1959, pp.330-334.
[11] J.S. Walther. A Unified Algorithm for Elementary
Functions, Proc. AFIPS Spring Joint Computer
Conference, pp.379-385, 1971.

Divya Jyoti College of Engineering & Technology, Modinagar, Ghaziabad (U.P.), India

40

You might also like