自适应滤波器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、 实验题目
自适应滤波器的设计
二、 实验要求
产生一个含有噪声的语音信号,使其通过一个自适应滤波器,观察其结果并分析此滤波器的性能。
三、 实验原理
自适应滤波器主要由两部分组成,第一部分是一个FIR 滤波器,也称横向滤波器,其权系数可随时调整,完成滤波工作;第二部分是滤波器的权调整算法,也称学习算法。
图1 自适应滤波器原理图
图中,()x n 表示输入信号,()y n 是输出信号,()d n 称为期望信号,或者称为参考信号、训练信号,()e n 是误差信号。其中()()()e n d n y n =-。自适应滤波器()
H z 的系数根据误差信号,通过一定的自适应算法,不断进行改变,使输出信号()y n 最接近期
望信号()d n 。
自适应滤波器工作过程,开始时,给FIR 滤波器赋予任意的初始权系数,在每个时刻,用当前权系数对输入信号进行滤波运算,产生输出信号,输出信号与期望响应的差定义为误差信号,由误差信号与输入信号矢量一起构造一个校正量,自适应地调整权矢量,使误差信号趋于降低的趋势,从而使滤波器逐渐达到或接近最优。
我们知道,自适应过程的最终目的是寻找最佳权系数,在本实验中采用的是最小均方算法(LMS), LMS 以集合平均为基础,属于统计分析的方法。
LMS(Least mean square)算法是Widrow 等人提出的,是用梯度的估计值代替梯度的精确值,算法简便易行,获得了广泛的应用。但存在收敛速度慢,有额外误差等缺点。
1、LMS 算法的权值计算
梯度估计值用一条样本曲线进行计算。
2222212,T
j j j j j j N de e e e e ωωωω⎡⎤⎢⎥⎡⎤⎢⎥⎢⎥⎣⎦⎢
⎥⎣
⎦∂∂∂∇=∇==∂∂∂⌒,…, 因为T j j j e d w x =- 所以
22212,T j j j j N e e e x ωωω⎡⎤⎢⎥
-⎢⎥⎢⎥⎣⎦
∂∂∂=∂∂∂,…,
222122,T
j j j j j N e e e e ωωω⎡⎤⎢⎥⎢⎥⎢
⎥⎣
⎦
∂∂∂∇=∂∂∂⌒,…,
2j j j e x ∇=-⌒
用j ∇⌒
代替j ∇得 12j j j j w w e x
μ+=+ FIR 滤波器中第i 个权系数的计算公式为
,,1,2j i j j i j i w w e x μ+=+
FIR 滤波器中第i 个权系数的控制电路如图
图2 FIR 第i 个去路的控制电路
2、LMS 算法加权矢量的过渡过程
将误差公式T j j j e d w x =-代入,,1,2j i j j i j i w w e x μ+=+得
,1,2T j i j j j j j j i w w x d x x w μ⎡⎤+⎢⎥⎣⎦
=+-
22T j j j j j I x x w x d μμ⎡⎤⎢⎥⎣
⎦=-+ 假设j w 和j x 不相关,对,,1,2j i j j i j i w w e x μ+=+取统计平均得,
*122xx xx j j E w I R E w R w μμ⎡⎤⎡⎤⎡⎤+⎢⎥+⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦
=- 类似于最陡下降法的推导,经坐标平移和旋转,变换到'v 坐标中。推导如下,令
*j j v w w =-
则 *j j E v E w w ⎡⎤⎡⎤-⎢⎥⎢⎥⎣⎦⎣⎦
= *11j j E v E w w ⎡⎤⎡⎤-++⎢⎥⎢⎥⎣⎦⎣
⎦= 上边两式代入1j E w ⎡⎤+⎢⎥⎣
⎦的表达式得 12xx j j E w I R E v μ⎡⎤⎡⎤⎡⎤⎢⎥+⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦
=- 它的递推解是 02xx j j E v I R v μ⎡⎤⎡⎤⎢⎥⎢⎥⎣⎦⎣⎦
=- 令 T xx R Q Q =Λ T xx Q R Q Λ=
得 ''02j j E v I v μ⎡⎤⎡⎤⎢⎥⎢⎥⎣⎦⎣⎦
=-Λ *1*02j j w w E w w Q I Q μ-⎡⎤⎡⎤+⎢⎥⎢⎥⎣⎦⎣⎦
⎛⎫- ⎪⎝⎭
=-Λ 说明LMS 算法加权矢量的统计平均值的过渡过程和最陡下降法加权矢量的过渡过程是一样的。换句话说,LMS 算法加权矢量是在最陡下降法加权矢量附近随机变化的,其统计平均值等于最陡下降法加权矢量,那么,其收敛条件同样为
max
1
0μλ<<
在满足收敛条件下,才有
*lim j i E w w ⎡⎤⎢⎥→∞⎣⎦
=
四、 实验结果与分析
(1)实验程序:
clc;
clear all;
%设定各参数
N=20; %权系数个数
mu=0.001; %步长
NUM=400; %采样点
pi=3.1416;
fs=0.02; % 信号采样间隔
%for n=1:NUM
n=1:400
x(n)=sin(2*pi*fs*n);
%end
y=x+sqrt(0.5)*randn(1,NUM); %噪声信号为0均值、方差为0.5的随机信号figure(1)
plot(x);title('期望信号');axis([0 400 -2 2]); %画出期望信号
xlabel('采样点数');
figure(2);
plot(y);title('加噪信号');axis([0 400 -3 3]); %画出加噪输入信号
xlabel('采样点数');ylabel('相对幅度');
clc;
clear all;
%设定各参数
N=20; %权系数个数
mu=0.001; %步长
NUM=400; %采样点
pi=3.1416;
fs=0.02; % 信号频率
w=(randn(1,N)-randn(1,N))/100; %权系数
d=zeros(1,N);
u=zeros(1,N);
u_out=zeros(1,NUM-N);
f_out=zeros(1,NUM-N);
%LMS
for t=N:NUM
input=sin(2*pi*fs*t);
for i=2:N
d(N-i+2)=d(N-i+1);
u(N-i+2)=u(N-i+1);
end