AnyMath 文档

工程师。Blocklms过滤器

使用自适应最小二乘算法块计算输出、误差和权重。

库::`工程师` 座:: LMS Filter

资料描述

系统对象*EngeeDSP。BlockLMSFilter*使用实现最小二乘自适应算法(Lms)的块计算输出数据、误差和权重。

要计算输出、误差和权重,请执行以下步骤:

  1. 创建*EngeeDSP。BlockLMSFilter*对象并设置其属性。

  2. 用参数调用对象,就好像它是一个函数一样。

若要了解有关如何使用系统对象的详细信息,请参阅 AnyMath系统对象.

语法

创造

  • blms=EngeeDSP。BlockLMSFilter() -返回自适应FIR滤波器系统对象 大厦,其对输入信号进行滤波并基于最小二乘(Lms)算法块计算滤波权重。

  • blms=EngeeDSP。BlockLMSFilter(length,blocksize) -返回自适应FIR滤波器系统对象 大厦,它具有属性*[Property:Length]*值集 长度,并为属性*[Property:BlockSize]*-value 区块大小.

  • blms=EngeeDSP。BlockLMSFilter(名称=值) -返回具有指定属性的自适应FIR滤波器系统对象作为一对 名称=值,在哪里 姓名 -物业的名称,以及 价值 -适当的值。 您可以指定多个对 «名称-值» 对的顺序并不重要。 未指定的属性保留其默认值。

    例子::

    # создание адаптивного КИХ-фильтра с количеством отсчетов, полученных до адаптации весовых коэффициентов, 16
    blms = EngeeDSP.BlockLMSFilter(BlockSize = 16)

使用

  • [参数:y],[参数:err],[参数:wts]=blms(<参数:x>>,[参数:d]) -过滤输入信号 x 使用 d 作为所需信号,并返回滤波后的输出信号 y. 过滤器错误 — 错误,估计滤波器权重 — 西隧. 对象处理的每个数据块的滤波器权重更新一次。

  • [参数:y],[参数:err]=blms([参数:x],[参数:d]) -仅返回滤波后的输出信号 y 和过滤器错误 错误 如果为属性*[Property:WeightsOutputPort]*值集 错误.

  • ___ =blms([参数:x],[参数:d],[参数:mu]) -用途 作为步长,如果为属性*[Property:StepSizeSource]*值集 "输入端口". 这些输入参数可以与前面的任何一组输出参数一起使用。

  • ___ =blms(<参数:x>>,<参数:d>>,<参数:a>>) -用途 a 作为控制适配的信号,如果为属性*[Property:AdaptInputPort]*值集 真的. 何时 a 不等于零,则滤波器不断更新滤波器权值。 何时 a 等于零,则滤波器权重保持恒定。

  • ___ =blms(<参数:x>>,<参数:d>>,<参数:r>>) -用途 r 作为复位信号,如果为属性*[Property:WeightsResetInputPort]*值集 真的. 使用*[Property:WeightsResetCondition]*设置重置触发条件。 如果发生重置事件,筛选器将筛选器权重重置为其初始值。

  • [参数:y],[参数:err],[参数:wts]=blms(<参数:x>>,<参数:d>>,<参数:mu>>,<参数:a>>,<参数:r>>) -过滤输入信号 x 使用 d 作为所需信号, 作为步长, a 作为信号控制适应,以及 r 作为复位信号。 对象返回滤波后的输出信号 y,过滤错误 错误 和适配的滤波器权重 西隧. 设置适当的属性以提供所有可能的输入数据。

争论

输入参数

# x — 输入数据

+ 标量,标量 | 列向量

Details

将被LMS滤波器系统对象滤波的信号。 的输入信号 x 和期望的信号 d 它们必须具有相同的大小和数据类型。

输入信号的长度必须是属性*[Property:BlockSize]*值的整数倍。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# *d*是 所需的信号

+ 标量,标量 | 列向量

Details

LMS滤波器调整其权重系数 西隧 尽量减少错误 错误 和输入信号的最精确近似 x 到所需的信号 d.

的输入信号 x 和期望的信号 d 它们必须具有相同的大小和数据类型。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# — 步长

+ 非负标量

Details

适应步长的系数,设置为非负标量。 输入步长的数据类型必须与参数的数据类型匹配。 xd.

小步长确保输出信号之间的小稳态误差 y 和期望的信号 d. 如果步长较小,则滤波器的收敛速率降低。 要增加收敛速率,请增加步长。 注意,如果步长较大,滤波器可能变得不稳定。

依赖关系

若要使用此参数,请将属性设置为*[Property:StepSizeSource]*value "输入端口".

数据类型

漂浮物32, 漂浮64</无翻译>

# 一个 — 适应管理

+ 标量,标量

Details

的适配控制输入,其确定如何更新滤波器权重。 如果此参数的值不为零,则对象会不断更新筛选器权重。 如果此参数的值为零,则滤波器权重保持其当前值。

依赖关系

如果对于*[Property:AdaptInputPort]*值集,则必须使用此参数 真的.

数据类型

漂浮物32, 漂浮64, Int8, Int16, Int32, UInt8, UInt16, UInt32, 布尔</无翻译>

# r — 复位信号

+ 标量,标量

Details

根据*[Property:WeightsResetInputPort]*的值重置过滤器权重的重置信号。

依赖关系

如果对于*[Property:WeightsResetInputPort]*值集,则必须使用此参数 真的.

数据类型

漂浮物32, 漂浮64, Int8, Int16, Int32, UInt8, UInt16, UInt32, 布尔</无翻译>

输出参数

# y — 滤波后的输出信号

+ 标量,标量 | 列向量

Details

滤波后的输出信号作为标量或列向量返回。 对象使其滤波器权重适应输入信号的收敛 x 到所需的信号 d. 滤波器输出会聚信号。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# 错误 — 输出和所需信号之间的差值

+ 标量,标量 | 列向量

Details

输出信号的差值 y 和期望的信号 d,作为标量或列向量返回。 数据类型 错误 对应于数据类型 y. 自适应滤波器的目的是最小化这种误差。 对象调整其权重以收敛于提供尽可能接近所需信号的输出信号的最佳滤波器权重。

数据类型

漂浮物32, 漂浮64</无翻译>

# wts — 自适应滤波器权重

+ 标量,标量 | 列向量

Details

自适应滤波器权重作为标量或列向量返回,其长度由属性值*[Property:Length]*指定。

数据类型 西隧 对应于数据类型 y.

数据类型

漂浮物32, 漂浮64</无翻译>

特征

None.

方法

所有系统对象通用

步!::运行系统对象运算算法 释放!::允许更改系统对象属性的值 重置!::重置系统对象的内部状态

算法

该对象实现了块文档中描述的算法、输入和输出数据。 LMS Filter. 对象属性与块参数相对应。