19-01-2013, 11:26 AM
Implementation of the CORDIC Algorithm in a Digital Down-Converter
1Implementation.pdf (Size: 794.55 KB / Downloads: 57)
Abstract
This paper shows that the CORDIC (COordinate Rotation by DIgital Computer) algorithm [6]
gives signi¯cant e±ciency gains over a Taylor approximation for calculating the sine and cosine functions
to a given precision for many applications implemented in hardware or a microcontroller. In the case
where the processor has no dedicated multiplier or trigonometric algorithm hardware, it is shown that
the CORDIC is over 14 times more e±cient when calculating the sine and cosine functions to 10 decimal
digits of precision. This implementation is tailored towards use by Amateur Radio enthusiasts in the
digital down-converter (DDC) of software de¯ned radio (SDR) applications on dedicated hardware.
Introduction
The need for a more e±cient implementation of a CORDIC (COordinate Rotation by DIgital Computer)
algorithm [6] arises from the desire to perform parallel demodulation of multiple narrowband signals from
a single complex baseband input. Inexpensive methods of implementing high-performance radio-frequency
(RF) receivers and analog to digital conversion have moved within the reach of experimenters and Amateur
Radio enthusiasts which has spawned interest in software de¯ned radio (SDR)[11, 12, 13, 14].
Many SDR receivers capture a much greater bandwidth than is required in order to perform tuning
operations in software. For example, PSK31 modulation [5] uses 31.25 Hz of bandwidth while the Softrock40
lite [3] receiver combined with a Creative Labs SB1090 provides 96 KHz of bandwidth. This both allows for a
more granular analog tuning step size and allows for hundreds (theoretically thousands but this is reduced by
practical considerations) of signals to be received simultaneously. The di±culty lies in the limited processing
power of the hardware that is performing the SDR functionality which in most cases is a microcontroller or
¯eld programmable gate array (FPGA).
System Description
System Overview
The receiver system used for this paper is the Softrock 40 lite with a Creative Labs SB1090 USB audio
interface. This provides reception of a 96 KHz section of the 40 meter Amateur Radio band from 7008 KHz
to 7104 KHz and provides 24 bits of (theoretical) resolution.
The signal is received from Gap Titan DX antenna [2] into the Softrock 40 lite where it is down-converted
to a complex baseband signal, bandpass ¯ltered, and ampli¯ed. The signal is then routed to the USB audio
interface where it is digitized and sent to the computer as shown in Figure 1. The signal is captured in the
PC with 24 bits of resolution at a 96 KHz sample rate for non-realtime processing.
Digital down-converter
The function of the digital down-converter software is to tune the receiver to a speci¯c frequency. The
input signal is 7056 KHz § 48 KHz and the signal of interest may be centered anywhere within this range.
The frequency shift is achieved by multiplying by ei!t were ! is the frequency shift in radians and t is time.
Let x(t) be the input signal with t = 0; 1; :::N samples at the sample rate which in this case is 96 KHz
so each sample is 1
96;000 seconds.
Algorithm Description and Implementation
The CORDIC algorithm was originally described by Jack Volder in 1959 while he worked for Convair
(a division of General Dynamics). The analog computer used on aircraft of the day was inadequate for the
B-58 Hustler aircraft which was the ¯rst supersonic bomber used by the US Air Force. The solution was
to replace analog computer by a digital computer that used the CORDIC algorithms to quickly perform
accurate trigonometric calculations for navigation [7].
Then in 1972, D.S. Cochran at Hewlett Packard used the algorithm in the HP-35 - the world's ¯rst
pocket calculator [4] - shown in Figure 4. Without this algorithm, it would likely not have been possible for
the HP-35 to perform trigonometric functions
Conclusion
The CORDIC algorithm is a good compromise of accuracy versus speed for this and many other appli-
cations. For platforms with built-in multipliers or dedicated hardware for trigonometric functions, there is
no bene¯t to using the CORDIC algorithm but on many platforms, such as many microcontrollers and ¯eld
programmable gate arrays (FPGAs), the CORDIC algorithm is over 14 times more e±cient.