LLRFLibsPy库中cav_impulse函数解读
source code: Github
这个函数 cav_impulse
计算了腔体系统的脉冲响应。该函数假设系统增益已经归一化为1,并且系统相位校正为0。对应的腔体方程为 $ \frac{dvc}{dt} + (half_{bw} - 1j \cdot detuning) \cdot v_c = half_bw \cdot v_d $,其中 vc
是腔体电压向量,vd
是腔体驱动向量。
函数参数:
half_bw
(float):腔体的常数半带宽,以弧度每秒为单位。detuning
(float):腔体的常数失谐,以弧度每秒为单位。Ts
(float):采样时间,以秒为单位。order
(int):脉冲响应的阶数。
函数返回值:
status
(boolean):成功(True)或失败(False)。h
(numpy array, complex):脉冲响应。
代码解释:
输入检查:
- 检查
half_bw
、detuning
、Ts
是否大于0,并且order
是否大于2。如果任何一个条件不满足,返回False
和None
。
- 检查
计算脉冲响应:
- 使用 numpy 的
arange
函数生成从0到order-1
的整数数组k
。 - 计算脉冲响应
h
,公式为:
$$
h = Ts \cdot half_bw \cdot (1.0 - Ts \cdot (half_bw - 1j \cdot detuning))^k
$$ - 这个公式基于离散时间域的腔体方程。
- 使用 numpy 的
返回结果:
- 返回
True
和计算出的脉冲响应h
。
- 返回
示例代码:
1 | import numpy as np |
输出结果:
1 | 脉冲响应计算成功 |
在这个示例中,我们计算了一个带有特定半带宽和失谐的腔体系统的脉冲响应,并输出结果。