# Cordic in MATLAB

Let’s z be a 2D point in the space as $z = x + jy$, if we want to rotate this point a given angle $\theta$, we get the following expressions:
$e^{j\theta} \cdot z = \left(\cos{\theta} + j \sin{\theta}\right)\left(x+jy\right) \\ = x\cos{\theta}-y\sin{\theta} + j \left(y \cos{\theta} + x \sin{\theta} \right) \\ = x’ + j y’$

Then, for a generic point, the rotation can be expressed as an equation system, where $x’$ and $y’$ are the new coordinates, $\theta$ is the rotation angle and $x$ and $y$ are the original coordinates:
$\begin{bmatrix} x’\\ y’ \end{bmatrix}= \begin{bmatrix} \cos{\theta} & -\sin{\theta}\\ \sin{\theta} & \cos{\theta} \end{bmatrix}\begin{bmatrix} x\\ y \end{bmatrix}$

This rotation can be coded in MATLAB as:

A possible implementation of the cordic algorithm could be:

I have coded an interactive applet to illustrate the algorithm. It has been done using the p5.js library. The error limit has been set to $0.5$.

IC design engineer en Analog Devices

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.