def compute_psi(b2, l_eff_a, f_ch, channel_index, interfering_index, rs):
""" compute_psi computes the psi coefficient of the analytical formula.
:param b2: Fiber dispersion coefficient in ps/THz/km. Scalar
:param l_eff_a: Asymptotic effective length in km. Scalar
:param f_ch: Baseband channels center frequencies in THz. Array of size 1xNch
:param channel_index: Index of the channel. Scalar
:param interfering_index: Index of the interfering signal. Scalar
:param rs: Channels' Symbol Rates in TBaud. Array of size 1xNch
:return: psi: the coefficient
"""
b2 = np.abs(b2)
if channel_index == interfering_index: # The signal interfere with itself
rs_sig = rs[channel_index]
psi = np.arcsinh(0.5 * np.pi ** 2 * l_eff_a * b2 * rs_sig ** 2)
else:
f_sig = f_ch[channel_index]
rs_sig = rs[channel_index]
f_int = f_ch[interfering_index]
rs_int = rs[interfering_index]
del_f = f_sig - f_int
psi = np.arcsinh(np.pi ** 2 * l_eff_a * b2 * rs_sig * (del_f + 0.5 * rs_int))
psi -= np.arcsinh(np.pi ** 2 * l_eff_a * b2 * rs_sig * (del_f - 0.5 * rs_int))
return psi
__init__.py 文件源码
python
阅读 22
收藏 0
点赞 0
评论 0
评论列表
文章目录