WO1986006517A1 - Dispositif de production rapide de valeurs de fonctions sinus et cosinus - Google Patents

Dispositif de production rapide de valeurs de fonctions sinus et cosinus Download PDF

Info

Publication number
WO1986006517A1
WO1986006517A1 PCT/US1986/000735 US8600735W WO8606517A1 WO 1986006517 A1 WO1986006517 A1 WO 1986006517A1 US 8600735 W US8600735 W US 8600735W WO 8606517 A1 WO8606517 A1 WO 8606517A1
Authority
WO
WIPO (PCT)
Prior art keywords
bits
digits
responsive
subsets
transcendental
Prior art date
Application number
PCT/US1986/000735
Other languages
English (en)
Inventor
Sundaram Ganapathy
Original Assignee
American Telephone & Telegraph Company
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 & Telegraph Company filed Critical American Telephone & Telegraph Company
Publication of WO1986006517A1 publication Critical patent/WO1986006517A1/fr
Priority to KR860700907A priority Critical patent/KR880700350A/ko

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)

Abstract

Dispositif permettant de développer rapidement des fonctions sinus et cosinus par une division de l'angle dont la fonction trigonométrique doit être développée en une pluralité d'angles composants. Les valeurs du sinus et du cosinus des angles composants sont obtenues à partir de tables de consultation (10, 11, 12, 13, 14, 15) et combinées de manière appropriée (30). On atteint une vitesse élevée de calcul en créant la pluralité d'angles composants en se fondant sur la base utilisée dans la représentation numérique de l'angle et, en outre, en créant les angles composants de sorte que les tables de consultation présentent des tailles approximativement égales.
PCT/US1986/000735 1985-04-22 1986-04-10 Dispositif de production rapide de valeurs de fonctions sinus et cosinus WO1986006517A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR860700907A KR880700350A (ko) 1985-04-22 1986-12-18 초월 함수 발생기

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US72592185A 1985-04-22 1985-04-22
US725,921 1985-04-22

Publications (1)

Publication Number Publication Date
WO1986006517A1 true WO1986006517A1 (fr) 1986-11-06

Family

ID=24916477

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1986/000735 WO1986006517A1 (fr) 1985-04-22 1986-04-10 Dispositif de production rapide de valeurs de fonctions sinus et cosinus

Country Status (4)

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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0478264A1 (fr) * 1990-09-26 1992-04-01 Matra Marconi Space Uk Limited Générateur balayé numérique
WO2001007992A1 (fr) * 1999-07-27 2001-02-01 Raytheon Company Generation de fonction trigonometrique et systeme a cet effet
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
US6661852B1 (en) 1999-07-21 2003-12-09 Raytheon Company Apparatus and method for quadrature tuner error correction
US9875084B2 (en) 2016-04-28 2018-01-23 Vivante Corporation Calculating trigonometric functions using a four input dot product circuit

Citations (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

Patent Citations (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 (2)

* Cited by examiner, † Cited by third party
Title
Electronics, Volume 43, No. 6, 16 March 1970, (New York, US), ROSS et al.: "Trig Function Generators", pages 35-36 see page 35, column 1, line 25 - column 2, line 2 *
PATENTS ABSTRACTS OF JAPAN, Volume 6, No. 100 (P-121) (978), 9 June 1982, & JP, A, 5731019 (Fujitsu K.K.) 19 February 1982 see the whole Abstract *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0478264A1 (fr) * 1990-09-26 1992-04-01 Matra Marconi Space Uk Limited Générateur balayé numérique
US5311193A (en) * 1990-09-26 1994-05-10 British Aerospace Public Limited Company Digital chirp generator
US6661852B1 (en) 1999-07-21 2003-12-09 Raytheon Company Apparatus and method for quadrature tuner error correction
WO2001007992A1 (fr) * 1999-07-27 2001-02-01 Raytheon Company Generation de fonction trigonometrique et systeme a cet effet
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

Also Published As

Publication number Publication date
JPS62502576A (ja) 1987-10-01
EP0218724A1 (fr) 1987-04-22
KR880700350A (ko) 1988-02-22

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
US4130878A (en) Expandable 4 × 8 array multiplier
US4747067A (en) Apparatus and method for approximating the magnitude of a complex number
US4267580A (en) CCD Analog and digital correlators
US4583180A (en) Floating point/logarithmic conversion system
US4077063A (en) Apparatus for rapidly determining the trigonometric functions of an input angle
Vassiliadis et al. A general proof for overlapped multiple-bit scanning multiplications
US3898446A (en) Quadratic phase memory
US4956799A (en) Trigonometric function arithmetic processor using pseudo-division
US4718032A (en) Method and apparatus for effecting range transformation in a digital circuitry
WO1994018633A1 (fr) Appareil et procede de generation rapide de fonctions
US5337266A (en) Method and apparatus for fast logarithmic addition and subtraction
WO1986006517A1 (fr) Dispositif de production rapide de valeurs de fonctions sinus et cosinus
WO2001007992A1 (fr) Generation de fonction trigonometrique et systeme a cet effet
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
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
Lee et al. SVD by constant-factor-redundant-CORDIC
Freeden et al. An efficient algofithm for the generation of homogeneous harmonic polynomials
JPH08504046A (ja) 浮動小数点2進数を2進形式における対数に変換しまたはその逆変換をするための装置
Hu et al. Angle recording method for efficient implementation of the CORDIC algorithm
Krishnamurthy Economical iterative and range-transformation schemes for division

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP KR

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE FR GB IT LU NL SE

WWE Wipo information: entry into national phase

Ref document number: 1986903726

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1986903726

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1986903726

Country of ref document: EP