自适应滤波器课程设计.docx
《自适应滤波器课程设计.docx》由会员分享,可在线阅读,更多相关《自适应滤波器课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
自适应滤波器课程设计
引言
滤波是电子信息处理领域的一种最基本而又极其重要的技术。
在有用信号的传输过程中,通常会受到噪声或干扰的污染。
利用滤波技术可以从复杂的信号中提取所需要的信号,同时抑制噪声或干扰信号,以便更有效地利用原始信号。
滤波器实际上是一种选频系统,它对某些频率的信号予以很小的衰减,让该部分信号顺利通过;而对其他不需要的频率信号则予以很大的衰减,尽可能阻止这些信号通过。
在电子系统中滤波器是一种基本的单元电路,使用很多,技术也较为复杂,有时滤波器的优劣直接决定产品的性能,所以很多国家非常重视滤波器的理论研究和产品开发。
近年来,尤其数字滤波技术使用广泛,数字滤波理论的研究及其产品的开发一直受到很多国家的重视。
从总的来说滤波可分为经典滤波和现代滤波。
经典滤波要求已知信号和噪声的统计特性,如维纳滤波和卡尔曼滤波。
现代滤波则不要求己知信号和噪声的统计特性,如自适应滤波。
自适应滤波的原理就是利用前一时刻己获得的滤波参数等结果,自动地调节现时刻的滤波参数,从而达到最优化滤波。
自适应滤波具有很强的自学习、自跟踪能力,适用于平稳和非平稳随机信号的检测和估计。
自适应滤波一般包括3个模块:
滤波结构、性能判据和自适应算法。
其中,自适应滤波算法一直是人们的研究热点,包括线性自适应算法和非线性自适应算法,非线性自适应算法具有更强的信号处理能力,但计算比较复杂,实际应用最多的仍然是线性自适应滤波算法。
线性自适应滤波算法的种类很多,有LMS自适应滤波算法、R路自适应滤波算法、变换域自适应滤波算法、仿射投影算法、共扼梯度算法等[1]。
1自适应滤波器简介
自适应滤波器属于现代滤波器的范畴,自适应滤波器是相对固定滤波器而言的,固定滤波器属于经典滤波器,它滤波的频率是固定的,自适应滤波器滤波的频率则是自动适应输入信号而变化的,所以其适用范围更广。
在没有任何关于信号和噪声的先验知识的条件下,自适应滤波器利用前一时刻已获得的滤波器参数来自动调节现时刻的滤波器参数,以适应信号和噪声未知或随机变化的统计特性,从而实现最优滤波。
所谓自适应滤波,就是利用前一时刻已获得的滤波器参数等结果,自动地调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。
自适应滤波器实质上就是一种能调节其自身传输特性以达到最优化的维纳滤波器。
2自适应滤波原理
所谓的自适应滤波,就是利用前一时刻以获得的滤波器参数的结果,自动的调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。
自适应滤波器实质上就是一种能调节其自身传输特性以达到最优的维纳滤波器。
自适应滤波器不需要关于输入信号的先验知识,计算量小,特别适用于实时处理。
由于无法预先知道信号和噪声的特性或者它们是随时间变化的,仅仅用FIR和II种具有固定滤波系数的滤波器无法实现最优滤波。
在这种情况下,必须设计自适应滤波器,以跟踪信号和噪声的变化。
自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现的。
一般而言,自适应滤波器由两部分组成,一是滤波器结构,二是调整滤波器系数的自适应算法。
自适应滤波器的结构采用FIR或IIR结构均可,由于IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。
图1给出了自适应滤波器的一般结构。
图2-1自适应滤波器的一般结构
图1为自适应滤波器结构的一般形式,图中x(n)为输入信号,通过参数可调的数字滤波器后产生输出信号y(n),将输出信号y(n)与标准信号(或者为期望信号)d(n)进行比较,得到误差信号e(n)。
e(n)和x(n)通过自适应算法对滤波器的参数进行调整,调整的目的使得误差信号e(n)最小。
自适应滤波器设计中最常用的是FIR横向型结构。
图2是横向型滤波器的结构示意图。
图2-2横向型滤波器的结构示意图
其中:
x(n)为自适应滤波器的输入;w(n)为自适应滤波器的冲激响应:
w(n)={w(O),w
(1),…,
w(N-1)};y(n)为自适应
自适应滤波器的结构可以采用FIR或IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。
自适应FIR滤波器结构又可分为3种结构类型:
横向型结构(TransversalStructure)、对称横向型结构(SymmetricTransversalStructure)以及格型结构(LatticeStruture)。
本文采用自适应滤波器设计中最常用的FIR横向型结构。
3自适应滤波算法
自适应滤波器除了包括一个按照某种结构设计的滤波器,还有一套自适应的算法。
自适应算法是根据某种判断来设计的。
自适应滤波器的算法主要是以各种判据条件作为推算基础的。
通常有两种判据条件:
最小均方误差判据和最小二乘法判据。
LMS算法是以最小均方误差为判据的最典型的算法,也是应用最广泛的一种算法。
最小均方误差(LeastMeanSquare,LMS)算法是一种易于实现、性能稳健、应用广泛的算法。
所有的滤波器系数调整算法都是设法使y(n)接近d(n),所不同的只是对于这种接近的评价标准不同。
LMS算法的目标是通过调整系数,使输出误差序列e(n)=d(n)-y(n)的均方值最小化,并且根据这个判据来修改权系数,该算法因此而得名。
误差序列的均方值又叫“均方误差”(MeanSqluareError,MSE)。
理想信号d(n)与滤波器输出y(n)之差e(n)的期望值最小,并且根据这个判据来修改权系数wi(n)。
由此产生的算法称为LMS。
均方误差ε表示为:
对于横向结构的滤波器,代入y(n)的表达式:
其中:
R=E[X(n)XT(n)]为N×N的自相关矩阵,它是输入信号采样值间的相关性矩阵。
P=E[d(n)X(n)]为N×1互相关矢量,代表理想信号d(n)与输入矢量的相关性。
在均方误差ε
达到最小时,得到最佳权系数:
它应满足下式:
,,
这是一个线形方程组,如果R矩阵为满秩的,R-1存在,可得到权系数的最佳值满足:
W*=R-1p。
用完整的矩阵表示为:
显然φx(m)=E[x(n)x(n-m)]为x(n)的自相关值,φxd(R)=E[x(n)d(n一k)]为x(n)与d(n)互相关值。
在有些应用中,把输入信号的采样值分成相同的一段(每段称为一帧),再求出R,P的估计值得到每帧的最佳权系数。
这种方法称为块对块自适应算法。
如语音信号的线性预测编码LPC就是把语音信号分成帧进行处理的。
R,P的计算,要求出期望值E,在现实运算中不容易实现,为此可通过下式进行估计:
用以上方法获得最佳W*的运算量很大,对于一些在线或实时应用的场合,无法满足其时间要求。
大多数场合使用迭代算法,对每次采样值就求出较佳权系数,称为采样值对采样值迭代算法。
迭代算法可以避免复杂的R-1和P的运算,又能实时求得近似解,因而切实可行。
LMS算法是以最快下降法为原则的迭代算法,即W(n+1)矢量是W(n)矢量按均方误差性能平面的负斜率大小调节相应一个增量:
W(n+1)=W(n)-μ▽(n),这个“是由系统稳定性和迭代运算收敛速度决定的自适应步长。
▽(n)为n次迭代的梯度。
对于LMS算法▽(n)为下式
即E[e2(n)]的斜率:
由上式产生了求解最佳权系数W*的两种方法,一种是最陡梯度法。
其思路为:
设计初始权系数W(0),用W(n+1)=W(n)一μ▽(n)迭代公式计算,到W(n+1)与W(n)误差小于规定范围。
其中▽(n)计算可用估计值表达式:
上式K取值应足够大。
如果用瞬时一2e(n)X(n)来代替上面对-2E[e(n)X(n)]的估计运算,就产生了另一种算法——随机梯度法,即Widrow-Hoft的LMS算法。
此时迭代公式为:
W(n+1)=W(n)+2ue(n)X(n)
以后讨论的LMS算法都是基于WidrOW-Hoff的LMS算法。
上式的迭代公式假定滤波器结构为横向结构。
对于对称横向型结构也可推出类似的迭代公式:
W(n+1)=W(n)+2ue(n)[X(n)+X(n一N+1)]
4自适应滤波算法的理论仿真与DSP实现
4.1MATLAB仿真
4.1.1MATLAB程序仿真
使用MATLAB编程,采用自适应滤波器技术实现语音去噪过程,程序如下:
clearall;
clf;
pi=3.14;
signal=sin(2*pi*0.055*[0:
999]');%产生输入信号
noise=randn(1,1000);%产生随机噪声
nfilt=fir1(11,0.4);%产生11阶低通滤波,截止频率为0.4
fnoise=filter(nfilt,1,noise);%噪声信号进行FIR滤波
d=signal.'+fnoise;%将噪声叠加到信号中
w0=nfilt.'-0.01;%设置初始化滤波器系数
mu=0.05;%设置算法的步长
s=initse(w0,mu);%初始化自适应FIR结构滤波
[y,e,s]=adaptse(noise,d,s);%进行自适应滤波
t=1:
200;
plot(t,signal(1:
200))
figure
(2);
plot(t,d(1:
200),'.-',t,y(1:
200),'-');
4.1.2仿真结果
(1)为了确保噪声的相关性,首先让噪声通过一个11阶的低通FIR滤波器然后将滤波后的噪声加到信号中去;
(2)对程序中所使用的一些函数的详细说明,请参考MATLAB的函数说明,这些函数包括:
FIR、INITSE、FILTER、PLOT、ADAPTSE等。
图4-1为原始信号的信号图;图4-2为滤波前信号和滤波后信号时域图。
比较图4-1和图4-2可以看出,采用自适应滤波后的滤波输出信号和原始信号基本相似,噪声完全滤除。
图4-1原始信号时域图
图4-2滤波前信号和滤波后信号时域图
对比图4-2中滤波前和滤波后的信号可以看出,信号中的噪声完全滤除,信号完全恢复,通过Matlab仿真结果分析,自适应滤波器具有很好的性能。
4.2DSP的理论基础
数字信号处理(DSP)是指人们利用计算机或专用处理设备,以数字的形式对信号进行采集,变换,滤波,估值,增强,压缩,识别等处理,以得到符合人们需要的信号形式。
其框图如图4-3所示。
DSP内部一般都包含多个处理单元,如算术逻辑运算单元,辅助寄存器运算单元,累加器等。
另外DSP芯片也有很多种,这里着重介绍TMS320C5000系列。
目前TMS320C5000系列芯片包括了TMS320C54XX和TMS320C55XX两大类。
这两类芯片的软件互相兼容。
但是本文选择TMS320C55XX系列DSP芯片。
1.结构特点比较
(1)TMS320C54XX和TMS320C55XX均为16bit定点DSP
(2)C55XX有双MAC单元;C54XX只有单MAC单元。
(3)C55XX的指令长度可变,且没有排队的限制;C54X的指令长度固定。
(4)C55XX有12组总线;C54XX只有8组总线。
(5)C55XX提供了EMIF外部存储器扩展接口,可以直接使用SDRAM,而C54XX则不能直接使用。
2.内部结构对比
(1)C54XX关注于低功耗,而C55XX则将低功耗提高到一个新水平:
300MHZ的C55XX和120MHZ的C54XX相比,性能提高了5倍,而功耗则降到1/6。
(2)C55XX总线的宽度为32bit,而C54XX总线宽度为16bit。
C55XX有三组数据读总线和两组数据写总线,而C54XX有两组数据读总线和一组数据写总线。
(3)C55XX包含一个40bit的ALU。
用户可以用ALU作32bit的运算。
C54XX包含一个分开40bit的ALU。
它的ALU