Skip to content

App H(6/6):复数运算工具

复数运算支持

本节描述用于执行复数运算的过程。对于大多数过程,射频提取库包含两个版本的过程:标量版本和矢量版本。标量版本的过程名称以 c 结尾,相应的矢量版本的过程名称以 v 结尾。

标量版本对单个复数或两个复数进行运算。复数使用包含复数实部和虚部的 Tcl 列表指定。例如,复数 的绝对值可以使用 rfx::Abs_c 过程计算如下:

tcl
set z [list 4 3]
puts [rfx::Abs_c $z]
#-> 5.0

矢量版本对单个复数列表或两个复数列表进行运算。复数列表使用具有一个字符串索引的数组指定。索引包含元素 Re 和 Im。Re 元素的值和 Im 元素的值分别是复数列表的实部和虚部。例如,复数 的绝对值可以使用 rfx::Abs_v 过程计算如下:

tcl
set Z(Re) [list 2 -1]
set Z(Im) [list 3 1]
rfx::Abs_v -out absvals -z Z
puts "abs values = $absvals"
#-> abs values = 3.606 1.414

rfx::Polar2Cart_crfx::Polar2Cart_v 外,所有过程都对以笛卡尔坐标指定的复数进行运算。rfx::Polar2Cart 过程对以极坐标指定的复数或复数列表进行运算,分别用 Tcl 列表或数组表示。例如,复数 使用以下方式指定:

tcl
set z [list 1.414 45]

rfx::Abs_c

计算复数的绝对值。

语法

tcl
rfx::Abs_c z

返回值

单个值,即复数的绝对值。

示例

tcl
set z [list 4 3]
puts [rfx::Abs_c $z]
#-> 5.0

rfx::Abs_v

计算复数列表的绝对值,也可以 10 dB 或 20 dB 为单位计算绝对值。

语法

tcl
rfx::Abs_v -out <list_name> -z <array_name> [-dB 0 | 10 | 20] 
[-info 0 | 1 | 2 | 3] [-help 0 | 1]

参数

参数描述
-out <list_name>存储绝对值列表的列表名称。(列表名,无默认值)
-z <array_name>包含复数列表的数组名称。数组有一个字符串索引,包含 Re 和 Im 元素。(数组名,无默认值)
-dB指定绝对值的分贝级别。如果未指定 -dB 或指定 -dB 0,则在线性标度上计算绝对值。(整数,默认值:0)

返回值

示例

tcl
set Z(Re) [list 1 1 0 -1 -1 -1 0 1]
set Z(Im) [list 0 1 1 1 0 -1 -1 -1]
rfx::Abs_v -out absvals -z Z
puts "abs values = $absvals"
#-> abs values = 1.0 1.414 1.0 1.414 1.0 1.414 1.0 1.414

rfx::Abs2_c

计算复数绝对值的平方。

语法

tcl
rfx::Abs2_c z

返回值

单个值,即复数绝对值的平方。

示例

tcl
set z [list 4 3]
puts [rfx::Abs2_c $z]
#-> 25

rfx::Abs2_v

计算复数列表绝对值的平方。

语法

tcl
rfx::Abs2_v -out <list_name> -z <array_name> 
[-info 0 | 1 | 2 | 3] [-help 0 | 1]

返回值

示例

tcl
set Z(Re) [list 1 1 0 -1 -1 -1 0 1]
set Z(Im) [list 0 1 1 1 0 -1 -1 -1]
rfx::Abs2_v -out abs2 -z Z 
puts "square of abs values = $abs2"
#-> square of abs values = 1.0 2.0 1.0 2.0 1.0 2.0 1.0 2.0

基于 Sentaurus TCAD 官方文档构建

代码块