EP0218724A1 - Fast sine and cosine generating apparatus - Google Patents

Fast sine and cosine generating apparatus

Info

Publication number
EP0218724A1
EP0218724A1 EP86903726A EP86903726A EP0218724A1 EP 0218724 A1 EP0218724 A1 EP 0218724A1 EP 86903726 A EP86903726 A EP 86903726A EP 86903726 A EP86903726 A EP 86903726A EP 0218724 A1 EP0218724 A1 EP 0218724A1
Authority
EP
European Patent Office
Prior art keywords
bits
digits
responsive
subsets
transcendental
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP86903726A
Other languages
German (de)
English (en)
French (fr)
Inventor
Sundaram Ganapathy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
AT&T Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by American Telephone and Telegraph Co Inc, AT&T Corp filed Critical American Telephone and Telegraph Co Inc
Publication of EP0218724A1 publication Critical patent/EP0218724A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size
    • G06F1/0356Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/04Trigonometric functions

Definitions

  • This invention relates to apparatus for quickly and accurately generating sine and cosine function values.
  • Trigonometric functions sin ⁇ and cos ⁇ are used extensively in diverse fields. The accuracy required for various applications, and the speed with which values need to be computed depend greatly on the application domain. However, the general trend in recent years has been to require both greater accuracy and higher computational speeds from the apparatus developing these trigonometric functions. This is particularly true in the field of robotics.
  • Prior art techniques for computing sines and cosines can broadly be divided into three categories. They are series expansion using polynomials, look-up tables with and without interpolation, and special techniques.
  • This method imposes a computational burden of one multiplication and one addition but significantly reduces the storage requirement of the look-up table.
  • must be smaller than 2 - ( N - 1 )/2 .
  • this requirement translates to a largest acceptable ⁇ of 2 2 -N/2 or to2 -N/2 for even values of N (where N is the desired precision of the sine and cosine functions) and a ⁇ 1 that is specified to (N/2) bits.
  • the look-up table needs to contain 2 (N/2) entries of N bits each. For example, in order to obtain a sin ⁇ with a 24 bit precision arrangement, each of the look-up tables must have 2 ( 12 ) words.
  • Other ways of computing sines and cosines use neither a polynomial expansion nor table look-ups.
  • CORDIC Coordinate Potation Digital Computer
  • is approximated by a series of angles with unique (apriorily defined) magnitudes and, consequently, it turns out that this method, involves nothing more than a sequence of additions and shifts (because of the power of 2 relationship) followed by one multiplication.
  • This method requires only a small memory but its operation is inherently iterative and sequential.
  • the series expansion method is used predominantly in general purpose computers and is implemented with function generating subroutines.
  • the table look-up technique is often used in image processing and robotics where the function values must be generated very fast.
  • the CORDIC method is used primarily in calculators where speed and accuracy can generally be sacrificed for the sake of simplicity. The problem is that none of these methods, however, is able to develop sines and cosines with both great precision and speed.
  • FIG. 1 depicts a three-way division of an angle ⁇ , specified by a binary word of 24 bits
  • FIG. 2 describes an arrangement for developing the sine function with a two-way division of angle ⁇
  • FIG. 3 describes an arrangement for developing the sine function with a four-way division of the angle ⁇
  • FIG. 4 describes an arrangement for developing the cosine function with a four-way division of the angle ⁇
  • FIG. 5 illustrates a variation of the FIG. 3 apparatus employing an approximation technique.
  • accurate evaluations of the sine and cosine functions are realized via a division of tne angle whose trigonometric function is to be developed into a plurality of component angles.
  • the trigonometric function is developed by deriving the sine and cosine values of the component angles and linearly combining them in accordance with particular trigonometric equations.
  • High computational speed is realized by deriving the sine and cosine values from look-up tables and combining the sine and cosine values in parallel.
  • the high computational speed is enhannced and small size is realized by dividing the angle whose function is to be evaluated into a plurality of component angles based on the radix used in the digital representation of the angle and, furthermore, by creating the component angles so that the necessary look-up tables are approximately equal in size.
  • This apparatus for accurately developing the value of trigonometric functions makes use of the above identities, but with a particular division of the angle ⁇ .
  • the angle ⁇ is divided into component angles strictly in accordance with the digital representation of the angle ⁇ , and not based on the value of ⁇ or the value of its components. More particularly, the angle ⁇ is divided so that each of the component angles can be specified by a disjoint subset of the digits defining the angle ⁇ and so that the number of digits in each of the resulting disjoint subsets is selected to reduce the overall required hardware to develop the desired trigonometric function.
  • FIG. 1 depicts a three-way division of an angle ⁇ , specified by a binary word of 24 bits, in accordance with my invention.
  • Angle ⁇ is divided into angles A, B, and C such that A is completely defined by the 8 most significant bits of the binary number defining angle ⁇ , angle C is completely defineed by the 8 least significant bits of the binary word defining angle ⁇ , and angle B is completely defined by the middle 8 bits of the binary word defining angle ⁇ .
  • FIG. 1 is merely illustrative of my invention and that different word sizes, a division other than into thirds, and a positional representation of the angle ⁇ other than binary are all within the scope of tnis invention.
  • FIG. 2 describes an arrangement for developing the sine function with a two way division of angle ⁇ .
  • angle ⁇ is taken to have 24 bits.
  • angle ⁇ is diviided into an angle A defined by the 12 most significant bits of ⁇ and into an angle B defined by the 12 least significant bits of ⁇ .
  • Angle A is applied to sine table 100 and to cosine table 110.
  • angle B is applied to sine table 120 and to cosine table 130.
  • Tables 120 and 130 contain the sine and cosine values, respectively, for angles that range from 0 to (2 12 -1)/2 24 in increments of 1/2 24 , and tables 100 and
  • FIG. 2 apparatus requires slightly more hardware than the interpolation technique, unlike the interpolation technique, the apparatus of FIG. 2 offers increased precision without that size of the look-up table. A much more advantageous result is achieved when, in accordance with the principles of this invention, the angle ⁇ is divided into more than two angles. With a division of the binary representation of angle ⁇ as depicted in FIG. 1, for example, the sine of ⁇ can be realized with apparatus as shown in FIG.
  • FIG. 3 and the cosine of ⁇ can be realized with apparatus as shown in FIG. 4.
  • the 8 bits defining angle A are applied to sine look-up table 10 and to a cosine look-up table 11.
  • the 8 bits defining angle B are applied to a sine look-up table 12 and to a cosine look-up table 13.
  • the 8 bits defining angle C are applied to a sine look-up table 14 and a cosine look-up table 15.
  • multiplier 21 receives input from sinA table 10 and cosB table 13.
  • the output of multipler 21 is applied to multiplier 22 which receives a second input from cosC table 15.
  • the output signal of multiplier 22 thus forms the first term in the above trigonometric identity.
  • Multiplier 23 receives input from sunA table 10 and from sinB table 12.
  • the output off multiplier 23 is applied to multiplier 24 which receives a second input from sinC table 14.
  • the output signal of multiplier 24 thus forms the second term in the above trigonometric identity.
  • Multiplier 25 receives input from cosA table 11 and from sinB table 12.
  • the output of multiplier 25 is applied to multiplier 26 which receives a second input from sinC table 14.
  • multiplier 26 thus forms the third term in the above trigonometric identity.
  • multiplier 27 receives input from cosA table 11 and from cosE table 13.
  • the output of multiplier 27 is applied to multiplier 28 which receives a second input from cosC table 15.
  • the output of multiplier 28 forms the fourth and last term in the above trigonometric identity.
  • the four outputs of multipliers 22, 24, 26 and 28 are applied to summing network 30 which appropriately adds and substracts the four terms.
  • the output of summing network 30 forms a 24 bit sine value of the input angle ⁇ .
  • FIG. 4 is almost identical to FIG. 3, with the only difference being the specific connections between look-up tables 10-15 and multipliers 21-28.
  • the connections to multipliers 10-15 and the selection of addition or subtraction in summing network 30 are made in accordance with the trigonometric identity for the cosine of angle (A+B+C), which is
  • Each one of the sine and cosine look-up tables in FIGS. 3 and 4 has an 8 bit input and, therefore, each of the look-up tables needs to have only 2 8 entries, or 256 words. Each word, however, can have as many bits as the desired accuracy of the sine and cosine function.
  • the total memory requirement of 6 tables of 256 words each of FIG. 3 compares quite favorably with tne total requirement of 4 tables of 4096 words each of FIG. 2, and even more favorably with the memory requirement of a single look-up table of approximately 400 million words.
  • the advantage of dividing angle ⁇ into three components increases when the level of desired precision is increased.
  • the precision of the output values in the apparatus of FIG. 3 and 4 is not a function of the size of the look-up tables but, rather, a function of the word lengths in the look-up tables. Since the process of the FIGS. 3 and 4 is not an approximation, increasing the stored word size is all that is necessary to increase precision. However, once the precision level at the output is selected, the approximation technique described above can be applied to further reduce the required storage.
  • FIG. 5 illustrates a variation of the FIG. 3 apparatus, employing the approximation technique by realizing that angle C is very small and its sine and cosine can be approximated.
  • SinC table 14 is replaced with the angle itself and cosC table 15 is eliminated. Since cosC is approximated with 1, multipliers 22 and 26 are also eliminated, allowing the output of multipliers 21 and 25 to be applied directly to summing network 30.
  • division of the angle ⁇ may follow a slightly different approach. Specifically, given a desired output precision, P, a number of most significant bits corresponding to the integer part of (P+1)/2 are selected and equally divided between angles A and B, and the remaining bits of the input angle are assigned to angle C.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
EP86903726A 1985-04-22 1986-04-10 Fast sine and cosine generating apparatus Withdrawn EP0218724A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US72592185A 1985-04-22 1985-04-22
US725921 2000-11-30

Publications (1)

Publication Number Publication Date
EP0218724A1 true EP0218724A1 (en) 1987-04-22

Family

ID=24916477

Family Applications (1)

Application Number Title Priority Date Filing Date
EP86903726A Withdrawn EP0218724A1 (en) 1985-04-22 1986-04-10 Fast sine and cosine generating apparatus

Country Status (4)

Country Link
EP (1) EP0218724A1 (ja)
JP (1) JPS62502576A (ja)
KR (1) KR880700350A (ja)
WO (1) WO1986006517A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2248355B (en) * 1990-09-26 1994-07-13 British Aerospace Digital chirp generator
US6661852B1 (en) 1999-07-21 2003-12-09 Raytheon Company Apparatus and method for quadrature tuner error correction
US6640237B1 (en) 1999-07-27 2003-10-28 Raytheon Company Method and system for generating a trigonometric function
US6590948B1 (en) 2000-03-17 2003-07-08 Raytheon Company Parallel asynchronous sample rate reducer
US6647075B1 (en) 2000-03-17 2003-11-11 Raytheon Company Digital tuner with optimized clock frequency and integrated parallel CIC filter and local oscillator
US9875084B2 (en) 2016-04-28 2018-01-23 Vivante Corporation Calculating trigonometric functions using a four input dot product circuit

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4077063A (en) * 1976-08-11 1978-02-28 The Singer Company Apparatus for rapidly determining the trigonometric functions of an input angle

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO8606517A1 *

Also Published As

Publication number Publication date
KR880700350A (ko) 1988-02-22
WO1986006517A1 (en) 1986-11-06
JPS62502576A (ja) 1987-10-01

Similar Documents

Publication Publication Date Title
US5737253A (en) Method and apparatus for direct digital frequency synthesizer
KR0146334B1 (ko) Cordic 복소수 승산기
Hu et al. An angle recoding method for CORDIC algorithm implementation
Cavallaro et al. CORDIC arithmetic for an SVD processor
Schulte et al. Hardware designs for exactly rounded elementary functions
US4130878A (en) Expandable 4 × 8 array multiplier
US4267580A (en) CCD Analog and digital correlators
US4747067A (en) Apparatus and method for approximating the magnitude of a complex number
Juang et al. High-performance logarithmic converters using novel two-region bit-level manipulation schemes
US4956799A (en) Trigonometric function arithmetic processor using pseudo-division
WO1994018633A1 (en) High speed function generating apparatus and method
US5337266A (en) Method and apparatus for fast logarithmic addition and subtraction
EP0218724A1 (en) Fast sine and cosine generating apparatus
Ahmed Efficient elementary function generation with multipliers
US3569684A (en) Sine-cosine generator comprised of a diode array
US4709345A (en) Apparatus for executing Chinese remainder theorem for residue decoding through quotient-remainder conversion
Considine CORDIC trigonometric function generator for DSP
Wei et al. Divide and conquer: floating-point exponential calculation based on Taylor-series expansion
US6055553A (en) Apparatus for computing exponential and trigonometric functions
Muscedere et al. On efficient techniques for difficult operations in one and two-digit DBNS index calculus
Hu et al. Angle recording method for efficient implementation of the CORDIC algorithm
JPH08504046A (ja) 浮動小数点2進数を2進形式における対数に変換しまたはその逆変換をするための装置
Ahmed et al. A VLSI array CORDIC architecture
Chih et al. A fast CORDIC algorithm based on a novel angle recoding scheme
McIlhenny et al. On the design of an on-line FFT network for FPGA's

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): BE DE FR GB IT NL

17P Request for examination filed

Effective date: 19870427

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

18W Application withdrawn

Withdrawal date: 19871109

RIN1 Information on inventor provided before grant (corrected)

Inventor name: GANAPATHY, SUNDARAM