自适应滤波实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LMS 自适应滤波实验报告
姓名: 学号: 日期:2015.12.2
实验内容:
利用自适应滤波法研究从宽带信号中提取单频信号的方法。
设()()()()t f B t f A t s t x 212cos 2cos πϕπ+++=,()t s 是宽带信号,A ,B ,1f ,2f ,
ϕ任选
(1)要求提取两个单频信号;
(2)设f f f ∆+=12,要求提取单频信号()t f 22cos π,研究f ∆的大小对提取单频信号的影响。
1. 自适应滤波器原理
自适应滤波器理论是现代信号处理技术的重要组成部分,它对复杂信号的处理具有独特的功能。自适应滤波器在信号处理中属于随机信号处理的范畴。在一些信号和噪声特性无法预知或他们是随时间变化的情况下,自适应滤波器通过自适应滤波算法调整滤波器系数,使得滤波器的特性随信号和噪声的变化,以达到最优滤波的效果,解决了固定全系数的维纳滤器和卡尔曼滤波器的不足。
(1) 自适应横向滤波器
所谓自适应滤波,就是利用前一时刻已获得的滤波器参数等结果,自动调节现时刻的滤波器参数,以适应信号和噪声未知或随时间变化的统计特性,从而实现最优滤波。自适应滤波器由两个部分组成:滤波器结构和调节滤波器系数的自适应算法。自适应滤波器的特点是自动调节自身的冲激响应,达到最优滤波,此算法适用于平稳和非平稳随机信号,并且不要求知道信号和噪声的统计特性。
一个单输入的横向自适应滤波器的原理框图如图所示:
实际上这种单输入系统就是一个FIR 网络结构,其输出()n y 用滤波器单位脉冲响应表示成下式:
()()()∑-=-=1
N m m n x m w n y
这里()n w 称为滤波器单位脉冲响应,令:
()()n i n x x i w w m i i i ,1,1,1+-=-=+=用j 表示,上式可以写成
∑==N
i ij i j x w y 1
这里i w 也称为滤波器加权系数。用上面公式表示其输出,适用于自适应线性组合器,也适用于FIR 滤波器。将上式表示成矩阵形式:
X
W
W
X j
T
T
j
j y ==
式中 [][]
T
Nj j j
j
T N
x x x
w w w X W ,...,,,,...,,212
1
==
误差信号表示为
X
W
j
T
j j j j d y d e -=-=
(2) 最小均方(LMS )算法
Widrow 等人提出的最小均方算法,是用梯度的估计值代替梯度的精确值,这种算法简单易行,因此获得了广泛的应用。
LMS 算法的梯度估计值用一条样本曲线进行计算,公式如下:
[]
⎥⎥⎦
⎤⎢⎢⎣⎡∂∂∂∂∂∂=∇=∇∧
N j
j j j
j w e w e w e e 222122
...
因为 X
W j
T
j j d e
-=
所以 X j T
N j
j j w e w e w e -=⎥⎥⎦
⎤
⎢⎢⎣⎡∂∂∂∂∂∂22
212...
X
j
j j e 2-=∇∧
X
W W
j
j j j e μ21
+=+
FIR 滤波器中的第i 个权系数的计算公式为
N i x e w w i j j i j i j
,...,3,2,12,,,1=+=+μ 2. 编程思想
在本题目中,要求在受宽带信号干扰的输入信号中分别提取出两个单频信号,因此,可采用KLS 自适应滤波方法提取。在仿真中设置如下:
(1)单频信号幅度A=2,B=3,相位3
π
ϕ=
;
(2)调整步长分别设为mu1=0.0001,mu2=0.00001; (3)滤波器阶数M=50;
(4)宽带信号设为均值为0,方差为1的白噪声;
(5)提取单频信号()ϕπ+=t f A F 112cos ,设置期望信号为理想信号,即为1F ; (6)提取单频信号()t f B F 222cos π=,设置期望信号为理想信号,即为2F ; 然后,根据LMS 算法,更新滤波器系数
W
。
3. 源代码
%自适应滤波LMS 算法
function Adaptive_Filter_LMS(f1,Delte)%Delte 为f2-f1 mu1=0.0001;mu2=0.00001;%步长 Ts=0.0001;%采样间隔 N=3000;%信号长度 M=50;%阶数
A=2;B=3;f2=f1+Delte;Phi=pi/3;%频率幅度相位设置 s=1*randn(1,N);%宽带信号
k=1:N;
F1=A*cos(2*pi*f1*k*Ts+Phi);F2=B*cos(2*pi*f2*k*Ts);%两单频信号F=F1+F2;X=s+F1+F2;
Y1=zeros(1,N);Y2=zeros(1,N);
W1=zeros(1,M);W2=zeros(1,M);
e1=zeros(1,N);e2=zeros(1,N);
%提取信号F1
for n=M:N
x=X(n:-1:n-M+1); % 滤波器输入值
Y1(n)=W1*x'; % 滤波器输出值
e1(n)=F1(n)-Y1(n); % 误差值
W1=W1+2*mu1.*e1(n).*x; % 系数调整
end
%提取信号F2
for n=M:N
x=X(n:-1:n-M+1); % 滤波器输入值
Y2(n)=W2*x'; % 滤波器输出值
e2(n)=F2(n)-Y2(n); % 误差值
W2=W2+2*mu2.*e2(n).*x; % 系数调整
end
figure(1)
subplot(4,1,1);
plot(F1(1:N));ylim([-2 2]);title('单频信号波形F1');
subplot(4,1,2);
plot(F2(1:N));ylim([-3 3]);title('单频信号波形F2');
subplot(4,1,3);
plot(F(1:N));title('无噪声两单频信号波形');
subplot(4,1,4);