通常在模拟串行通信链路时,我们假定其大部分组件为线性时不变的(LTI)。1现在,众所周知,LTI系统完全由它们的脉冲响应.2此外,由两个LTI分量串联组成的系统也是LTI,其脉冲响应由式给出卷积它的两个组成部分的脉冲响应:3.
因此,如果我们知道连杆的每个组成部分的脉冲响应,那么我们就可以使用上面的技术计算它的总体脉冲响应。4
大多数连杆元件都具有易于理解的脉冲响应和方便的解析数学描述。然而,通道描述经常出现在我们的一系列样本的形式频率响应,是在某些明确的条件下拍摄的。5到目前为止,这种样品的最常见的递送方法是通过试金石®文件格式6
通常,试金石文件可以包含任意数量的端口。但是,我们在这里只考虑两种端口模型。试金石文件包含关于一个频道的若干条信息。我们感兴趣的部分是插入损耗,它也有一个名字:传递函数,通常表示为:.然而,这种插入损耗和传递函数之间的等价性仅在模型的端口被终止到其指定的阻抗时有效。7双端口试金石文件的插入损耗以分量形式给出年代(2,1).
注意:需要一个真正的(可能是否定的)论点:,并返回一个复杂的值:
(),从而使级而且阶段在特定频率下的信道响应,.
请注意:当H (f)分析函数对任意值都有效吗f,我们在试金石文件中给出的数据只是这个函数的一个样本。因此,我们可能需要插入和/或重新取样提供的数据,为了使用函数,H (f).
所以,我们的问题表述是这样的:
解决方案描述
但是,我们怎么做呢?我们知道,在上述条件下,插入损失是传递函数的另一种名称。我们知道传递函数和脉冲响应组成了一个傅里叶变换对
所以,也许就像这样简单:?
这太好了,因为几乎每个数学建模包都有一个ifft()函数。
当我们尝试这样做时,我们得到了一个看起来很有趣的通道脉冲响应图,我们从经验中知道这是错误的:
问题是ifft()函数期望其输入包含关于的信息这两个频率:在某个幅度范围内,以非常精确的顺序出现的正频率和负频率:
地点:
- 是基本频率,
- 是尼奎斯特频率,
- N是向量样本的个数,
- T年代是样本周期,和
- 是采样频率。
的传递函数任何真实结构,比如我们的通道,都是埃尔米特:
在哪里是复共轭的
因此,Touchstone文件不需要携带负频率值,因为它们可以很容易地从任何实际信道的正频率值计算出来。但是我们必须记住在调用传输线()功能!
根据上述讨论对原始Touchstone数据进行适当的处理后,我们得到了一个更可信的通道脉冲响应,如图2所示。
这看起来更合理,但这些涟漪是从哪里来的呢?他们是真的吗?
响
您可能已经猜到,在图2的脉冲响应中看到的波纹是不真的,如果是的话,我们就有非因果渠道和没有真正的渠道可以是非因果的。
让我们看看来自这个通道的Touchstone文件的插入损失数据。这些数据如图3所示。
请注意,我们只是停止测量通道插入损失,而它仍然有显著的量级!显然,插入损耗并没有突然降到零,当我们任意决定停止测量时。但这正是我们要求ifft()函数相信的。实际上,就ifft()而言,通道的插入损失如图4所示。人们会认为这可能会在结果中引起一些问题。
注意,图4中绘制的函数可以表示为:
在哪里H (f)是我们的真通道传递函数,且:
我们发现真实的通道传递函数为窗口的通过一个矩形函数,由于我们测量的频率范围是有限的。
频域中的乘法等于卷积在时域内。我们期望计算出来的通道脉冲响应等于实际的通道脉冲响应与矩形函数的傅里叶变换的卷积,也就是asinc:
这正是我们在图2中观察到的情况。
窗口
在将原始频域数据转换为时域之前,我们通常可以通过对原始频域数据应用我们自己的附加窗口来减少(如果不能完全消除)图2中观察到的振铃。图5的图表显示了用于此目的的一个常用函数提出了余弦.
图6中的图表显示了这个附加窗口对计算脉冲响应(蓝色轨迹)的影响。在该图中,重复了图2中计算的脉冲响应(灰色部分),以供参考。
我们发现,通过用加窗函数预处理插入损失数据,我们已经消除了波纹,代价是峰值振幅降低和主脉冲略微展宽。(没有什么是免费的。)
当然,窗口函数有无数种选择。图7的图显示了一个凸起余弦窗口的部分家族,其中活动区域从全测量带宽逐渐缩小到零。还显示了测量数据隐式的矩形窗口,以供参考。
图8中的图显示了相应的脉冲响应。
从这两个图中可以清楚地看出,当我们减小凸起余弦窗口活动区域的宽度时,它在两个域的行为逐渐接近隐式矩形窗口。
封闭的思想
我们已经了解了如何转换频道插入损耗数据在一个标准的试金石文件进入通道脉冲响应,可以进一步用于时域模拟。我们已经揭示了在将这些原始测量数据输入标准建模包(如ifft())中可用的数学函数时必须注意的微妙之处。我们已经展示了如何以窗口的形式对试金石数据进行一些预处理,通过消除使用频率有限的测量数据所产生的振铃,来帮助改善我们的结果。
鼓励读者探索其他窗口选项,以帮助优化插入损耗数据转换为脉冲响应。作者发现了实用的损害窗口,用于此应用程序:
为此,有兴趣进一步探索这个主题的读者可能会发现Jupyter笔记本非常有用:https://github.com/capn-freako/PyBERT/blob/master/misc/scikit-rf/S-param_Explorer.ipynb
1通常,唯一的例外是CDR/DFE对,它位于链路信号流的最末端。
当然,这种技术可以被递归地重复,以从更多的组件构建系统。
4当然,如前所述,这并不适用于CDR/DFE。
7如果他们是不同样的,一个过程叫做重正化可以使用,以便继续使用这里描述的方法。重整超出了本文的范围。