自适应滤波器设计及matlab实现,[转载]自适应滤波器设计与MATLAB

自适应(自学习)真是个 好听的词语,对懒东西最具有吸引力,因为它自己能照料自己了,不用过多的伺候了,那不好吗?哎!不要寄予厚望,什么自学习了,自组织了,AL了,真是被过分滥用了,其实这些概念到目前为止只能是美好愿望的一个象征,值得肯定的是,为了那么一丁点曙光,

勤劳的人前仆后继,鞠躬尽瘁,令人感动。

自适应滤波器涉及在时间进程当中自动改变滤波器的参数(系数)来适应变化的信号特征,在过去30年中,数字信号处理器在速度、复杂性、降低功耗方面已有了极大的进步,结果是实时的自适应滤波算法很快在将来的有线或无线通信中变得实际和重要。

有时候有点纳闷,有的工程师(干了N多年的)连什么是卡尔曼滤波器为何物都不知道,竟然说移动机器人控制是多么的小菜,真是佩服!这种工程师有的还在项目负责岗位,看来让要老板为他去上吊了。

自适应滤波器的一般结构如下:

a4c26d1e5885305701be709a3d33442f.png

从这个结构看,自适应过程就是用Adapting Algorithm根据误差信号e(k)

调节FIR或IIR滤波器的系数使e(k)趋向于零(个别例外)。道理就这么简单,但是要获得一个鲁棒的自适应滤波器是不容易的。最基础的证明就是用MATLAB模拟一下,算法、滤波器结构、量化、定点还是浮点运算的变动,其性能是否依然能满足要求,结果常令人沮丧。

在来看看自适应滤波器的应用,仅看结构图如果不知道其思路,说明没理解上面红字说的东西。

系统辨识

a4c26d1e5885305701be709a3d33442f.png

逆系统辨识

a4c26d1e5885305701be709a3d33442f.png

噪声干扰消除

a4c26d1e5885305701be709a3d33442f.png

在这种应用场合 ,要求 x(k) 和n(k)相关,误差信号收敛到n(k)。

预测

a4c26d1e5885305701be709a3d33442f.png

预测信号要求做些关键的假设,假设信号要么是稳态的,要么是慢变的,要么是周期性的。这种结构可以用来移去随机噪声信号中的周期信号。

总体上看一眼各种滤波器的应用结构,其实有一个共性是:滤波器把一个输入信号变成一个白噪声信号(也就是把e(k)逼向白噪声)。很多工程问题都可归结为这么一个问题,数学上说很多科学问题都被转化为极大值或者极小值问题,其实如果意识到每个物理现象在一定程度上都存在不确定性,那么大家面对的问题基本上一致的。

相对于理解滤波器的算法来说,在MATLAB下使用一个滤波器是很简单的。自适应滤波器种类繁多,方法各异,从应用的角度出发,关键是理解各种滤波的特点,在MATLAB下设计滤波器的工具,代码自动生成概念等。下面大概介相关的内容。

在SIMULINKSignal Processing Blockset里,有LMS,

RLS,Kalman等滤波器模块,使用都很简单,不再叙述。

来认识一下LMS和RLS滤波器的特点,如果说LMS滤波器代表最简单,最容易的自适应算法,那么递推最小乘方RLS算法代表着复杂性性、计算代价、保真度的增加,在性能方面,RLS方法接近于Kalman

滤波器。RLS以更高的计算代价换取比LMS更快的收敛速度。

在算法概念中,RLS有一个叫做遗忘因子λ,这个东西决定着算法如何处理过去的数据。在LMS的误差最小化中,它仅仅考虑当前的误差值,而在RLS当中,被考虑的误差是从开始到当前数据点的总误差。

换句话说,RLS算法有无限的记忆,所有的误差在总误差中都给予同样的考虑,在误差值可能由于假的输入数据产生的场合,RLS就通过乘一个遗忘因子来减少旧误差值的影响。由于0≤λ≤1,应用这个因子相当于权重旧的误差,当λ=1,过去所有的误差在总误差中北考虑成同等的权重。当λ接近0,过去的误差在总误差中占有很小的角色,比如λ=0.9,RLS算法乘以一个误差值衰减因子,假如是50个过去的样本,这个因子是0.9^50=5.15X10^(-3).显著的减小了过去误差对当前误差的影响。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值