盲自适应算法(通用4篇)
盲自适应算法 篇1
摘要:分析了最小均方误差滤波和基于最小二乘准则滤波算法、变换域自适应滤波算法、仿射投影算法、共轭梯度算法、基于子带分解的自适应滤波算法、基于QR分解的自适应滤波算法优缺点, 并对自适应滤波算法的发展进行了展望。
关键词:自适应滤波算法,最小均方误差算法,最小二乘算法,变换域,仿射投影,共轭梯度,子带分解
随着信号处理理论和技术的迅速发展, 自适应信号处理理论和技术已经发展成为这一领域的一个新分支, 并且在通信、雷达、声纳、地震学、导航系统、生物医学和工业控制等领域获得越来越广泛的应用。对自适应滤波算法的研究是当今自适应信号处理中最为活跃的研究课题之一。
1 变步长自适应滤波算法
最小均方误差LMS算法最早由Widrow和Hoff于20世纪60年代提出, 由于其结构简单, 性能稳定, 计算复杂度低, 便于硬件实现等特点, 一直是自适应滤波经典算法之一。LMS算法的优点是结构简单, 鲁棒性强, 其缺点是收敛速度很慢。固定步长的自适应滤波算法在收敛速度、时变系统跟踪速度与收敛精度方面对算法调整步长因子的要求是相互矛盾的。为了克服这一矛盾, 人们提出了许多变步长自适应滤波算法。Yasukawa等[1]提出了使步长因子正比于误差信号的大小。吴光弼[2]提出了在初始收敛阶段或未知系统参数发生变化时, 步长比较大, 以便有较快的收敛速度和对时变系统的跟踪速度;而在算法收敛后, 不管主输入端干扰信号有多大, 都应保持很小的调整步长以达到很小的稳态失调噪声, 根据这一步长调整原则, 许多学者设计了多种变步长自适应滤波算法, 分别能够满足不同场合的应用。
2 基于最小二乘准则的RLS算法
基于最小二乘准则RLS算法对输入信号的自相关矩阵的逆进行递推估计更新收敛速度快, 其收敛性能与输入信号的频谱特性无关。但是, RLS算法的计算复杂度很高, 不利于适时实现。许多文献提出了改进的RLS算法, 如快速RLS算法, 快速递推最小二乘格型算法等。这些算法的计算复杂度低于RLS算法, 但它们都存在数值稳定性问题。文献[7]为避免RLS类算法递推估计更新自相关矩阵的逆的不足, 基于最小二乘准则, 利用最陡下降法, 得到一种新的梯度型自适应滤波算法, 该算法计算复杂度较低, 收敛性能良好。
3 变换域自适应滤波算法
对于强相关的信号, LMS算法的收敛性能降低, 这是由于LMS算法的收敛性能依赖于输入信号自相关矩阵的特征值发散程度。输入信号自相关矩阵的特征值发散程度越小, LMS算法的收敛性能越好。经过研究发现, 对输入信号作某些正交变换后, 输入信号自相关矩阵的特征值发散程度会变小。于是, Dentin等1979年首先提出了变换域自适应滤波的概念。其基本思想是把时域信号转变为变换域信号, 在变换域中采用自适应算法。
4 仿射投影算法
射投影算法最早由K.Ozeki和T.Umeda提出, 它是归一化最小均方误差 (NLMS) 算法的推广。仿射投影算法的性能介于LMS算法和RLS算法之间, 其计算复杂度比RLS算法低。归一化最小均方误差 (NLMS) 算法是LMS算法的一种改进算法, 它可以看作是一种变步长因子的LMS算法, 其收敛性能对输入信号的能量变化不敏感。而仿射投影算法的计算复杂度比NLMS算法高很多。Gay等提出的快速仿射投影算法大大降低了仿射投影算法的计算复杂度。
5 共轭梯度算法
虽然RLS算法收敛速度快, 但其计算复杂度很高, 因为它需要估计逆矩阵。假如被估计的逆矩阵失去正定性, 就会引起算法发散;并且算法实现所需的存储量极大, 不利于实现。一些快速RLS算法虽降低了RLS算法的计算复杂度, 但都存在数值稳定性问题。共轭梯度自适应滤波算法不含有RLS算法中的矩阵运算, 也没有某些快速RLS算法存在的数值稳定性问题, 它保留了RLS算法收敛速度快的特点。
6 基于子带分解的自适应滤波算法
子带分解技术用于自适应滤波算法主要是基于以下考虑:对于强相关输入信号自相关矩阵的特征值发散程度很大, 使得所采用的自适应滤波算法的收敛速度和跟踪速度都很慢, 并且权值的自适应滤波器的计算量很高。
基于子带分解自适应滤波的基本原理是将输入信号与参考信号经过分解滤波器组抽取进行子带分解, 对信号按频带划分, 然后在各个子带上分别进行自适应滤波, 再将子带信号内插后通过合成滤波器组得到最后的合成信号。其中, 由于对信号进行了抽取, 使完成自适应滤波所需的计算量得以减小;而在子带上进行自适应滤波使收敛性能又有所提高。
7 结语
本文对各种类型的自适应滤波算法进行了分析总结, 可以看出, 收敛速度快、计算复杂度低、数值稳定性好是这些算法努力追求的目标, 算法与实现结构有着密切的联系, 每个算法都存在不同的等效结构, 结合实际应用还有不少问题需要研究, 在实际应用中应根据具体环境和系统要求, 结合各种算法的特点以达到最优的滤波效果。
参考文献
[1]Yasukawa H, Shimada S, Furukrawa I, et al.Acoustic echo canceller with highspeech quality[C]//Proc.ICASSP’87, 1987, 2125~2128.
[2]吴光弼, 祝琳瑜.一种变步长LMS自适应滤波算法[J].电子学报, 1994, 22, 1:55~60.
[3]Luo xiaodong, Jia zhenhong, Wangqiang.Variable step size LMS adaptivefiltering algorithm[J].Acta ElectronicaSinica, 2006, 34 (6) :1123~1126.
[4]孙恩昌, 李于衡, 张冬英, 等.自适应变步长LMS滤波算法及分析[J].系统仿真学报, 2007, 19 (14) :3172~3175.
[5]J M Cioffi, T Kailath.Windowed fasttransversal filters for recursive leastsquares adaptive filtering.IEEE Trans.on ASSP, 1985, 33, 33:607~625.
盲自适应算法 篇2
随着机动车数量的不断攀升,随之而产生的交通拥挤与堵塞等现象越发严重,用户对车载导航系统的服务质量及性能等方面的要求不断提高。本文对蚁群算法加以改进,提出了基于蚁群算法的自适应路径导航算法,该算法不但充分地利用了蚁群算法的灵活性、稳定性、自启发性等良好特性,同时又克服了蚁群算法固有的缺陷(如收敛慢、易陷于局部最优等),而且,综合权衡了多个影响导航的主要因素的组合优化作用,求解最优路径,并获得了良好的导航效果。
通过对蚁群算法的分析与研究,对蚁群算法加以优化,提出了基于蚁群算法的自适应路径导航算法模型,并阐述了该算法选路和导航的决策原则、信息素的更新策略及道路拥塞、交通负载平衡情况的处理策略等,在理论上阐释了将蚁群算法应与导航系统中的原理与模型,丰富了导航算法的理论模型。在导航决策方面,算法采用模糊数学理论中的模糊评判的方法作为导航可行下一跳节点的理论依据,在模糊评判中充分考虑了影响导航的多个因素的综合作用,使得导航不再简单地依据最短路径这一单一因素来完成,增强了算法的寻优能力。同时,在使用各因素时,充分考虑了各个不同因素使用的量级不一致等情况,利用模糊数学领域中的隶属函数方法,将多个因素的量级统一到同一量级上来,有效地避免了因各因素量级的不同,而产生的低量级因素被掩埋现象的发生。在信息素更新策略上,算法给出了局部信息素更新、全局信息素更新以及相应的计算公式。通过对信息素的不同更新策略可以改善算法的收敛速度慢及易陷于局部最优的缺陷,在调节流量负载平衡方面,由于采用了多因素的综合评判方法,所以,优化后的蚁群算法具有很好的自适应性,能够自启发式的解决流量负载问题。
1 蚁群算法原理及模型
1992年M.Dorigo等人提出了一种新型的仿生进化算法——蚁群算法 (ant colony optimization)[1],蚁群算法源于自然界中真实蚁群行为的启发,自然界中单只蚂蚁的个体行为极为简单,然而,蚂蚁群体间却能够通过相互协作的群体行为寻找到蚁巢到食物之间的最短路径,并且能够根据路径情况的实时改变动态收索最短路径。
蚁巢为N(nest),蚂蚁的食物源为F(food),存在一条蚂蚁行走的路径(从蚁巢N至食物源F,反之亦然),见图1 (a),这条路径是蚂蚁间通过相互协作已寻找到的从蚁巢到食物源的当前最短路径。
如在蚂蚁的当前行进的路径上放置一个障碍物,将该路径截断,那么,在P2位置的蚂蚁要从N至F(或在P4的蚂蚁要从F至N)就不得不决定是向左转还是向右转,见图1(b)。蚂蚁因没有先前在2条备选路径上留下任何信息素或信息素的浓度很低,所以在P2点的蚂蚁向左转或是向右转的概率是相同的。由于路径P2P3P4比路径P2P1P4短,因此,沿P2P3P4行走的蚂蚁达到P4所需的时间要比沿着P2P1P4行走的蚂蚁所需的时间短,并蚂蚁原路往返,结果是在单位时间段内,沿着P2P3P4路径行走的蚂蚁的数量会高于沿着路径P2P1P4行走的蚂蚁的数量,每只蚂蚁都将在其所经过的路径上留下自己的信息素,这就使得在较短路径P2P3P4上的信息素数量的增长要比在长路径P2P1P4上的信息素数量的增长快。后续蚂蚁的选路受先前的蚂蚁留下的信息素的强度影响,在较短道路上的较高的信息素强度给予所有蚂蚁一个更强有力的刺激,因而在P2处的蚂蚁将向左转(在P4处的蚂蚁将向右转),后续的蚂蚁都会选择信息素强度高的路径行走,最终的结果是,所有的蚂蚁都会选择较短的路径,见图1(c)。从上面的描述可知,蚁群主要进行两项工作:根据路径上的信息素的强度来选择路径和更新所选路径上的信息素的数量。
以求解旅行商问题(traveling salesman problem, TSP)[2,3]为基准阐释蚁群算法模型。旅行商问题是一个著名的组合优化难题,其描述为:给定n座城市以及每对城市之间的欧氏距离,要求确定一条经过每座城市当且仅当仅经过1次的最短路径,其形式化定义如下:
设C={c1,c2,…,cn} 是n座城市的集合,P={ Pij | ci,cj∈C}是集合C中的元素两两连接的集合,dij (i, j=1,…,n) 是Pij的距离,G=(C, P)表示一个有向图,TSP的目标是从有向图G中找到一条长度最短的环,即一条对于C={c1, c2, …, cn}中n个城市访问且仅访问一次的最短封闭曲线。
为了定义蚁群算法模型引入如下变量:
n定义为TSP规模,即城市的总数;
m定义为蚁群中蚂蚁的总数,
bi(t)定义为t时刻位于元素i上的蚂蚁数目;
τij (t)定义为t时刻链路(i, j)上残留的信息量;
dij定义为城市i与城市j之间的欧氏距离;
ηij(t)定义为启发函数,其缺省值为ηij(t) =1/dij;
pijk(t)定义为状态转移概率,其值的大小决定了位于节点i上的蚂蚁倾向于转向下一可行节点j的程度;
α定义为信息启发式因子,用于表示信息素的相对重要性,反映了蚂蚁在行进过程中积累的信息对蚂蚁行进所起的作用,其值越大,蚂蚁越倾向于选择其它蚂蚁经过的路径,蚂蚁间的协作性就越强;
β定义为期望启发式因子,用于表示能见度的相对重要性,反映蚂蚁在行进过程中启发信息在蚂蚁选择路径过程中的受重视程度,其值越大,状态转移概率就越接近于贪心规则。
蚁群算法模型描述如下:在蚂蚁寻路的初始时刻,各条被选路径上的信息素的量是均等的,设τij (t)=常量,这意味着蚂蚁选择每条被选路径的概率是相等的。与自然界中的实际蚂蚁不同,人工蚂蚁具有一定的记忆功能,可用禁忌表TB记录蚂蚁k(0<k≤m)当前所走过的城市信息,城市集合随着禁忌表TB的变化作动态调整。随着时间的推移,路径上的信息素的强度将发生很大的变化,在寻路过程中,个体蚂蚁k将根据各条备选路径上的信息量的多少、路径的信息启发式因子、启发函数以及期望启发式因子来计算状态转移概率p。在t时刻,蚂蚁k由城市i转移到城市j的状态转移概率,由式(1)计算所得。
式中:allowedk={C-TB}为蚂蚁k下一步被允许选择的城市;C为所有与节点i存在路径的城市集合;TB为禁忌表,表示已被蚂蚁k访问过的城市的集合;α为信息启发式因子,用于表示路径的相对重要性,α≥0;β为期望启发式因子,用于表示能见度的相对重要性,β≥0 。
对蚂蚁k,当2城市之间的距离dij越小,根据式ηij(t) =1/dij,则启发函数ηij(t)的值就越大,状态转移概率p
2 基于蚁群算法的导航算法
2.1 导航因素值规格化
影响导航的主要因素有:路经长度、路径宽度、通行时间和通行时间抖动等,这些因素即可单独使用,又可组合使用。在组合使用时,往往存在多个因素的因素值的量级不一致情况,如路径长度以公里作为单位,量级多为一到几十,路径宽度以米为单位,通常取值为15~40之间,而通行时间的单位是分钟,通常是几到几百分钟之间。由于不同的因素在取值上存在很大差异,通常会出现值小因素的评价作用被掩埋的情况,无法完全体现所有影响导航的因素的真实约束作用。例如,路径长度取值为10(即10 km),而通行时间取值是100(即100 min),在进行综合评判时,有时会发生100会将10淹没的现象,这将减弱或者屏蔽路径长度量值10的评判作用。因此,在进行模糊评判之前,首先要对各因素取值进行统一的规格化[4],将各因素取值统一到一致的量级上来,本算法利用隶属函数方法来解决量级统一的问题,通过使用隶属函数将各个因素的取值都映射到[0,1],缩小因素值之间的量级差距,这样各因素就具有了接近相同的评判作用,因此,可以有效地避免某些影响因素的评价作用被掩埋的情况发生。在算法中隶属函数采用梯形分布隶属函数形式,其中路径宽度隶属函数采用梯形分布的偏大型,见式(2),路径长度、通行时间、通行时间抖动隶属函数都采用梯形分布的偏小型,见式(3)。各因素的评判值均源于隶属函数值,且均为越大越优型。由于路径宽度隶属函数采用梯形分布偏大型,因此路径宽度值越大,意味着隶属函数值就越大,即隶属函数值与路径宽度值成正反馈关系,路径长度、通行时间和通行时间抖动均隶属函数采用梯形分布偏小型,所以,其值越小,隶属函数值就越大,即隶属函数值与路径长度,通行时间和通行时间抖动因素值成负反馈关系。
2.2 算法导航原则
在选路的过程中,位于节点i上的蚂蚁(将车辆视为蚂蚁),按式(1)计算每一个下一可行节点的转移概率,然后选择转移概率高的结点作为下一转向节点。
算法中利用模糊数学理论中的综合评判的方法来确定公式(1)中的ηij值,以取代缺省值1/dij(节点间距离的倒数)。ηij的值越大,表示该路径的综合评价结果越优,蚂蚁越倾向于选择该路径,从而达到一个良好的导航效果。ηij值的计算方法如下:
1) 确定因素集合U={u1,… ,u4},被评判路径的各因素构成的集合。
2) 给出最优路径的权重向量,W=(u1,u2,u3,u4)。
3)将当前可选路径的各因素的权重向量A与最优路径的权重向量W进行欧几米德贴近度计算[5];
4) 将计算所得的贴近度值作为ηij值,按照择优的选路原则,确定转向的路径。
2.3 算法局部信息素更新策略
局部信息素更新是对蚂蚁所经过的当前路径进行信息素更新,对于每只蚂蚁而言,在其寻路行进的过程中会对其所经过的路径上的信息素进行更新。按式(5)对信息素进行局部更新。
式中:ρ为信息素残留系数,为了避免信息素的无限累积,通常ρ取值为[0,1),(1-ρ)则表示在t和t+1时刻之间信息素挥发的程度,本算法通过对局部信息素进行更新,适度地改变了路径上信息素的强度,避免蚂蚁寻路陷入局部最优;k为一正实数系数;ηij为启发函数,通过对局部路径上的路径长度、路径宽度、通行时间和通行时间抖动的模糊评判来获得ηij值。
2.4 算法全局信息素更新策略
全局信息素更新是在整条线路上进行信息素更新。当所有蚂蚁均完成了从出发节点到目的节点的寻路过程之后,需要使用全局信息素更新策略对最优线路中的所有路径上的信息素浓度进行更新,以便增强最优线路上信息素的强度,使得该最优线路能够得以保留下来,以获得很好的收敛效果。按式(6)进行全局信息素更新。
式中:kw为全局系数,kw≥0,ηw为全局启发函数,利用全局的路径长度(线路中所有路径长度之和)、路径宽度(线路中所有路径宽度的最小值)、通行时间(线路中所有路径通行时间之和)、通行时间抖动(目的节点的抖动时间)来计算ηw,全局信息素更新能有效地调节最优线路上的信息素强度,提高蚁群算法的收敛速度,同时,由于采用了多因素综合评价方法,可以有效地解决或者避免道路拥塞等交通问题。对于最优线路之外的其它线路按照式(7)进行全局信息素更新。
2.5 算法拥塞控制及负载均衡策略
在算法中,如位于某节点的车辆有2个及以上的可行下一跳节点,算法将计算得到的转移概率值较大的前2条路径保存下来,转移概率最大的路径作为主选径路,另一条路径作为可行路径(备选路径),当首选的主路径上出现负载过重的情况时,通行时间、通行时间抖动等都会随之增加,根据多因素约束算法的选路原则可知,期望启发式因子η将变小,使得主路径的转移概率随之减小,当主路径的转移概率低至与备选路径转移概率相当时,(采用两个转移概率之差的绝对值小于某一极小常量e来判定,1>e≥0),即设置2条路径具有相同的转移概率,因此,后续的流量就可以经过备选路径进行分流,达到拥塞控制、负载均衡目的,使得算法具有动态的自适应能力。
3 算法仿真实验
3.1 算法仿真结构图
路径仿真结构图,见图2,导航中所使用的评判因素为:路径长度、路径宽度、通行时间、通行时间抖动。每条路径的各因素值见表1。
3.2 模糊综合评判
根据式(2)计算路径宽度的隶属函数值[5],根据式(3)计算路径长度、通行时间和通行时间抖动的隶属函数值,结果见表 2。其中,式(2)和式(3)中 a=0,b=max(ui)。
节点1到节点2(路径R1)的权重向量为
A=(0.33,1,0.6,0.75)
节点1到节点7(路径R8)的权重向量为
B=(0.66,0.5,0.4,0.25)
位于节点1的蚂蚁(车辆)依据式(1)计算的转移概率来选择它的可行下一节点。式(1)中的启发函数值η由路径宽度、路径长度、通行时间及通行时间抖动等因素的模糊评判值确定。
在本拓扑结构中,基于最优路径的权重向量:W=(0.9,0.95,0.9,0.8),按式(4)计算,位于节点1的车辆转向节点2和节点7的启发函数η值,分别为
节点1到2:N(A,W)=0.676,对应的η=0.676
节点1到7:N(B,W)=0.25,对应的η=0.549
从结果可知,节点1到2的启发函数值(0.676)大于节点1到7的启发函数值(0.549),因此,在多因素综合评判情况下,节点1到2的路径优于节点1到7的路径,因此,位于节点1的车辆首选可行节点2作为下一跳节点。按此进行仿真实验,仿真实验中各参数的设置值[6]:α=2、β=3、ρ=0.7、Q=100、k=1、kw=1、τ0=0.1、m=10、n=10、t=0、nc=0 、ncmax=100。将所得实验结果与基本蚁群算法实验结果(仅采用路径长度作为评价因素,较短路径首选)进行对照,见表3:
3.3 算法仿真实验结果与分析
由表3可见:对于相同的路径策略,2种算法分别得出不同的路径集合,多因素评判算法的综合评判结果在导航方面优于基本蚁群算法,同时,该算法在迭代次数方面,也存在一定的优势,但多因素评判算法具有计算时间相对较长的不足之处。
4 结束语
本导航算法充分权衡了影响导航的主要因素的综合评判作用,因而能够求得一条综合评判最优的导航路径,并能够根据路径的实时情况,自适应的进行调整并获得新的最优路径,以满足用户对导航系统高服务质量的需求。
摘要:针对时常发生和不断加剧的交通拥挤、堵塞等情况,研究一种动态的、自适应的导航算法,以达到对车辆进行合理有效的路径导航和路径规划的目的。这一算法是在蚁群算法的基础之上,辅以多因素综合评判的方式,改进蚁群算法的评判标准,构建动态导航模型。以该导航模型为基础,通过仿真实验进行求解,仿真实验中将路径宽度、通行时延等随机因素考虑在内并进行综合权衡,使得动态导航的结果具有现实中的指导意义。数据实例表明,该导航算法是可行的、有效的,具有良好的导航效果,可为实际的导航系统提供有力地决策支持。
关键词:蚁群算法,模糊综合评判,导航算法
参考文献
[1]Dorigo M,Gambardella L M.Ant colonies for thetraveling salesman problem[J].Bio-system,1997,43(2):73-81.
[2]杜长海,黄席樾,杨祖元,等.改进的蚁群算法在动态路径诱导中的应用研究[J].计算机工程与应用,2008,44(27):236-239.
[3]刘桂青.改进蚁群算法在车辆路径问题中的应用[J].广西民族大学学报:自然科学版,2010,16(2):50-53.
[4]刘伟,史岚.基于蚁群算法的多参数模糊评判的路由算法[J].微计算机应用,2010,31(10):14-19.
[5]杨纶标,高英仪.模糊数学原理与应用[M].广州:华南理工大学出版社,2005.
系数比例自适应算法的研究 篇3
该文详细描述了典型的系数比例归一化最小均方 (PNLMS) 算法, 最后重点介绍几种改进的PNLMS算法。
1 系数比例自适应算法 (PNLMS)
在传统自适应滤波器算法中, 没有考虑到未知线性系统冲激响应的结构特点, 简单的为每一个权重系数分配一个相同的步长参数, 结果对于小的权重系数被分配给较大步长参数, 迭代较少次数就可以收敛到其最优值, 而对大的权重系数分配同样大小的步长参数, 这个同样大小的步长参数相对于大权重系数值显得较小, 因此需要更多的迭代次数才可以收敛到期最优值, 于是最大权重系数值决定了自适应滤波器整体收敛速度。针对这个问题, Duttweiler提出了Proportionate NLMS (PNLMS) 算法[2]。PNLMS算法将一个步长控制矩阵G (n) 引入NLMS算法中, 该控制矩阵在n时刻为每一个滤波器权重系数分配一个与其绝对值成正比的步长参数。这样不同的滤波器权重得到与其自身收敛要求相适应的步长参数, 从而显著提高了算法的收敛速度。步长控制矩阵G (n) 定义为:
可以通过下式得到G (n)
式中gi (n) 为每一个滤波器权重系数收敛相适应的步长参数, p的作用是在所有系数为零时防止算法的冻结, 其值一般为0.01, 的作用是在某个系数过小或为零时防止算法的冻结, 综上所述, 系数比例LMS算法的权重系数更新方程可以写为
上式为非归一化的形式。一般更新方程的归一化有两种形式。一种形式是使用输入信号向量X (n) 的二范数对输入信号X (n) 进行归一化, 得到正是Duttweiler所提出的归一化形式系数比例NLMS算法即
式中的作用是防止由过小输入信号引起的算法发散。另一种形式是使用以系数矩阵G (n) 的加权后的输入信号向量X (n) 的二范数范数对输入信号X (n) 进行归一化, 表示如下:
式中的作用也是防止由过小输入信号引起的算法发散。
由以上可知, 比例系数NLMS算法的关键是它为每一个滤波器权重系数分配了一个与其绝对值成正比的系数, 这样在算法的迭代中, 较大系数得到了与其相适应的较大的步长参数, 从而提高了算法的收敛速度。可惜这种方法的快收敛速度只是在收敛过程前期出现, 并不会贯穿整个收敛过程。因为它为大权重系数分配大系数的同时也加剧了大小权重系数所分配比例系数的差异性, 那么在收敛过程后期较小权重系数因得不到足够的比例系数收敛速度过慢而成为算法收敛速度的最终主导因素。
自从第一个比例系数NLMS算法提出后, 学者提出了各种不同的比例系数NLMS算法, 它们的主要不同的在于使用系数比例步长矩阵G (n) 的新定义或新的权重系数更新策略来减小大小权重系数得到比例系数的差异性。
2 改进的系数比例自适应算法
2.1 IPNLMS算法
IPNLMS算法中定义的比例系数步长参数gi (n) 为
这就是基于l0范数的IPNLMS算法。在每一个系数比例参数中加入当前时刻滤波器权重系数向量估计值的均值, 这样在计算比例系数矩阵G (n) 时, 滤波器权重系数的估计误差带来的负面作用可以得到部分消除。因此, 无论未知系统冲激响应稀疏度度如何, IPNLMS算法都可以保证了相当快的收敛速度。
2.2 MPNLMS算法
在MPNLMS算法中gi (n) 定义为
式中是一个经验值, 一般取1000。
相比于其他的比例系数自适应算法, MPNLMS算法具有更快的收敛速度, 更重要的是当未知系统的冲激响应稀疏度不够时其收敛性能不会像PNLMS算法恶化的那么严重。但是它存在一个致命的缺点:无论对于专用DSP器件还是FPGA, 每次迭代中的L次对数运算都是极高的计算量, 尤其是对于长阶数的稀疏冲激响应自适应滤波器。总得来说它理论价值很高却难以工程应用。
2.3 IMPNLMS算法
为了使算法也能够处理不同稀疏度下的冲激响应, Ligang Liu提出了IMPNLMS算法该算法的比例步长参数为:
通过进行大量的仿真, 发现 (n) 和 (n) 之间存在一定的关系, 为
对于稀疏度的定义为[9]
其中, (n) 不再像在IPNLMS算法中是一常数;在此, (n) 是一个与稀疏度w (n) 相关的变量, 或者说, 它会随着稀疏度的变化而变化。因此, 该算法能够自动检测到冲激响应的稀疏变化情况, 然后自适应地去调整相应的参数, 从而能在稀疏度多变的环境下获得较好的性能。Ligang Liu的仿真实验也证实了IMPNLMS算法的有效性。在稀疏度较低的情况下, IMPNLMS算法要比MPNLMS算法收敛更快;在冲激响应时变的环境下, IMPNLMS算法跟踪能力要比MPNLMS算法好。
2.4 SPNLMS算法
为了使MPLNMS算法便于工程应用, 必须降低该算法的计算量, Deng采用一个折线函数来替代对数运算, 进而提出了SPNLMS算法。该折线函数主要分为两段, 第一段是可以保证小系数得到与之相适应的比例步长参数, 从而确保算法的后期收敛速度;第二段是可以保证大系数得到与之相适应的比例步长参数, 即保证大小权重系数的比例系数差异性不至于过大。这个分段函数定义如下:
使用上式替代式 (9) 中的对数函数即可得到SPNLMS算法。该算法收敛速度几乎与M P N L M S算法相当, 而计算量几乎与PNLMS算法以及IPNLMS算法相当。
3 结语
系数比例自适应算法利用了长冲激响应的稀疏结构特征, 为每一个滤波器系数引入一个新的步长参数, 即比例步长参数。本文详细阐述了典型系数比例自适应 (PNLMS) 算法的基础上, 分别介绍了几种改进的PNLMS算法:IPNLMS、MPNLMS、IMPNLMS及SPNMLS。这些算法通过比例步长参数, 使其在处理稀疏冲激响应具有良好的性能。
参考文献
[1]Z Chen, SL Gay, S Haykin.Proportionate Adaptation:New Paradigms in Adaptive Filters[J].Least-Mean-Square Adaptive Filters, 2005.
[2]Hongyang Deng, Doroslovacki.Proportionate adaptive algorithms for network echo cancelers[J].IEEE Transactions on Signal Processing, 2006 (54) :1794-1803.
[3]SL Gay.An efficient, fast converging adaptive filter for network echo cancellation[C].Pacific Grove:Asilomar conference on signals, systems and computers (ACSSC) , 1998 (32) :394-398.
[4]H Deng, M Doroslovacki.Improving convergence of the PNLMS algorithm for sparse impulse response identification[J].IEEE Signal Processing Letter, 2005, 12 (3) :181-184.
[5]J Benesty, SL Gay.An improved PNLMS algorithm[C].Orlando:Proceedings of the IEEE International Conference on Acoustic, Speech and Signal Processing, 2002:1881-1884.
[6]Zhengxing Huang, Guan Guit, Anmin Huang, et al.Regularization Selection Method for LMS-Type Sparse Multipath Channel Estimation[C].Bali-Indonesia:19th Asia-Pacific Conference on Communications (APCC) , 2013.
[7]H Deng, M Doroslovacki.Proportionate adaptive algorithms for network echo cancellation[J].IEEETrans Signal Processing, 2006, 54 (5) :1794-1803.
[8]H Deng.Adaptive algorithm of sparse impulse response identification[J].Doctoral Dissertation, Dept.of electrical and computer engineering, 2005.
自适应滤波算法分析及仿真 篇4
1 算法介绍
1.1 最小均方 (LMS) 算法
LMS算法是随机梯度算法家族中的一员, 简单性是它的一个显著特点, 而且它不需要计算有关的相关函数, 也不需要矩阵求逆运算, 因此它也是线性自适应滤波算法的参考标准[2]。
LMS算法采用的是一种瞬时估计, 即用n时刻的平方误差性能函数|e (n) |2作为瞬时均方误差ξ=E[e2 (n) ]的估值, 其实质是以当前输出误差、当前参考信号和当前权系数求得下个时刻的权系数。
LMS算法输出信号y (n) 、输出误差e (n) 及权系数W (n) 的计算公式为:
其中μ是控制自适应速度与稳定性的增益常数, 称为步长因子, 选择时, 应该综合考虑收敛速度和稳态误差的要求。
自适应滤波器收敛的条件是:
, λmax是输入信号的自相关矩阵的最大特征值。
LMS算法的优点是结构较为简单, 适应变化能力强, 但其则具有收敛的速度较慢的缺点。为了能适用于信号实时性处理的场合, 如何提高LMS这种算法的自适应速度就显得尤为重要。
局限LMS算法收敛这一要素的主要原因有:
1) 步长因子不能过大, 不然算法最终不收敛;
2) 收敛速度及均方误差不能兼得。
这两个原因都与步长有关, LMS算法中的步长是唯一能够控制算法迭代过程的参量, 必然是改进LMS算法性能的唯一着手点。
1.2 归一化最小均方 (NLMS) 算法
LMS算法是通过对梯度矢量各分量单个数据取样值的估计得到的, 没有进行平均, 才会使梯度估计中存在着噪声。NLMS引入变步长的迭代过程[3], 加快了收敛速度。
NLMS算法的输出信号y (n) 、输出误差e (n) 及权系数W (n) 的计算公式为:
此即归一化LMS算法, 其步长被输入信号的范数平方除, 因而较LMS算法具有更好的稳定性和收敛性。
1.3 递归最小二乘 (RLS) 算法
RLS算法是一个递归实现, 其收敛速率比一般的LMS滤波器快一个数量级, 因此它在线性自适应滤波器中应用非常广泛[4]。
RLS算法的输出信号y (n) 、输出误差e (n) 及权系数W (n) 的计算公式为:
其中, 增益矢量g (n) =C (n-1) X (n) /[λ+XT (n) C (n-1) X (n) ];C (n) 为自相关矩阵Rxx (n) 的逆矩阵, 其定义式为C (n) =λ-1[C (n-1) -g (n) XT (n) C (n-1) ], 且C (0) =δ-1I (I为单位矩阵, δ为小的正实数) ;常数λ是遗忘因子, 要求0<λ≤1。
RLS算法主要应用于系统辨识、自适应控制和自适应信号处理等领域。主要优点是收敛速度快, 因此在快速信道均衡、实时系统辨识和实际序列分析中得到广泛的应用[4], 其主要缺点是每次迭代计算量大。
2 自适应算法的MATLAB仿真
2.1 LMS算法的MATLAB仿真
输入为正弦信号与随机噪声的迭加, 随机噪声的幅值小于1, 在取不同步长情况下, LMS算法的误差函数曲线如图1所示, 误差函数图中纵坐标表示误差的大小。
2.2 NLMS算法的MATLAB仿真
1) 输入为正弦信号与随机噪声的迭加, 随机噪声的幅值小于1。NLMS均值曲线图仿真结果如图2所示。每个图中的横坐标都表示迭代次数, 学习曲线中纵坐标表示均方误差的大小。
2) 当输入信号为正弦函数与噪声的叠加时, LMS和NLMS的性能对比如图3所示。
2.3 RLS算法的MATLAB仿真
仿真采用多权的自适应横向滤波系统, 期望响应是一个经过滤波的高斯随机噪声, 采用RLS算法的自适应滤波学习曲线和矢量估计误差曲线如图4所示。
3 结果分析
1) LMS算法最大的优点是易于实现, 而且对有限寄存器长度造成的实现误差不敏感, 在实际生活和生产中应用较为广泛。
由图1三组不同情况下LMS算法的误差图的对比可以看出, 开始时误差比较类似于正弦函数, 随着自适应过程的进行, 误差越来越小并且随机性增大, 随着迭代次数的增加逐渐趋于零附近。由图 (b) 、图 (c) 比较可知, u越小, 收敛速度越慢, 但稳态误差较小;由图 (a) 、图 (b) 比较可知, 阶数k越小, 收敛越快, 但稳态误差较大。从而验证了在迭代收敛过程中, 误差函数随着迭代次数的增加逐渐趋于零, 学习曲线也趋于在附近小幅度波动, 甚至为零。但是LMS算法的收敛速度和其稳定性能是相互矛盾的;步长较大时收敛速度较快, 但其稳定性较差;步长较小时收敛速度较慢, 但其稳定性较好。
2) 由图2可知, u越大, 曲线收敛的越快, 越容易趋于零, 但曲线却更不光滑, 振荡较大, 符合NLMS算法的规律。另外, 在NLMS算法中, 当u太大时, 学习曲线反而会发散;克服了LMS算法的缺点, 算法本身可看成是一种变步长的自适应算法, 它的步长大小与输入信号的信噪比有关。
3) RLS算法在收敛速度和信号稳定性方面的性能都比LMS和NLMS算法良好, 收敛速度比LMS算法快一个数量级, 收敛性能与输入信号的频谱特性无关而且对信号的跟踪能力较强, 误差较小。但是RLS算法涉及到矩阵求逆, 计算复杂度很高, 所需的存储量极大, 不利于实时实现[5]。
4 结论
本论文主要介绍了三种常用的自适应算法:LMS、NLMS及RLS, 并通过MATLAB仿真, 从收敛性、误差函数和学习曲线等方面对这三种算法进行了简单的分析。结果表明, LMS算法易于广泛的应用, 但步长因子存在难以调和的矛盾;NLMS在收敛速度上有了明显的改进, 是对于LMS的优化;RLS收敛速度和稳定性都很好, 但计算量过大, 不利于大范围推广。
摘要:主要对自适应滤波算法展开了研究和讨论, 重点对LMS算法、NLMS算法以及RLS算法做了详细的说明和对比, 在算法原理、算法性能分析方面说明了各自算法的优越性。通过MATLAB仿真, 对每种算法的收敛性、学习曲线和误差分析等方面进行了分析。
关键词:自适应,噪声对消,LMS算法,NLMS算法,RLS算法
参考文献
[1]王海峰, 陈伟, 黄秋元.基于LMS算法自适应噪声抵消器的分析研究[J].计算机与数字工程, 2009, 37 (3) :85-87.
[2]秦彦平.基于DSP地下漏水定位系统的自适应滤波器设计[D].内蒙古大学, 2010.
[3]文静, 文玉梅, 李平.基于噪声白化准则的自适应噪声抵消方法[J].仪器仪表学报, 2010, 31 (8) :1693-1698.
[4]肖林.LMS和RLS算法的研究与实现[J].中山大学研究生期刊, 2010, 31 (2) :73-81.