Engee 文档

LMS Filter

自适应最小均方差(LMS)算法,用于计算输出、误差和权重。

类型: LMSFilter

图书馆中的路径:

/Signal Operations/Filters/Adaptive Filters/LMS Filter

说明

LMS Filter 模块可以使用五种不同的算法实现自适应 FIR 滤波器。该程序块估算滤波器权重,以最小化输出信号 与期望信号 之间的误差 。输出是经过滤波的输入信号,即预期信号的估计值。错误*端口输出输出信号与期望信号相减的结果。

端口

输入

输入 - 输入信号
标量` | 向量列

以标量或列向量形式指定的输入信号。

如果 Algorithm 设置为 "Sign-Error LMS"、"Sign-Data LMS "或 "Sign-Sign-Sign LMS",则 Input 端口上的数据必须是实数。

数据类型: single, Float64

*所需*是所需信号
标量列

指定为标量或矢量列的预期信号。

所需信号的数据类型、复杂度和尺寸必须与 Input 端口上的信号相同。

如果 Algorithm 设置为 "Sign-Error LMS"、"Sign-Data LMS "或 "Sign-Sign-Sign LMS",则 Desire 端口上的数据必须是实数。

数据类型: single, Float64

Step-size 是步长
标量

输入步长,

归一化 LMS 算法的收敛方程:

输入数据类型必须与 Input 输入的数据类型一致。

依赖关系

只有当*通过*参数指定步长*设置为 "输入端口 "时,该端口才会出现。

数据类型: single, Float64

Adapt - 更新过滤器权重
标量

如果 Adapt 端口的值大于零,程序块就会不断更新滤波器权重系数。

如果 Adapt 端口的值小于或等于零,权重系数将保持当前值。

依赖关系

只有当 Adapt port 参数设置为 "on "时,该端口才会出现。

数据类型: single, Float64, Int8, Int16, Int32, Boolean

重置 - 重置过滤器权重
标量

用于重置滤波器权重系数的值,使其恢复到以标量形式设置的初始值。

每次在 Reset 端口检测到重置事件时,程序块都会重置权重系数值。

有关复位事件类型,请参阅*复位端口*参数。

依赖关系

该端口只有在 Reset port 参数设置为 "上升沿"、"下降沿"、"任一沿 "或 "非零采样 "时才会出现。

数据类型: single, Float64, Int8, Int16, Int32, Boolean

输出

输出 - 预期信号的评估
标量` | 向量列

以标量或矢量列形式返回的预期信号估计值。其大小和复杂程度与输入信号相同。

输出信号的数据类型与预期信号相同。

数据类型: single, Float64

错误 - 输出信号与所需信号之间的误差
标量` | 向量-列

输出信号和预期信号之间的误差,以标量或列向量形式返回。该误差是输出信号与预期信号相减的结果。

误差信号的数据类型与预期信号相同。

数据类型: single, Float64

Wts - 滤波权重系数
标量 | `矢量-列

以标量或矢量列形式返回的滤波权重系数。每次迭代,该模块都会从该端口输出当前更新的滤波器权重。

依赖关系

只有当*输出滤波器权重*参数设置为 "开启 "时,该端口才会出现。

数据类型: single, Float64

参数

主要参数

算法 - 计算滤波器权重的算法
LMS(默认) | 归一化 LMS | 符号错误 LMS | 符号数据 LMS | 符号符号 LMS

选择用于计算过滤器权重的算法。

滤波器长度 - 滤波器长度
32(默认) | `标量

输入 FIR 滤波器权重向量的长度。

通过-步长指定方法指定步长
对话框(默认) | 输入端口
  • 对话框"- 使用*步长(mu)*参数指定步长。

  • Input port - 使用 Step-size port 指定步长。

步长 (mu) - 步长
0.1(默认值)` |`正标量

输入步长,

归一化 LMS 算法的收敛方程 : .

依赖关系

只有当*通过*参数指定步长*设置为 "对话框 "时,该参数才会出现。

损耗因数(0 至 1) - 损耗因数
1.0(默认)` | `标量'。

输入损耗因数,

筛选权重的初始值 - 筛选权重的初始值
0(默认)` | 向量 | `标量

以矢量或标量形式输入权重初始值 w(0)。

如果输入标量,程序块将使用标量值创建滤波器权重系数向量。该向量的长度等于滤波器的长度,其所有值都等于标量值。

自适应端口 - 启用自适应端口
Off(默认)` | On.

选择此复选框可启用*适配端口*。

复位端口 - 复位端口
无(默认)"|"上升沿"|"下降沿"|"任一沿"|"非零采样"。

如果要将滤波器权重重置为初始值,请使用 Reset port 参数。

重置信号的速度必须与输入数据信号的速度相同。

  • None - 禁用 Reset 端口

要启用 Reset 端口,请从列表中选择以下选项之一:

  • 上升沿"- 当 Inc/DecRst 输入端口上的信号发生如下变化时,启动计数或复位操作:

    • 从上升沿上升到正或零。

    • 如图所示,从零上升到上升沿时,上升沿不是从后沿上升到零的延续。

counter 1

  • 下降沿"- 当 Inc/DecRst 输入端口的信号发生如下变化时,开始计数或复位操作:

    • 从上升沿下降到负或零。

    • 如图所示,从零下降到下降沿时,下降沿不是从上升沿下降到零的延续。

counter 2

  • 任一边沿"- 当 Inc/DecRst 输入端口上出现 "上升沿 "或 "下降沿 "启动事件时,启动计数或复位操作。

  • 非零采样"- 当 Inc/DecRst 输入端口上的信号不为零时,在每个采样时钟上启动计数或复位操作。

输出滤波器权重 - 滤波器输出权重
开(默认)`| 关

选择 Output filter weights 参数可从 Wts 输出端口输出过滤权重。每次迭代时,程序块都会从该端口输出当前更新的权重。

可选

*LMS 过滤器的算法

如果在*算法*参数中选择 "LMS",程序块将使用最小均方(LMS)算法计算滤波器权重。该算法由以下公式定义。





该模块中的不同自适应 LMS 滤波算法定义如下

  • LMS

  • 归一化 LMS

在归一化 LMS 中,为了克服更新权重时可能出现的数值不稳定性,在分母 中加入了一个小的正常数。

对于双精度浮点输入数据, 等于`eps(Float64)`函数的输出。对于单精度数据, 等于`eps(Float32)`函数的输出。

  • 符号错误 LMS

  • Sign-Data LMS

其中 u(n)为实数。

  • 符号-符号 LMS -

μμ

其中 u(n) 为实数。

变量 说明

当前时间的索引

u`( )

每步缓冲输入采样的向量

u`( )

每步缓冲输入采样的复共轭向量

w`( )

每步的滤波权重估计向量

每步的滤波输出信号

每步的估计误差

每步的预期信号

适应步长

损失因子 ( )

一个常数,用于修正权值更新过程中可能出现的数值不稳定性。

另见

  1. Hayes, M.H.."Statistical Digital Signal Processing and Modeling." New York: John Wiley & Sons, 1996.