自适应噪声消除实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开放型创新实验报告
实验项目:自适应噪声消除器
编号:********
实验教师:***
报告人:***
学号:********
一、实验目的
1.了解自适应波器原理及性能分析方法.
⒉掌握LMS算法的基本原理和算法中矩阵的构造方法.
二、实验原理
⒈自适应滤波原理
自适应滤波器是指利用前一时刻的结果,自动调节当前时刻的滤波器参数,以适应信号和噪声未知或随机变化的特性,得到有效的输出,主要由参数可调的数字滤波器和自适应算法两部分组成,如图1所示:
图1 自适应滤波器原理图
x(n)称为输入信号,y(n)称为输出信号,d(n)称为期望信号或者训练信号,e(n)为误差信号,其中e(n)=d(n)-y(n)。自适应滤波器的系数(权值)根据误差信号e(n),通过一定的自适应算法不断的进行改变,以达到使输出信号y(n)最接近期望信号
图中参数可调的数字滤波器和自适应算法组成自适应滤波器。自适应滤波算法是滤波器系数权值更新的控制算法,根据输入信号与期望信号以及它们之间的误差信号,自适应滤波算法依据算法准则对滤波器的系数权值进行更新,使其能够使滤波器的输出趋向于期望信号。
⒉LMS算法原理
LMS算法是自适应滤波器中常用的一种算法,其系统的系数随输入序列而改变。LMS 算法是对初始化的滤波器系数依据最小均方误差准则进行不断修正来实现的。由于LMS 算法是在一个初始化值的基础上进行逐步调整得到的,因此,在系统进入稳定之前有一个调整的时间,这个时间受到算法步长因子u的控制,在一定值范围内,增大u会减小调整时间,但超过这个范围值时系统不再收敛,u的最大取值为R的迹。权系数更新公式为:W(i+1)=W(i)+2ue(i)X(i)
依据上述算式,制定LMS滤波器设计实现方法为:
(1)设计滤波器的初始化权系数W(0)=0,收敛因子u;
(2)计算输入序列经过滤波器后的实际输出值:out(n)=WT(n)*X(n);
(3)计算估计误差e(n)=xd(n)-out(n);
(4)计算n+1阶的滤波器系数W(n+1)=W(n+2)*u*e(n)*X(n);
(5)重复(2)—(4)过程;
三、实验仿真
1.实验程序
clear;
g=100; %统计仿真次数为g
N=1024; %输入信号抽样点数
k=32; %滤波器阶数
u=0.0001; %滤波器收敛因子
pp=zeros(g,N-k); %将每次独立循环的误差结果存于矩阵pp中,以便后面对其平均
for q=1:g
t=1:N;
a=1;
s=a*sin(0.05*pi*t); %输入单信号s
figure(1);
subplot(311)
plot(s); %信号s时域波形
title('信号s时域波形');
xlabel('n');
axis([0,N,-a-1,a+1]);
xn=awgn(s,5); %加入均值为零的高斯白噪声
%设置初值
y=zeros(1,N); %输出信号y
y(1:k)=xn(1:k); %将输入信号xn的前k个值作为输出y的前k个值w=zeros(1,k); %设置抽头加权初值
e=zeros(1,N); %误差信号
%用LMS算法迭代滤波
for i=(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
subplot(312)
plot(xn); %信号s时域波形
title('信号s加噪声后的时域波形');
subplot(313)
plot(y); %信号s时域波形
title('自适应滤波后的输出时域波形');
for b=1:N-k
bi(b)=sum(pp(:,b))/g; %求误差统计平均
end
figure(2); %算法收敛曲线
t=1:N-k;
plot(t,bi,'r');
title('收敛曲线');
hold on %将每次循环的图形显示结果保存下来
⒉实验分析
(1)收敛因子对LMS算法自适应滤波的影响
图1 阶数为128,收敛因子为0.1的滤波效果
图2 阶数为128,收敛因子为0.1的收敛效果
图3 阶数为128,收敛因子为0.01的滤波效果
图4 阶数为128,收敛因子为0.01的收敛效果
图5 阶数为128,收敛因子为0.001的滤波效果
图6 阶数为128,收敛因子为0.001的收敛效果
图7 阶数为128,收敛因子为0.0001的滤波效果
图8 阶数为128,收敛因子为0.0001的收敛效果
实验结果分析:u=0.0001时,图8中误差信号的收敛速度很慢,在整个输入讯列中都未完成调整,因此输出序列的开始部分有一个很长的调整时间。u=0.001时图6中的效果得到了明显的改进,误差信号得到迅速的收敛,但输出信号却不如u=0.0001的平滑。当u=0. 1时,系统无法实现收敛,u的最大取值不能超过矩阵R的迹。
(2)滤波器阶数对LMS算法自适应滤波的影响
图9 阶数为256收敛因子为0.0001的滤波效果
图10 阶数为128收敛因子为0.0001的滤波效果
图11 阶数为64收敛因子为0.0001的滤波效果
图12 阶数为32收敛因子为0.0001的滤波效果
实验结果分析:N=32时相对N=64的滤波效果要差,其信号中所含杂波成分较大,随着滤波器阶数的提高,滤波器效果会得到改善。但当N=256时,滤波效果反而不如
N=128时效果好,所以对信号来说要选择合适的阶数进行滤波。