Finding theta in [-pi/2,pi/2] instead of [-pi/4,pi/4] using arctan

1 view (last 30 days)
Hi. I need help on trigonometry.
I have a signal and a formula, which I found in a paper.
Annotation 2018-12-31 162445.jpg
I wanna find theta (as in the formula). When using function atan(), my theta ranges from [-pi/4,pi/4]. In the paper, it mentions that theta should range from [-pi/2,pi/2], and we need to take the signs of numerator and denominator of the right-hand side of the formula into consideration when calculating theta.
My question is, how do I convert from [-pi/4,pi/4] to [-pi/2,pi/2] correctly? I know if I were to convert [-pi/2,pi/2] to [-pi,pi], I just have to use atan2() function, but in this case, it's a portion of full circle.
Please help and thank you.
  2 Comments
Adib Yusof
Adib Yusof on 31 Dec 2018
Hi thank you for your response.
PE_top=2*abs(H_hilb).*abs(D_hilb); %I seperate top, bottom and right to preserve signs
PE_bot=(abs(H_hilb)).^2-(abs(D_hilb)).^2;
PE_right=cos(angle(H_hilb)-angle(D_hilb));
PE_theta0=(atan((PE_top./PE_bot).*PE_right))/2;
for k=1:size(PE_top,1)
if PE_top(k)>0 && PE_bot(k)>0
PE_theta(k)=PE_theta0(k);
elseif PE_top(k)<0 && PE_bot(k)>0
PE_theta(k)=PE_theta0(k);
elseif PE_top(k)>0 && PE_bot(k)<0
PE_theta(k)=pi/2-PE_theta0(k);
elseif PE_top(k)<0 && PE_bot(k)<0
PE_theta(k)=-pi/2-PE_theta0(k);
end
end

Sign in to comment.

Accepted Answer

madhan ravi
madhan ravi on 31 Dec 2018
Edited: madhan ravi on 2 Jan 2019
https://www.mathworks.com/help/matlab/ref/atan2.html#buct8h0-4 - it mentions "In contrast, atan(Y/X) returns results that are limited to the interval [-pi/2,pi/2], shown on the right side of the diagram."
tan(2*theta) = ((2*Ah*Ad)/(Ad^2-Ah^2))*cos(thetah-thetad);
2*theta = atan(((2*Ah*Ad)/(Ad^2-Ah^2))*cos(thetah-thetad));
theta = atan(((2*Ah*Ad)/(Ad^2-Ah^2))*cos(thetah-thetad)) / 2 % the result would be in radians

More Answers (0)

Categories

Find more on Data Types in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!