LMS Filter
自适应最小均方差(LMS)算法,用于计算输出、误差和权重。
类型: LMSFilter
图书馆中的路径:
|
说明
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/Dec 或 Rst 输入端口上的信号发生如下变化时,启动计数或复位操作:
-
从上升沿上升到正或零。
-
如图所示,从零上升到上升沿时,上升沿不是从后沿上升到零的延续。
-
-
下降沿"- 当 Inc/Dec 或 Rst 输入端口的信号发生如下变化时,开始计数或复位操作:
-
从上升沿下降到负或零。
-
如图所示,从零下降到下降沿时,下降沿不是从上升沿下降到零的延续。
-
-
任一边沿"- 当 Inc/Dec 或 Rst 输入端口上出现 "上升沿 "或 "下降沿 "启动事件时,启动计数或复位操作。
-
非零采样"- 当 Inc/Dec 或 Rst 输入端口上的信号不为零时,在每个采样时钟上启动计数或复位操作。
输出滤波器权重 - 滤波器输出权重
开(默认)`| 关
选择 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`( ) |
每步的滤波权重估计向量 |
|
每步的滤波输出信号 |
|
每步的估计误差 |
|
每步的预期信号 |
|
适应步长 |
|
损失因子 ( ) |
|
一个常数,用于修正权值更新过程中可能出现的数值不稳定性。 |