Path: utzoo!news-server.csri.toronto.edu!bonnie.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!spool.mu.edu!uunet!mcsun!hp4nl!duteca!donau!aardoom From: aardoom@donau.et.tudelft.nl (Eric Aardoom) Newsgroups: comp.dsp Subject: Re: phase of complex number Message-ID: Date: 7 Mar 91 20:44:35 GMT References: <21901@unix.SRI.COM> Sender: news@duteca Reply-To: aardoom@duteeta.et.tudelft.nl Organization: Delft University of Technology, the Netherlands Lines: 43 In-reply-to: shimizu@unix.SRI.COM's message of 5 Mar 91 03:55:04 GMT In article <21901@unix.SRI.COM> shimizu@unix.SRI.COM (Dan Shimizu) writes: I'm attempting to do an analysis of a multi tone signal using a AT&T DSP32c chip and accompanying algorithims. I'm most interested in the phase relationships between the tones. To accomplish this I'm performing a 64 point real fft and then calulating the phase angle of the bins of interest. The problem: the phase calculation is taking too long. -- stuff deleted -- Because this is such a basic problem (finding the phase angle of a complex number), I'm hoping there exits a well-known speedy algorithim to accomplish it....does there? I suggest using the CORDIC rotational technique. It is fast, simple and computationally stable. The basic CORDIC algorithm is an iterative method which uses only integer additions, subtractions and shift operations. I used it for converting complex vectors (inphase component, quadrature component) to polar form (envelope, phase). I particulary like CORDIC because there is no need to perfrom very compicated or expensive operations. I didn't even have to use a DSP, an old 8086 was just fine, to get a throughput of several Ksamples per second, using 16-bit integer arithmetic in a high-level language. The original article describing CORDIC is: Jack E. Volder, "The CORDIC Trigonometric Computing Technique," IRE Transactions on Electronic Computers, pp.330-334, September 1959 (!) CORDIC and its descendents are widely used to compute all kinds of other complicated functions, such as trigonometric, exponential and hyperbolic functions. I believe that for instance the intel 80x87 numerical coprocessors and HP RPN calculators use the CORDIC principle. Hope this is helpful. -- Eric Aardoom (aardoom@donau.et.tudelft.nl) Pulse and Digital Electronics Lab Department of Electrical Engineering Delft University of Technology The Netherlands