主要内容

dsp。AdaptiveLatticeFilter

自适应晶格滤波器

描述

dsp。AdaptiveLatticeFilter系统对象™计算输出,误差和系数使用基于晶格的FIR自适应滤波器。

实现自适应FIR滤波对象:

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

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

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

阿尔夫= dsp。AdaptiveLatticeFilter返回一个基于格子的FIR自适应过滤系统对象,阿尔夫.这个System对象计算给定输入和期望信号的滤波输出和滤波误差。

例子

阿尔夫= dsp。AdaptiveLatticeFilter (len返回一个AdaptiveLatticeFilter对象。长度属性设置为len

例子

阿尔夫= dsp。AdaptiveLatticeFilter (名称,值返回一个AdaptiveLatticeFilter将每个指定属性设置为指定值的系统对象。将每个属性名用单引号括起来。未指定的属性有默认值。

属性

全部展开

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

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

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

指定用于计算滤波器系数的方法之一“最小二乘格”“qr -分解最小二乘格”“梯度自适应晶格”.默认值为“最小二乘格”.有关用于实现这三种不同方法的算法,请参阅[1][2].此属性不可调。

将FIR滤波器系数向量的长度指定为正整数值。此属性不可调。

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

将最小二乘晶格遗忘因子指定为小于或等于1的标量正数值。将该值设置为1表示在适应过程中有无限的内存。

可调:是的

依赖关系

仅当Method属性设置为时,此属性才适用“最小二乘格”“qr -分解最小二乘格”

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

将梯度自适应晶格滤波器的联合处理步长指定为小于或等于1的正数值标量。

可调:是的

依赖关系

对象时,此属性才适用方法属性设置为“梯度自适应晶格”

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

属性的分母指定偏移值StepSize归一化项作为非负数值标量。当输入信号振幅非常小时,非零偏置有助于避免被近零除的情况。

可调:是的

依赖关系

对象时,此属性才适用方法属性设置为“梯度自适应晶格”

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

将梯度自适应晶格滤波器的反射过程步长指定为0到1之间的标量数值,两者都包含在内。缺省值为StepSize属性值。

可调:是的

依赖关系

仅当方法属性设置为“梯度自适应晶格”

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

将平均因子指定为小于1的正数值标量。使用此属性计算系数更新的指数加窗正向和反向预测误差功率。默认值为1 -步长

可调:是的

依赖关系

对象时,此属性才适用方法属性设置为'梯度自适应晶格

数据类型:|

将预测误差向量的初始值指定为一个标量正数值。

如果方法属性设置为“最小二乘格”“qr -分解最小二乘格”,默认值为1.0.如果方法属性设置为“梯度自适应晶格”,默认值为0.1

可调:是的

数据类型:|

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

可调:是的

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

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

可调:是的

依赖关系

此属性仅适用于方法属性设置为“梯度自适应晶格”

使用

描述

例子

y犯错= alf(xd过滤输入x,使用d作为所需的信号,并返回过滤后的输出y并且过滤器错误犯错.System对象估计所需的滤波器权重,以最小化输出信号和所需信号之间的误差。你可以通过访问系数对象的属性。这只能在调用对象之后完成。例如,访问的优化系数阿尔夫过滤器,叫阿尔夫。系数在将输入和所需信号传递给对象之后。

输入参数

全部展开

被自适应晶格滤波器滤波的信号。输入,x,和期望信号,d,必须具有相同的大小和数据类型。

输入可以是一个可变大小的信号。即使对象被锁定,您也可以更改列向量中的元素数量。System对象在调用该对象时锁定。

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

自适应晶格滤波器调整其系数以使误差最小化,犯错,对输入信号进行收敛x到期望的信号d越近越好。

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

所需的信号可以是可变大小的信号。即使对象被锁定,您也可以更改列向量中的元素数量。System对象在调用该对象时锁定。

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

输出参数

全部展开

过滤后的输出,作为标量或列向量返回。该对象调整其滤波器系数以收敛输入信号x以匹配所需的信号d.滤波器输出收敛信号。

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

输出信号之间的差值y以及期望的信号d,作为标量或列向量返回。自适应晶格滤波器的目标是使这种误差最小化。该对象调整其系数以收敛于产生与所需信号密切匹配的输出信号的最佳滤波器系数。要访问自适应晶格过滤器系数,请调用阿尔夫。系数在将输入和所需信号传递给对象算法之后。

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

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

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

例子

全部折叠

请注意:如果您正在使用R2016a或更早的版本,请将对对象的每个调用替换为等效的调用一步语法。例如,obj (x)就变成了步骤(obj, x)

创建QPSK信号和噪声,对其进行滤波以获得接收信号,并对接收信号进行延时以获得所需信号。

D = 16;B = exp(1i*pi/4)*[-0.7 1];A = [1 -0.7];NTR = 1000;s =符号(randn(1,正常+ D)关系)+ 1我*签署(randn(1,正常+ D)关系);n = 0.1*(randn(1,ntr+D) + 1i*randn(1,ntr+D));R = filter(b,a,s) + n;x = r(1+D:ntr+D);D = s(1:ntr);

使用自适应晶格滤波器来计算滤波输出和输入和所需信号的滤波误差。

Lam = 0.995;Del = 1;Alf = dsp。AdaptiveLatticeFilter (“长度”32岁的...“ForgettingFactor”林,“InitialPredictionErrorPower”▽);[y,e] = alf(x,d);

绘制期望信号、输出信号和误差信号的同相分量和正交分量。

次要情节(2 2 1);阴谋(1:正常,关系真实([d; y; e]));标题(同相分量的);传奇(“想要的”“输出”“错误”);包含(“时间指数”);ylabel (的信号值);次要情节(2,2,2);阴谋(1:正常,关系图像放大([d; y; e]));标题(“正交组件”);传奇(“想要的”“输出”“错误”);包含(“时间指数”);ylabel (的信号值);

图中包含2个轴对象。标题为In-Phase Components的Axes对象1包含3个类型为line的对象。这些对象表示期望、输出、错误。标题为Quadrature Components的Axes对象2包含3个类型为line的对象。这些对象表示期望、输出、错误。

绘制接收信号和均衡信号的散点图。

次要情节(2、2、3);情节(x(正常- 100:关系正常)的关系,“。”);轴([-3 3 -3 3]);标题(“接收信号散点图”);轴(“广场”);包含(“真正的[x]”);ylabel (图像放大[x]”);网格;次要情节(2、2、4);情节(y(正常- 100:关系正常)的关系,“。”);轴([-3 3 -3 3]);标题(“均衡信号散点图”);轴(“广场”);包含(“真正的[y]”);ylabel (图像放大[y]”);网格

图中包含4个轴对象。标题为In-Phase Components的Axes对象1包含3个类型为line的对象。这些对象表示期望、输出、错误。标题为Quadrature Components的Axes对象2包含3个类型为line的对象。这些对象表示期望、输出、错误。标题为“接收信号散点图”的Axes对象3包含一个类型为line的对象。标题为“均衡信号散点图”的Axes对象4包含一个类型为line的对象。

请注意:如果您正在使用R2016a或更早的版本,请将对对象的每个调用替换为等效的调用一步语法。例如,obj (x)就变成了步骤(obj, x)

Ha = fir1(31,0.5);要识别的FIR系统Fir = dsp。FIRFilter (“分子”,哈);Iir = dsp。IIRFilter (“分子”sqrt (0.75),...“分母”-0.5 [1]);X = iir(sign(randn(2000,25)));观测噪声信号%N = 0.1*randn(size(x));%期望信号D = fir(x)+n;过滤器长度%L = 32;%用于分析的抽取因子%和模拟结果M = 5;ha = dsp.AdaptiveLatticeFilter(l);[simmse,meanWsim,Wsim,traceKsim] = msesim(ha,x,d,m);情节(m *(1:长度(simmse)), 10 * log10 (simmse));包含(“迭代”);ylabel (“MSE (dB)”);绘制用于的学习曲线自适应晶格滤波器用于系统辨识标题(“学习曲线”

图中包含一个轴对象。标题学习曲线的坐标轴对象包含一个类型为line的对象。

参考文献

[1] Griffiths, Lloyd J.“一个连续自适应滤波器实现为晶格结构”。IEEE Int论文集。声学、语音与信号处理会议,哈特福德,康涅狄格州,第683-686页,1977。

[2]海金S。自适应滤波理论《上马鞍河》,新泽西州:普伦蒂斯霍尔出版社,1996年版。

扩展功能

版本历史

在R2013b中引入