Appearance
附录 H:两端口网络射频提取库
TIP
原文来源:Sentaurus Visual User Guide (W-2024.09) PDF 第521-582页
本附录提供了射频提取库的使用过程信息。
在晶体管可以由两端口网络建模的假设下,两端口网络射频(RF)提取库的过程用于计算:
- 射频参数:根据交流分析数据计算射频参数。
- 噪声参数:根据噪声分析数据计算噪声参数。
射频提取库的功能包括:
- 射频矩阵转换:将导纳(Y-)矩阵转换为混合(h-)矩阵、散射(S-)矩阵和阻抗(Z-)矩阵。
- 小信号数据绘图(电导、电容和射频参数):除矩形图外,还支持极坐标图和史密斯圆图。
- 以下噪声谱密度(NSD)或功率谱密度(PSD)绘图(噪声晶体管的各种表示形式(噪声等效电路)):
- 阻抗表示的噪声电压谱密度(NVSD)
- 导纳表示的噪声电流谱密度(NISD)
- 射频参数提取:
- 计算小信号电流增益、稳定性判据(如 Rollett 稳定因子和稳定性条件 delta)、各种功率增益(如最大可用增益(MAG)、最大稳定增益(MSG)、Mason 单向增益(MUG))和单向品质因数
- 提取晶体管品质因数,如截止频率、最大振荡频率和稳定性截止频率
- 噪声参数提取:
- 计算噪声晶体管链表示中等效输入噪声发生器的 PSD
- 计算晶体管的噪声系数
- 提取晶体管的各种噪声参数,如最小噪声系数、等效噪声电阻和电导、以及最佳源导纳和源阻抗
- 复数运算支持(标量和矢量版本)
- 以逗号分隔值(CSV)文件格式导出数据
射频提取库通过以下命令加载:
tcl
load_library rfxPython 库
Python 模式请参阅 Sentaurus Visual Python API 文档(帮助 > Python API 参考)。
语法约定
射频提取库使用唯一的命名空间标识符(rfx::)来调用其过程。所有与此库关联的过程和变量在调用时都需在前面加上命名空间标识符。例如:
rfx::<proc_name>每个过程有多个参数。射频提取库使用一个输入解析器,接受以下形式的参数:
-keyword <value>NOTE
所有 Sentaurus Visual 库都支持标准 Sentaurus Visual 语法,其中关键字前带有短划线。为保持向后兼容性,所有 Sentaurus Visual 库继续支持 keyword= <value> 语法。对于每个过程调用,您可以使用 -keyword <value> 语法或 keyword= <value> 语法。但是,在任何一个过程调用中,只能使用一种类型的语法。否则,将生成错误消息。仅记录新语法。如果要继续使用 keyword= <value> 语法,也可以在关键字和等号之间插入空格,例如 keyword = <value>。省略等号和值字段之间的空格将导致失败(如果值是解引用的 Tcl 变量)。使用 keyword= $val(不是 keyword=$val)。
解析器接受任意顺序的参数。对于某些参数,已预定义默认值。这些参数可以省略。如果省略了未预定义默认值的参数,过程将退出并显示错误消息。此外,无法识别的参数会导致错误消息。
射频提取库使用传引用(passing-by-reference)方法将结果返回给调用程序,而不是使用标准 Tcl 方法(使用过程的返回值)。过程关键字 -out 用于将结果返回给调用程序:
-out <var_name>, <list_name>, or <array_name>以下约定用于 Tcl 命令的语法:
- 尖括号 —
<>— 表示必须替换的文本,但它们不是语法的一部分。特别地,使用以下类型标识符:<r>:替换为实数,或解引用后求值为实数的 Tcl 变量。例如:$val。<i>:替换为整数,或解引用后求值为整数的 Tcl 变量。例如:$i。<string>:替换为字符串,或解引用后求值为字符串的 Tcl 变量。例如:$file。<list_of_r>:替换为实数列表,或解引用后求值为实数列表的 Tcl 变量。例如:$values。<list_of_strings>:替换为字符串列表,或解引用后求值为字符串列表的 Tcl 变量。例如:$files。<var_name>:替换为本地 Tcl 变量的名称。例如:val(不是$val)。<list_name>:替换为本地 Tcl 列表的名称。例如:values(不是$values)。<array_name>:替换为本地 Tcl 数组的名称。例如:myarray(不是$myarray)。<dataName>:替换为数据集的名称。<fileName>:替换为文件名,或解引用后求值为文件名的 Tcl 变量。<plotName>:替换为绘图名称。
- 方括号 —
[]— 表示参数是可选的,但它们不是语法的一部分。 - 竖线 —
|— 表示选项,只能指定其中之一。
过程帮助
请求特定过程的帮助,在 Tcl 模式下,将 -help 关键字设置为 1:
tcl
rfx::<procedure_name> -help 1如果此命令包含在 Sentaurus Visual 文件中,当 Sentaurus Visual 在以下模式执行时:
- Sentaurus Workbench 中的批处理模式:帮助信息打印到相应 Sentaurus Visual 节点的运行时输出文件(扩展名为
.out) - Sentaurus Workbench 中的交互模式:帮助信息显示在 Tcl 控制台中,同时打印在 Sentaurus Visual 运行时输出文件中
您也可以在用户界面的 Tcl 控制台中输入命令,此时帮助信息将显示在控制台中。
过程的输出
如第 522 页的语法约定所述,射频提取库的所有过程通过将结果存储在 Tcl 变量中来将结果传递回调用程序。此 Tcl 变量的名称被指定为 -out 关键字的值。
如果射频提取库过程中存在错误,Sentaurus Visual 的行为取决于它是在 Sentaurus Workbench 的批处理模式还是交互模式下执行。在批处理模式下,Sentaurus Visual 退出,错误消息仅打印在 Sentaurus Visual 错误文件(扩展名为 .err)中。在交互模式下,错误消息显示在 Tcl 控制台中,同时打印在 Sentaurus Visual 运行时错误文件中。
所有过程还会打印几条消息(包括警告消息)。如果 Sentaurus Visual 在批处理模式下执行,消息仅打印在 Sentaurus Visual 输出文件中;而在交互模式下,消息显示在 Tcl 控制台中,同时打印在 Sentaurus Visual 运行时输出文件中。
打印的信息量取决于 lib::SetInfoDef 指定的信息级别。
射频提取库过程概述
为了模拟射频特性并提取射频参数,在 Sentaurus Device 中通过改变触点的偏置并在每个偏置点执行频率扫描来进行小信号(交流)分析。Sentaurus Device 交流数据文件包含每个偏置和频率点下所有触点对组合的电导值 和电容值 (参见第 527 页的 A 矩阵、C 矩阵和 Y 矩阵)。射频提取库假设晶体管可以由如图 149 所示的两端口网络建模。
射频提取库的功能及相应的过程如下:
加载 Sentaurus Device 交流数据文件,并创建 Y 矩阵和 PSD 矩阵:使用
rfx::Load过程(参见第 567 页的rfx::Load)在 Sentaurus Visual 中加载 Sentaurus Device 交流数据文件,该过程创建包含电导和电容值的 Tcl 数组rfx::AC(参见第 567 页的rfx::Load)。该数据也被转换为导纳参数或 Y 参数,Y 参数或 Y 矩阵存储在 Tcl 数组rfx::Y中。rfx::Load过程还创建 PSD Tcl 数组(对应 PSD 矩阵)和其他变量,总结于第 543 页的表 37 中。关于这些数组的详细信息,请参见第 527 页的 A 矩阵、C 矩阵和 Y 矩阵以及第 528 页的功率谱密度矩阵。将 Y 矩阵转换为其他矩阵:Y 矩阵使用矩阵转换过程分别转换为 h 矩阵、S 矩阵或 Z 矩阵(参见第 533 页的矩阵转换):
rfx::Y2H(参见第 576 页)、rfx::Y2S(参见第 577 页)和rfx::Y2Z(参见第 578 页)。所有这些矩阵都是复数矩阵,矩阵转换过程在内部使用复数运算过程(参见第 579 页的复数运算支持)。射频参数 、、 和 分别是 Y-、h-、S- 和 Z-矩阵的元素。创建包含小信号数据和噪声分析数据的 Sentaurus Visual 数据集:使用
rfx::CreateDataset过程(参见第 546 页)可以创建包含小信号数据(、、、、 或 )作为频率或偏置函数的 Sentaurus Visual 数据集。射频参数对应的数据集包含射频参数的实部和虚部,以及绝对值和相位。这些参数的绝对值也可以用分贝(dB)单位计算。此外,使用rfx::CreateDataset过程可以创建包含噪声分析数据( 和 )的 Sentaurus Visual 数据集。绘制小信号数据和噪声分析数据:使用
rfx::CreateDataset过程创建的数据集可用于将小信号数据和噪声分析数据可视化为频率或偏置的函数。射频参数可以使用以下类型的图进行可视化:- 使用 Sentaurus Visual 命令的矩形图
- 使用
rfx::PolarBackdrop过程的极坐标图(参见第 571 页) - 使用
rfx::SmithBackdrop过程的史密斯圆图(参见第 575 页)
计算功率增益和稳定性判据:使用 S 参数(参见第 534 页的增益、放大器稳定性和单向化)使用
rfx::GetPowerGain过程(参见第 564 页)计算各种功率增益和稳定性判据。该过程还可用于创建包含功率增益和稳定性判据作为频率或偏置函数的数据集。提取晶体管品质因数:使用
rfx::GetFt(参见第 556 页)、rfx::GetFmax(参见第 554 页)和rfx::GetFK1(参见第 552 页)过程可以提取晶体管品质因数,如截止频率、最大振荡频率和稳定性截止频率(参见第 536 页的晶体管品质因数)。这些过程可用于创建包含作为偏置函数的提取品质因数的数据集。前两个过程还可用于创建包含增益作为频率函数的数据集。提取晶体管噪声参数:使用
rfx::GetNoiseFigure过程(参见第 560 页)可以提取晶体管噪声参数,如最小噪声系数、等效噪声电阻和电导、以及最佳源导纳和阻抗,以及其他噪声参数和噪声系数(参见第 540 页的线性两端口网络的噪声系数)。该过程可以创建包含作为频率或偏置函数的提取噪声参数的数据集。导出小信号数据:可以使用
rfx::Export过程(参见第 551 页)将小信号数据导出到 CSV 文件。
射频提取库中使用的方程
本节讨论射频提取库中使用的方程。
A 矩阵、C 矩阵和 Y 矩阵
Sentaurus Device 交流数据文件包含电导矩阵(A 矩阵,)和电容矩阵(C 矩阵,),用于每个偏置()和频率()点下的小信号分析中包含的所有触点对组合。这些矩阵的行和列由小信号分析中包含的节点给出。
对于 3D 器件,Sentaurus Device 交流数据文件为每个频率和偏置点包含以下内容:
- ,A 矩阵的系数或元素
- ,C 矩阵的系数或元素
A 矩阵和 C 矩阵使用以下公式转换为导纳矩阵(Y 矩阵,):
其中:
- 是虚数单位
- 是角频率
- 矩阵 是电纳矩阵,系数为
射频提取库假设晶体管可以由两端口网络建模。因此,射频提取库仅读取 矩阵,对应两端口网络设置。如果存在其他端口,它们将被忽略。
对于两端口网络,在特定频率 和偏置点 下的复数 Y 矩阵表示为:
其中 是导纳(Y-)参数。复数 Y 参数的实部和虚部由下式给出:
Tcl 数组 rfx::AC 和 rfx::Y
当使用 rfx::Load 过程在 Sentaurus Visual 中加载 Sentaurus Device 交流数据文件时,会创建两个 Tcl 数组 rfx::AC 和 rfx::Y(参见表 38)。这两个数组都是二维的,具有相同的形式:
rfx::AC($ReIm,$P1,$P2,$if,$iv)
rfx::Y($ReIm,$P1,$P2,$if,$iv)其中:
ReIm:0(实部)或 1(虚部):- 对于
rfx::AC,0 对应 ,1 对应 - 对于
rfx::Y,0 对应 ,1 对应 (方程 39)
- 对于
P1,P2:1 或 2(端口号)if:0 到rfx::i_freqend的频率索引iv:0 到rfx::i_biasend的偏置点索引
因此,rfx::AC 数组包含所有频率和偏置点的系数 和 。rfx::Y 数组包含系数 和 。
要访问给定偏置或频率的小信号数据或射频参数,必须提供相应的数组索引(频率索引和偏置点索引)。
功率谱密度矩阵
噪声器件对电路的影响可以通过器件的小信号模型或两端口网络方法进行分析。射频提取库使用两端口网络方法实现噪声参数提取。
像晶体管这样的噪声器件可以由具有内部噪声源的两端口网络表示。对于小信号,任何噪声两端口网络都可以用由无噪声两端口网络和添加到两端口端子的两个外部等效噪声源组成的噪声等效电路来替代。外部噪声源可以是噪声电压源或噪声电流源,它们在电路端子上产生的噪声电压与内部噪声源相同。
功率谱密度
根据外部噪声源的类型及其相对于无噪声两端口网络的布置,噪声两端口网络有几种等效表示:
- 阻抗表示:噪声电压源 和 串联在输入和输出端子上
- 导纳表示:噪声电流源 和 并联在输入和输出端子上
- 链表示(等效输入噪声表示):输入噪声电压源 和输入噪声电流源 放置在输入端子上
噪声源用均方值和 PSD 表征:
- 噪声电压源 用均方值 和 NVSD 表征
- 噪声电流源 用均方值 和 NISD 表征
NVSD 决定噪声电压源在 1 Hz 带宽的频率间隔内的均方值,NISD 决定电流电压源的均方值。因此,NVSD 的单位是 V²/Hz 或 V²s,NISD 的单位是 A²/Hz 或 A²s。PSD 给出噪声源在 Hz 附近 1 Hz 带宽内贡献的平均功率 。PSD 谱显示噪声源在每个频率上贡献多少平均功率。
对于噪声电压源,在频率间隔 内的平均功率和均方电压与其 NVSD 的关系为:
对于触点对 (或节点 和 ),NVSD 表示为 ,NISD 表示为 。自相关 PSD 对应于两个端子相同的情况();而互相关 PSD 对应于两个端子不同的情况()。
可以为噪声两端口的各种表示定义以下 PSD:
- 阻抗表示中:
- :输入端口的噪声电压谱密度
- :输出端口的噪声电压谱密度
- 和 :输入和输出电压噪声源之间的互相关谱密度
- 导纳表示中:
- :输入端口的噪声电流谱密度
- :输出端口的噪声电流谱密度
- 和 :输入和输出电流噪声源之间的互相关谱密度
- 链表示中:
- :输入噪声电压源 的噪声电压谱密度
- :输入噪声电流源 的噪声电流谱密度
- 和 :等效输入噪声电压和噪声电流源的互相关谱密度
导纳表示中的 NISD 用于计算输入和输出噪声电流源之间的噪声相关系数 :
Sentaurus Device 和射频提取库计算的 PSD
作为对包含节点 (,输入端口)和 (,输出端口)的两端口网络进行噪声分析的结果,Sentaurus Device 计算阻抗表示和导纳表示的自相关和互相关谱密度,并将它们写入 Sentaurus Device 交流数据文件。
射频提取库计算谱密度 和 ,以及链表示中表征外部噪声源的谱密度。
射频提取库使用 rfx::Load 过程将交流数据文件中的 PSD 数据转换为 PSD Tcl 数组,并使用 rfx::CreateDataset 过程转换为 Sentaurus Visual 数据集。
NISD 是针对流过选定电路节点的电流计算的,假设这些节点上的电压固定。NVSD 是针对这些节点上的电压计算的,假设流向这些节点的净电流固定。
NISD 保存为 S_I,NVSD 保存为 S_V。
功率谱密度 Tcl 数组
对于噪声两端口网络的阻抗表示,在特定频率 和偏置点 下的复数 SV 矩阵(NVSD 矩阵)表示为:
类似地,在特定频率 和偏置点 下的复数 SI 矩阵(NISD 矩阵)表示为:
当使用 rfx::Load 过程在 Sentaurus Visual 中加载 Sentaurus Device 交流数据文件时,如果文件包含 PSD 数据,也会创建 PSD Tcl 数组。
每个 PSD 数组包含自相关系数(两个端口相同,)以及互相关系数(两个端口不同,)。由于自相关值是实数,虚部设置为 0。
NOTE
每个模拟仅支持一个噪声规范。它可以是命名的或未命名的。
2D 结构的器件宽度缩放
在一个方向(例如 z 方向)上均匀的 3D 器件可以通过使用二维(2D)器件结构进行分析。在这种情况下,可以在 2D 器件结构上进行器件仿真,并通过将 2D 仿真结果(端子电流、电导和电容)乘以 z 方向的器件宽度 来获得 3D 器件的结果。
其中 和 分别是 2D 器件的电导矩阵和电纳矩阵。
可以通过以下方式之一设置:
- 在 Sentaurus Device 输入文件中使用 Physics 部分中的关键字
AreaFactor - 在使用
rfx::Load过程进行后处理时通过指定-devicewidth关键字
AreaFactor 和 -devicewidth 关键字的默认值均为 1 µm。
CAUTION
避免通过仅使用其中一种缩放方法应用两次缩放。
NOTE
并非所有射频量都与器件宽度成线性缩放。您必须在 Sentaurus Device 命令文件中使用 AreaFactor 关键字来考虑 2D 结构的器件宽度缩放。
矩阵转换
Y 矩阵使用矩阵转换公式转换为 h 矩阵、S 矩阵或 Z 矩阵。
将 Y 矩阵转换为 h 矩阵
复数 Y 矩阵使用以下公式转换为复数 h 矩阵:
其中:
将 Y 矩阵转换为 S 矩阵
复数 Y 矩阵使用以下公式转换为复数 S 矩阵:
其中 , 是特性阻抗,
将 Y 矩阵转换为 Z 矩阵
复数 Y 矩阵使用以下公式转换为复数 Z 矩阵:
其中
增益、放大器稳定性和单向化
本节讨论增益、放大器稳定性和单向化。
小信号电流增益
晶体管的短路小信号电流增益 由下式给出:
放大器稳定性
Rollett 稳定因子 使用以下公式从 S 参数计算:
其中:
放大器无条件稳定性的必要充分条件为:
无条件稳定性表示输出和输入负载之间的共轭匹配。对于 ,放大器是条件稳定或潜在不稳定的,必须稳定。
最大稳定增益和最大可用增益
两端口网络的最大稳定增益(MSG) 由下式给出:
最大可用增益(MAG) 取决于两端口网络的稳定性。对于无条件稳定的两端口网络,即如果 且 :
对于 或 ,MAG 设置为 MSG:
单向放大器设计
Mason 的单向增益(MUG) 使用以下公式从 S 参数计算:
其中 表示复数 的实部。
单向品质因数 由下式给出:
对于单向放大器设计方法, 必须尽可能小。
将增益单位转换为分贝
短路电流增益 可以使用以下公式表示为分贝(dB)单位:
功率增益 使用以下公式表示为 dB 单位:
晶体管品质因数
本节讨论晶体管品质因数。
ft 和 fmax
电流增益幅值 的频率依赖性由下式给出:
其中 是低频电流增益, 是 截止频率或 3 dB 频率。
短路电流增益截止频率或截止频率 定义为 等于 1(单位增益点)的频率:
与 的关系为:
方程 61 还表明,对于 (低频):;对于 (高频):
将 转换为 dB,方程可以写成:
因此,(单位 dB)与 曲线在低频时是平坦的,在 处下降 3 dB,然后随着频率增加以 -20 dB/十倍频程的斜率线性下降。
MUG 或 MAG 在高频下的频率依赖性由下式给出:
其中 是 MUG 或 MAG, 是最大振荡频率。
定义为 (单位增益点)的频率:
或 时:
是可以从放大器提取功率增益的最大频率。它也是由具有功率增益的放大器制成的振荡器的最大振荡频率。如果 ,晶体管是主动的, 被提取。如果 ,则晶体管是被动的, 不被提取。
与 类似, 也可以通过从功率增益曲线上以 -20 dB/十倍频程的斜率使用以下公式进行线性外推来确定:
使用以下公式从 与 曲线提取 :
ft 和 fmax 的提取方法
和 通过以下射频提取库过程从相应的增益曲线中提取:
rfx::GetFt从 与频率曲线中提取rfx::GetFmax从 与频率曲线或 与频率曲线中提取
两个过程都使用三种不同的提取方法:单位增益点法、dB 点提取法和频率提取法。后两种方法是外推方法,假设增益具有理想的频率依赖性(低频时平坦,高频时以 -20 dB/十倍频程斜率线性下降)。
提取方法如下:
(a) 单位增益点法:使用 和 的定义。它直接搜索单位增益点,但如果增益曲线在单位增益点附近偏离 -20 dB/十倍频程斜率,可能会给出不适当的结果。
(b) dB 点提取法:寻找增益点( 或 ),在该点增益从其初始值下降了特定的分贝数(称为 dB 点)。使用 -20 dB/十倍频程斜率假设,从该点外推 或 。
(c) 频率提取法:与方法 (b) 相同,但从指定频率点外推。
TIP
建议始终同时使用所有三种方法。如果所有三种方法的 或 曲线吻合良好,则结果可以高度可信地信任。如果结果差异很大,则可能是增益曲线的形式阻止了有意义的自动提取。
稳定性截止频率
稳定性截止频率 定义为 (无条件稳定区域和条件稳定区域之间的边界)的频率点:
线性两端口网络的噪声系数
线性两端口网络的噪声因子 定义为输入端口的信噪比除以输出端口的信噪比。
在射频提取库中,使用噪声两端口网络的 y 参数和导纳表示的 PSD 来计算链表示的 PSD,然后用于计算两端口网络的噪声系数和噪声参数。
在链表示中,噪声两端口网络由两个噪声源 和 组成,放置在输入端口。两端口由具有源导纳 或源阻抗 的正弦源驱动。
噪声参数包括:
- 最小噪声系数
- 等效噪声电阻
- 最佳源导纳
等效噪声电阻 计算如下:
其中 是玻尔兹曼常数, K 是标准噪声温度。
最佳源导纳 由下式给出:
最小噪声因子 为:
噪声因子 为:
噪声系数 [dB] 为:
rfx 命名空间变量
射频提取库的许多过程使用表 37 中总结的变量。这些变量由 rfx::Load 过程创建。
NOTE
如果在 Sentaurus Device 命令文件中有命名噪声规范,则此名称被前缀到 PSD Tcl 数组的名称,例如 <name>_rfx::SV。
表 37:rfx 命名空间变量
| 变量名 | 描述 |
|---|---|
rfx::AC | 交流数组(参见 A 矩阵、C 矩阵和 Y 矩阵) |
rfx::Y | Y 矩阵(参见 A 矩阵、C 矩阵和 Y 矩阵) |
rfx::nfreq | 频率数量 |
rfx::freq | 频率列表 |
rfx::i_freqstart | 频率列表中第一个元素的索引 |
rfx::i_freqend | 频率列表中最后一个元素的索引 |
rfx::nbias | 偏置点数量 |
rfx::bias | 偏置点列表 |
rfx::i_biasstart | 偏置列表中第一个元素的索引 |
rfx::i_biasend | 偏置列表中最后一个元素的索引 |
rfx::z0 | 特性阻抗,单位 Ω。默认值:50 Ω |
rfx::Zs | 两端口网络看到的源阻抗 [Ω]。默认值:[$rfx::z0 0] |
rfx::T0 | 标准噪声温度 |
功率谱密度数组
| 变量名 | 描述 |
|---|---|
rfx::SV | NVSD 矩阵 |
rfx::SI | NISD 矩阵 |
rfx::SVee | 电子 NVSD 矩阵 |
rfx::SVhh | 空穴 NVSD 矩阵 |
rfx::SIee | 电子 NISD 矩阵 |
rfx::SIhh | 空穴 NISD 矩阵 |
rfx::SVeeDiff | 扩散 LNS 引起的电子 NVSD 矩阵 |
rfx::SVhhDiff | 扩散 LNS 引起的空穴 NVSD 矩阵 |
rfx::SVeeMonoGR | 单极产生-复合(GR)LNS 引起的电子 NVSD 矩阵 |
rfx::SVhhMonoGR | 单极 GR LNS 引起的空穴 NVSD 矩阵 |
rfx::SVeeFlickerGR | 闪烁 GR LNS 引起的电子 NV |
rfx::PowerGain
在固定偏置和频率点计算以下参数:
- 使用方程 51 计算 Rollett 稳定因子,使用方程 52 计算稳定性条件 delta
- 使用方程 54 计算 MSG(线性标度)
- 使用方程 55 和方程 56 计算 MAG(线性标度)
- 使用方程 57 计算 MUG(线性标度)
- 使用方程 58 计算单向品质因数
语法
rfx::PowerGain S11 S12 S21 S22返回值
以列表形式返回固定频率和偏置点下的 Rollett 稳定因子、稳定性条件 delta、MSG、MAG、MUG 和 。
示例
tcl
set S11 [list 0.999999877967 -8.36457327936e-05]
set S12 [list -1.20947562066e-07 1.09859319808e-05]
set S21 [list -0.0536108305232 4.08872504539e-05]
set S22 [list 0.997240784695 -2.17611978854e-05]
set Pgain [rfx::PowerGain $S11 $S12 $S21 $S22]
puts "K: [lindex $Pgain 0]"
puts "delta: [lindex $Pgain 1]"
puts "MSG: [lindex $Pgain 2]"
puts "MAG: [lindex $Pgain 3]"
puts "MUG: [lindex $Pgain 4]"
puts "U: [lindex $Pgain 5]"
#-> K: -0.009
#-> delta: 0.997
#-> MSG: 4879.658
#-> MAG: 4879.658
#-> MUG: -116265.652
#-> U: 449.598参数
| 参数 | 描述 |
|---|---|
S11 S12 S21 S22 | 固定频率和偏置点下 S 矩阵的四个列表形式的复数。每个列表包含 S 矩阵一个元素的实部和虚部。(实数列表,无默认值) |
rfx::RFCList
访问 Y-、h-、Z-、S-矩阵或 PSD 矩阵的切片,通常用于生成射频参数或 PSD 作为偏置或频率函数的曲线。
语法
tcl
rfx::RFCList -out <array_name> -rfparameter <string> -index <i>
[-noisename <string>]
[-noisesource "ee" | "hh" | "eeDiff" | "hhDiff" | "eeMonoGR" |
"hhMonoGR" | "eeFlickerGR" | "hhFlickerGR"]
[-xaxis "frequency" | "bias"] [-info 0 | 1 | 2 | 3] [-help 0 | 1]参数
| 参数 | 描述 |
|---|---|
-out <array_name> | 存储结果的数组名称。数组有一个字符串索引。索引包含元素 Re 和 Im。(数组名,无默认值) |
-rfparameter <string> | 参数标识符。例如,使用 h21 表示 h 矩阵元素 。对于 PSD,使用 sv<ij> 或 si<ij>。(字符串,无默认值) |
-index <i> | 选择切片的索引。(整数,无默认值) |
-noisename <string> | 噪声规范的名称。(字符串,默认值:"") |
-noisesource | 噪声源的名称。仅用于访问部分 PSD 的矩阵。(字符串,无默认值) |
-xaxis | 指定频率或偏置作为轴。(字符串,默认值:"frequency") |
-info | 设置本地信息级别。(整数,默认值:0) |
-help | 设置为 1 时打印帮助屏幕。(整数,默认值:0) |
返回值
无
示例
tcl
# 对于 v=0.5,返回 z11 作为频率函数的实部和虚部
rfx::Load -dataset "ACPLT_nMOS" -file "DATA/nMOS_ac_des.plt" \
-port1 1 -port2 2 -biasport "v(1)" -devicewidth 0.9
rfx::GetNearestIndex -out i_bias -target 0.5 -list $rfx::bias
puts "Nearest bias point index: $i_bias"
set BiasPoint [lindex $rfx::bias $i_bias]
puts "Corresponding bias point: $BiasPoint"
rfx::RFCList -out ReImz11 -rfparameter "z11" -xaxis "frequency" \
-index $i_bias
puts "Re(ReImz11): $ReImz11(Re)"
puts "Im(ReImz11): $ReImz11(Im)"
#-> Nearest bias point index: 10
#-> Corresponding bias point: 0.5
#-> Re(ReImz11): 10748.32 10746.14 10741.47 ...
#-> Re(ReImz11): -138.16 -202.74 -297.45 ...rfx::SmithBackdrop
创建史密斯圆图背景,用于绘制射频参数。创建两组曲线:归一化电阻圆和归一化电抗(容性或感性)弧。
语法
tcl
rfx::SmithBackdrop -plot <plotName> -r <list_of_r> -x <list_of_r>
[-dataset <dataName>] [-color <stringValue>]
[-linestyle <stringValue>] [-linewidth <r>]
[-info 0 | 1 | 2 | 3] [-help 0 | 1]参数
| 参数 | 描述 |
|---|---|
-plot <plotName> | 史密斯圆图的名称。(字符串,无默认值) |
-r <list_of_r> | 归一化电阻值列表。列表必须包含正数值,这些值单调增加。(实数列表,无默认值) |
-x <list_of_r> | 归一化电抗值列表。列表必须包含非零正值,这些值单调增加。(实数列表,无默认值) |
-dataset | 用于创建史密斯圆图背景的数据集名称。(字符串,默认值:"SmithBackdrop") |
-color | 设置史密斯圆图背景曲线的颜色。(字符串,默认值:"black") |
-linestyle | 设置史密斯圆图背景曲线的线型。(字符串,默认值:"dash") |
-linewidth | 设置史密斯圆图背景曲线的线宽。(实数,默认值:2.0) |
返回值
无
示例
tcl
set Rs [list 0 0.3333 1.0 3.0]
set Xs [list 0.268 0.575 1 1.73 3.75]
rfx::SmithBackdrop -plot Plot_Smith -r $Rs -x $Xsrfx::Y2H
使用方程 46 在固定频率和偏置点将 Y 参数转换为 h 参数。
语法
rfx::Y2H Y11 Y12 Y21 Y22返回值
以四个列表形式返回固定频率和偏置点下的复数 h 矩阵。每个列表包含 h 矩阵一个元素的实部和虚部。
示例
tcl
set Y11 [list 1.21582e-09 8.33508513295e-07]
set Y12 [list 1.21693e-09 -1.10011034906e-07]
set Y21 [list 0.000536849 -3.81214675594e-07]
set Y22 [list 2.76303e-05 2.15260671987e-07]
set H [rfx::Y2H $Y11 $Y12 $Y21 $Y22]
puts "h11= [lindex $H 0]"
puts "h12= [lindex $H 1]"
puts "h21= [lindex $H 2]"
puts "h22= [lindex $H 3]"
#-> h11= 1750.04 -1199745.24
#-> h12= 0.13 0.0017
#-> h21= 0.48 -644.08
#-> h22= 9.85e-05 1.05e-06rfx::Y2S
使用方程 47 在固定频率和偏置点将 Y 参数转换为 S 参数。S 参数使用默认为 50 Ω 的特性阻抗计算。
NOTE
此过程使用变量 rfx::z0(参见第 545 页的特性阻抗和源阻抗)。
语法
rfx::Y2S Y11 Y12 Y21 Y22返回值
以四个列表形式返回固定频率和偏置点下的复数 S 矩阵。每个列表包含 S 矩阵一个元素的实部和虚部。
示例
tcl
set rfx::z0 100.0
set Y11 [list 1.21582e-09 8.33508513295e-07]
set Y12 [list 1.21693e-09 -1.10011034906e-07]
set Y21 [list 0.000536849 -3.81214675594e-07]
set Y22 [list 2.76303e-05 2.15260671987e-07]
set S [rfx::Y2S $Y11 $Y12 $Y21 $Y22]
puts "S11= [lindex $S 0]"
puts "S12= [lindex $S 1]"
puts "S21= [lindex $S 2]"
puts "S22= [lindex $S 3]"
#-> S11= 0.9999997 -0.00017
#-> S12= -2.40e-07 2.19e-05
#-> S21= -0.11 8.73e-05
#-> S22= 0.99 -4.40e-05rfx::Y2Z
使用方程 49 在固定频率和偏置点将 Y 参数转换为 Z 参数。
语法
rfx::Y2Z Y11 Y12 Y21 Y22返回值
以四个列表形式返回固定频率和偏置点下的复数 Z 矩阵。每个列表包含 Z 矩阵一个元素的实部和虚部。
示例
tcl
set Y11 [list 1.21582e-09 8.33508513295e-07]
set Y12 [list 1.21693e-09 -1.10011034906e-07]
set Y21 [list 0.000536849 -3.81214675594e-07]
set Y22 [list 2.76303e-05 2.15260671987e-07]
set Z [rfx::Y2Z $Y11 $Y12 $Y21 $Y22]]
puts "Z11= [lindex $Z 0]"
puts "Z12= [lindex $Z 1]"
puts "Z21= [lindex $Z 2]"
puts "Z22= [lindex $Z 3]"
#-> Z11= -482.36 -336580.47
#-> Z12= 1340.15 2.46
#-> Z21= 64960.88 6539151.68
#-> Z22= 10152.58 -108.46复数运算支持
本节描述用于执行复数运算的过程。对于大多数过程,射频提取库包含两个版本的过程:标量版本和矢量版本。标量版本的过程名称以 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_c 和 rfx::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.0rfx::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.414rfx::Abs2_c
计算复数绝对值的平方。
语法
tcl
rfx::Abs2_c z返回值
单个值,即复数绝对值的平方。
示例
tcl
set z [list 4 3]
puts [rfx::Abs2_c $z]
#-> 25rfx::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