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

4 Ansichten (letzte 30 Tage)
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 Kommentare
madhan ravi
madhan ravi am 31 Dez. 2018
upload the code you tried
Adib Yusof
Adib Yusof am 31 Dez. 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

madhan ravi
madhan ravi am 31 Dez. 2018
Bearbeitet: madhan ravi am 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

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by