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