73LMS自适应滤波器.docx
- 文档编号:3845877
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:32
- 大小:195.94KB
73LMS自适应滤波器.docx
《73LMS自适应滤波器.docx》由会员分享,可在线阅读,更多相关《73LMS自适应滤波器.docx(32页珍藏版)》请在冰豆网上搜索。
73LMS自适应滤波器
7.3 LMS自适应滤波器
自适应滤波器实际上是一种能够自动调整本身参数的特殊维纳滤波器,在设计时不需要预先知道关于输入信号和噪声的统计特性,它能够在工作过程中逐步“了解”或估计出所需的统计特性,并以此为依据自动调整自身的参数,以达到最佳滤波效果。
一旦输入信号的统计特性发生变化,它又能够跟踪这种变化,自动调整参数,使滤波器性能重新达到最佳。
图7-3 自适应滤波器原理图
自适应滤波器由参数可调的数字滤波器(或称为自适应处理器)和自适应算法两部分组成,如图7-3所示。
参数可调数字滤波器可以是FIR数字滤波器或IIR数字滤波器,也可以是格型数字滤波器。
输入信号x(n)通过参数可调数字滤波器后产生输出信号(或响应)y(n),将其与参考信号(或称期望响应)d(n)进行比较,形成误差信号e(n),并以此通过某种自适应算法对滤波器参数进行调整,最终使e(n)的均方值最小。
尽管自适应滤波器具有各种不同的算法和结构,但是,其最本质特征是始终不变的。
这种最本质的特征可以概括为:
自适应滤波器依据用户可以接受的准则或性能规范,在未知的而且可能是时变的环境中正常运行,而无须人为的干预。
本章主要讨论的是基于维纳滤波器理论的最小均方(LMS)算法,可以看到LMS算法的主要优点是算法简单、运算量小、易于实现;其主要缺点是收敛速度较慢,而且与输入信号的统计特性有关。
7.3.1 LMS算法基本原理
1.自适应线性滤波器
图7-4 单输入自适应线性滤波器 图7-5 多输入自适应线性滤波器
自适应线性滤波器是一种参数可自适应调整的有限冲激响应(FIR)数字滤波器,具有非递归结构形式。
因为它的分析和实现比较简单,所以在大多数自适应信号处理系统中得到了广泛应用。
如图7-4所示的是自适应线性滤波器的一般形式。
输入信号矢量x(n)的L+1个元素,既可以通过在同一时刻
对L+1个不同信号源取样得到,也可以通过对同一信号源在n以前L+1个时刻取样得到。
前者称为多输入情况,如图7-5所示,后者称为单输入情况如图7-4所示,这两种情况下输入信号矢量都用x(n)表示,但应注意它们有如下区别。
单输入情况:
(7-18)
多输入情况:
(7-19)
单输入情况下x(n)是一个时间序列,其元素由一个信号在不同时刻的取样值构成;而多输入情况下x(n)是一个空间序列,其元素由同一时刻的一组取样值构成,相当于并行输入。
对于一组固定的权系数来说,线性滤波器是输出y(n)等于输入矢量x(n)的各元素的线性加权之和。
然而实际上权系数是可调的,调整权系数的过程叫做自适应过程。
在自适应过程中,各个权系数不仅是误差信号e(n)的函数,而且还可能是输入信号的函数,因此,自适应线性滤波器的输出就不再是输入信号的线性函数。
输入信号和输出信号之间的关系为
单输入情况:
(7-20)
多输入情况:
(7-21)
如图7-4所示的单输入自适应线性滤波器,实际上是一个时变横向数字滤波器,有时称为自适应横向滤波器。
它在信号处理中应用很广泛。
自适应线性滤波器的L+1个权系数构成一个权系数矢量,称为权矢量,用w(n)表示,即
(7-22)
这样,输出响应表示为
(7-23)
参考响应与输出响应之差称为误差信号,用e(n)表示,即
(7-24)
自适应线性滤波器按照误差信号均方值(或平均功率)最小的准则,即
(7-25)
来自动调整权矢量。
2.自适应滤波器的性能函数
习惯上常称均方误差
为自适应滤波器的性能函数,并记为
、
或
,即
(7-26)
由式(7-24)、(7-25)和式(7-26),均方误差表示式为
(7-27)
在d(n)和x(n)都是平稳随机信号的情况下,输入信号的自相关矩阵R,d(n)与x(n)的互相关矩阵P都是与时间
无关的恒定二阶统计,分别定义为
(7-28)
(7-29)
以上二式对应于多输入情况,对于单输入情况,不难写出类似结果。
将上二式代入式(7-27),得到均方误差的简单表示形式
(7-30)
为了书写方便这里省略了w(n)的时间标记。
从该式可看出,在输入信号和参考响应都是平稳随机信号的情况下,均方误差
是权矢量w各分量的二次函数。
这就是说,若将上式展开,则w各分量只有一次项和二次项存在。
的函数图形是L+2维空间中一个中间下凹的超抛物面,有唯一的最低点
,该曲面称为均方误差性能曲面,简称性能曲面,如图7-6所示。
自适应是自动调整权系数,使均方误差达到最小值
的过程,这相当于沿性能曲面往下搜索最低点。
图7-6 均方误差性能曲面
3.最速下降法
从前面的讨论中已经知道,在输入信号和参考响应都是平稳随机信号的情况下,自适应线性组合器的均方误差性能曲面是权矢量w(n)的二次函数。
由于自相关矩阵为正定的,故此超抛物面向上凹,表示均方误差函数有唯一的最小值,该最小值所对应的权系数矢量为自适应滤波器的最佳权矢量
,即等于维纳滤波器的权矢量
。
如果自适应滤波器的权系数个数大于2,其性能表面的超抛物面仍有唯一的全局最优点。
在许多实际应用中,性能曲面的参数,甚至解析表示式都是未知的,因此,只能根据已知的测量数据,采用某种算法自动地对性能曲面进行搜索,寻找最低点,从而得到最佳矢量。
最常见的搜索方法是最速下降法(MethodofSteepestDescent),它在工程上比较容易实现,有很大的实用价值。
下面进行简单讨论。
均方误差性能曲面的梯度用
表示,定义为
(7-31)
将式(7-31)代入上式,得到
(7-32)
最小均方误差对应的权矢量称为最佳权矢量或维纳解,用
表示。
在性能曲面上,该点梯度等于零,即
(7-33)
由此解出
(7-34)
式(7-34)称为维纳—霍夫方程。
将上式代入式(7-31),即可得到自适应滤波器的最小均方误差为
(7-35)
利用矩阵运算规则,可以将上式简化为
(7-36)
由式(7-17)可知,只要知道了输入信号的自相关矩阵R和期望响应与输入信号的互相关矢量P,就可以由该式直接得出最佳权矢量
。
但是在实际应用中,这种方法往往是难以实现的。
一方面,我们通常很难得到有关信号和噪声的统计先验知识;另一方面,当R的阶数较高时,直接计算R的逆矩阵有一定的困难。
因此,最佳权矢量的实现一般都采用迭代方法,一步一步地在性能表面上搜索,并最终达到最小均方值和实现最佳权矢量。
最速下降法是一种古老而又非常有用的通过迭代寻找极值的方法。
从几何意义上来说,迭代调整权矢量的结果是使系统的均方误差沿性能曲面最陡的方向向下搜索曲面的最低点,曲面的最速下降方向是曲面的负梯度方向,或性能函数
的梯度
的反方向连续调整滤波器的权矢量w(n),梯度矢量可以表示为
(7-37)
这样,最速下降法可以表示为
(7-38)
式中,
是正值常数,称为收敛因子,用于调整自适应迭代的步长。
为了证明最速下降法满足
,即在迭代的每一步都满足在性能表面上下降,将性能函数在
处进行一阶泰勒展开,并利用式(7-38),得到
(7-39)
由于收敛因子μ是正值常数,因此,随着
的增加,性能函数
不断减小,当
时,性能函数趋于最小值
。
最速下降法的自适应迭代公式可以通过把式(7-32)代入式(7-38)得到,即
(7-40)
最速下降法的稳定性取决于两个因素,一是收敛因子μ的取值,二是自相关矩阵R的特性。
定义权误差矢量v(n)为
(7-41)
利用上式和
,消去式(7-40)中的互相关矢量
,有
(7-42)
式中,
为单位阵。
式(7-42)再次强调了最速下降法的稳定性是由
和
控制的。
利用正交相似变换,可以将自相关阵
表示为
(7-43)
式中,Q为正交矩阵,矩阵Q的各个列矢量为自相关矩阵R的特征值相对应的特征矢量。
为一对角阵,其对角元素为矩阵R的特征值。
通常将这些特征值表示为
,且均为正实值。
每一个特征值对应矩阵Q中一列特征矢量。
将式(7-43)代入式(7-42),有
(7-44)
上式两边左乘
,并利用正交矩阵的性质,有
(7-45)
定义
(7-46)
有
(7-47)
设
的初始值为
(7-48)
再假定自适应滤波器权矢量的初始值为
,则上式简化为
(7-49)
考虑
矢量的第
个模式,则式(7-30)所示的最速下降法的迭代公式变为
(7-50)
式中,
为自相关矩阵R的第个
特征值,
为矢量
的第个
元素。
上式为
的一阶齐次方程。
若设
的初始值为
,则该差分方程的解为
(7-51)
由于矩阵R为正定阵,其特征值均为正实值。
这样,
构成了一个等比级数,其公比为
。
为了保证最速下降法稳定收敛,必须有
(7-52)
即保证
的幅值小于1。
当迭代次数
时,最速下降法的各个模式均趋于0,而与初始状态无关。
这意味着当
时,自适应滤波器的权矢量趋于最佳权矢量
。
将式(7-51)写成矢量形式,有
(7-53)
由式(7-52)可以得到最速下降法收敛因子的限制条件:
(7-54)
式中,
为自相关矩阵R的最大的特征值。
最速下降法的主要优点是它的简单性,然而,这种方法需要大量的迭代,才能使算法收敛于充分接近最优解的点。
这个性能是由于最速下降法是以围绕当前点的性能表面的一阶近似为基础的。
在实际应用中,如果计算的简单性相对重要,则选择最速下降法是合适的。
然而,如果收敛速度是更重要的,可以选用牛顿法及其改进方法,这里就不再讨论了。
【例7-2】均方误差性能函数为
,初值权值为0,μ=0.05,给出最速下降法的学习曲线。
已知
即按式7-30的形式可得:
由式7-34可得:
由式7-36可得:
由式7-41可知最速下降法学习曲线为:
由7-46式定义可知
由7-41式权误差矢量定义知
可以解得自相关矩阵R的第m个特征值
为:
自相关矩阵R的特征值对应特征矢量为列矢量构成的正交阵Q为:
则
,
所以
在MATLAB中,计算方阵的特征值与特征向量可以使用如下函数:
其中矩阵D的主对角线由A的特征值构成,矩阵V的列矢量由对应的特征向量构成。
本例的学习曲线如图7-7所示。
图7-7 最速下降法学习曲线
4.最小均方(LMS)算法
在最速下降法中,如果我们能够在迭代过程的每一步得到梯度
的准确值,并且适当地选择了收敛因子
,则最速下降法肯定会收敛于最佳维纳解。
然而,在迭代的每一步准确地测量梯度矢量是难以做到的。
因为这需要具有关于自相关矩阵R和互相关矢量P的先验知识。
在实际应用中,梯度矢量需要在迭代的每一步依据数据进行估计。
换句话说,自适应滤波器的权矢量是根据输入数据在最优准则的控制下不断更新的。
Widrow等人提出的最小均方算法(LMS)就是一种以期望响应和滤波器输出信号之间误差的均方值最小为准则,依据输入信号在迭代过程中估计梯度矢量,并更新权系数以达到最佳的自适应迭代算法。
LMS算法是一种梯度最速下降算法,其显著特点简单性、计算量小、易于实现。
这种算法不需要计算相关矩阵,也不需要进行矩阵运算。
只要自适应线性组合器每次迭代运算时都知道输入信号和参考响应,选用LMS算法是很合适的。
现在的任务是采用如何来估计均方误差函数
的梯度
,并以此梯度估值
来替代最速下降法中理论情况下的梯度真值。
LMS算法进行梯度估计的方法是以误差信号每一次迭代的瞬时平方值替代其均方值,这样,原来由式(7-14)定义的梯度可近似为
(7-55)
根据上式并利用式(7-24),得到
(7-56)
实际上,
只是单个平方误差序列的梯度,而
则是多个平方误差序列统计平均的梯度,所以LMS算法就是用前者作为后者的近似。
用梯度估值
替代最速下降法中的梯度真值
,有
(7-57)
式中,
为自适应滤波器的收敛因子。
式(7-57)即为著名的LMS算法的滤波器权矢量迭代公式。
可以看出,自适应迭代下一时刻的权系数矢量可以由当前时刻的权系数矢量加上以误差函数为比例因子的输入矢量得到。
【例7-3】用MATLAB程序实现LMS算法。
如果给定输入序列x(n),期望响应序列d(n),步长μ和要求的自适应FIR滤波器长度N,我们就能够利用LMS算法的迭代公式(7-57)来确定自适应滤波器的权系数,下面给出实现这种算法的MATLAB函数,函数名为lms。
例程7-2 LMS算法
Function[h,y]=lms(x,d,u,N)
%LMS算法的实现
%[h,y]=lms(x,d,u,N)
%h=估计的FIR滤波器
%y=输出数组y(n)
%x=输入数组x(n)
%d=预期数组d(n),其长度应与x相同
%u=步长
%N=FIR滤波器的长度
M=length(x);y=zeros(1,M);
h=zeros(1,N);
forn=N:
M
x1=x(n:
-1:
n-N+1);
y=h*x1';
e=d(n)-y;
h=h+u*e*x1;
end
7.3.2 LMS算法性能分析
1.LMS算法的收敛性
收敛性是自适应滤波器的一个非常重要的指标。
为了检验LMS算法的收敛性,首先需要证明式(7-56)所示的梯度估计是无偏的。
将式(7-56)的两边取数学期望,得到
(7-58)
由此可见,LMS算法对性能函数梯度的估值是无偏的。
这就是说,如果每次迭代调整权矢量前能够进行多次观测,获得多个x(n),并对按式(7-56)计算得到的多个梯度估计进行统计平均,然后依据梯度的统计平均值
来调整权矢量,那么,迭代结果必能得到理想的最佳权矢量。
但是,实际运用中每次调整权矢量前,通过观测只能得到一个x(n),再由式(7-56)得到一个
,据此调整权矢量得到的w(n)必然是随机的。
当迭代过程收敛后,权矢量将在最佳权矢量附近随机起伏,这等于在最佳权矢量上叠加了一个噪声。
由式(7-57)可知,当前时刻权矢量w(n)只是过去输入矢量
的函数,如果假设这些输入矢量相互独立,那么w(n)将与x(n)无关。
为了研究方便起见,假设LMS算法的连续两次迭代时间足够长,以保证输入信号x(n)和x(n+1)互不相关,即满足了w(n)将与x(n)无关的要求。
对式(7-57)两边取数学期望,有
(7-59)
在前面我们讨论最速下降法时,得到的权矢量为
(7-60)
将上面的两个式子相对照,可以看出,LMS算法得到的权矢量,其期望值与最速下降法得到的权矢量本身都服从相同的迭代计算规律。
因此,用相同的推导方法能够得出这样的结论:
当式(7-60)的条件得到满足时,随着迭代次数趋近于无穷,权矢量的期望值将趋近于最佳权矢量。
对于横向自适应滤波器来说,输入信号的自相关矩阵的迹可用输入信号功率表示为
(7-61)
式中,
是输入信号功率。
因此,式(7-51)的收敛条件可表示为
(7-62)
这是工程上用起来很方便的公式,因为输入信号功率
很容易根据输入信号取样值来估计。
最后需要说明的是,前面所作的关于输入信号功率是平稳随机信号和输入信号相继矢量不相关的假设对于LMS算法的收敛不是必需的。
因为这些假设仅仅简化了式(7-59)的推导,如果没有这些假设,仍可推导出类似于式(7-60)的结果,只是其中的
不再是平稳随机信号的自相关矩阵。
但这不影响算法的收敛条件。
【例7-4】时域LMS算法收敛曲线的仿真。
例程7-3 LMS算法收敛性
% 该程序实现时域LMS算法,并用统计的方法仿真得出不同步长下的收敛曲线
clear % 清空变量空间
g=100; % 统计仿真次数为g
N=1024; % 输入信号抽样点数N
k=128; % 时域抽头LMS算法滤波器阶数
pp=zeros(g,N-k); % 将每次独立循环的误差结果存于矩阵pp中,以便后
% 面对其平均
u=0.001; % 收敛因子
forq=1:
g
t=1:
N;
a=1;
s=a*sin(0.5*pi*t); % 输入单频信号s
figure
(1);
plot(t,real(s)); % 信号s时域波形
title('信号s时域波形');
xlabel('n');
ylabel('s');
axis([0,N,-a-1,a+1]);
xn=awgn(s,3); % 加入均值为零的高斯白噪声,信噪比为3dB
%设置初值
y=zeros(1,N); % 输出信号y
y(1:
k)=xn(1:
k); % 将输入信号xn的前k个值作为输出y的前k个值
w=zeros(1,k); % 设置抽头加权初值
e=zeros(1,N); % 误差信号
%用LMS算法迭代滤波
fori=(k+1):
N
XN=xn((i-k+1):
(i));
y(i)=w*XN';
e(i)=s(i)-y(i);
w=w+u*e(i)*XN;
end
pp(q,:
)=(e(k+1:
N)).^2;
end
forb=1:
N-k
bi(b)=sum(pp(:
b))/g; % 求误差的统计平均
end
figure
(2); % 算法收敛曲线
t=1:
N-k;
plot(t,bi);
holdoff % 将每次循环的图形显示结果保存下来
【程序运行结果】
图7-8 LMS算法收敛曲线
2.自适应时间常数与学习曲线
在自适应调整权系数的过程中,均方误差是迭代次数的函数,由该函数给出的曲线称为学习曲线。
根据均方误差函数和最小均方误差表达式,可以得到均方误差函数的另一种表达形式
(7-63)
再根据我们所定义的权误差矢量
,代入上式,得到
(7-64)
再经过正交相似变换,将坐标轴转至主轴坐标系,得到
(7-65)
将式(7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 73 LMS自适应滤波器 LMS 自适应 滤波器