2013-11-22 40 views
0

我正在做角度估計的東西使用兩個信號的時間差。 我用asind函數(在MATLAB中)爲了獲得度數信息, 但是asind有時會給出複數。如何從asind獲取代表值?

real,imag或abs中的哪一個可以給出代表性的角度信息? 請幫幫我。

+0

我的回答有助於澄清複雜的值問題嗎? – chappjc

+0

是的。你做到了。 ^^ – Binja

+0

太棒了!如果您願意接受答案,我會很感激,如果您覺得傾向,也許也會贊成。 :) – chappjc

回答

1

您正在評估asind的絕對值大於1的數字,該數字不存在。 MATLAB別無選擇,只能返回complex result of the formula。即使是高於1.0的微小偏差也會導致結果變得複雜。例如:

>> asind(1) 
ans = 
    90 
>> asind(1+eps) % eps('double') is about 2.2204e-16 
ans = 
    90.0000 - 0.0000i 

這可能是由於角度的浮點計算不準確造成的。如果您確定這是問題,而不是計算y值的錯誤,則快速解決方法就是取實際組件(real(asind(theta)))。或者,您可以檢查輸入是否大於1或小於-1並正確糾正值。