# 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? – Jim Clay Apr 29 '14 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. – Matt L. Apr 29 '14 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$. – Jazzmaniac Apr 29 '14 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. – dagofff Apr 29 '14 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. – Dilip Sarwate Apr 30 '14 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$. – Jason R Apr 29 '14 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. – dagofff Apr 29 '14 at 23:39