当前位置:文档之家› 自适应信号处理论文程序原版

自适应信号处理论文程序原版

自适应信号处理论文程序原版
自适应信号处理论文程序原版

利用LMS 算法的自适应系统仿真

摘 要: 一待辩识的IIR 系统,用一有限长度的FIR 滤波器来近似辩识系统,介绍了基于最小均方算法(LMS 算法)的自适应均衡器的原理和结构,采用LMS 算法得到N 阶FIR 滤波器来逼近原IIR 滤波器,并且分析了步长,滤波器系数,初始权值以及自适应过程中的噪声对系统辩识性能的影响。针对用硬件实现LMS 算法的自适应均衡器存在的诸多缺点,利用MATLAB 工具对各种结构形式的自适应均衡器在不同信道模型下的收敛速度和精度进行仿真,描述了用仿真试验得出LMS 自适应均衡滤波器的收敛性和跟踪性能与滤波器长度和选代算法跳步两个重要的参数之间的定量关系,为此构建了有实用价值的系列时延扩展的传输环境和可变多径传输信道,建立了系统仿真模型,做出了仿真试验结果并分析了仿真试验结果的意义。

关 键 词 LMS 算法; FIR 滤波器; 自适应滤波;IIR; MATLAB 仿真

关 键 词:

LMS 算法 自适应均衡系统 仿真 移动通信 无线数据通信

0、 引言

待辨识系统是极点-零点(IIR )系统,要用一个有限长度的FIR 滤波器来近似辨识该系统如图1所示。已知待辨识系统的传输函数为:

23.01.111)(-+-=z

z z H d (IIR ),求FIR 滤波器的系数。 图1 自适应系统辨识的原理图

1、系统设计要求

1)、待辨识系统为IIR 滤波器,利用自适应滤波的方法,采用LMS 算法得到N 阶FIR 滤波器来逼近原IIR 滤波器;

2)、输入信号)(n x 为高斯白噪声;

3)、考察步长delta 、阶数N 对自适应滤波器性能的影响。

2、系统设计原理

由于LMS 算法不需要离线方式的梯度估值或重复使用数据以及它的简单易行性而被广泛采用。只要自适应系统是线性组合器,且有输入数据向量)(n x 和期待响应)(n d 在每次迭代时可利用,对许多自适应处理的应用来说,LMS 算法是最好的选择。

我们采用LMS 算法自适应调整FIR 滤波器的系数,自适应滤波器的结构是具有可调系数)1(,),1(),0(-N h h h 的直接型FIR 滤波器。

输入信号)(n x 为功率为1,长度为1000点的高斯白噪声。)(n d 为期望响应,)(n y 为自适应FIR 滤波器的输出,误差信号)()()(n y n d n e -=。

对一个FIR 滤波器,其可调系数为10),(-≤≤N k k h ,N 为滤波器的阶数。则输出 M n k n x k h n y N k ,,0),

()()(10 =∑-=-=

LMS 算法是由最速下降法导出的,求出使均方误差∑==M n n e 0

2)(ε达到最小值时相应的最佳滤

波器系数组。

从任意选择的一组)(k h 初始值开始,接着在每个新的输入采样值)(n x 进入自适应滤波器后,计算相应的输出)(n y ,再形成误差信号)()()(n y n d n e -=,并根据如下方程不断修正滤波器系数:

,1,0,10),()()()(1=-≤≤-???+=-n N k k n x n e k h k h n n

其中?为步长参数,)(k n x -为n 时刻输入信号在滤波器的第k 个抽头处的采样值,)()(k n x n e -?是滤波器第k 个系数的负梯度的近似值。这就是自适应地调整滤波器系数以便使平方误差ε最小化的LMS 算法。

3、系统仿真和结果分析

1)、仿真环境和各参量设置

在MATLAB7 上用软件仿真,仿真条件:

(1) 高斯白噪声的产生

利用MATLAB 的库函数randn 产生均值为零,方差为1的高斯白噪声。为了观察不同的步长和阶数对系统性能的影响,必要时可以设定“种子值”产生相同的输入序列。

(2) 待辨识系统对输入的期待响应

由待辨识系统的传递函数可以写出它的差分方程形式为

002

1)()2()1()(b n x a n d a n d a n d ++-+-=

本系统中1,3.0,1.1,10210==-==b a a a ,可用filter 函数实现,可得到待辨识系统的期待响应)(n d 。

(3) 步长delta 范围的确定

FIR 滤波器有N 个LMS 算法调整的抽头系数,滤波器长度N 作为程序输入变量。步长参数?控制该算法达到最佳解的收敛速度。?大使收敛较快,然而,如果?取得太大,算法则会变得不稳定,为了保证稳定,?的取值应满足max 1

因为m ax λ不可能大于输入相关矩阵对角元素之和,我们采用更为严格的限制条件]

[10R tr

为了检测LMS 算法的收敛速度,计算均方误差ε的短时平均并绘制其学习曲线图,即计算:

n M N N m i e n m MSE m n m

i -+=∑=+=,,1,,)(1)(2 平均区间n 可自由设定。本文中n 取200。

2)、仿真结果分析

步长对结果的影响

首先固定阶数,用某个状态的randn 函数产生同一组输入高斯白噪声,调整步长为不同值,可以观察到以下均方误差与迭代次数的关系的学习曲线:

图1 步长=0.01 图2步长=0.05

图3步长=0.1图4步长=0.002

从上面的图1至图4中可见,在满足步长的取值范围内,步长越大,收敛越快,步长越小,收敛越慢。当步长过大,学习曲线会发散,不能收敛,步长过小,收敛速度很慢,在工程中无实际意义。当步长取0.01左右时,均方误差最小,约为0.01;如果需要较快的收敛速度或者说处理的实时性要求比较强,保证一定误差范围内可以适当增加步长。

滤波器阶数对结果的影响

步长固定为0.01,改变自适应滤波器的阶数N,观察到如下学习曲线:

从上面的图中可以看出,阶数对于收敛速度没有影响。随着阶数的增加,均方误差得到改善。所以可以通过提高阶数来降低均方误差。

加噪对结果的影响

在期望响应中加入高斯白噪声,可以观察以下加噪前和加造后的学习曲线比较图:

从上面的图中可以看出自适应过程中的噪声引起稳态权向量解发生了较大的变化,收敛于一个距离最佳权向量一定距离的范围内扰动。所以在设计实现时要尽量减少不必要的噪声,增加系统辨识的精度。

4、结束语

1)、从一系列仿真结果可以看出,步长和阶数对滤波器性能有较大的影响。

在满足步长的取值范围内,步长越大,收敛越快,步长越小,收敛越慢。当步长过大,学习曲线会发散,不能收敛,步长过小,收敛速度很慢,在工程中无实际意义。折中考虑,存在一个步长值使得均方误差达到最小并且有较快的收敛速度。阶数对于收敛速度没有影响。随着阶数的增加,均方误差得到改善。所以可以通过提高阶数来降低均方误差。但是,也不能无限制地提高阶数,一方面是滤波器造价的增加,一方面失调会增加。对于一个具体的待辨识系统,根据设计指标要求,存在一个合适的步长和阶数,达到最佳地逼近。2)、此外,初始权值也会对系统辨识造成一定的影响。

初始权值对于收敛速度和最终误差没有影响,只对迭代初期的均方误差产生较大的影响。所以对于实时性要求高的场合,对于初始权值的选择也应当有一定的考虑。

3)、通过这次实际上机操作的系统辨识过程,我对自适应信号处理的基本原理和机制有了更深刻的了解,熟悉了LMS算法的使用。在仿真过程中,需要对各个参数进行合适的设置,才能得到较为理想的结果,锻炼了我实际动手的能力。

附录:

%自适应过程

M = 1000;

N = 8; %FIR滤波器阶数

%randn('state',3);

x = randn(1,M); %产生零均值高斯分布随机序列

P = sum(abs(x).^2)/M; %输入信号功率

y = zeros(1,M); %自适应输出序列

h = zeros(1,N); %自适应滤波器系数

%h = 2*ones(1,N);

d = zeros(1,M); %期待响应序列

e = zeros(1,M); %误差

a = [1 -1.1 0.3]; %待辨识滤波器参数

b = 1;

dn = filter(b,a,x); %期待响应

d=dn+1*randn(1,M); %加噪声

%delta = 1/(N*P); %估算临界步长值

delta = 0.01;

for n = N:M

x1 = x(n:-1:n-N+1);

y = h * x1';

e(n) = d(n) - y;

h = h + delta*e(n)*x1;

end

%作出学习曲线

n = 200; %n 为均方误差的运行平均次数for m = N:M-n %m 为迭代次数

MSE(m) = sum(abs(e(m:n+m)).^2)/n;

end

figure(2);

plot(MSE(N:M-n));grid on;

xlabel('迭代次数m');

ylabel('均方误差');

相关主题
文本预览
相关文档 最新文档