[英]Matlab angle function to compute phase
我正在使用Matlab的angle
函數來計算一系列傅立葉變換的相位。 當我使用自己的angle
函數(如下)時,我得到的結果是不同的。 我可以告訴我Matlab函數的實現方式嗎?
function a = angle(x)
a = atan(imag(x)/real(x))
if (real(x) < 0)
a = a + pi
end
結果是Matlab angle
函數的結果給出了“更好”的結果。 我只是想知道我在做什么錯。
您應該使用atan2
計算相位:
function a = my_angle(x)
a = atan2(imag(x),real(x));
atan2
計算四象限逆切線。 它比atan
更精確,因為除法會降低精度。 請參閱Wikipedia條目以了解如何計算此函數。
我不確定MATLAB的
Sardar Usama在下面的評論中確認這是在MATLAB中實現的方式,您可以在MATLAB中鍵入angle
是如何實現的,但是如果不通過
atan2
實現,這將很奇怪。
edit angle
來查看代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.