Matlab問題
>> a=[exp(i*3.14) exp(-i*3.14)]
a =
-1.0000 + 0.0016i -1.0000 - 0.0016i
>> phase(a)
ans =
3.1400 3.1432
>> b=-1.0000 - 0.0016i
b =
-1.0000 - 0.0016i
>> phase(b)
ans =
-3.1400兩次算的的結果為什么不一樣呢?
我也遇到過這種問題,好像矩陣運算的時候都會出現(xiàn)這種誤差,按照下面的方法來就好了
>> a=[exp(i*3.14),exp(-i*3.14)] ;
b1=phase(a(1,1))
b2=phase(a(1,2))
b1 =
3.1400
b2 =
-3.1400
那為什么HFSS仿真出來的相位要用phase函數(shù)處理呢,不直接把仿真出來的S21的相位作為其相位呢?
請問你研究過PRE70,,016608(2004)這篇文章沒?
電磁仿真軟件都可以輸出s2p格式的文件,里面可以寫成幅度和相位的輸出
hfss我用的不多,你可以試試
那個文章我沒有研究過。。
我查了一下phase函數(shù)的用法如下:phase 和 angle 在輸入為單個標量數(shù)據(jù)時,沒有差別,二者都是用 atan2 函數(shù)來求輸入數(shù)據(jù)的四象限輻角。但是對于向量或矩陣數(shù)據(jù)輸入時,二者差別比較大。
1. phase 只支持標量和一維(行、列)向量輸入,不支持二維或高維矩陣輸入。angle 可以支持標量或任意維數(shù)矩陣輸入
2. 對于向量輸入,phase 會對輸出結果做判斷,如果相鄰兩個輸出角度的差的絕對值超過 3.5,phase 會對其重新處理,確保相鄰兩個角度差值的絕對值永遠不超過3.5。而 angle 函數(shù)對每個數(shù)據(jù)獨立求其輻角,不會因為相鄰角度差超出某個數(shù)值而做特殊處理。所以,從這個意義上講,angle 函數(shù)是我們通常需要使用的求角度的函數(shù),而 phase 的特殊處理,會導致得出與angle不同的結果。
還真是呢,angle就對了,謝謝你哈研究得挺仔細的