主要内容

dsp.RLSFilter

计算输出,错误和系数使用递归最小二乘(RLS)算法

描述

dsp.RLSFilter系统对象™过滤器每个通道的输入使用RLS滤波器实现。

过滤输入的每个通道:

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

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

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

描述

rlsFilt= dsp.RLSFilter返回一个自适应RLS滤波器系统对象,rlsFilt。这个系统对象计算输出过滤,过滤错误,滤波器权值对于一个给定的输入和期望信号利用RLS算法。

例子

rlsFilt= dsp.RLSFilter (len)返回一个RLS滤波器系统对象,rlsFilt。这个系统对象长度属性设置为len

rlsFilt= dsp.RLSFilter (名称,值)返回一个RLS滤波器与每个指定的系统对象属性设置为指定的值。在单引号附上每个属性的名字。未指定的属性有默认值。

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

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

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

您可以指定该方法用于计算滤波器系数传统的RLS[1][2],户主RLS[3][4],滑动窗口RLS[5][1][2],户主滑动窗口RLS[4],或QR分解[1][2]。这个属性是nontunable。

RLS滤波器系数向量的长度指定为一个标量正整数的值。这个属性是nontunable。

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

滑动窗口的宽度指定为一个标量值大于或等于的正整数长度属性值。这个属性是nontunable。

依赖关系

这个属性只适用于当方法属性设置为滑动窗口RLS户主滑动窗口RLS

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

指定RLS遗忘因子作为标量积极数值小于或等于1。设置此属性值为1表示无限的记忆,同时适应找到新的过滤器。

可调:是的

数据类型:|

指定FIR自适应滤波器系数的初始值作为一个标量或矢量的长度相等长度属性值。

可调:是的

数据类型:|

指定初始值的逆输入信号的协方差矩阵。这个属性必须是一个标量或一个方阵,每个维度等于长度属性值。如果你设置一个标量值,InverseCovariance属性初始化为一个对角矩阵的对角元素等于标量值。

可调:是的

依赖关系

这个属性只适用于当方法属性设置为传统的RLS滑动窗口RLS

数据类型:|

指定初始值的平方根逆输入信号的协方差矩阵。这个属性必须是一个标量或与每个维数等于一个方阵长度属性值。如果你设置一个标量值,SquareRootInverseCovariance属性初始化为一个对角矩阵的对角元素等于标量值。

可调:是的

依赖关系

这个属性只适用于当方法属性设置为户主RLS户主滑动窗口RLS

数据类型:|

指定初始值的平方根输入信号的协方差矩阵。这个属性必须是一个标量或与每个维数等于一个方阵长度属性值。如果你设置一个标量值,SquareRootCovariance属性初始化为对角矩阵的对角元素等于标量值。

可调:是的

依赖关系

这个属性只适用于当方法属性设置为QR-decomposition RLS

数据类型:|

指定过滤系数值是否应该被锁定。当你设定这个属性真正的,滤波器系数不更新和它们的值保持不变。默认值是(持续更新滤波器系数)。

可调:是的

使用

描述

例子

y= rlsFilt (x,d)递归地适应参考输入,x,以匹配所需的信号,d使用系统对象,rlsFilt。所需的信号,d所需的信号,再加上一些不受欢迎的噪音。

(y,e)= rlsFilt (x,d)显示了RLS滤波器的输出和错误,e之间的参考输入和期望的信号。过滤器调整系数,直到错误e是最小化。你可以通过访问访问这些系数系数对象的属性。之后才可以调用对象。例如,访问的优化系数rlsFilt过滤器,叫rlsFilt.Coefficients在你输入和期望信号传递给对象。

输入参数

全部展开

信号由RLS滤波器过滤。输入,x所需的信号,d,必须有相同的大小和数据类型。

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

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

RLS滤波器调整系数误差降到最低,e和收敛的输入信号x所需的信号d尽可能密切。

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

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

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

输出参数

全部展开

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

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

输出信号之间的差异y和所需的信号d,作为一个标量或返回一个列向量。RLS滤波器的目标是最小化这个错误。对象调整系数收敛到最优滤波器系数,产生一个相匹配的输出信号与期望的信号。更多的细节e计算,看算法。访问RLS滤波器系数,电话rlsFilt.Coefficients在你输入和期望信号传递给对象。

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

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

使用递归最小二乘(RLS)过滤器来确定一个未知的系统建模与低通滤波器。比较未知和估计系统的频率响应。

初始化

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

filt = dsp.FIRFilter (“分子”二十五分,fir1(10日));x = randn (1000 1);n = 0.01 * randn (1000 1);d = filt (x) + n;

自适应滤波器

创建一个dsp.RLSFilter对象创建一个RLS滤波器。滤波器的长度设置为11个水龙头和遗忘因子为0.98。通过主要的输入信号x和所需的信号dRLS滤波器。输出y自适应滤波器的信号融合到所需的信号d从而最大限度地减少错误e在两个信号之间。

rls = dsp.RLSFilter(11日“ForgettingFactor”,0.98);[y, e] = rls (x, d);w = rls.Coefficients;

阴谋的结果

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

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

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

比较权重

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

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

茎([filt.Numerator;w]。');传奇(“实际”,“估计”);包含(“系数#”);ylabel (的系数值);

图包含一个坐标轴对象。坐标轴对象包含系数#,ylabel系数值包含2杆类型的对象。这些对象代表实际的估计。

这个例子演示了RLS自适应算法使用逆系统识别模型。

的自适应滤波器级联一个未知的过滤器使自适应滤波器收敛到一个未知的逆系统的解决方案。

如果未知系统的传递函数和自适应滤波器H(z),G(z),分别测量误差之间的期望信号和信号级联系统达到最低的时候G (z) × H (z) =1。这个关系是真实的,G(z)必须等于1 /H (z)未知的,传递函数的逆系统。

证明这是真的,创建一个信号年代级联滤波器对输入。

s = randn (3000 1);

在级联滤波器的情况下,未知的过滤结果的延迟信号到达后求和点两个过滤器。防止自适应滤波器试图适应信号还没有见过(相当于预测未来),延迟12个样本的期望信号,这是未知的系统。

一般来说,你不知道你们的订单的系统识别。在这种情况下,推迟期望信号样本的数量等于半自适应滤波器的顺序。延迟输入要求将12新鲜感样本输入年代

延迟= 0(12日1);d =[延迟;s (1:2988)];%连接延迟和信号。

你必须保持所需的信号向量d一样的长度x,所以调整信号元素计数允许延迟样本。

虽然不是通常情况下,对于这个例子你知道未知的过滤器的顺序,所以添加一个延迟等于订单未知的过滤器。

对于未知的系统,使用一个低通滤波器,12阶数字滤波器。

filt = dsp.FIRFilter;filt。0.55分子= fir1(12日,“低”);

过滤年代提供了自适应算法的输入数据信号的功能。

x = filt(年代);

利用RLS算法,创建一个dsp.RLSFilter对象和设置它长度,ForgettingFactor,InitialInverseCovariance属性。

更多信息的输入条件准备RLS算法对象,引用dsp.RLSFilter

p0 = 2 *眼(13);λ= 0.99;rls = dsp.RLSFilter(13日“ForgettingFactor”λ,“InitialInverseCovariance”、p0);

这个例子旨在开发一个逆解,你需要小心的信号携带的数据和所需的信号。

自适应滤波器的早期例子使用过滤噪声作为所需的信号。在这种情况下,过滤噪音(x)携带未知系统的信息。高斯分布和方差为1,过滤噪音d所需的信号。代码运行这个自适应滤波器的方法是:

[y, e] = rls (x, d);

在哪里y返回输出和过滤e包含误差信号作为筛选适应发现未知的逆系统。

获得RLS滤波器的估计系数。

b = rls.Coefficients;

视图改编RLS滤波器的频率响应(逆系统,G(z))使用freqz。逆系统看起来像一个高通滤波器和线性相位。

freqz (b, 1)

图包含2轴对象。坐标轴对象1标题阶段,包含归一化频率(\ \倍πrad /样本),ylabel阶段(度)包含一个类型的对象。坐标轴对象2级标题,包含归一化频率(\ \倍πrad /样本),ylabel级(dB)包含一个类型的对象。

查看未知系统的频率响应,H(z)的响应是一个低通滤波器截止频率为0.55。

freqz (filt.Numerator, 1)

图包含2轴对象。坐标轴对象1标题阶段,包含归一化频率(\ \倍πrad /样本),ylabel阶段(度)包含一个类型的对象。坐标轴对象2级标题,包含归一化频率(\ \倍πrad /样本),ylabel级(dB)包含一个类型的对象。

级联的结果未知的系统和适应滤波器是一种补偿系统延长截止频率为0.8。

overallCoeffs = conv (filt.Numerator, b);freqz (overallCoeffs, 1)

图包含2轴对象。坐标轴对象1标题阶段,包含归一化频率(\ \倍πrad /样本),ylabel阶段(度)包含一个类型的对象。坐标轴对象2级标题,包含归一化频率(\ \倍πrad /样本),ylabel级(dB)包含一个类型的对象。

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

初始化

创建一个dsp.FIRFilter系统对象™代表未知的系统。创建一个dsp.RLSFilter对象和设置长度为11个水龙头。设置的方法房主RLS的。创建一个正弦波代表未知噪声添加到系统。查看信号在一个时间范围。

FrameSize = 100;硝石= 10;rls = dsp.RLSFilter (“长度”11“方法”,房主RLS的);filt = dsp.FIRFilter (“分子”,fir1(10。5,综合成绩]));sinewave = dsp.SineWave (“频率”,0.01,“SampleRate”,1“SamplesPerFrame”,FrameSize);范围= timescope (“LayoutDimensions”(2 - 1),“NumInputPorts”2,“TimeUnits”,“秒”,“YLimits”(-2.5 - 2.5),“BufferLength”2 * FrameSize *硝石,“ActiveDisplay”,1“ShowLegend”,真的,“ChannelNames”,{噪声信号的},“ActiveDisplay”2,“ShowLegend”,真的,“ChannelNames”,{误差信号的});k = 1:硝石x = randn (FrameSize, 1);d = filt (x) + sinewave ();[y, e] = rls (x, d);w = rls.Coefficients;范围(d, e)结束(范围)

算法

dsp.RLSFilter系统对象,当传统的RLS被选中时,递归地计算最小二乘估计(RLS)的冷杉滤波器权重。系统对象估计滤波器权重系数,需要将输入信号转换成所需的信号。输入信号可以是一个标量或一个列向量。所需的信号必须具有相同的数据类型,复杂性,和维度作为输入信号。相应的RLS滤波器以矩阵形式表示P(n):

k ( n ) = λ 1 P ( n 1 ) u ( n ) 1 + λ 1 u H ( n ) P ( n 1 ) u ( n ) y ( n ) = w T ( n 1 ) u ( n ) e ( n ) = d ( n ) y ( n ) w ( n ) = w ( n 1 ) + k * ( n ) e ( n ) P ( n ) = λ 1 P ( n 1 ) λ 1 k ( n ) u H ( n ) P ( n 1 )

在λ1表示指数权重因子的倒数。的变量如下:

变量 描述
n 当前时间指数
u(n) 缓冲输入样本向量的一步n
P(n) 逆相关矩阵的共轭的一步n
k(n) 增益向量步骤n
k *(n) 复杂的共轭k
w(n) 过滤阀估计向量的一步n
y (n) 过滤输出步骤n
e (n) 一步的估计误差n
d (n) 所需的反应步骤n
λ 遗忘因子

u,w,k都是列向量。

引用

[1]M海耶斯,统计数字信号处理和建模,纽约:威利,1996年。

[2]微积分,自适应滤波器理论,第四版,上台北,普伦蒂斯霍尔出版社,2002。

[3]嗜Rontogiannis和美国Theodoridis逆分解自适应最小二乘算法,”信号处理,52卷,不。1、形成反差,页。1996年7月。

”[4]南卡罗来纳州道格拉斯,Numerically-robust O (N2Proc) RLS算法使用最小二乘prewhitening。”IEEE Int。Conf.声学,演讲,和信号处理,伊斯坦布尔,土耳其,我卷,第415 - 412页,2000年6月。

[5]a·h·赛义德自适应滤波原理,新泽西州霍博肯:约翰威利& Sons, 2003。

扩展功能

版本历史

介绍了R2013a