01-10-2009, 07:24 AM
CORDIC ALGORITHM
Radar works by bouncing electromagnetic energy off a target, recording the echo and making some useful observation from the data. A fundamental problem in radar is that the vast majority of the reflected energy does not make it back to the receiver. Much of the processing in a radar system is to improve the signal to noise ratio of the received signal and maximizing range accuracy to determine the position of the target with less error. Various techniques are available to the radar engineer for the design of high range solution system .These techniques may be categorized as simple pulse and pulse compression techniques. NEED FOR CORDIC Digital Signal Processing is dominated by microprocessors with enhancements , single cycle multiply-accumulate instruction and special addressing modes . Microprocessors are not fast enough for truly demanding DSP tasks. Algorithms optimized for these microprocessors based system do not map well into hardware.The advent of reconfigurable logic computers permits the higher speeds of dedicated hardware solution at costs that are competitive with the traditional software approach. Among these hardware-efficient algorithms is a class of iterative solutions for trigonometric and other transcendental functions that use only shifts & adds to perform. This trigonometric algorithm is called CORDIC. The trigonometric CORDIC algorithms were originally developed as a digital solution for real-time navigation problems CORDIC Theory: An algorithm for vector rotation CORDIC is an acronym for Coordinate Rotation Digital Computer. It is a hardware efficient algorithm, which belong to a class of iterative solutions that use only shifts & adds to perform a wide range of functions including certain trigonometric, hyperbolic, linear and logarithmic functions. CORDIC revolves around the idea of "rotating" the phase of a complex number, by multiplying it by a succession of constant values. however, the "multiplies" can all be powers of 2,so in binary arithmetic they can be done using just shifts and adds; no actual "multiplier" is needed