主要内容

dsp。FastTransversalFilter

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

描述

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

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

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

  2. 使用参数调用对象,就像调用函数一样。

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

创造

描述

FTF.=dsp.FastTransversalFilter返回一个系统对象™,FTF.,这是一种快速横向最小二乘FIR自适应滤波器。此系统对象计算给定输入和所需信号的滤波输出和滤波误差。

例子

FTF.=dsp.FastTransversalFilter(伦恩返回A.dsp.FastTrasversalFilter系统对象长度物业设为伦恩

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滤波器出现了错误犯错误.System对象估计所需的滤波器权重,以最小化输出信号和期望信号之间的误差。

输入参数

全部展开

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

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

数据类型:仅有一个的|
复数支持:金宝app

快速横向滤波器调整其滤波器重量,WTS.,以尽量减少误差,犯错误,并汇聚输入信号X到所需的信号D.尽可能仔细。您可以通过调用访问当前的滤波器权重“保障未来粮食供给”。系数,在那里FTF.是快速横向滤波器对象。

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

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

数据类型:仅有一个的|
复数支持:金宝app

输出参数

全部展开

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

数据类型:仅有一个的|

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

数据类型:仅有一个的|

对象功能

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

释放(obj)

全部展开

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

例子

全部收缩

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

  • 自适应滤波算法。

  • 要适应的未知系统或过程。在本例中,由fir1是未知的系统。

  • 适当的输入数据来练习适应过程。在一般系统辨识模型中,所要求的信号D.K.)和输入信号XK.)用来练习适应过程。

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

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

未知的系统

创建一个数字信号处理器对象,该对象表示要标识的系统。使用fir1功能设计滤波器系数。设计的过滤器是10阶低通数字滤波器,截止频率为0.25。

filt = dsp.FIRFilter;filt。为分子= fir1(10日)
filt=dsp.FIRFilter和属性:结构:'Direct form'分子源:'Property'分子:[-0.0039 1.7585e-18 0.0321 0.1167 0.2207 0.2687…]初始条件: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遗忘因子:0.9900初始预测错误功率:10初始系数:0初始转换因子:1锁定系数: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(“时间指数”); 伊拉贝尔('信号值');

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

子图(2,1,2);茎([filt.numerator; w]。);传奇(“实际”“估计”);Xlabel(“系数#”); 伊拉贝尔(“系数值”);

图中包含2个轴对象。轴对象1标题为“FIR滤波器的系统识别”包含3个类型为line的对象。这些对象表示期望、输出、错误。axis对象2包含2个类型为stem的对象。这些对象代表实际的,估计的。

参考文献

[1] 海金,西蒙。自适应滤波理论,第四版。新泽西州上鞍河:普伦蒂斯学院,2002年。

扩展能力

在R2013b中引入