YunSDR小课堂-MATLAB与Simulink入门(第96讲)

B.3. 系统对象

系统对象是MATLAB中类的特化,定义了一组特定的方法,使初始化、运行时操作和资源释放过程更加简便。

类本质上是一组共享一组称为参数的变量的函数集合。这些参数在类中定义,并具有确定的作用域范围。尽管许多方法由系统对象实现,但用户应重点理解的三个主要方法是setupImpl、 stepImpl和releaseImpl。它们的写法如下

setupImpl用于初始化参数并执行系统对象生命周期内所需的计算。 stepImpl是运行时调用的函数(方法),通常会被多次调用,负责处理输入和输出。最后,releaseImpl方法用于销毁对象,释放其内存或执行关闭操作。例如,如果该对象用于向文件写入数据,调用此方法时将关闭该文件。

当调用系统对象的操作符或步骤方法时,首次调用实际上会先调用setupImpl方法。此时系统对象被视为已锁定状态。随后会调用stepImpl方法。后续的操作符或步骤调用仅调用stepImpl方法。若要解锁对象,必须调用releaseImpl方法。对象一旦解锁,下一次操作符或步骤调用时setupImpl将再次被调用。我们在以下脚本中概述该过程:

系统对象对于封装大量功能以及需要维护状态时极为有用。例如,滤波器需要维护状态,因此系统对象是显而易见的选择。MATLAB所涵盖的工具箱利用与其缩写相关的系统对象扩展。

数字信号处理系统工具箱中的示例包括:

dsp.FIRDecimator,dsp.SpectrumAnalyzer和dsp.SignalSource。

关于系统对象的更多详细信息,可参见MathWorks文档,文档中详尽介绍了其实现及应用。

c.1. 线性均衡器

假设我们采用这样一个收发器模型,其中信息来源产生振幅值In,作用于无限冲激列;即,

其中δ(t)为狄拉克δ函数。对信息信号s(t)施加发射脉冲整形滤波器hT(t),得到发射机输出信号:

该信号随后通过一个由信道滤波器hC(t)及加性高斯白噪声信号z(t)共同表征的传播信道。信道滤波器的输出为信号:

其中,h(t)=hT (t)∗hC(t)为信道脉冲响应。接收机截获的信号表示为

在接收端,我们希望求解均方误差(MSE)的表达式并使其最小化。为实现该目标,我们选择与h(t)匹配的接收滤波器hR(t),从而获得以下最优结果:

由此得到接收机滤波器的输出为


可表示为vk的自相关函数与功率谱密度,即,

处理彩色噪声的第二种方法是实现所谓的白化滤波器。在这种情况下,我们尝试逆转接收机滤波器对噪声信号z(t)的影响。换言之,既然我们已知vk的功率谱密度为Sv(z)=N0X(z),那么最终我们希望白化后的噪声功率谱密度仅等于N0。为实现这一点,我们假定xk的Z变换,X(z),可以表示为:

因此,我们有一个白化滤波器,其传递函数为

1/F∗(1/z∗),该白化滤波器输出端的功率谱密度应为:

由此输出的噪声信号为白噪声。

文章来源:威视锐科技