Skip to content

Latest commit

 

History

History
33 lines (19 loc) · 816 Bytes

README.md

File metadata and controls

33 lines (19 loc) · 816 Bytes

Working through the paper on CORDIC (COordinate Rotation DIgital Computer) located at:

http://www.andraka.com/files/crdcsrvy.pdf

I always forget how these work and have to relearn, so hopefully this repo will help in that process

It appears the cordic can only sum +/- 90

See Sum[atan(2^-n),0,10] goes to ~1.72 radians To compensate, rotate to quadrants 1/4, remove appropriate amount from angle, and negate plus or swap I/Q depending on the operation

CORDIC can operate in vector mode or rotational mode

Vector Mode:

# x(n+1) = x(n) - y(n) * d(n) * 2^(-n)
# y(n+1) = y(n) + x(n) * d(n) * 2^(-n)
# z(n+1) = z(n) - d(n) * arctan(2^(-n))

Rotational Mode:

# x(n+1) = x(n) - y(n) * d(n) * 2^(-n)
# y(n+1) = y(n) + x(n) * d(n) * 2^(-n)
# z(n+1) = z(n) - d(n) * arctan(2^(-n))