CORDIC: Repensando Senos e Cossenos
CORDIC: Rethinking sines and cosines
Resumo
{Palavras-chave}: CORDIC, Linguagem C, rotação vetorial, microcontrolador.
Abstract:
The purpose of this paper is to present in detail an iterative algorithm via vector rotation method, which basically requires bit shift operations, addition and subtraction to perform basic elementary functions, known as CORDIC. Traditionally, many authors use the mathematical approach presented in 1959 by J.E. Volder \cite{Volder59}. However, here it will be developed, step by step, the idea proposed in the article for the calculation of trigonometric functions using an arc-tangent table without the need of multiplication and division operations. The CORDIC algorithm has great potential for use in hardware.
Keywords: CORDIC, C Language, rotation vector, microcontroller.
Palavras-chave
Texto completo:
PDFReferências
Volder J.E. The CORDIC trigonometric computing technique. IRE Transactions on Electronic Computers 8 (3): 330–334, retrieved 2009-06-02 textbf{(1959)}.
Volder J.E. The Birth of CORDIC. Journal of VLSI Signal Processing 25, 101–105 textbf{(2000)}.
Walther J. Stephen. The Story of Unified CORDIC. Journal of VLSI Signal Processing 25, 107–112 textbf{(2000)}.
Pramod K., Valls J., Juang, Sridharan K. and Maharatna K. 50 Years of CORDIC: Algorithms, Architectures and Applications. IEEE Trasactions on Circuit and Systems - I: Regular Papers, vol. 56, nº9, September textbf{(2009)}.
Pramod K. and Park S. CORDIC Designs for Fixed Angle of Rotation. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 21, nº2, February textbf{(2013)}.
Choudhary P., Karmakar A. CORDIC based implementation of Fast Fourier Transform, Computer and Communication Technology (ICCCT), 2011 2nd International Conference on , vol., no., pp.550,555, 15-17 Sept. textbf{(2011)}.
Meggitt J. Pseudo Division and Pseudo Multiplication Processes. IBM Journal, pp. 210–226, April textbf{(1962)}.
Das B., Banerjee S. Unified CORDIC-based chip to realise DFT/DHT/DCT/DST, Computers and Digital Techniques, IEE Proceedings - vol.149, no.4, pp.121,127, Jul textbf{(2002)}.
Hsiao S., Hu Y. and Juang T. A memory-efficient and high-speed sine/cosine generator based on parallel CORDIC rotations. IEEE Signal Process. Lett., vol. 11, no. 2, textbf{(2004)}.
Nakagawa T., Nosaka H. Direct Digital Synthesizer with Interpolation Circuits. IEEE JOURNAL OF SOLID-STATE CIRCUITS, VOL. 32, NO. 5, MAY textbf{(1997)}.
Vankka J. Methods of Mapping from Phase to sino Amplitude in Direct Digital Synthesis. 1996 IEEE International Frequency Control Symposium, textbf{(1996)}.
Vankka J. A Direct Digital Synthesizer with a Tunable Error Feedback Structure. IEEE Transactions on Communications, vol. 45, nº. 4, April textbf{(1997)}.
Wu C., Wu A. and Lin C. A high-performance/low-latency vector rotational CORDIC architecture based on extended elementary angle set and trellis-based searching schemes,” IEEE Trans. Circuits Syst. II, Analog Digit. Signal Process., vol. 50, no. 9, pp. 589–601, Sep. textbf{(2003)}.
Bhuria S. and Muralidhar P. FPGA Implementation of Sine and Cosine Value Generators using Cordic Algorithm for Satellite Attitude Determination and Calculators. IEEE, textbf{(2010)}.
Benavides J. Efficient Fixed-Point Trigonometry Using CORDIC Functions For PIC16F. Microchip Technology Inc. textbf{(2007)}.
Hwang K. Computer Arithmetic Principles: Architecture and Design. New York: Wiley, textbf{(1979)}.
Ravichandran S. and Asari V, Implementation of unidirectional CORDIC algorithm using precomputed rotation bits. in 45th Midwest Symp. on Circuits Syst., 2002. MWSCAS 2002, vol. 3, pp. 453–456, Aug. textbf{(2002)}.
Muller J. Elementary Functions: Algorithms and Implementation. Boston, MA: Birkhauser Boston, textbf{(2006)}.
Schildt H. Borland C++: Todo o poder do Borland C++. Completo e Total. Versão 5. Makorn Books textbf{(1998)}.
Lee J. and Lang T. Constant-factor redundant CORDIC for angle calculation and rotation. IEEE Trans. Computers. vol. 41, no. 8, pp.1016–1025, Aug. textbf{(1992)}.
Hsiao S. and Delosme J. Householder CORDIC algorithms”. IEEE Trans. Computers, vol. 44, no. 8, pp. 990–1001, Aug. textbf{(1995)}.
Vachhani L., Sridharan K. and Meher P. Efficient CORDIC algorithms and architectures for low area and high throughput implementation. IEEE Trans. Circuits Syst. II, Exp. Briefs, vol. 56, no. 1, pp.61–65, Jan. textbf{(2009)}.
Monteiro E. Dissertação de Mestrado: Sistema eletrônico para a produção e caracterização de sensores de pH baseado em dispositivos semicondutores do tipo EGFET. CBPF. Rio de Janeiro textbf{(2015)}.
Giraldeli F. Programação em C. Instituto Federal do Espírito Santo. V20.0.
Disponível em: href{http://www.cplusplus.com/}{Cplusplus (http:www.cplusplus.com)}.
Disponível em: href{http://en.wikibooks.org/wiki/Digital_Circuits/CORDIC}{Digital Circuits/CORDIC ($http://en.wikibooks.org/wiki/Digital_Circuits/CORDIC$)}. Acessado em: 13 de Setembro de 2014.
Disponível em: href{http://pt.wikibooks.org/wiki/Programar_em_C/Ponteiros}{Ponteiros ($http://pt.wikibooks.org/wiki/Programar_em_C/Ponteiros$)}. Acessado em 08 de Dezembro de 2014.