MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Md Mahmudul Hasan on 11 May 2013

I am trying to find the theta part from an exponential value.

Suppose, i take a variable

z=exp(1i*5);

so this will give me

z =

0.2837 - 0.9589i

Now i want to find that "5" from this value. So, i go with this "angle(z)" and matlab shows

ans =

-1.2832

Shouldn't it be 5, according to theory ??

Or if i go with the eular formula like, exp(i*theta)= cos(theta) + i*sin(theta)

so, theta= atan(0.2837/-0.9589) = -0.2877 !!

How do i get the theta=5 back, i don't know if i am missing something.

*No products are associated with this question.*

Answer by John Doe on 11 May 2013

Edited by John Doe on 11 May 2013

Accepted answer

The reason is that:

5 rad = -1.2832 rad % (-1.2832 + 2*pi = 5)

That is:

x = x + n*2*pi; % where x is an angle in radians, and n is an integer.

Matlab will always give you values between +/- pi.

And you use Eular the wrong way around: tan = sin/cos, not cos/sin.

=)

- Rob

Show 3 older comments

John Doe on 11 May 2013

If the answer provided is sufficient, please accept it. If not, explain what parts are not clear, and you will get additional help (from me or others). =)

Md Mahmudul Hasan on 11 May 2013

thank you, for your reply, and as you've mentioned .. that i could save this variable to use later, but i will actually send this variable as a signal of "exp(1j*x)" to the receiver and receiver will extract 5 from this. So, i can't actually save it as a variable.

anyway, what i understood is this

>> angle(exp(1j*5)) +2*pi

ans =

5

>> angle(exp(1j*4)) +2*pi

ans =

4.0000

It works here but, when i go for 1 or 2...

>> angle(exp(1j*2)) +2*pi

ans =

8.2832

>> angle(exp(1j*1)) +2*pi

ans =

7.2832

shouldn't this be 1 and 2, as it worked for 4 and 5 ??

## 0 Comments