复数运算库
可以利用复数运算库进行复数运算。
复数类型的数据
在复数运算库中,可以用复数类型(Complex)作为数据类型。复数类型数据由实部(.real)和虚部(.imag)组成,如下例所示。
Dim Num as Complex
Num.real=1.0
Num.imag=2.0
步骤列表
下表列出了复数运算库包括的步骤。
步骤名 |
功能 |
确定一个复数。 | |
确定一个复数。 | |
变量型或双精度浮点型数组转换成复数型数组。 | |
返回相加的结果。 | |
返回相减的结果。 | |
返回相乘的结果。 | |
返回相除的结果。 | |
返回绝对值。 | |
返回相角。 | |
返回绝对值的平方。 | |
返回共轭复数。 | |
返回余弦。 | |
返回双曲余弦。 | |
返回正弦。 | |
返回双曲正弦。 | |
返回ex. | |
返回自然对数。 | |
返回常用对数。 | |
返回平方根。 |
样本程序
:
:
Dim Dmy As Long
Dim s21_raw As Variant
Dim s31_raw As Variant
Dim s21_Comp As Complex
Dim s31_Comp As Complex
Dim trAce_ratio_comp As Complex
Dim trAce_ratio(401) As Double
SCPI.DISPlay.Split = "D1"
SCPI.DISPlay.WINDow(1).Split = "D12_34"
SCPI.CALCulate(1).PARameter.Count = 2
SCPI.CALCulate(1).PARameter(1).DEFine = "s21"
SCPI.CALCulate(1).PARameter(2).DEFine = "s31"
SCPI.SENSe(1).SWEep.POINts = 201
:
:
:
SCPI.TRIGger.SEQuence.Source = "bus"
SCPI.TRIGger.SEQuence.SINGle
Dmy = SCPI.IEEE4882.OPC
'''' Get corrected data array
SCPI.CALCulate(1).PARameter(1).SELect
s21_raw = SCPI.CALCulate(1).SELected.DATA.SDATa
SCPI.CALCulate(1).PARameter(2).SELect
s31_raw = SCPI.CALCulate(1).SELected.DATA.SDATa
For i = 0 To 200
'''' Copy corrected data array to the complex data array
'''' to take advantage of complex operation library
s21_Comp = ComplexSet(s21_raw(2 * i), s21_raw(2 * i + 1))
s31_Comp = ComplexSet(s31_raw(2 * i), s31_raw(2 * i + 1))
'''' Calculate the ratio of S31 and S21
'''' S31/S21
trAce_ratio_comp = ComplexDiv(s31_Comp, s21_Comp)
trAce_ratio(2 * i) = trAce_ratio_comp.real
trAce_ratio(2 * i + 1) = trAce_ratio_comp.imag
Next i
SCPI.CALCulate(1).PARameter.Count = 4
'''' Write "S31/S21" data to corrected data array for the trace 3 (LogMag)
SCPI.CALCulate(1).PARameter(3).SELect
SCPI.CALCulate(1).SELected.Format = "MLOG"
SCPI.CALCulate(1).SELected.DATA.SDATa = trAce_ratio
'''' Write "S31/S21" data to corrected data array for the trace 4 (Phase)
SCPI.CALCulate(1).PARameter(4).SELect
SCPI.CALCulate(1).SELected.Format = "PHASe"
SCPI.CALCulate(1).SELected.DATA.SDATa = trAce_ratio
:
: