主要内容

dsp.FastTransversalFilter

快速横向最小二乘冷杉自适应滤波器

描述

dsp.FastTransversalFilter计算输出,误差和系数使用快速横截最小二乘FIR自适应滤波器。

实现自适应FIR滤波器对象:

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

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

要了解有关系统对象如何工作的更多信息,请参阅什么是系统对象?

创建

描述

FTF.= dsp.fasttransversalfilter.返回系统对象™,FTF.,这是一个快速横向,最小二乘的冷杉自适应滤波器。该系统对象计算给定输入和期望信号的滤波输出和过滤器错误。

FTF.= dsp.FastTransversalFilter (Len.返回A.dsp.fasttrasversalfilter.系统对象长度物业设为Len.

FTF.= dsp.FastTransversalFilter (名称,价值返回A.dsp.FastTransversalFilter系统对象,每个指定的属性都设置为指定的值。

属性

全部展开

除非另有说明,否则属性是nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,并且释放功能解锁它们。

如果属性是调节,您可以随时更改其值。

有关更改属性值的详细信息,请参阅MATLAB使用系统对象的系统设计

指定用于计算滤波器系数的方法“快速横向最小二乘”要么'滑动窗口快速横向横方'。对于用于实现这两种不同方法的算法,请参阅[1]。此属性不可调。

将FIR滤波器系数向量的长度指定为正整数值。

数据类型:

将滑动窗口的宽度指定为正整数值大于或等于的正整数值长度属性值。默认值为长度属性。

依赖性

此属性仅适用于方法属性设置为'滑动窗口快速横向横方'

数据类型:

将快速横向滤波器忘记因子指定为范围内的正标量(0,1]。将此值设置为1表示无限内存,而过滤器适配。将此属性值设置为1表示无限内存,同时调整为查找新过滤器。对于最佳结果,将此属性设置为范围内的值[1-0.5 / L,1],在那里L.是长度属性值。

可调:

依赖性

此属性仅适用于方法属性设置为“快速横向最小二乘”

数据类型:||INT8.|int16|int32|int64|uint8.|uint16|UINT32.|UINT64|逻辑

指定正向和后向预测错误向量的初始值作为正值标量。该标量应足够大以保持稳定性,防止过多的卡尔曼获得救援。

可调:

数据类型:||INT8.|int16|int32|int64|uint8.|uint16|UINT32.|UINT64

指定快速横向滤波器的转换因子的初始值。

此属性的价值取决于方法属性。如果方法被设置为:

  • “快速横向最小二乘”- 此属性必须是小于或等于的正数值1

  • '滑动窗口快速横向横方'- 此属性必须是两个元素数字矢量。此载体的第一个元素必须在范围内[0,1],第二个元素必须小于或等于-1。在这种情况下,默认值是[1,-1]

可调:

数据类型:||INT8.|int16|int32|int64|uint8.|uint16|UINT32.|UINT64|逻辑

将FIR自适应滤波器系数的初始值指定为标量或长度向量等于值的值长度属性。

可调:

数据类型:||INT8.|int16|int32|int64|uint8.|uint16|UINT32.|UINT64

指定是否锁定滤波器系数值。默认情况下,此属性的值是,对象不断更新滤波系数。如果此属性设置为真正,滤波器系数不会更新,它们的值保持不变。

可调:

用法

描述

[y) =“保障未来粮食供给”(XD.过滤器的输入X,使用D.作为所需信号,并返回滤波后的输出y滤镜错误。系统对象估计所需的滤波器权值,使输出信号和期望信号之间的误差最小。

输入参数

全部展开

通过快速横向滤波器过滤信号。输入,X,以及所需的信号,D.必须具有相同的大小和数据类型。

数据输入可以是可变大小的信号。即使当对象被锁定,您也可以更改列向量中的元素数。当您调用对象以运行其算法时,系统对象锁定。

数据类型:|
复数支持:金宝app

快速横向滤波器适应其滤芯,WTS.,最小化错误,,并汇聚输入信号X到所需的信号D.尽可能仔细。您可以通过调用访问当前的滤波器权重ftf.Coefficients,在那里FTF.是快速横向滤波器对象。

输入和所需信号必须具有相同的大小和数据类型。

所需信号可以是可变尺寸的信号。即使当对象被锁定,您也可以更改列向量中的元素数。当您调用对象以运行其算法时,系统对象锁定。

数据类型:|
复数支持:金宝app

输出参数

全部展开

过滤后的输出,作为标量或列向量返回。该对象自适应其滤波器权值以收敛输入信号X匹配所需的信号D.。滤波器输出融合信号。

数据类型:|

输出信号之间的差异y和所需的信号D.,作为标量或列向量返回。数据类型匹配数据类型y。自适应滤波器的目的是最小化此错误。该对象适应其权重,以便朝向最佳滤波器权重,其产生与所需信号密切相关的输出信号。

数据类型:|

对象功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,要发布命名的系统对象的系统资源obj.,使用下面的语法:

释放(obj)

全部展开

MSESIM 适应性滤波器的估计平均平方误差
一步 系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特性
重置 复位内部状态系统对象

例子

全部收缩

系统识别是使用自适应滤波器识别未知系统的系数的过程。该过程的一般概述显示在系统识别 - 使用自适应滤波器识别未知系统。所涉及的主要部分是:

  • 自适应滤波算法。

  • 适应的未知系统或过程。在此示例中,由此设计的过滤器FIR1.是未知的系统。

  • 适当的输入数据以锻炼适应过程。在通用系统识别模型中,所需的信号D.K.)和输入信号XK.)用于锻炼适应过程。

自适应滤波器的目标是使自适应滤波器输出之间的误差信号最小yK.)和未知系统的输出(或要识别的系统)D.K.)。一旦误差信号最小化,所适应的过滤器就像未知系统。两个滤波器的系数密切匹配。

注意:如果您使用的是R2016A或更早版本,请将每个调用替换为对象的同等一步句法。例如,obj(x)成为步骤(obj,x)

未知的系统

创建一个dsp.firfilter.对象,表示要标识的系统。使用FIR1.功能设计滤波器系数。设计的过滤器是10阶低通数字滤波器,截止频率为0.25。

filt = dsp.FIRFilter;filt。为分子= fir1(10日)
filt = dsp.firfilter具有属性:结构:'直接表格'NumeratorSource:'属性'分子:[1x11 Double] InitialConditions:0显示所有属性

通过信号X到FIR滤波器。所需的信号D.是未知系统(FIR滤波器)的输出和添加噪声信号的总和N

X = RANDN(1000,1);d = filt(x)+ 0.01 * randn(1000,1);

自适应过滤器

使用未知过滤器设计和所需的信号,创建并应用快速横向滤波器对象以识别未知过滤器。

创建一个dsp.FastTransversalFilter对象来表示自适应滤波器。设置自适应过滤器的长度为11个点,遗忘系数为0.99。

ftf1 = dsp.fasttransversalfilter(11,'忘记就活跃',0.99)
FTF1 = DSP.FastTransversalFilter具有属性:方法:'快速横向最小二乘'长度:11 ForgectFactor:0.9900 InitialPredictionErrorpower:10 initialCofients:0 initialConversionFactor:1 LockCofient:False

传递主输入信号X和所需的信号D.到快速横向滤波器。运行自适应滤波器以确定未知系统。输出y自适应滤波器的特点是使信号收敛于所需信号D.,从而最小化错误E.在两个信号之间。

[y,e] = ftf1(x,d);w = ftf1.coffients.
w =1×11-0.0043 0.0016 0.0308 0.1171 0.2204 0.2677 0.2210 0.1181 0.0323 0.0013 -0.0037

绘制结果。输出信号与所需信号匹配非常紧密地使两个接近零之间的误差。

次要情节(2,1,1);情节(1:1000 [d, y, e])标题('系统识别冷杉过滤器');传说('想要''输出''错误');Xlabel(“时间指数”);ylabel('信号值');

FIR滤波器的系数与适配滤波器的系数非常紧密地匹配,从而确认收敛。

子图(2,1,2);茎([filt.numerator; w]。);传说(“实际”“估计”);Xlabel('系数#');ylabel('系数值');

参考文献

[1] Haykin,Simon。自适应滤波理论,第4辑。上鞍河,新泽西:Prentice Hall,2002。

扩展能力

介绍在R2013B.