Matlab问题
05-08
>> 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两次算的的结果为什么不一样呢?
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两次算的的结果为什么不一样呢?
我也遇到过这种问题,好像矩阵运算的时候都会出现这种误差,按照下面的方法来就好了
>> 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函数处理呢,不直接把仿真出来的S21的相位作为其相位呢?
请问你研究过PRE70,,016608(2004)这篇文章没?
电磁仿真软件都可以输出s2p格式的文件,里面可以写成幅度和相位的输出
hfss我用的不多,你可以试试
那个文章我没有研究过。
我查了一下phase函数的用法如下:phase 和 angle 在输入为单个标量数据时,没有差别,二者都是用 atan2 函数来求输入数据的四象限辐角。但是对于向量或矩阵数据输入时,二者差别比较大。
1. phase 只支持标量和一维(行、列)向量输入,不支持二维或高维矩阵输入。angle 可以支持标量或任意维数矩阵输入
2. 对于向量输入,phase 会对输出结果做判断,如果相邻两个输出角度的差的绝对值超过 3.5,phase 会对其重新处理,确保相邻两个角度差值的绝对值永远不超过3.5。而 angle 函数对每个数据独立求其辐角,不会因为相邻角度差超出某个数值而做特殊处理。所以,从这个意义上讲,angle 函数是我们通常需要使用的求角度的函数,而 phase 的特殊处理,会导致得出与angle不同的结果。
还真是呢,angle就对了,谢谢你哈研究得挺仔细的
相关文章:
- 请问:能从HFSS中将解算数据导出到matlab中吗 (05-08)
- 如何将hfss中导出的方向图数据在matlab里画出来啊? (05-08)
- 如何将MATLAB画出的图形导入到HFSS中 (05-08)
- 怎样将Matlab中的图形文件等导入到HFSS中?求教 (05-08)
- 怎样将MATLAB导入到HFSS,或CST中? (05-08)
- 如何用matlab计算n,z? (05-08)
射频专业培训教程推荐