# Find half-angle of complex exponential

Suppose we have a complex signal $\cos(2\theta) + j\sin(2\theta) = e^{j2\theta}$. Is there any way to find half-angle $\cos(\theta) + j\sin(\theta) = e^{j\theta}$ complex signal without going into polar form and preferably with no divisions? Iterative algorithms are fine.

• Is theta known or unknown? Apr 29, 2014 at 21:06
• $e^{j2\theta}$ is already in polar form. It would be good if you clarified your question a bit, because in this form you might either get no or only trivial answers. Apr 29, 2014 at 21:12
• Just in case you assume that $\exp(2j\theta)$ is given in cartesian form: In this case there is no answer to the question unless you specify the branch of the complex logarithm, i.e. an interval of length $2\pi$ that contains $\theta$. Apr 29, 2014 at 21:21
• Of course, theta is not known. We just have a sampled complex signal $e^{j2\theta(n)} = cos(2\theta(n)) + j sin(2\theta(n))$ and we'd like to get $e^{j\theta(n)} = cos(\theta(n)) + j sin(\theta(n))$ complex signal. Apr 29, 2014 at 23:28
• You are given the values $a$ of $\cos(2\theta)$ and $b$ of $\sin(2\theta)$, that is, you know $a$ and $b$, but don't know $2\theta$. You need to find the values of $\cos(\theta)$ and $\sin(\theta)$ but not necessarily that of $\theta$. Assume that $a,b > 0$. Then,$$a=\cos(2\theta)=2\cos^2(\theta)-1\quad\Rightarrow\quad\cos(\theta)=\sqrt{\frac{a+1}{2}}.$$ $$b=2\sin(\theta)\cos(\theta)\quad\Rightarrow\quad\sin(\theta)=\frac{b}{2\cos \theta}=\frac{b}{\sqrt{2a+2}}.$$ Repeat for the cases $a<0,b>0$; $a,b<0$; and $a>0,b<0$ to get the full atan2 treatment. Apr 30, 2014 at 2:33

For small $\Theta$ an approximation would be to simply halve the imaginary value.
• Regarding your lookup table idea: this sort of thing is exactly how fast arctangent implementations, including those used in embedded systems, are built. A four-quadrant arctangent (usually known as atan2) can be used to find $\theta$. Apr 29, 2014 at 21:29
• $\theta$ can be arbitrary. LUT solution is nice, but may require too much memory to get good precision. To clarify things, I'd like to find such nice solution to avoid phase unwrapping after calculating double angle using CORDIC. Apr 29, 2014 at 23:39