为了提高LMS算法的收敛性能,归一化变体(NLMS)采用了基于信号功率的自适应步长。随着输入信号功率的变化,算法计算输入功率并调整步长以保持一个合适的值。步长随时间变化,因此,在很多情况下,归一化算法在较少样本的情况下收敛更快。对于随时间变化缓慢的输入信号,归一化LMS算法是一种更有效的LMS方法。
有关使用LMS方法的示例,请参见基于LMS算法的FIR滤波器系统辨识.
请注意:如果您正在使用R2016a或更早的版本,请使用等效的步骤语法替换对对象的每个调用。例如,obj (x)
就变成了步骤(obj, x)
.
创建一个dsp。FIRFilter
对象,该对象表示要标识的系统。使用fircband
函数来设计滤波器系数。所设计的滤波器是一个阻带纹波限制为0.2的低通滤波器。
filt = dsp.FIRFilter;filt。分子= fircband(12,[0 0.4 0.5 1],[1 1 0 0],[1 0.2],...{' w '“c”});
传递信号x
到FIR滤波器。期望的信号d
是未知系统(FIR滤波器)输出和加性噪声信号的和吗n
.
X = 0.1*randn(1000,1);N = 0.001*randn(1000,1);D = filt(x) + n;
若要使用归一化LMS算法变体,请设置方法
的属性dsp。LMSFilter
来“归一化LMS”
.设置自适应过滤器的长度为13个水龙头,步长为0.2。
Mu = 0.2;LMS = dsp。LMSFilter(13,“StepSize”亩,“方法”,...“归一化LMS”);
传递主输入信号x
以及期望的信号d
到LMS过滤器。
[y,e,w] = lms(x,d);
输出y
自适应滤波器是收敛于期望信号的信号d从而使误差最小化e
在两个信号之间。
地块(1:1000,[d,y,e])“归一化LMS算法的系统辨识”)传说(“想要的”,“输出”,“错误”)包含(“时间指数”) ylabel (的信号值)
权重向量w表示LMS滤波器的系数,它适应于类似未知系统(FIR滤波器)。为了确认其收敛性,将FIR滤波器的分子与自适应滤波器的估计权值进行比较。
茎([(filt.Numerator)。' w])标题(“归一化LMS算法的系统辨识”)传说(“实际过滤器权重”,“估计过滤器重量”,...“位置”,“东北”)
[1]海耶斯,蒙森H,统计数字信号处理与建模“,.霍博肯,新泽西州:John Wiley & Sons, 1996,第493 - 552页。
海金,西蒙,自适应滤波理论.上马鞍河,新泽西州:Prentice-Hall, Inc., 1996。