计算输出,错误,和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">自适应滤波器和应用程序的概述。
使用一种自适应滤波器过滤一个信号:
创建dsp.LMSFilter
对象并设置其属性。
调用对象的参数,就好像它是一个函数。
了解更多关于系统对象是如何工作的,看到的<一个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滤波器对象,lms
= dsp.LMSFilterlms
计算输出过滤,过滤错误,滤波器权值对于一个给定的输入和期望信号使用至少意味着广场(LMS)算法。
lms = dsp.LMSFilter (
返回一个对象与LMS滤波器<一个href="//www.tatmou.com/au/au/help/dsp/ref/dsp.lmsfilter-system-object.html" class="intrnllnk">长度属性设置为l
)l
。
lms = dsp.LMSFilter (
返回一个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">犯错
,<一个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
过滤错误犯错
,适应滤波器权重出世
。
使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj
使用这个语法:
发行版(obj)
LMS滤波算法定义由以下方程。
这个系统中可用的各种LMS自适应滤波器算法对象被定义为:
LMS -解决Weiner-Hopf方程,找到了滤波器系数的自适应滤波器。
归一化LMS -归一化LMS算法的变异。
在归一化LMS,克服潜在的权重的更新的数值不稳定,一个小正的常数,ε,添加了分母。对于双精度浮点输入,ε是2.2204460492503131 e - 016。对于输入,单精度浮点e-07ε是1.192092896。定点输入,ε0。
Sign-Data LMS -校正在每个迭代滤波器权重取决于输入的符号u(n)。
在哪里u(n)是真实的。
符号误差LMS -校正应用于当前为每个连续的迭代滤波器权重取决于错误的符号,e(n)。
Sign-Sign LMS -校正应用于当前的每个连续迭代滤波器权重取决于的迹象u(n)的迹象e(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。
dsp.BlockLMSFilter
|dsp.FIRFilter
|dsp.FilteredXLMSFilter
|dsp.FrequencyDomainAdaptiveFilter
|dsp.AdaptiveLatticeFilter
|dsp.AffineProjectionFilter
|dsp.FastTransversalFilter
|dsp.RLSFilter