自适应滤波器跟踪系统的动态特性,并允许您消除时变信号。DSP System Toolbox™库包含实现最小均方(LMS)、块LMS、快速块LMS和递归最小二乘(RLS)自适应滤波器算法的块。这些滤波器通过改变它们的滤波器系数来最小化输出信号和期望信号之间的差异。随着时间的推移,自适应滤波器的输出信号更接近你想要再现的信号。
在这个例子中,你设计了一个LMS自适应滤波器来去除信号中的低频噪声:
如果您创建的模型添加一个数字滤波器到您的模型不是在您的桌面上打开的,您可以通过键入
在MATLAB®命令提示符。
输入以下命令打开DSP系统工具箱库dsplib
在MATLAB命令提示符处。
通过添加一个LMS滤波器阻塞你的系统。在飞机的情况下,这相当于从麦克风的输入中减去驾驶舱内的风噪声。双击Filtering库,然后双击Adaptive Filters库。添加LMS滤波器块到您的模型。
设置LMS滤波器块参数来模拟数字滤波器设计块的输出。双击该块打开LMS Filter对话框。设置和应用块参数如下:
算法=归一化LMS
滤波器长度=32
指定步长=对话框
步长(亩)=0.1
泄漏系数(0 ~ 1)=1.0
滤波器权重的初始值=0
清除适应港口复选框。
重新设置端口=没有一个
选择输出滤波器的权重复选框。
基于这些参数,LMS Filter块使用归一化LMS方程计算滤波器权值。您指定的滤波器顺序与数字滤波器设计块中的滤波器顺序相同。的步长(亩)参数定义筛选器更新步骤的粒度。因为你设置了泄漏系数(0 ~ 1)参数1.0
,当前滤波系数的值取决于滤波器的初始条件和所有以前的输入值。滤波器权重(系数)的初始值为零。既然您选择了输出滤波器的权重复选框,出世端口出现在块上。块从这个端口输出过滤器权重。
现在您已经设置了LMS Filter块的块参数,您可以将这个块合并到您的块图中。
在这个例子中,您可以通过合并您设计的自适应滤波器来恢复原始的正弦信号在Simulink中设计一个自适应滤波器金宝app进入你的系统。在飞机场景中,自适应滤波器模拟驾驶舱内听到的低频噪声。因此,您可以消除噪音,使飞行员的声音是麦克风的唯一输入:
如果您创建的模型在Simulink中设计一个自适应滤波器金宝app不是在您的桌面上打开的,您可以通过键入
在MATLAB命令提示符处。
在模型中添加一个Sum块,从带有低频噪声的正弦信号中减去自适应滤波器的输出。从仿真软件金宝app®数学运算库,将Sum块拖到模型中。双击此块打开“和”对话框。改变符号列表参数为|+-,然后单击好吧.
将LMS Filter块合并到系统中。
将随机源块的输出连接到LMS Filter块的输入端口。在飞机场景中,随机噪声是由飞机外部的传感器测量到的白噪声。LMS滤波模块模拟了飞机机身对噪声的影响。
将数字滤波器设计块的输出连接到LMS滤波器块的所需端口。这是您希望LMS块复制的信号。
将LMS Filter块的输出连接到步骤2中添加的Sum块的负端口。
将第一个Sum块的输出连接到第二个Sum块的正端口。您的模型现在应该与下图类似。
第二个的积极输入总和块是输入信号与低频噪声的和,年代(n) +y.第二个的负输入总和块是LMS滤波器块对低频噪声的最佳估计,y'.当你减去这两个信号时,你就得到了输入信号的近似。
在这个方程:
年代(n)为输入信号
是输入信号的近似值吗
y噪音是由收音机发出的吗随机源块和数字滤波器设计块
y'LMS滤波器块是噪声的近似吗
因为LMS滤波器块只能近似噪声,输入信号和近似输入信号之间仍然存在差异。在后续步骤中,您将设置范围所以你可以比较原始的正弦信号和它的近似。
向Scope块添加两个额外的输入和轴。控件,打开作用域对话框范围块。单击参数按钮。为数量的轴参数,输入4
.单击关闭对话框好吧.
标记新的范围轴。在Scope窗口中,右键单击第三个轴并选择轴属性.将打开Scope属性:轴3对话框。在标题框中,输入输入信号近似
.单击关闭对话框好吧.对第四个轴重复此步骤并标记它错误
.
将第二个Sum块的输出连接到接口的第三个端口范围块。
连接的输出错误港口LMS滤波器块的第四个端口范围块。您的模型现在应该与下图类似。
在本例中,错误端口是LMS滤波器的期望信号与其输出信号之间的差值。由于误差从不为零,滤波器继续修改滤波器系数,以便更好地逼近低频噪声。近似度越高,可以从正弦信号中去除的低频噪声就越多。下一个话题,查看自适应过滤器的系数,您将学习如何查看随时间变化的自适应滤波器系数。
根据选择的算法,自适应滤波器的系数随时间而变化。一旦算法优化了滤波器的性能,这些滤波器系数就会达到它们的稳态值。当模拟运行时,您可以查看系数的变化,以看到它们稳定到稳定状态的值。然后,您可以确定是否可以在实际系统中实现这些值:
如果您创建的模型向模型添加自适应过滤器不是在您的桌面上打开的,您可以通过键入
在MATLAB命令提示符处。请注意,出世输出滤波器权值的自适应滤波器端口仍然需要连接。
输入以下命令打开DSP系统工具箱库dsplib
在MATLAB命令提示符处。
通过连接a查看过滤系数时间范围块的出世港口的LMS滤波器块。
在时间范围块,修改以下配置属性:
时间跨度=0.05
Y-limits(最小)=-0.15
Y-limits(最大)=0.5
开放模式设置。在建模选项卡上,单击模型设置.在解算器窗格,设置这些配置参数:
停止时间=正
类型=固定步
解算器=离散(无连续状态)
对于包含DSP系统工具箱块的模型,我们推荐这些配置参数。因为这些块直接计算值,而不是求解微分方程,所以必须配置Simulink Solver,使其行为类似于调度程序。金宝app在调度器模式下,求解器使用一个块的样本时间来确定每个块后面的代码何时执行。例如,模型中正弦波和随机源块的采样时间为0.05
.Solver执行这些块后面的代码,每0.05秒执行一次这个样本时间的其他块。
请注意
当使用包含DSP系统工具箱块的模型时,使用使您能够指定它们的采样时间的源块。如果你的源块没有样品时间参数,则必须在模型中添加一个零阶保持块并使用它指定采样时间。有关更多信息,请参见连续时间源块.这个规则的例外是Constant块,它可以有一个常量的采样时间。当它发生时,Simulink金宝app执行此块并在模拟开始时和任何时候调优参数时记录常量值。这允许更快的模拟和更紧凑的生成代码。
运行模型并在Time Scope中查看过滤系数的行为,当模拟开始时,Time Scope会自动打开。随着时间的推移,过滤系数接近它们的稳态值。
您还可以在Scope窗口中查看系统的行为。随着时间的推移,误差逐渐减小,输入信号的近似与原始的正弦输入信号更加接近。
现在,您已经创建了一个能够自适应噪声消除的模型。
您已经学习了如何使用数字滤波器设计块。控件还学习了如何创建自适应过滤器LMS滤波器块。DSP系统工具箱产品有其他模块,能够设计和实现数字滤波器和自适应滤波器。有关此产品的过滤功能的更多信息,请参见滤波器的设计和滤波器的分析.
由于该模型中的所有块具有相同的采样时间,因此该模型是单速率的,并在Simulink中运行金宝appSingleTasking
解算器模式。如果模型中的块有不同的采样时间,则模型是多速率的,Simulink可能会在其中运行它金宝app多任务处理
解算器模式。有关求解器模式的更多信息,请参见离散时间模拟的推荐设置.
要学习如何使用金宝app仿真软件编码器™产品,请参阅从Simulink模型生成C代码金宝app.