This post made me wonder, "WTF CORDIC?", so I asked google. The
first hit was pretty cool - I especially like item 1.1:
http://www.dspguru.com/info/faqs/cordic.htm
Cheers!
Rich
The cordic was used in the first generation scientific calculators, so
I was told. Quite frankly, it is a brilliant algorithm. When you build
it in hardware, you need to think in binary. That is, divide the
circle into 256 arcs, 512, etc. You need to build the ROM a few bits
larger than the final word size. There is the issue of vector growing
with each iteration, but that is solved by scaling the vector to
account for the expansion.
What is interesting is once you have the cordic, which you need for
DSP based communication, things that you used to do in analog can be
done better with the cordic. For instance, you can demod FSK by taking
the arcsine of the sampled data stream, fitting a linear regression to
a given set of samples, then using the slope of that line to determine
the incoming frequency. The cordic can be used to generate DTMF with
silly overkill accuracy. Of course, I can neither confirm nor deny
knowledge of such schemes, as admitting to using a cordic may have
violated one of the hundreds of related patents.
There is a Phd dissertation in Terman library (Stanford) that dissects
the cordic with painful detail.
I put the cordic in the same league as the bandgap reference. It is
proof we, well some people, are smarter than the apes!