主要内容

dsp.LMSFilter

计算输出,错误,和LMS自适应滤波器的权重

描述

dsp.LMSFilter系统对象™实现了一种自适应有限脉冲响应(杉木)滤波器收敛期望信号的输入信号使用以下算法:

  • LMS

  • 归一化LMS

  • Sign-Data LMS

  • 符号误差LMS

  • Sign-Sign LMS

这些方法的更多细节,请参阅<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">算法。

过滤器调整权重,直到误差主要输入信号与期望信号之间是最小的。的均方误差(MSE)计算使用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter.msesim.html">msesim函数。的预测版本使用维纳滤波器在MSE决定<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter.msepred.html">msepred函数。的<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter.maxstep.html">maxstep函数计算的最大适应步长,控制收敛的速度。

自适应滤波器方法的概述,最常见的应用程序使用自适应滤波器,明白了<一个href="//www.tatmou.com/au/au/help/dsp/ug/overview-of-adaptive-filters-and-applications.html" class="a">自适应滤波器和应用程序的概述。

使用一种自适应滤波器过滤一个信号:

  1. 创建dsp.LMSFilter对象并设置其属性。

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

了解更多关于系统对象是如何工作的,看到的<一个href="//www.tatmou.com/au/au/help/matlab/matlab_prog/what-are-system-objects.html" class="a">系统对象是什么?

在特定的条件下,该系统还支持SIMD代码生成对象。金宝app有关详细信息,请参见<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">代码生成。

创建

描述

例子

lms= dsp.LMSFilter返回一个LMS滤波器对象,lms计算输出过滤,过滤错误,滤波器权值对于一个给定的输入和期望信号使用至少意味着广场(LMS)算法。

例子

lms = dsp.LMSFilter (l)返回一个对象与LMS滤波器<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">长度属性设置为l

例子

lms = dsp.LMSFilter (名称,值)返回一个LMS滤波器与每个指定的对象属性设置为指定的值。在单引号附上每个属性的名字。您可以使用该语法与以前的输入参数。

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,<一个href="//www.tatmou.com/au/au/help/matlab/ref/releasesystemobject.html">释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅<一个href="//www.tatmou.com/au/au/help/matlab/matlab_prog/system-design-in-matlab-using-system-objects.html" class="a">系统设计在MATLAB使用系统对象。

法计算滤波器权重,指定为以下之一:

  • “LMS”——解决了Weiner-Hopf方程,找到了滤波器系数的自适应滤波器。

  • “归一化LMS”归一化LMS算法的变异。

  • “Sign-Data LMS”在每一次迭代时,校正滤波器权重取决于输入的符号x

  • “符号误差LMS”——校正应用于当前为每个连续的迭代滤波器权重取决于错误的符号,犯错

  • “Sign-Sign LMS”——校正应用于当前的每个连续迭代滤波器权重取决于的迹象x和的符号犯错

更多细节的算法,明白了<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">算法。

数字滤波器权重向量的长度,指定为一个正整数。

例子:64年

例子:16

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

指定适应步长方法,指定为以下之一:

  • “属性”——属性<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">StepSize指定每个适应一步的大小。

  • 输入端口的——指定适应步长为输入对象之一。

适应步长因子,指定为一个非负标量。为归一化LMS方法的收敛步长必须大于0小于2。

一小步大小保证输出之间的稳态误差小<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">y和所需的信号<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">d。如果步长很小,滤波器的收敛速度下降。提高收敛速度,增加步长。注意,如果步长很大,过滤器可以变得不稳定。计算出最大的步长过滤器可以接受没有变得不稳定,使用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter.maxstep.html">maxstep函数。

可调:是的

依赖关系

适用于当您设置这个属性<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">StepSizeSource来“属性”

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

泄漏因素时使用实现漏水的LMS方法,指定为一个标量范围[0 1]。值等于1时,没有泄漏的调整方法。值小于1时,滤波器实现了一个漏水的LMS方法。

例子:0.5

可调:是的

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

滤波器权重的初始条件,指定为一个标量或矢量的长度等于的价值<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">长度财产。当输入是真实的,该属性的值必须是真实的。

例子:0

例子:[1 3 1 2 7 8 9 0 2 2 8 2]

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:金宝app是的

国旗适应滤波器权重,指定为以下之一:

  • ——对象不断更新滤波器权重。

  • 真正的——一种适应性控制输入提供给对象时调用它的算法。如果这个输入的值是零,对象不断更新滤波器权重。如果这个输入的值是零,滤波器权重留在他们的当前值。

国旗重置滤波器权重,指定为以下之一:

  • ——对象不重置权重。

  • 真正的——一个复位控制输入提供给对象时调用它的算法。此设置允许<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">WeightsResetCondition财产。对象重置筛选权重值的基础上WeightsResetCondition财产和复位输入提供给对象的算法。

事件触发的重置过滤权重,指定为以下之一。对象重置滤波器权重时重置事件中发现其复位输入。

  • “零”在每个样本——触发复位操作,当复位输入不为零。

  • “前沿”——触发复位操作当复位输入下列之一:

    • 从一个负值正数或零。

    • 从零到一个积极的价值上升,上升不是继续从一个负值上升到零。

  • 的下降沿——触发复位操作当复位输入下列之一:

    • 瀑布从正数负数或零。

    • 瀑布从零到一个负值,秋天不是继续从一个积极的价值为零。

  • “要么边缘”——触发复位操作时复位输入是一个上升或下降沿边缘。

对象重置滤波器权重基于此属性的值和复位输入r提供给对象的算法。

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">WeightsResetInputPort财产真正的

输出调整滤波器权重方法,指定为以下之一:

  • “最后一次”(默认)——对象返回一个列向量的权重对应的最后一个示例数据帧。权重向量的长度的值<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">长度财产。

  • “所有”返回一个对象FrameLength——- - - - - -长度矩阵的权重。权重矩阵对应于完整的连续取样的历史FrameLength输入值的样本。矩阵中的每一行对应一组LMS滤波器权重计算出相应的输入样本。

  • “没有”——这个设置禁用权重的输出。

定点属性

指定定点运算的舍入模式。更多细节,请参阅<一个href="//www.tatmou.com/au/au/help/dsp/ug/concepts-and-terminology.html" class="a">舍入模式。

溢出行动定点操作,指定为以下之一:

  • “包装”——对象包装定点操作的结果。

  • “饱和”——对象浸透定点操作的结果。

溢出行为的更多细节,请参阅<一个href="//www.tatmou.com/au/au/help/dsp/ug/concepts-and-terminology.html" class="a">溢出模式为定点操作。

步长单词长度和部分长度设置,指定为以下之一:

  • 首先输入单词长度一样的——对象指定步长单词长度的第一个输入的一样。长度比例计算得到最好的精度。

  • “自定义”——步大小的数据类型被指定为一个自定义数值类型通过<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">CustomStepSizeDataType财产。

更多信息在这个对象使用步长数据类型,看到<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">不动点部分。

词和部分长度的步长,指定为一个autosigned数值类型的字长16和一小部分的长度15。

例子:numerictype ([], 32)

依赖关系

这个属性应用在下列条件:

  • StepSizeSource属性设置为“属性”和<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">StepSizeDataType设置为“自定义”

  • StepSizeSource属性设置为输入端口的

泄漏因素字长和部分长度设置,指定为以下之一:

  • 首先输入单词长度一样的——对象指定的字长泄漏因素是第一个输入的一样。长度比例计算得到最好的精度。

  • “自定义”——泄漏系数的数据类型被指定为一个自定义数值类型通过<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">CustomLeakageFactorDataType财产。

更多信息的泄漏系数数据类型这个对象使用,看到<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">不动点部分。

词和部分长度的泄漏因素,指定为一个autosigned数值类型的字长16和一小部分的长度15。

例子:numerictype ([], 32)

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">LeakageFactorDataType财产“自定义”

权重字长和部分长度设置,指定为以下之一:

  • 与第一次输入的——对象指定的数据类型滤波器权重是第一个输入的一样。

  • “自定义”——滤波器权重的数据类型被指定为一个自定义数值类型通过<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">CustomWeightsDataType财产。

关于过滤器的更多信息权重数据类型这个对象使用,看到<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">不动点部分。

指定的过滤器权重,词和部分长度作为autosigned数值类型的字长16和一小部分的长度15。

例子:numerictype([], 32岁,20)

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">WeightsDataType财产“自定义”

能源产品单词长度和长度比例设置,指定为以下之一:

  • 与第一次输入的——对象指定的数据类型能源产品第一个输入的一样。

  • “自定义”——能源产品的数据类型被指定为一个自定义数值类型通过<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">CustomEnergyProductDataType财产。

更多信息在能源产品数据类型这个对象使用,看到<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">不动点部分。

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">方法财产“归一化LMS”

词和部分长度的能源产品,指定为一个autosigned数值类型,字长为32个,一小部分的长度20。

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">方法财产“归一化LMS”和<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">EnergyProductDataType财产“自定义”

蓄能器字长和部分长度设置,指定为以下之一:

  • 与第一次输入的——对象指定的数据类型蓄能器是第一个输入的一样。

  • “自定义”——蓄能器的数据类型被指定为一个自定义数值类型通过<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">CustomEnergyAccumulatorDataType财产。

更多信息在蓄能器数据类型这个对象使用,看到<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">不动点部分。

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">方法财产“归一化LMS”

蓄能器的词和部分长度指定为一个autosigned数值类型,字长为32个,一小部分的长度20。

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">方法财产“归一化LMS”和<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">EnergyAccumulatorDataType财产“自定义”

卷积产品单词长度和长度比例设置,指定为以下之一:

  • 与第一次输入的——卷积的对象指定数据类型的产品是一样的,第一个输入。

  • “自定义”——产品卷积的数据类型被指定为一个自定义数值类型通过<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">CustomConvolutionProductDataType财产。

有关卷积的更多信息产品数据类型这个对象使用,看到<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">不动点部分。

卷积的词和部分长度的产品,作为autosigned指定数值类型,字长为32个,一小部分的长度20。

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">ConvolutionProductDataType财产“自定义”

卷积蓄电池字长和部分长度设置,指定为以下之一:

  • 与第一次输入的——卷积的对象指定数据类型蓄电池是第一个输入的一样。

  • “自定义”——卷积累加器的数据类型被指定为一个自定义数值类型通过<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">CustomConvolutionAccumulatorDataType财产。

有关卷积累加器的更多信息数据类型这个对象使用,看到<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">不动点部分。

词和部分长度卷积的蓄电池,指定为一个autosigned数值类型,字长为32个,一小部分的长度20。

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">ConvolutionAccumulatorDataType财产“自定义”

步长误差产品单词长度和长度比例设置,指定为以下之一:

  • 与第一次输入的——对象指定的数据类型步长误差产品第一个输入的一样。

  • “自定义”——步长误差的数据类型的产品是通过指定为一个自定义数字类型<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">CustomStepSizeErrorProductDataType财产。

产品的更多信息在步长误差数据类型这个对象使用,看到<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">不动点部分。

词和部分长度的步长错误产品,指定为一个autosigned数值类型,字长为32个,一小部分的长度20。

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">StepSizeErrorProductDataType财产“自定义”

词和部分长度设置过滤器的权重更新产品,指定为以下之一:

  • 与第一次输入的——对象指定的数据类型滤波器权值更新产品第一个输入的一样。

  • “自定义”——滤波器权重更新产品的数据类型被指定为一个自定义数值类型通过<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">CustomWeightsUpdateProductDataType财产。

关于过滤器的更多信息权重更新产品数据类型这个对象使用,看到<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">不动点部分。

词和部分长度的滤波器权重更新产品,指定为一个autosigned数值类型,字长为32个,一小部分的长度20。

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">WeightsUpdateProductDataType财产“自定义”

商字长和部分长度设置,指定为以下之一:

  • 与第一次输入的——指定商数据类型的对象是第一个输入的一样。

  • “自定义”——商的数据类型被指定为一个自定义数值类型通过<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">CustomQuotientDataType财产。

更多信息商数据类型这个对象使用,看到<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">不动点部分。

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">方法财产“归一化LMS”

词和部分长度的滤波器权重更新产品,指定为一个autosigned数值类型,字长为32个,一小部分的长度20。

依赖关系

这个属性设置时适用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">方法财产“归一化LMS”和<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">QuotientDataType财产“自定义”

使用

描述

(<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_4f7962fc-d669-4ca5-af7e-d27994ae7c12" class="intrnllnk">y,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_1e74b671-711b-486a-a14f-3660a116662f" class="intrnllnk">犯错,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_4e72967f-118d-4608-906e-5f36f4540872" class="intrnllnk">出世)= lms (<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_530d713b-71b8-4a14-a78e-a000adad6302" class="intrnllnk">x,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_db6b9f37-cc93-4e7f-8fd6-2bfe27289079" class="intrnllnk">d)滤波器的输入信号,x,使用d期望信号,并返回输出过滤y过滤错误犯错,估计滤波器权重出世。所需的LMS滤波器对象估计滤波器权值之间的误差最小化输出信号与期望信号。

(<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_4f7962fc-d669-4ca5-af7e-d27994ae7c12" class="intrnllnk">y,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_1e74b671-711b-486a-a14f-3660a116662f" class="intrnllnk">犯错)= lms (<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_530d713b-71b8-4a14-a78e-a000adad6302" class="intrnllnk">x,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_db6b9f37-cc93-4e7f-8fd6-2bfe27289079" class="intrnllnk">d)滤波器的输入信号,x,使用d期望信号,并返回输出过滤y过滤错误犯错当<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">WeightsOutput属性设置为“没有”

(___)= lms (<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_530d713b-71b8-4a14-a78e-a000adad6302" class="intrnllnk">x,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_db6b9f37-cc93-4e7f-8fd6-2bfe27289079" class="intrnllnk">d,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_a361d18d-f06c-4d7e-8ebd-3054f34d39d4" class="intrnllnk">μ)滤波器的输入信号,x,使用d所需的信号μ步长,当<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">StepSizeSource属性设置为输入端口的。可以使用这些输入与前一套输出。

(___)= lms (<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_530d713b-71b8-4a14-a78e-a000adad6302" class="intrnllnk">x,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_db6b9f37-cc93-4e7f-8fd6-2bfe27289079" class="intrnllnk">d,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_cecf3006-18e5-4310-b90d-6809970ee595" class="intrnllnk">一个)滤波器的输入信号,x,使用d所需的信号一个适应控制时<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">AdaptInputPort属性设置为真正的。当一个非零,系统对象不断更新滤波器权重。当一个是零,过滤器的重量保持不变。

(___)= lms (<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_530d713b-71b8-4a14-a78e-a000adad6302" class="intrnllnk">x,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_db6b9f37-cc93-4e7f-8fd6-2bfe27289079" class="intrnllnk">d,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_db29e741-8beb-4e26-a9a8-29875bac5b1d" class="intrnllnk">r)滤波器的输入信号,x,使用d所需的信号r作为一个复位信号时<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">WeightsResetInputPort属性设置为真正的。的<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">WeightsResetCondition属性可用于设置重置触发条件。如果重置事件发生时,系统对象重置滤波器权值初始值。

(<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_4f7962fc-d669-4ca5-af7e-d27994ae7c12" class="intrnllnk">y,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_1e74b671-711b-486a-a14f-3660a116662f" class="intrnllnk">犯错,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_4e72967f-118d-4608-906e-5f36f4540872" class="intrnllnk">出世)= lms (<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_530d713b-71b8-4a14-a78e-a000adad6302" class="intrnllnk">x,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_db6b9f37-cc93-4e7f-8fd6-2bfe27289079" class="intrnllnk">d,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_a361d18d-f06c-4d7e-8ebd-3054f34d39d4" class="intrnllnk">μ,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_cecf3006-18e5-4310-b90d-6809970ee595" class="intrnllnk">一个,<一个href="//www.tatmou.com/au/help/dsp/ref/#mw_db29e741-8beb-4e26-a9a8-29875bac5b1d" class="intrnllnk">r)滤波器的输入信号,x,使用d期望信号,μ步长,一个为适应控制,r复位信号,并返回输出过滤y过滤错误犯错,适应滤波器权重出世

输入参数

全部展开

信号被LMS滤波器过滤。输入,x所需的信号,d必须具有相同的大小、数据类型和复杂性。如果输入是定点,数据类型必须签署和必须具有相同的单词长度所需的信号。

输入,x可以适应信号。你可以改变的数量列向量中的元素即使对象是锁着的。系统对象锁,当你调用对象运行它的算法。

数据类型:||int8|int16|int32|int64|fi
复数的支持:金宝app是的

LMS滤波器调整滤波器权值,出世,尽量减少错误,犯错和收敛的输入信号x所需的信号d尽可能密切。

输入,x所需的信号,d,必须有相同的大小,数据类型,和复杂性。如果定点所需的信号,数据类型必须签署,必须有相同的单词长度作为数据输入。

输入,d可以适应信号。你可以改变的数量列向量中的元素即使对象是锁着的。系统对象锁,当你调用对象运行它的算法。

数据类型:||int8|int16|int32|int64|fi
复数的支持:金宝app是的

适应步长因子,指定为一个标量,非负数值。为归一化LMS方法的收敛步长应大于0小于2。步长输入的数据类型必须匹配的数据类型xd。如果定点数据类型,数据类型必须签署。

一小步大小保证输出之间的稳态误差小y和所需的信号d。如果步长很小,滤波器的收敛速度下降。提高收敛速度,增加步长。注意,如果步长很大,过滤器可以变得不稳定。计算出最大的步长过滤器可以接受没有变得不稳定,使用<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter.maxstep.html">maxstep函数。

依赖关系

这个输入时是必需的<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">StepSizeSource属性设置为输入端口的

数据类型:||int8|int16|int32|int64|fi

控制如何适应控制输入滤波器权值更新。如果这个输入的值是零,对象不断更新滤波器权重。如果这个输入的值是零,滤波器权重留在他们的当前值。

依赖关系

这个输入时是必需的<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">AdaptInputPort属性设置为真正的

数据类型:||int8|int16|int32|uint8|uint16|uint32|逻辑

复位信号,重置筛选权重值的基础上<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">WeightsResetCondition财产。

依赖关系

这个输入时是必需的<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">WeightsResetInputPort属性设置为真正的

数据类型:||int8|int16|int32|uint8|uint16|uint32|逻辑

输出参数

全部展开

过滤输出,作为一个标量或返回一个列向量。对象调整滤波器权值收敛的输入信号x匹配所需的信号d。滤波器输出融合信号。

数据类型:||int8|int16|int32|int64|fi
复数的支持:金宝app是的

输出信号之间的差异y和所需的信号d,作为一个标量或返回一个列向量。的数据类型犯错的数据类型相匹配y。自适应滤波器的目标是最小化这个错误。对象调整权重收敛到最优滤波器权重产生一个相匹配的输出信号与期望信号。更多的细节犯错计算,看<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">算法。

数据类型:||int8|int16|int32|int64|fi

自适应滤波器权值,作为一个标量或返回值指定的列向量的长度<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">长度。

数据类型:||int8|int16|int32|int64|fi

对象的功能

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

maxstep 最大的步长LMS自适应滤波器的收敛
msepred 预测均方误差LMS自适应滤波器
msesim 自适应滤波器的估计均方误差
一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

均方误差(MSE)措施平方的平均值之间的错误期望信号和主信号自适应滤波器的输入。减少这个误差收敛的主要期望信号的输入。确定MSE的预报值和模拟值的MSE每次即时使用msepredmsesim功能。相互比较这些MSE值和最小MSE和稳态均方误差值。此外,计算系数的平方误差的总和协方差矩阵系数的痕迹。

请注意:如果您使用的是R2016a或更早的版本中,用相同的步骤替换每个调用对象的语法。例如,obj (x)就变成了步骤(obj, x)

初始化

创建一个dsp.FIRFilter系统对象™代表未知的系统。通过信号,x,冷杉的过滤器。未知系统的输出所需的信号,d,这是未知的系统的输出的总和(冷杉过滤器)和加性噪声信号,n

0.5 num = fir1(31日);冷杉= dsp.FIRFilter (“分子”,num);iir = dsp.IIRFilter (“分子”sqrt (0.75),“分母”-0.5 [1]);x = iir(标志(randn(2000年25)));n = 0.1 * randn(大小(x));d =冷杉(x) + n;

LMS滤波器

创建一个dsp.LMSFilter系统对象创建一个过滤器,适应输出所需的信号。自适应滤波器的长度设置为32个水龙头,步长至0.008,5的大量毁灭因素分析和仿真。的变量simmse代表输出之间的模拟MSE未知的系统,d和自适应滤波器的输出。的变量均方误差给出了相应的预测价值。

l = 32;μ= 0.008;m = 5;lms = dsp.LMSFilter (“长度”l,“StepSize”μ);均方误差(mmse, emse meanW, traceK] = msepred (lms, x, d, m);[simmse, meanWsim Wsim traceKsim] = msesim (lms, x, d, m);

情节MSE的结果

模拟MSE的值进行比较,预测均方误差、最小均方误差,和最后的MSE。最后的MSE值是由最小MSE和多余的MSE的总和。

nn = m: m:大小(x, 1);simmse semilogy (nn,大小(x, 1) [0], [(emse + mmse)(emse + mmse)], nn, mse,大小(x, 1) [0], [mmse mmse])标题(的均方误差性能)轴([0大小(x, 1) 0.001 10])传说(“MSE (Sim)。”,“最后的MSE”,MSE的,“最小MSE。”)包含(“时间指数”)ylabel (的平方误差值)

图包含一个坐标轴对象。坐标轴对象标题均方误差性能包含4线类型的对象。这些对象代表MSE (Sim),最后的MSE, MSE,最小均方误差。

预测的模拟MSE MSE遵循相同的轨迹。这两个轨迹收敛与稳态均方误差(决赛)。

画出轨迹系数

meanWsim给出的是模拟系数的平均值msesimmeanW的预测系数的平均值msepred

比较模拟和预测平均值LMS滤波器系数12日13、14和15。

情节(nn meanWsim (: 12),“b”、神经网络、meanW (: 12),“r”神经网络,meanWsim (:, 13:15),“b”、神经网络、meanW (:, 13:15),“r”)PlotTitle = {“平均系数轨迹”;“W W (12)、(13)、W(14)和W (15)}
PlotTitle =2 x1细胞{'平均系数轨迹}{“W W (12)、(13)、W(14)和W (15)}
标题(PlotTitle)传说(“模拟”,“理论”)包含(“时间指数”)ylabel (的系数值)

图包含一个坐标轴对象。坐标轴对象与标题平均轨迹系数W (12), W (13), W W(14)和(15)包含8线类型的对象。这些对象代表模拟,理论。

在稳定状态下,轨迹收敛。

平方系数之和的错误

比较的平方系数误差的总和msepredmsesim。这些值的协方差矩阵系数的踪迹。

traceK traceKsim semilogy(神经网络,神经网络,“r”)标题(“Sum-of-Squared系数错误”)轴([0大小(x, 1) 0.0001 1])传说(“模拟”,“理论”)包含(“时间指数”)ylabel (的平方误差值)

图包含一个坐标轴对象。坐标轴对象标题Sum-of-Squared系数错误包含2线类型的对象。这些对象代表模拟,理论。

maxstep函数计算的最大步长自适应滤波器。这步长保持滤波器稳定在最大程度的收敛速度。创建主输入信号,x,通过签署了IIR滤波器的随机信号。信号x每一帧包含50帧2000样品。创建一个LMS滤波器与32个水龙头和步长为0.1。

50 x = 0 (2000);IIRFilter = dsp.IIRFilter (“分子”sqrt (0.75),“分母”-0.5 [1]);k = 1:尺寸(x, 2) x (:, k) = IIRFilter(标志(randn(大小(x, 1), 1)));结束μ= 0.1;LMSFilter = dsp.LMSFilter (“长度”32岁的“StepSize”μ);

计算出最大适应步长和最大的步长在均方意义上使用maxstep函数。

[mumax, mumaxmse] = maxstep (LMSFilter, x)
mumax = 0.0625
mumaxmse = 0.0536

系统识别是一个过程,确定一个未知的系统使用一个自适应滤波器的系数。显示了流程的概述<一个href="//www.tatmou.com/au/au/help/dsp/ug/overview-of-adaptive-filters-and-applications.html" class="a">系统识别——使用一个自适应滤波器来确定一个未知的系统。涉及的主要部件有:

  • 自适应滤波器算法。在这个例子中,设置方法的属性<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="a">dsp.LMSFilter“LMS”选择LMS自适应滤波器算法。

  • 一个未知的系统或过程适应。在这个例子中,设计的滤波器<一个href="//www.tatmou.com/au/au/help/dsp/ref/fircband.html" class="a">fircband是未知的系统。

  • 适当的输入数据来锻炼适应过程。为通用LMS模型,这些都是期望信号 d ( k ) 和输入信号 x ( k )

自适应滤波器的目标是最小化之间的误差信号自适应滤波器的输出 y ( k ) 和未知系统的输出(或系统被识别) d ( k ) 。一旦最小化误差信号,调整过滤器就像未知的系统。的系数过滤器密切匹配。

请注意:如果您使用的是R2016a或更早的版本中,用相同的步骤替换每个调用对象的语法。例如,obj (x)就变成了步骤(obj, x)

未知的系统

创建一个dsp.FIRFilter对象代表了系统识别。使用fircband函数来设计滤波器系数。设计的滤波器是一个低通滤波器限制0.2波纹阻带。

filt = dsp.FIRFilter;filt.Numerator=fircband(12,[0 0.4 0.5 1],[1 1 0 0],[1 0.2],{' w '“c”});

通过信号x冷杉的过滤器。所需的信号d是未知的系统的输出的总和(冷杉过滤器)和添加剂噪声信号n

x = 0.1 * randn (250 1);n = 0.01 * randn (250 1);d = filt (x) + n;

自适应滤波器

与未知的滤波器设计和所需的信号,创建和应用自适应LMS滤波器对象识别未知的过滤器。

准备自适应滤波器对象需要起始值的估计滤波器系数和LMS步长(μ)。你可以用一些非零值的估计滤波器系数。这个示例使用0 13初始滤波器权重。设置InitialConditions的属性dsp.LMSFilter到所需的滤波器权重的初始值。步长,0.8是一个很好的办法是大到足以在250迭代收敛好输入采样点(250),小到未知的过滤器创建一个准确的估计。

创建一个dsp.LMSFilter对象来表示一个使用LMS自适应算法的自适应滤波器。自适应滤波器的长度设置为13水龙头和步长至0.8。

μ= 0.8;lms = dsp.LMSFilter(13日“StepSize”μ)
lms = dsp.LMSFilterwith properties: Method: 'LMS' Length: 13 StepSizeSource: 'Property' StepSize: 0.8000 LeakageFactor: 1 InitialConditions: 0 AdaptInputPort: false WeightsResetInputPort: false WeightsOutput: 'Last' Show all properties

通过主要的输入信号x和所需的信号dLMS滤波器。自适应滤波器来确定未知的系统运行。输出y自适应滤波器的信号融合到所需的信号d从而最大限度地减少错误e在两个信号之间。

策划的结果。输出信号不匹配所需的信号与预期的一样,使这两个重要的之间的误差。

[y, e, w] = lms (x, d);情节(摘要[d, y, e])标题(“一个冷杉过滤器的系统标识”)传说(“想要的”,“输出”,“错误”)包含(“时间指数”)ylabel (的信号值)

图包含一个坐标轴对象。冷杉的坐标轴对象与标题系统识别过滤器包含3线类型的对象。这些对象代表希望、输出错误。

比较权重

权重向量w代表的LMS滤波器的系数适应像未知的系统(冷杉过滤器)。确认收敛,比较分子的冷杉滤波器和自适应滤波器的估计重量。

估计滤波器实际重量不匹配滤波器权值,确认结果看到在前面的信号。

茎([(filt.Numerator)。' w])标题(系统辨识的自适应LMS算法的)传说(实际滤波器权重的,“估计滤波器权重”,“位置”,“东北”)

图包含一个坐标轴对象。坐标轴对象标题系统辨识的自适应LMS算法包含2杆类型的对象。这些对象代表实际滤波器权重,权重估计过滤器。

改变步长

作为一个实验,改变步长为0.2。重复的例子μ= 0.2结果在下面干阴谋。过滤器不收敛,估计权重并不好approxmations的实际重量。

μ= 0.2;lms = dsp.LMSFilter(13日“StepSize”μ);(~ ~ w) = lms (x, d);茎([(filt.Numerator)。' w])标题(系统辨识的自适应LMS算法的)传说(实际滤波器权重的,“估计滤波器权重”,“位置”,“东北”)

图包含一个坐标轴对象。坐标轴对象标题系统辨识的自适应LMS算法包含2杆类型的对象。这些对象代表实际滤波器权重,权重估计过滤器。

增加数据样本的数量

增加期望信号的帧大小。虽然这增加了计算,LMS算法现在有更多的数据,可用于适应。1000样品的信号数据和步长为0.2,系数是一致的比以前更近,表明改进的融合。

释放(filt);x = 0.1 * randn (1000 1);n = 0.01 * randn (1000 1);d = filt (x) + n;[y, e, w] = lms (x, d);茎([(filt.Numerator)。' w])标题(系统辨识的自适应LMS算法的)传说(实际滤波器权重的,“估计滤波器权重”,“位置”,“东北”)

图包含一个坐标轴对象。坐标轴对象标题系统辨识的自适应LMS算法包含2杆类型的对象。这些对象代表实际滤波器权重,权重估计过滤器。

进一步提高数据样本的数量输入数据通过迭代。在4000上运行算法的样本数据,通过LMS算法的批次的1000个样本/ 4迭代。

比较滤波器权重。LMS滤波器的权值匹配的权重冷杉过滤器非常密切,表明良好的收敛性。

释放(filt);n = 0.01 * randn (1000 1);指数= 1:4 x = 0.1 * randn (1000 1);d = filt (x) + n;[y, e, w] = lms (x, d);结束茎([(filt.Numerator)。' w])标题(系统辨识的自适应LMS算法的)传说(实际滤波器权重的,“估计滤波器权重”,“位置”,“东北”)

图包含一个坐标轴对象。坐标轴对象标题系统辨识的自适应LMS算法包含2杆类型的对象。这些对象代表实际滤波器权重,权重估计过滤器。

输出信号与期望信号,使两者之间的误差接近于零。

情节(1:1000 [d, y, e])标题(“一个冷杉过滤器的系统标识”)传说(“想要的”,“输出”,“错误”)包含(“时间指数”)ylabel (的信号值)

图包含一个坐标轴对象。冷杉的坐标轴对象与标题系统识别过滤器包含3线类型的对象。这些对象代表希望、输出错误。

提高LMS算法的收敛性能,规范化的变体(NLMS)使用一个基于信号功率自适应步长。随着输入信号功率的变化,该算法计算输入功率和调整步长保持一个适当的值。步长变化随着时间的推移,结果,归一化算法收敛更快的在许多情况下,用更少的样本。输入信号变化缓慢的随着时间的推移,归一化LMS算法可以更高效的LMS方法。

例如使用LMS方法,明白了<一个href="//www.tatmou.com/au/au/help/dsp/ug/system-identification-fir-filter-using-lms-algorithm.html" class="a">系统辨识的冷杉过滤器使用LMS算法。

请注意:如果您使用的是R2016a或更早的版本中,用相同的步骤替换每个调用对象的语法。例如,obj (x)就变成了步骤(obj, x)

未知的系统

创建一个dsp.FIRFilter对象代表了系统识别。使用fircband函数来设计滤波器系数。设计的滤波器是一个低通滤波器限制0.2波纹阻带。

filt = dsp.FIRFilter;filt.Numerator=fircband(12,[0 0.4 0.5 1],[1 1 0 0],[1 0.2],{' w '“c”});

通过信号x冷杉的过滤器。所需的信号d是未知的系统的输出的总和(冷杉过滤器)和添加剂噪声信号n

x = 0.1 * randn (1000 1);n = 0.001 * randn (1000 1);d = filt (x) + n;

自适应滤波器

使用归一化LMS算法的变化,设置方法财产的dsp.LMSFilter“归一化LMS”。自适应滤波器的长度设置为13水龙头和步长至0.2。

μ= 0.2;lms = dsp.LMSFilter(13日“StepSize”亩,“方法”,“归一化LMS”);

通过主要的输入信号x和所需的信号dLMS滤波器。

[y, e, w] = lms (x, d);

输出y自适应滤波器的信号融合到所需的信号d从而最大限度地减少错误e在两个信号之间。

情节(1:1000 [d, y, e])标题(归一化LMS算法的系统识别的)传说(“想要的”,“输出”,“错误”)包含(“时间指数”)ylabel (的信号值)

图包含一个坐标轴对象。坐标轴对象通过归一化LMS算法与标题系统识别包含3线类型的对象。这些对象代表希望、输出错误。

比较适应滤波器对未知系统

权重向量w代表LMS滤波器的系数,是适应像未知的系统(冷杉过滤器)。确认收敛,比较分子的冷杉滤波器和自适应滤波器的估计重量。

茎([(filt.Numerator)。' w])标题(归一化LMS算法的系统识别的)传说(实际滤波器权重的,“估计滤波器权重”,“位置”,“东北”)

图包含一个坐标轴对象。坐标轴对象通过归一化LMS算法与标题系统识别包含2杆类型的对象。这些对象代表实际滤波器权重,权重估计过滤器。

一种自适应滤波器调整滤波器系数的匹配系数未知系统。目标是最小化输出之间的误差信号未知的系统和自适应滤波器的输出。当这两个相同的输入输出收敛和密切匹配,系数密切匹配。自适应滤波器的状态就像未知的系统。这个例子比较了速率这融合发生的归一化LMS算法和LMS算法(NLMS)没有规范化。

未知的系统

创建一个dsp.FIRFilter代表未知的系统。通过信号x作为输入到未知的系统。所需的信号d是未知的系统的输出的总和(冷杉过滤器)和添加剂噪声信号n

filt = dsp.FIRFilter;filt.Numerator=fircband(12,[0 0.4 0.5 1],[1 1 0 0],[1 0.2],{' w '“c”});x = 0.1 * randn (1000 1);n = 0.001 * randn (1000 1);d = filt (x) + n;

自适应滤波器

创建两个dsp.LMSFilter对象,与LMS算法,一套,另一套归一化LMS算法。选择一个适应步长为0.2,自适应滤波器的长度设置为13个水龙头。

μ= 0.2;lms_nonnormalized = dsp.LMSFilter(13日“StepSize”亩,“方法”,“LMS”);lms_normalized = dsp.LMSFilter(13日“StepSize”亩,“方法”,“归一化LMS”);

通过主要的输入信号x和所需的信号d对LMS算法的变化。的变量e1e2表示期望信号和输出之间的误差的规范化和nonnormalized过滤器,respecitvely。

(e1, ~ ~) = lms_normalized (x, d);(e2, ~ ~) = lms_nonnormalized (x, d);

情节错误信号的变化。NLMS变体收敛的误差信号的误差信号为零速度远远超过LMS变体。归一化版本适应在更少的迭代结果几乎一样好nonnormalized版本。

情节((e1, e2));标题(比较LMS和NLMS转换性能的);传奇(“NLMS派生滤波器权重”,派生的LMS滤波器权值的,“位置”,“东北”);包含(“时间指数”)ylabel (的信号值)

图包含一个坐标轴对象。坐标轴对象与标题比较LMS和NLMS转换性能包含2线类型的对象。这些对象代表NLMS派生滤波器权重,LMS滤波器权重。

取消加性噪声,n,添加到一个未知的系统使用一个LMS自适应滤波器。LMS滤波器调整系数,直到其传递函数匹配未知系统的传递函数尽可能密切。自适应滤波器的输出之间的差异和未知系统代表了错误的输出信号,e。减少这种误差信号自适应滤波器的目的。

未知的系统和LMS滤波器过程相同的输入信号,x,并产生输出dy,分别。如果自适应滤波器的系数匹配系数未知的系统误差,e实际上代表了加性噪声。

请注意:如果您使用的是R2016a或更早的版本中,用相同的步骤替换每个调用对象的语法。例如,obj (x)就变成了步骤(obj, x)

创建一个dsp.FIRFilter系统对象代表未知的系统。创建一个dsp.LMSFilter对象并设置长度11水龙头和步长至0.05。创建一个正弦波代表未知噪声添加到系统。查看信号在一个时间范围。

FrameSize = 100;硝石= 10;lmsfilt2 = dsp.LMSFilter (“长度”11“方法”,“归一化LMS”,“StepSize”,0.05);firfilt2 = dsp.FIRFilter (“分子”fir1 (10 (。5、综合成绩));sinewave = dsp.SineWave (“频率”,0.01,“SampleRate”,1“SamplesPerFrame”,FrameSize);范围= timescope (“TimeUnits”,“秒”,“YLimits”3 [3],“BufferLength”2 * FrameSize *硝石,“ShowLegend”,真的,“ChannelNames”,{噪声信号的,误差信号的});

创建一个随机的输入信号,x并将信号传递给冷杉过滤器。添加一个正弦波的输出冷杉滤波器产生噪声信号,d。的信号,d是未知的输出系统。通过噪声信号和主LMS滤波器输入信号。查看噪声信号和误差信号的时间范围。

k = 1:硝石x = randn (FrameSize, 1);d = firfilt2 (x) + sinewave ();[y, e, w] = lmsfilt2 (x, d);范围((d, e))结束(范围)

误差信号,e是正弦噪声添加到未知的系统。最小化误差信号最小噪声添加到系统中。

当所需的计算推导出一种自适应过滤驱动开发过程,sign-data变体的LMS算法(SDLMS)可能是一个非常不错的选择,在这个例子演示。

在标准和归一化LMS自适应滤波器的变化,为适应滤波器系数之间的均方误差来自期望信号和输出信号从未知的系统。sign-data算法改变了均方误差计算通过使用输入数据的符号改变滤波器系数。

当错误是正的,新的系数是前面的系数+误差乘以步长µ。如果错误是负的,新的系数再次前乘以系数减去错误µ——注意符号改变。

当输入为零,新的系数同前。

用向量形式,sign-data LMS算法是:

w ( k + 1 ) = w ( k ) + μ e ( k ) 胡志明市 ( x ( k ) ) ,

在哪里

胡志明市 ( x ( k ) ) = { 1 , x ( k ) > 0 0 , x ( k ) = 0 - - - - - - 1 , x ( k ) < 0

与向量 w 包含权重应用于滤波器系数向量 x 包含输入数据。向量 e 是期望信号和过滤之间的误差信号。SDLMS算法的目标是最小化这个错误。步长为代表 μ

与一个较小的 μ ,校正滤波器为每个样本权值变小,和SDLMS误差下降较慢。一个更大的 μ 权重变化对每一个步骤,所以误差下降更快,但由此产生的误差并不密切方法理想的解决方案。以确保良好的收敛速度和稳定性,选择 μ 在接下来的实际边界。

0 < μ < 1 N { InputSignalPower } ,

在哪里 N 在信号样本的数量。此外,定义 μ 作为高效计算2的幂。

注意:如何设置初始条件sign-data算法的深刻影响适应过程的有效性。因为该算法本质上是对输入信号,该算法很容易变得不稳定。

一系列大的输入值,再加上量子化过程可能导致误差增长超出了界限。抑制的趋势sign-data算法失控,选择大小迈出的一小步 ( μ 1 ) 和设置算法非零初始条件的积极和消极的价值观。

在这个降噪的例子中,设置方法的属性<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="a">dsp.LMSFilter“Sign-Data LMS”。这个例子需要两个输入数据集:

  • 数据含有噪声的信号。下的框图<一个href="//www.tatmou.com/au/au/help/dsp/ug/overview-of-adaptive-filters-and-applications.html" class="a">噪音或干扰取消——使用一个自适应滤波器消除噪声从一个未知的系统,这是所需的信号 d ( k ) 。降噪过程消除了噪声的信号。

  • 含有随机噪声的数据。下的框图<一个href="//www.tatmou.com/au/au/help/dsp/ug/overview-of-adaptive-filters-and-applications.html" class="a">噪音或干扰取消——使用一个自适应滤波器消除噪声从一个未知的系统,这是 x ( k ) 。信号 x ( k ) 与腐败的噪声信号数据。没有噪声之间的相关数据,调整算法无法去除的噪声信号。

的信号,使用一个正弦波。请注意,信号1000年是一个列向量的元素。

信号=罪(2 *π* 0.055 * (0:1000-1)');

现在,添加相关的白噪声信号。确保相关噪声,噪声通过一个低通滤波器,然后添加过滤噪声信号。

噪音= randn (1000 1);filt = dsp.FIRFilter;filt.Numerator=fir1(11,0。4); fnoise = filt(noise); d = signal + fnoise;

fnoise相关噪声和吗d现在所需的sign-data算法的输入。

准备dsp.LMSFilter为处理对象,设置初始条件的重量和过滤器μ(StepSize)。正如前面提到的在这一节中,您设置的值多项式系数μ确定自适应滤波器可以将噪声从信号路径。

在<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">系统辨识的冷杉过滤器使用LMS算法你建造了一个默认的过滤器,过滤系数设置为0。在大多数情况下,这种方法并不适合sign-data算法。你设置的初始滤波器系数越接近预期值,更有可能的是,该算法仍然表现好,收敛于一个过滤解决方案,有效地消除了噪声。

对于这个示例,从系数用于噪声滤波器(filt.Numerator),所以算法适应对他们稍加修改。

多项式系数= (filt.Numerator)。-0.01;%设置过滤器的初始条件。μ= 0.05;%设置算法的步长更新。

所需的输入参数dsp.LMSFilter准备,LMS滤波器构造对象,运行适应,并查看结果。

lms = dsp.LMSFilter (12,“方法”,“Sign-Data LMS”,“StepSize”亩,“InitialConditions”、多项式系数);(~ e) = lms(噪音,d);L = 200;情节(0:L - 1、信号(1:L), 0: L - 1, e (1: L));标题(“由Sign-Data降噪算法”);传奇(“实际信号”,“降噪结果”,“位置”,“东北”);包含(“时间指数”)ylabel (的信号值)

图包含一个坐标轴对象。坐标轴对象标题由Sign-Data降噪算法包含2线类型的对象。这些对象代表实际信号降噪的结果。

dsp.LMSFilter运行时,它使用更少的乘法操作比标准LMS算法。同时,执行sign-data适应乘法只需要一点改变步长是2的幂。

虽然sign-data算法的性能所示这个情节不错,sign-data算法比标准LMS不稳定变化。在这个降噪的例子中,信号处理是一个非常好的匹配输入信号,但该算法可以很容易生长没有绑定而不是实现良好的性能。

改变初始条件(重量InitialConditions),μ(StepSize),甚至是低通滤波器用于创建相关噪声,可以导致噪音消除失败。

标准归一化LMS自适应滤波器的变化,调整滤波器的系数来自计算期望信号之间的均方误差和未知系统的输出信号,并将结果应用于当前滤波器系数。符号误差LMS (SELMS)算法取代了均方误差计算通过使用的符号错误修改滤波器系数。

当错误是正的,新的系数是前面的系数+误差乘以步长 μ 。如果错误是负的,新的系数是前乘以系数减去错误 μ ——注意符号改变。当输入为零,新的系数同前。

用向量形式,符号误差LMS算法是:

w ( k + 1 ) = w ( k ) + μ 胡志明市 ( e ( k ) ) ( x ( k ) ) ,

在哪里

胡志明市 ( e ( k ) ) = { 1 , e ( k ) > 0 0 , e ( k ) = 0 - - - - - - 1 , e ( k ) < 0

与向量 w 包含权重应用于滤波器系数向量 x 包含输入数据。向量 e 是期望信号和过滤之间的误差信号。SELMS算法的目标是最小化这个错误。

与一个较小的 μ ,校正滤波器权值变小为每个样本和SELMS误差下降较慢。一个更大的 μ 权重变化对每一步误差下降更快,但由此产生的误差并不密切方法理想的解决方案。以确保良好的收敛速度和稳定性,选择 μ 在接下来的实际边界。

0 < μ < 1 N { InputSignalPower }

在哪里 N 在信号样本的数量。此外,定义 μ 作为高效计算2的幂。

注意:如何设置符号误差算法的初始条件深刻影响适应过程的有效性。因为算法本质上是对误差信号,该算法很容易变得不稳定。

一系列大的错误值,再加上量子化过程可能导致误差增长超出了界限。抑制符号误差算法成为不稳定的趋势,选择一个小的步长 ( μ 1 ) 和设置算法非零初始条件的积极和消极的价值观。

在这个降噪的例子中,设置方法的属性<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="a">dsp.LMSFilter“符号误差LMS”。这个例子需要两个输入数据集:

  • 数据含有噪声的信号。下的框图<一个href="//www.tatmou.com/au/au/help/dsp/ug/overview-of-adaptive-filters-and-applications.html" class="a">噪音或干扰取消——使用一个自适应滤波器消除噪声从一个未知的系统,这是所需的信号 d ( k ) 。降噪过程消除了噪声的信号。

  • 含有随机噪声的数据。下的框图<一个href="//www.tatmou.com/au/au/help/dsp/ug/overview-of-adaptive-filters-and-applications.html" class="a">噪音或干扰取消——使用一个自适应滤波器消除噪声从一个未知的系统,这是 x ( k ) 。信号 x ( k ) 与腐败的噪声信号数据。没有噪声之间的相关数据,调整算法无法去除的噪声信号。

的信号,使用一个正弦波。请注意,信号1000年是一个列向量的元素。

信号=罪(2 *π* 0.055 * (0:1000-1)');

现在,添加相关的白噪声信号。确保相关噪声,噪声通过一个低通滤波器,然后添加过滤噪声信号。

噪音= randn (1000 1);filt = dsp.FIRFilter;filt.Numerator=fir1(11,0。4); fnoise = filt(noise); d = signal + fnoise;

fnoise相关噪声和吗d现在所需的输入符号误差算法。

准备dsp.LMSFilter为处理对象,设置滤波器权重的初始条件(InitialConditions),μ(StepSize)。正如前面提到的在这一节中,您设置的值多项式系数μ确定自适应滤波器可以将噪声从信号路径。

在<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">系统辨识的冷杉过滤器使用LMS算法你建造了一个默认的过滤器,过滤系数设置为0。在大多数情况下,这种方法并不适合标记错误的算法。你设置的初始滤波器系数越接近预期值,更有可能的是,该算法仍然表现好,收敛于一个过滤解决方案,有效地消除了噪声。

对于这个示例,从系数用于噪声滤波器(filt.Numerator),所以算法适应对他们稍加修改。

多项式系数= (filt.Numerator)。-0.01;%设置过滤器的初始条件。μ= 0.05;%设置算法的步长更新。

所需的输入参数dsp.LMSFilter准备,运行适应和查看结果。

lms = dsp.LMSFilter (12,“方法”,“符号误差LMS”,“StepSize”亩,“InitialConditions”、多项式系数);(~ e) = lms(噪音,d);L = 200;情节(0:199、信号(1:200)0:199 e (1:200));标题(“通过符号误差LMS算法的降噪性能);传奇(“实际信号”,“降噪后的错误”,“位置”,“东北”)包含(“时间指数”)ylabel (的信号值)

图包含一个坐标轴对象。坐标轴对象与标题符号误差LMS算法的降噪性能包含2线类型的对象。这些对象代表实际信号降噪后的错误。

符号误差LMS算法运行时,它使用更少的乘法操作比标准LMS算法。同时,执行标记错误适应步长时只需要一点变化的倍数是2的幂。

尽管符号误差算法的性能所示这个情节不错,符号误差算法比标准LMS不稳定变化。在这个降噪的例子中,适应信号输入信号是一个很好的匹配,但该算法可以很容易变得不稳定,而不是实现良好的性能。

改变初始条件(重量InitialConditions),μ(StepSize),甚至是低通滤波器用于创建相关噪声,可以导致噪音消除失败和算法成为无用的。

sign-sign LMS算法(SSLMS)取代了均方误差计算通过使用输入数据的符号改变滤波器系数。当错误是正的,新的系数是前面的系数+误差乘以步长 μ 。如果错误是负的,新的系数是前乘以系数减去错误 μ ——注意符号改变。当输入为零,新的系数同前。

本质上,该算法量化误差和输入通过应用标志符。

用向量形式,sign-sign LMS算法是:

w ( k + 1 ) = w ( k ) + μ 胡志明市 ( e ( k ) ) 胡志明市 ( x ( k ) ) ,

在哪里

胡志明市 ( z ( k ) ) = { 1 , z ( k ) > 0 0 , z ( k ) = 0 - - - - - - 1 , z ( k ) < 0

z ( k ) = e ( k ) 胡志明市 ( x ( k ) )

向量 w 包含权重应用于滤波器系数向量 x 包含输入数据。向量 e 是期望信号和过滤之间的误差信号。SSLMS算法的目标是最小化这个错误。

与一个较小的 μ ,校正滤波器权值变小为每个样本和SSLMS误差下降较慢。一个更大的 μ 权重变化对每一个步骤,所以误差下降更快,但由此产生的误差并不密切方法理想的解决方案。以确保良好的收敛速度和稳定性,选择 μ 在接下来的实际边界。

0 < μ < 1 N { InputSignalPower }

在哪里 N 在信号样本的数量。此外,定义 μ 作为高效计算2的幂

注意:

如何设置初始条件sign-sign算法的深刻影响适应过程的有效性。因为算法本质上是对输入信号和误差信号,该算法很容易变得不稳定。

一系列大的错误值,再加上量子化过程可能导致误差增长超出了界限。抑制sign-sign算法成为不稳定的趋势,选择一个小的步长 ( μ 1 ) 和设置算法非零初始条件的积极和消极的价值观。

在这个降噪的例子中,设置方法的属性<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="a">dsp.LMSFilter“Sign-Sign LMS”。这个例子需要两个输入数据集:

  • 数据含有噪声的信号。下的框图<一个href="//www.tatmou.com/au/au/help/dsp/ug/overview-of-adaptive-filters-and-applications.html" class="a">噪音或干扰取消——使用一个自适应滤波器消除噪声从一个未知的系统,这是所需的信号 d ( k ) 。降噪过程消除了噪声的信号。

  • 含有随机噪声的数据。下的框图<一个href="//www.tatmou.com/au/au/help/dsp/ug/overview-of-adaptive-filters-and-applications.html" class="a">噪音或干扰取消——使用一个自适应滤波器消除噪声从一个未知的系统,这是 x ( k ) 。信号 x ( k ) 与腐败的噪声信号数据。没有噪声之间的相关数据,调整算法无法去除的噪声信号。

的信号,使用一个正弦波。请注意,信号1000年是一个列向量的元素。

信号=罪(2 *π* 0.055 * (0:1000-1)');

现在,添加相关的白噪声信号。确保相关噪声,噪声通过一个低通滤波器,然后添加过滤噪声信号。

噪音= randn (1000 1);filt = dsp.FIRFilter;filt.Numerator=fir1(11,0。4); fnoise = filt(noise); d = signal + fnoise;

fnoise相关噪声和吗d现在所需的sign-sign算法的输入。

准备dsp.LMSFilter为处理对象,设置滤波器权重的初始条件(InitialConditions),μ(StepSize)。正如前面提到的在这一节中,您设置的值多项式系数μ确定自适应滤波器可以将噪声从信号路径。在<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">系统辨识的冷杉过滤器使用LMS算法你建造了一个默认的过滤器,过滤系数设置为0。通常这种方法并不适合sign-sign算法。

你设置的初始滤波器系数越接近预期值,更有可能的是,该算法仍然表现好,收敛于一个过滤解决方案,有效地消除了噪声。对于本例,您开始使用的系数噪声滤波器(filt.Numerator),所以算法适应对他们稍加修改。

多项式系数= (filt.Numerator)。“-0.01;%设置过滤器的初始条件。μ= 0.05;

所需的输入参数dsp.LMSFilter准备,运行适应和查看结果。

lms = dsp.LMSFilter (12,“方法”,“Sign-Sign LMS”,“StepSize”亩,“InitialConditions”、多项式系数);(~ e) = lms(噪音,d);L = 200;情节(0:199、信号(1:200)0:199 e (1:200));标题(“通过sign-sign LMS算法的降噪性能);传奇(“实际信号”,“降噪后的错误”,“位置”,“东北”)包含(“时间指数”)ylabel (的信号值)

图包含一个坐标轴对象。坐标轴对象与标题sign-sign降噪性能的LMS算法包含2线类型的对象。这些对象代表实际信号降噪后的错误。

dsp.LMSFilter运行时,它使用更少的乘法操作比标准LMS算法。此外,执行sign-sign适应步长时只需要一点变化的倍数是2的幂。

虽然sign-sign算法的性能所示这个情节不错,sign-sign算法比标准LMS不稳定变化。在这个降噪的例子中,适应信号输入信号是一个很好的匹配,但该算法可以很容易变得不稳定,而不是实现良好的性能。

改变初始条件(重量InitialConditions)和μ(StepSize),甚至是低通滤波器用于创建相关噪声,可以导致噪音消除失败和算法成为无用的。

请注意:本例中只运行在R2017a或更高版本。如果您使用的是比R2017a早发布,对象不输出一个完整的连续取样滤波器权重的历史。如果您使用的是比R2016b早发布,用等效替换每个调用函数一步语法。例如,myObject (x)就变成了步骤(myObject x)

初始化dsp.LMSFilter系统对象和设置WeightsOutput财产“所有”。此设置允许LMS滤波器输出的权重矩阵维度(FrameLength长度),对应于完整的连续取样重量的历史FrameLength输入值的样本。

FrameSize = 15000;lmsfilt3 = dsp.LMSFilter (“长度”,63,“方法”,“LMS”,“StepSize”,0.001,“LeakageFactor”,0.99999,“WeightsOutput”,“所有”);%全面权重的历史w_actual = fir1(64年,[0.5 - 0.75]);firfilt3 = dsp.FIRFilter (“分子”,w_actual);sinewave = dsp.SineWave (“频率”,0.01,“SampleRate”,1“SamplesPerFrame”,FrameSize);范围= timescope (“TimeUnits”,“秒”,“YLimits”(-0.25 - 0.75),“BufferLength”2 * FrameSize“ShowLegend”,真的,“ChannelNames”,{33多项式系数估计的,34多项式系数估计的,35多项式系数估计的,“多项式系数33实际”,“多项式系数34实际”,“35实际多项式系数”});

运行一个框架和输出完整的自适应权重的历史,w

x = randn (FrameSize, 1);%输入信号d = firfilt3 (x) + sinewave ();% +噪声信号[~ ~ w] = lmsfilt3 (x, d);

在每一行w是一组权重估计相应的输入样本。每一列中w给出了特定重量的完整历史。情节的实际重量和整个历史第33,第34、35重量。在情节中,您可以看到,估计重量输出最终收敛与实际重量作为自适应滤波器接收输入样本和继续适应。

idxBeg = 33;idxEnd = 35;范围([w (:, idxBeg: idxEnd) repmat (w_actual (idxBeg: idxEnd) FrameSize, 1)))

算法

LMS滤波算法定义由以下方程。

y ( n ) = w T ( n 1 ) u ( n ) e ( n ) = d ( n ) y ( n ) w ( n ) = α w ( n 1 ) + f ( u ( n ) , e ( n ) , μ )

这个系统中可用的各种LMS自适应滤波器算法对象被定义为:

  • LMS -解决Weiner-Hopf方程,找到了滤波器系数的自适应滤波器。

    f ( u ( n ) , e ( n ) , μ ) = μ e ( n ) u * ( n )

  • 归一化LMS -归一化LMS算法的变异。

    f ( u ( n ) , e ( n ) , μ ) = μ e ( n ) u ( n ) ε + u H ( n ) u ( n )

    在归一化LMS,克服潜在的权重的更新的数值不稳定,一个小正的常数,ε,添加了分母。对于双精度浮点输入,ε是2.2204460492503131 e - 016。对于输入,单精度浮点e-07ε是1.192092896。定点输入,ε0。

  • Sign-Data LMS -校正在每个迭代滤波器权重取决于输入的符号u(n)。

    f ( u ( n ) , e ( n ) , μ ) = μ e ( n ) 标志 ( u ( n ) )

    在哪里u(n)是真实的。

  • 符号误差LMS -校正应用于当前为每个连续的迭代滤波器权重取决于错误的符号,e(n)。

    f ( u ( n ) , e ( n ) , μ ) = μ 标志 ( e ( n ) ) u * ( n )

  • Sign-Sign LMS -校正应用于当前的每个连续迭代滤波器权重取决于的迹象u(n)的迹象e(n)。

    f ( u ( n ) , e ( n ) , μ ) = μ 标志 ( e ( n ) ) 标志 ( u ( n ) )

    在哪里u(n)是真实的。

的变量如下:

变量 描述

n

当前时间指数

u(n)

缓冲输入样本向量的一步n

u *(n)

矢量的复共轭缓冲输入样本的一步n

w(n)

矢量滤波器权值估计的步骤n

y (n)

过滤输出步骤n

e (n)

一步的估计误差n

d (n)

所需的反应步骤n

µ

适应步长

α

泄漏的因素(0 <α≤1)

ε

不断纠正任何潜在的数值不稳定,发生在权重的更新。

引用

[1]海耶斯,M.H.统计数字信号处理和建模。纽约:约翰·威利& Sons, 1996。

扩展功能

介绍了R2012a