主要内容

msesim

自适应滤波器的估计均方误差

描述

例子

均方误差= msesim (adaptFiltxd中给定输入和期望响应信号序列,估计自适应滤波器在每个时刻的均方误差x而且d

例子

均方误差meanwwtracek= messim (adaptFiltxd还计算了系数向量均值的序列,meanw,自适应滤波系数,w,总系数误差幂,tracek,对应自适应滤波器的模拟行为。

例子

___= messim (adaptFiltx指定用于计算的可选抽取因子均方误差meanw,tracek.如果> 1,每这些序列中的每一个的值都被保存。如果省略,的值默认值为1。

例子

全部折叠

均方误差(MSE)测量自适应滤波器的期望信号和主要输入信号之间误差平方的平均值。减少这个误差可以将主要输入收敛到所需的信号。确定各时刻的MSE预测值和模拟MSE值msepred而且msesim功能。将这些MSE值相互比较,并相对于最小MSE值和稳态MSE值进行比较。此外,计算由系数协方差矩阵的迹所给出的系数误差的平方和。

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

初始化

创建一个dsp。FIRFilter表示未知系统的系统对象™。传递信号,x到FIR滤波器。未知系统的输出是期望的信号,d,为未知系统(FIR滤波器)输出与加性噪声信号的和,n

Num = fir1(31,0.5);Fir = dsp。FIRFilter (“分子”, num);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;

LMS滤波器

创建一个dsp。LMSFilter对象来创建一个滤波器,以适应输出所需的信号。设置自适应滤波器的长度为32个点,步长为0.008,用于分析和模拟的抽取因子为5。的变量simmse表示未知系统输出之间的模拟MSE,d,自适应滤波器的输出。的变量均方误差给出相应的预测值。

L = 32;Mu = 0.008;M = 5;LMS = dsp。LMSFilter (“长度”l,“StepSize”μ);[mmse,emse,meanW,mse,traceK] = msepred(lms,x,d,m);[simmse,meanWsim,Wsim,traceKsim] = msesim(lms,x,d,m);

绘制MSE结果

比较模拟MSE、预测MSE、最小MSE和最终MSE的值。最终的均方误差值由最小均方误差和最大均方误差之和给出。

Nn = m:m:size(x,1);simmse semilogy (nn,大小(x, 1) [0], [(emse + mmse)...(emse + mmse)], nn, mse,大小(x, 1) [0], [mmse mmse])标题(“均方误差性能”(0 size(x,1) 0.001 10])“MSE (Sim)。”“最后的MSE”MSE的“最小MSE。”)包含(“时间指数”) ylabel (平方误差值

图中包含一个轴对象。标题为Mean Squared Error Performance的axis对象包含4个类型为line的对象。这些对象表示均方误差(Sim.)、最终均方误差、均方误差、最小均方误差。

预测的MSE与模拟的MSE遵循相同的轨迹。这两个轨迹都收敛于稳态(最终)MSE。

画出系数轨迹

meanWsim模拟系数的平均值是否为msesimmeanW预测系数的平均值是否为msepred

比较LMS滤波器系数12、13、14和15的模拟和预测平均值。

情节(nn meanWsim (: 12),“b”、神经网络、meanW (: 12),“r”神经网络,...meanWsim (:, 13:15),“b”、神经网络、meanW (:, 13:15),“r”) PlotTitle ={的平均系数轨迹...'W(12), W(13), W(14), W(15)'
PlotTitle =2 x1细胞{'} {'W(12), W(13), W(14)和W(15)'}的平均系数轨迹
标题(PlotTitle)传说(“模拟”“理论”)包含(“时间指数”) ylabel (的系数值

图中包含一个轴对象。标题为W(12)、W(13)、W(14)和W(15)的轴对象包含8个类型为line的对象。这些对象代表模拟、理论。

在稳态下,两条轨迹都收敛。

平方系数误差之和

比较所给出的系数误差平方和msepred而且msesim.这些值由系数协方差矩阵的迹给出。

traceK traceKsim semilogy(神经网络,神经网络,“r”)标题(“平方和系数误差”)轴([0 size(x,1) 0.0001])“模拟”“理论”)包含(“时间指数”) ylabel (平方误差值

图中包含一个轴对象。标题为Sum-of-Squared Coefficient Errors的axis对象包含2个类型为line的对象。这些对象代表模拟、理论。

通过使用滤波x LMS算法执行主动噪声控制来识别未知系统。自适应滤波器的目标是使自适应滤波器的输出与未知系统(或待识别系统)的输出之间的误差信号最小化。一旦误差信号最小,未知系统就会收敛到自适应滤波器。

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

初始化

创建一个dsp。FIRFilter系统对象,表示要标识的系统。传递信号,x,到FIR滤波器。未知系统的输出是期望的信号,d,为未知系统(FIR滤波器)输出与加性噪声信号的和,n

Num = fir1(31,0.5);Fir = dsp。FIRFilter (“分子”, num);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;

自适应滤波器

创建一个dsp。FilteredXLMSFilter对象创建一个使用filter -x LMS算法的自适应过滤器。设置自适应滤波器的长度为32个点,步长为0.008,用于分析和模拟的抽取因子为5。的变量simmse表示未知系统的输出,d,自适应滤波器的输出。

L = 32;Mu = 0.008;M = 5;FXLMS = dsp。FilteredXLMSFilter (l,“StepSize”μ);[simmse,meanWsim,Wsim,traceKsim] = msesim(fxlms,x,d,m);情节(m *(1:长度(simmse)), 10 * log10 (simmse))包含(“迭代”) ylabel (“MSE (dB)”绘制filter -x LMS filter的学习曲线用于系统标识标题(“学习曲线”

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

随着每一次迭代的适应,价值的提升simmse减小到最小值,表明未知系统已经收敛到自适应滤波器。

请注意:如果您正在使用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的对象。

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

Fir = fir1(31,0.5);要识别的FIR系统firFilter = dsp。FIRFilter (“分子”、冷杉);iirFilter = dsp。IIRFilter (“分子”sqrt (0.75),...“分母”-0.5 [1]);x = iirFilter(sign(randn(2000,25)));观测噪声信号%N = 0.1*randn(size(x));%期望信号d = firFilter(x)+n;过滤器长度%L = 32;Block LMS步长Mu = 0.008;%用于分析的抽取因子%和模拟结果M = 32;Fir = dsp。BlockLMSFilter(l,“StepSize”μ);[simmse,meanWsim,Wsim,traceKsim] = msesim(fir,x,d,m);情节(m *(1:长度(simmse)), 10 * log10 (simmse));包含(“迭代”);ylabel (“MSE (dB)”);绘制学习曲线%块LMS过滤器用于系统识别标题(“学习曲线”

图中包含一个轴对象。标题学习曲线的坐标轴对象包含一个类型为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;%仿射投影滤波器步长。Mu = 0.008;%用于分析的抽取因子%和模拟结果M = 5;Apf = dsp。AffineProjectionFilter (l,“StepSize”μ);[simmse,meanWsim,Wsim,traceKsim] = msesim(apf,x,d,m);情节(m *(1:长度(simmse)), 10 * log10 (simmse));包含(“迭代”);ylabel (“MSE (dB)”);绘制仿射投影滤波器的学习曲线用于系统标识标题(“学习曲线”

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

输入参数

全部折叠

输入信号,指定为标量、列向量或矩阵。矩阵的列x包含单独的输入信号序列。输入,x,和期望信号,d,必须具有相同的大小和数据类型。

如果adaptFilt是一个dsp。BlockLMSFilter对象中指定的值时,输入信号帧大小必须大于或等于BlockSize对象的属性。

数据类型:|

期望的响应信号,指定为标量、列向量或矩阵。矩阵的列d包含个别所需的信号序列。输入,x,和期望信号,d,必须具有相同的大小和数据类型。

如果adaptFilt是一个dsp。BlockLMSFilter对象中指定的值时,所需的信号帧大小必须大于或等于BlockSize对象的属性。

数据类型:|

抽取因子,指定为正标量。每一个估计序列的第Th值保存到相应的输出参数中,均方误差meanww,tracek.如果等于1时,这些序列的每一个值都被保存。

如果adaptFilt是一个dsp。BlockLMSFilter对象中的值的倍数,则抽取因子必须是BlockSize对象的属性。

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

输出参数

全部折叠

自适应滤波器在每个时刻的均方误差估计值,作为列向量返回。

如果自适应滤波器为dsp。BlockLMSFilter还有抽取因子的长度均方误差= (/ m)。是输入信号的帧大小(行数),x.如果未指定,长度为均方误差= (M / B),B中指定的值是否为BlockSize对象的属性。输入信号帧大小必须大于或等于在BlockSize对象的属性。如果指定了抽取因子,则必须是BlockSize财产。

对于其他自适应滤波器,如果抽取因子,= 1,的长度均方误差等于输入信号的帧大小。如果> 1,的长度均方误差= (/ m)。

数据类型:

自适应滤波器各时刻的系数向量均值序列,估计为一个矩阵。该矩阵的列包含自适应滤波器系数在每个时刻的平均值的估计值。

如果自适应滤波器为dsp。BlockLMSFilter还有抽取因子的尺寸meanw楼(/ m)——-N是输入信号的帧大小(行数),xN过滤器权重的长度是否为向量,由长度自适应滤波器的属性。如果未指定的尺寸meanw楼(M / B)———N,在那里B中指定的值是否为BlockSize对象的属性。输入信号帧大小必须大于或等于在BlockSize对象的属性。如果指定了抽取因子,则必须是BlockSize财产。

对于其他自适应滤波器,如果抽取因子为= 1,的维数meanw——- - - - - -N.如果> 1,的维数meanw楼(/ m)——-N

数据类型:

所述算法的自适应滤波系数的最终值对应adaptFilt,作为行向量返回。中指定的值长度对象的属性。

数据类型:|

总系数误差幂的序列,估计为列向量。该列向量包含自适应滤波器在每个时刻的总系数误差功率的估计值。

如果自适应滤波器为dsp。BlockLMSFilter还有抽取因子的长度tracek= (/ m)。是输入信号的帧大小(行数),x.如果未指定,长度为tracek= (M / B),B中指定的值是否为BlockSize对象的属性。输入信号帧大小必须大于或等于在BlockSize对象的属性。如果指定了抽取因子,则必须是BlockSize财产。

对于其他自适应滤波器,如果抽取因子,= 1,的长度tracek等于输入信号的帧大小。如果> 1,的长度tracek= (/ m)。

数据类型:

参考文献

海耶斯,M.H.统计数字信号处理与建模“,”纽约:John Wiley & Sons出版社,1996年。

在R2012a中引入