0
我正在做角度估計的東西使用兩個信號的時間差。 我用asind
函數(在MATLAB中)爲了獲得度數信息, 但是asind
有時會給出複數。如何從asind獲取代表值?
real,imag或abs中的哪一個可以給出代表性的角度信息? 請幫幫我。
我正在做角度估計的東西使用兩個信號的時間差。 我用asind
函數(在MATLAB中)爲了獲得度數信息, 但是asind
有時會給出複數。如何從asind獲取代表值?
real,imag或abs中的哪一個可以給出代表性的角度信息? 請幫幫我。
您正在評估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並正確糾正值。
我的回答有助於澄清複雜的值問題嗎? – chappjc
是的。你做到了。 ^^ – Binja
太棒了!如果您願意接受答案,我會很感激,如果您覺得傾向,也許也會贊成。 :) – chappjc