最小二乘自适应滤波器
- 格式:doc
- 大小:1.60 MB
- 文档页数:39
自适应滤波的方法
自适应滤波是一种对信号进行滤波的方法,其可以根据观测到的信号实时调整滤波器参数,以提高滤波效果。
常用的自适应滤波方法包括:
1. 最小均方(LMS)自适应滤波器:该方法依据最小均方误差准则进行滤波,在每一时刻根据观测信号对滤波器系数进行更新。
2. 递归最小二乘(RLS)自适应滤波器:该滤波器通过在线解最小二乘问题,实现对噪声的最优抑制。
3. Kalman滤波器:该滤波器是一种最优化滤波器,它最小化误差的平方和,同时考虑信号的先验知识。
由于需要计算协方差矩阵和卡尔曼增益,计算量较大。
4. 无参数自适应滤波器:这种方法不依赖于任何先验的信号统计信息,仅根据观测信号本身对滤波器系数进行估计,常见的方法包括快速自适应滤波器(FNLMS)和非线性自适应滤波器(NLA)。
这些方法比起传统滤波,具有更好的适应性和鲁棒性,并且可以用于实时处理信号。
最小方差无失真响应波束形成器题目:考察LMS 算法应用于最小方差无失真响应(MVDR)波束形成器的器情况,它有5个完全一样的空间传感器的线性阵列组成。
相对于阵列线的法线方向用弧度来度量,则目标信号与干扰信号入射角度可表示为 目标信号1ta r ge t sin (0.2)φ-=- 干扰1i nt sin (0)e r f φ-= 增益向量1g =空间响应的定义为2^1020log ()()Hw n s θ,234()1,,,,Tj j j j s e e e e θθθθθ----⎡⎤=⎣⎦当步长参数分别为891010,10,10u ---=,即INR=20,30,40Db 时波束形成器的权向量()^w n 利用LMS 进行计算。
1. 最小二乘自适应滤波器算法function [W, e] = lms(u, d, mu, decay, verbose) % Input parameters:% u : matrix of training/test points - each row is % considered a datum% d : matrix of desired outputs - each row is % considered a datum% mu : step size for update of weight vectors % decay : set to 1 for O(1/n) decay in m% verbose : set to 1 for interactive processing% length of maximum number of timesteps that can be predicted N = min(size(u, 1), size(d, 1)); Nin = size(u, 2); Nout = size(d, 2);% initialize weight matrix and associated parameters for LMS predictorw = zeros(Nout, Nin); W = [];for n = 1:N, W = [W ; w];% predict next sample and errorxp(n, :) = u(n, :) * w';e(n, :) = d(n, :) - xp(n, :);ne(n) = norm(e(n, :));if (verbose ~= 0)disp(['time step ', int2str(n), ': mag. pred. err. = ' , num2str(ne(n))]);end;% adapt weight matrix and step sizew = w + mu * e(n, :)' * u(n, :);if (decay == 1)mu = mu * n/(n+1); % use O(1/n) decay rateend;end % for n2.基于LMS算法的MVDR自适应波束形成器function run_lms_mvdr(rp)Ninit = rp.p;Ndata = Ninit + rp.Nsnaps;seed = 1;% A_i, phi_l are target signal amplitude/elec- angle% A_2, phi_2 are interference signal amplitude/elec- angle% s is steering vector along elec. angle of look direction of interestA_1 = sqrt(rp.var_v) * 10^(rp.TNRdB/20);phi_1 = pi * rp.sin_theta_1;A_2 = sqrt(rp.var_v) * 10^(rp.INRdB/20);phi_2 = pi * rp.sin_theta_2;s = exp(-j*[0:(rp.p-1)]'*phi_1);e = s(2:rp.p);% setup input/output sequencesfor i = 1:Ndata,% setup random disturbancesrandn('seed', i);vr = sqrt(rp.var_v/2) * randn(1, rp.p) + rp.mean_v;vi = sqrt(rp.var_v/2) * randn(1, rp.p) + rp.mean_v;v = vr + j*vi;rand('seed', i);Psi = 2*pi*rand(1);Xi(i, :) = A_1*exp(j*[1:rp.p]*phi_1) + A_2*exp(j*[1:rp.p]*phi_2 + Psi) + v;end;% setup effective desired output and input vectors from% original datag = 1;d = g * Xi(:, 1);u = diag(Xi(:, 1)) * (ones(Ndata, 1) * e.') - Xi(:, 2:rp.p);[W, xp] = lms(u, d, rp.mu, rp.decay, rp.verbose);Wo = g - W * conj(e);W = [Wo W];eval(['save ' ])3.构造MVDR自适应波束形成画图函数function plot_mvdr(name)eval(['load ' name]);% test vectors for spatially sampled responseW_H = conj(W(Ndata, :));st = -1 : 0.025 : 1;est = exp(-j*pi*[0:(rp.p-1)]'*st);S = ones(81,1);qq1 = pi*sin(st);for n=[1 2 3 4],S(:,n+1)=exp(-j*n*qq1');endplot(st,10*log10(abs(W_H*S').^2),rp.color)xlabel('sin \theta')ylabel('Amplitude response, dB')4.所需参数数据产生rp.p = 5;rp.decay = 0;rp.verbose = 0;rp.mean_v = 0; % mean of complex-valued AWGNrp.var_v = 1; % variance of complex-valued AWGNrp.sin_theta_1 = 0.2;rp.sin_theta_2 = 0;rp.TNRdB = 10; rp.INRdB = 20; rp.Nsnaps= 20; rp.mu = 1e-9; rp.color='r'; = 'run1';run_lms_mvdr(rp);rp.TNRdB = 10; rp.INRdB = 20; rp.Nsnaps= 100; rp.mu = 1e-9; rp.color='g'; = 'run2';run_lms_mvdr(rp);rp.TNRdB = 10; rp.INRdB = 20; rp.Nsnaps= 200; rp.mu = 1e-9; rp.color='b'; = 'run3';run_lms_mvdr(rp);rp.TNRdB = 10; rp.INRdB = 20; rp.Nsnaps= 200; rp.mu = 1e-8; rp.color='r'; = 'run4';run_lms_mvdr(rp);rp.TNRdB = 10; rp.INRdB = 20; rp.Nsnaps= 200; rp.mu = 1e-9; rp.color='g'; = 'run5';run_lms_mvdr(rp);rp.TNRdB = 10; rp.INRdB = 20; rp.Nsnaps= 200; rp.mu = 1e-10; rp.color='b'; = 'run6';run_lms_mvdr(rp);rp.TNRdB = 10; rp.INRdB = 20; rp.Nsnaps= 200; rp.mu = 1e-9; rp.color='r'; = 'run7';run_lms_mvdr(rp);rp.TNRdB = 10; rp.INRdB = 30; rp.Nsnaps= 200; rp.mu = 1e-9; rp.color='g'; = 'run8';run_lms_mvdr(rp);rp.TNRdB = 10; rp.INRdB = 40; rp.Nsnaps= 200; rp.mu = 1e-9; rp.color='b'; = 'run9';run_lms_mvdr(rp);5.画出波束形成图figureplot_mvdr('run1'); hold onplot_mvdr('run2');plot_mvdr('run3');hold offtitle('LMS算法迭代次数对波束形成结果的影响')figureplot_mvdr('run4'); hold onplot_mvdr('run5');plot_mvdr('run6');hold offtitle('LMS算法步长因子对波束形成结果的影响')figureplot_mvdr('run7'); hold on plot_mvdr('run8'); plot_mvdr('run9'); hold offtitle('不同的干扰噪声比对波束形成结果的影响')6.运行程序,输出结果-1-0.500.5105sin θA m p l i t u d e r e s p o n s e , d BLMS 算法迭代次数对波束形成结果的影响-1-0.500.51010sin θA m p l i t u d e r e s p o n s e , d B-100050100150200sin θA m p l i t u d e r e s p o n s e , d B不同的干扰噪声比对波束形成结果的影响由上可以得出以下结果:MVDR 波束形成器的自适应空间相应通常被固定在沿着给定的入射角1t arg et sin (0.2)φ-=-为0DB 的地方。
第三章自适应数字滤波器3.1 引言3.2 自适应横向滤波器3.3 自适应格型滤波器3.4 最小二乘自适应滤波3.5 自适应滤波的应用3.1 引言(维纳滤波器的特点与不足)自适应数字滤波器和维纳滤波器一样,都是符合某种准则的最佳滤波器。
维纳滤波器的参数是固定的,适用于平稳随机信号的最佳滤波,但要设计这种滤波器,必须要求输入信号是平稳的,且具有信号和噪声统计分布规律的先验知识。
在实际中,常常无法知道这些先验知识,且统计特性还会变化,因此实现最佳滤波是困难的。
自适应滤波器的特点是:滤波器的参数可以自动地按照某种准则调整到最佳滤波;实现时不需要任何关于信号和噪声的先验统计知识,尤其当输入统计特性变化时,自适应滤波器都能调整自身的参数来满足最佳滤波的需要。
常常将这种输入统计特性未知,调整自身的参数到最佳的过程称为“学习过程”。
将输入信号统计特性变化时,调整自身的参数到最佳的过程称为“跟踪过程”,因此自适应滤波器具有学习和跟踪的性能。
由于自适应滤波器有这些特点,自1967年威德诺(B. Widrow)等人提出自适应滤波器以来,在短短十几年中,自适应滤波器发展很快,已广泛地用于系统模型识别,通信信道的自适应均衡,雷达与声纳的波束形成,减少或消除心电图中的周期干扰,噪声中信号的检测、跟踪、增强和线性预测等。
本章主要介绍自适应横向滤波器、自适应格型滤波器、最小二乘自适应滤波器以及自适应滤波器的应用举例。
3.2 自适应横向滤波器自适应滤波器的原理框图如图 3.2.1所示,图中()x n 称为输入信号,()y n 是输出信号,()d n 称为期望信号,或者称为参考信号、训练信号,()e n 是误差信号。
其中()()()e n d n y n =-自适应滤波器()H z 的系数根据误差信号,通过一定的自适应算法,不断地进行改变,使输出()y n 最接近期望信号()d n 。
这里暂时假定()d n 是可以利用的,实际中,()d n 要根据具体情况进行选取,能够选到一个合适的信号作为期望信号,是设计自适应滤波器的一项有创意的工作。
第四章 最小二乘自适应滤波器前面所研究的自适应滤波算法根据的最佳准则为最小均方误差准则。
自适应算法的目标在于,使滤波器输出与需要信号的误差的平方的统计平均值最小。
这个准则根据输入数据的长期统计特性寻求最佳滤波。
然而,我们通常已知的仅是一组数据,因而只能对长期统计特性进行估计或近似。
LMS 算法、格形梯度算法都是这样。
能否直接根据一组数据寻求最佳呢?最小二乘算法就可解决这个问题。
换句话说,根据最小均方误差准则得到的是对一类数据的最佳滤波器,而根据最小二乘法得到的是对一组已知数据的最佳滤波器。
对同一类数据来说,最小均方误差准则对不同的数据组导出同样的“最佳”滤波器;而最小二乘法对不同的数据组导出不同的“最佳”滤波器。
因而常说最小二乘法导出的最佳滤波器是“精确”的。
本章首先叙述最小二乘法的基础,并推导递推最小二乘(RLS)算法;然后介绍线性空间的概念,并在此基础上讨论两种重要的最小二乘自适应算法——最小二乘格形(LSL)算法和快速横式滤波器(FTT)算法。
§4.1 最小二乘滤波器4.1.1 最小二乘滤波方程设已知n 个数据x (1), …, x (i ), …, x (n ),我们要根据这些数据,利用图4.1的m 阶线性滤波器来估计需要信号d (1) , …, d (i ), …, d (n )。
对d (i )的估计式可表为∑=+-=mk mkk i x n w i d 1)1()()(ˆ (4.1.1)估计误差∑=+--=-=mk mkk i x n w i d i d i d i e 1)1()()()(ˆ)()( (4.1.2)若假设i <1及i <n 时x (i )=d (i )=0,我们有如下n +m -1个估计误差⎪⎪⎪⎪⎪⎭⎪⎪⎪⎪⎪⎬⎫-=-++----=---=--=-=)()()()1()()()()()()1()()()()()()1()()2()()2()2()1()()1()1(11211n x n w m n e m n x n w n x n w n d n e x n w m x n w m d m e x n w x n w d e x n w d e mm mm m mm m m m m(4.1.3)其余的e (i )均为零。
基于最小二乘法的滤波器设计与应用研究随着科技的发展,信号处理成为了一个重要的研究领域。
滤波器作为信号处理的重要工具,在语音处理、图像处理等诸多领域得到了广泛的应用。
在滤波器设计中,最小二乘法是一种常用的优化算法,被广泛应用于数字滤波器的设计中。
一、最小二乘法介绍最小二乘法是一种优化算法,由法国数学家勒让德在1805年提出。
它的基本思想是通过对误差的平方和进行最小化,来寻找最优解。
在滤波器设计中,最小二乘法用于根据一组样本数据集,找到最适合这些样本数据集的滤波器模型。
二、滤波器的基本原理滤波器是一种能够消除或改变一定频率范围内信号的设备。
在数字信号处理中,滤波器的主要作用是去除不需要的频率,或者从复杂的信号中提取需要的频率。
滤波器的基本原理是将信号传入滤波器,通过滤波器的处理,得到输出信号。
输出信号与输入信号的关系可以由滤波器的传递函数描述。
滤波器可以分为模拟滤波器和数字滤波器两种类型。
三、数字滤波器的应用数字滤波器是数字信号处理中的重要领域。
它通过数字计算的方式对信号进行处理,可以完成模拟滤波器的大部分功能。
数字滤波器有许多种类型,包括有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器。
数字滤波器的应用非常广泛,包括语音处理、图像处理、音频信号处理等领域。
比如在语音处理中,数字滤波器可以用于噪声消除和语音增强,提高语音信号的质量。
四、基于最小二乘法的数字滤波器设计方法最小二乘法是一种优化算法,被广泛用于数字滤波器的设计中。
数字滤波器的设计流程如下:首先确定要传递或屏蔽的频率范围,然后选择一个合适的滤波器类型。
接着,确定滤波器的系数,可以使用基于最小二乘法的优化算法进行计算。
选择最小二乘法的原因在于它能够最小化残差平方和,从而找到最优解。
最后,将滤波器设置到合适的硬件或软件平台上,进行实际的应用。
五、结论通过最小二乘法,可以得到数字滤波器的最优解,从而实现信号处理的目标。
数字滤波器广泛应用于语音处理、图像处理等领域,对提高信号质量、去除噪声等方面有着显著的效果。
第四章 最小二乘自适应滤波器前面所研究的自适应滤波算法根据的最佳准则为最小均方误差准则。
自适应算法的目标在于,使滤波器输出与需要信号的误差的平方的统计平均值最小。
这个准则根据输入数据的长期统计特性寻求最佳滤波。
然而,我们通常已知的仅是一组数据,因而只能对长期统计特性进行估计或近似。
LMS 算法、格形梯度算法都是这样。
能否直接根据一组数据寻求最佳呢?最小二乘算法就可解决这个问题。
换句话说,根据最小均方误差准则得到的是对一类数据的最佳滤波器,而根据最小二乘法得到的是对一组已知数据的最佳滤波器。
对同一类数据来说,最小均方误差准则对不同的数据组导出同样的“最佳”滤波器;而最小二乘法对不同的数据组导出不同的“最佳”滤波器。
因而常说最小二乘法导出的最佳滤波器是“精确”的。
本章首先叙述最小二乘法的基础,并推导递推最小二乘(RLS)算法;然后介绍线性空间的概念,并在此基础上讨论两种重要的最小二乘自适应算法——最小二乘格形(LSL)算法和快速横式滤波器(FTT)算法。
§4.1 最小二乘滤波器4.1.1 最小二乘滤波方程设已知n 个数据x (1), …, x (i ), …, x (n ),我们要根据这些数据,利用图4.1的m 阶线性滤波器来估计需要信号d (1) , …, d (i ), …, d (n )。
对d (i )的估计式可表为∑=+-=mk mkk i x n w i d 1)1()()(ˆ (4.1.1)估计误差∑=+--=-=mk mkk i x n w i d i d i d i e 1)1()()()(ˆ)()( (4.1.2)若假设i <1及i <n 时x (i )=d (i )=0,我们有如下n +m -1个估计误差⎪⎪⎪⎪⎪⎭⎪⎪⎪⎪⎪⎬⎫-=-++----=---=--=-=)()()()1()()()()()()1()()()()()()1()()2()()2()2()1()()1()1(11211n x n w m n e m n x n w n x n w n d n e x n w m x n w m d m e x n w x n w d e x n w d e mm mm m mm m m m m(4.1.3)其余的e (i )均为零。
根据最小二乘法,w mk (n )的最佳值应使下列累计平方误差性能函数为最小∑-=ii n i e n )()(2λξ(4.1.4) 其中10≤≤λ(4.1.5)为加重新数据影响的加权因子。
式(4.1.4)中的i 的变化范围有下列四种取法:)( )()( 1 )()(1 )()( 11 )(方差法后加窗法前加窗法相关法n i m d m n i m c n i b m n i a ≤≤-+≤≤≤≤-+≤≤之所以上列方法获得相应的名称,是因为方差法对已知数据x (1), …, x (n )之外的数据未作任何假定,它的处理仅利用已知数据。
前加窗法假定当i <1时,x (i )=0;后加窗法假定当i >n 时,x (i )=0;而相关法即前后窗法则假定i <1及i>n 时,x (i )=0。
相关法的相关矩阵是对称的和Toeplitz 的,其余三个取法的相关矩阵是对称的但非Toeplitz 。
但是后三种方法的起动特性比相关法好,因而受到相当的重视。
本书将以前加窗法为例来讨论最小二乘自适应滤波器。
而且,我们仅限于讨论信号的情况,然而不难将结果推广到复信号情况。
对于前加窗法,我们只利用式(4.1.3)的前n 个误差。
令m 维矢量 []T mm m m n w n w n )( , ),()(1 =ω(4.1.6)[]Tm m i x i x i x )1( , ),()(+-=(4.1.7) 且有1 0)(<=i i x(4.1.8)这样,前加窗法的n 个误差(即式(4.1.3)的前n 项)可写成⎪⎪⎭⎪⎪⎬⎫-=-=-=)()()()()()2()2()2()()1()1()1(n n x n d n e n x d e n x d e m Tm m Tm m T m ωωω(4.1.9)引入n 维矢量 []T n e e n e )( , ),1()( =(4.1.10)[]Tn d d n d )( , ),1()( =(4.1.11)及n m ⨯维矩阵[])( , ,)1()(n x x n X m m m =(4.1.12)则式(4.1.9)可写成)()()()(n n X n d n e m Tm ω-=(4.1.13)前加窗法最小二乘性能函数为∑=-Λ==ni T n n e n n e i e n 121)()()()()(λξ(4.1.14) 其中)1 , ,()(1,λλ -=Λn Diag n(4.1.15)而求)(n m ω的最佳值问题归结为{})()()()(n e n n e n Min T mΛ=ξω(4.1.16)为求解此问题,将式(4.1.13)代入式(4.1.14)得 [])()()()(2)()()()(n d n n X n n d n n d n m T m T Λ-Λ=ωξ[])()()()()(n n X n n X n m Tm m T m ωωΛ+(4.1.17)引入m 维矢量∑=-=Λ=ni m i n m m i x i d n d n n X n r 1)()()()()()(λ(4.1.18)及m m ⨯维矩阵∑=-=Λ=ni Tm m i n Tmm m i x i x n X n n X n R 1)()()()()()(λ(4.1.19)式(4.1.17)可表为)()()()()(2)()()()(n n R n n r n n d n n d n m m Tm m T m T ωωωξ+-Λ=(4.1.20))(n m ω的最佳值满足方程0)()(=∇n n m ξω(4.1.21) 从而有 0)()(2)(2=+-n n R n r m m m ω (4.1.22) 这就得到 )()()(n r n n R m m m =ω (4.1.23) 即 )()()(1n r n R n m m m -=ω(4-.1.24a )或写成[][])()()()()()()(1n d n n X n X n n X n m T m m m ΛΛ=-ω(4.1.24b )式(4.1.23)和式(4.1.24)就是最小二乘算法的正规方程。
式(4.1.24)要求R m (n )为满秩。
这对大多数应用来说的成立的。
若对某应用的R m (n )为降秩,则式(4.1.24)可理解为采用了伪可逆矩阵。
根据已知x (i )和d (i ),1≤i ≤n ,利用式(4.1.24)即可求出)(n m ω的最佳值。
这就是最小二乘批处理算法。
这种算法需要进行矩阵求逆,其运算量为O(m 3),因而一般不适于实时滤波。
采用递推算法可以减少运算量。
下面就对递推算法进行讨论。
4.1.2 递推最小二乘(RLS)算法 由式(4.1.24a )有)1()1()1(1--=--n r n R n m m m ω(4.1.25)而根据式(4.1.19)可得)()()1()(n x n x n R n R T m m m m +-=λ(4.1.26)利用矩阵求逆引理(附录(A.1.38))对式(4.1.26)求逆可得⎥⎦⎤⎢⎣⎡+----=----)()1()()()1()1(1)(1111n n R n x n x n R n R n R m T m m m m mμλλ(4.1.27) 其中 )()1()()(1n x n R n x n m m T m -=-μ(4.1.28)为一纯量。
引m m ⨯矩阵)()(1n R n C m m -=(4.1.29)和n 维矢量)()()1()(n n x n C n g m m m μλ+-=(4.1.30)g m (n )称为增益系数(理由见后)。
利用式(4.1.29)和式(4.1.30),逆推式(4.1.27)成为[])1()()()1()(1---=-n C n x n g n C n C m Tm m m m λ(4.1.31)利用上式,我们就可以用递推方式求m m ⨯维矩阵R m (n )的逆,使运算量降低。
式(4.1.31)两端后乘入x m (n ),利用式(4.1.28)及式(4.1.30)可得)()()()()(1n x n C n x n R n g m m m m m ==-(4.1.32)另外,根据式(4.1.18)可得)()()1()(n x n d n r n r m m m +-=λ(4.1.33)将式(4.1.29)式、式(4.1.31)、式(4.1.33)代入式(4.1.24a )就有 )()()()()(1n r n C n r n R n m m m m m =--ω[][])()()1( )1()()()1(1n x n d n r n C n x n g n C m m m T m m m +----=-λλ )1()1()()()1()1(-----=n r n C n x n g n r n C m m T m m m m)()()1()()()()()1(11n d n x n C n x n g n d n x n C m m T m m m m ---+--λλ(4.1.34)利用式(4.1.28)和式(4.1.30),式(4.1.34)的最后两项可简化为g m (n )d (n ),而式(4.1.34)的前两项中的C m (n -1)r m (n -1)即为)1(-n m ω。
所以由式(4.1.34)可得[])1()()()()1()(--+-=n n x n d n g n n m Tm m m m ωωω(4.1.35)这就是递推最小二乘(RLS)算法的递推公式。
上式的意思是,n 时刻的最佳)(n m ω可由(n -1)时刻的最佳值)1(-n m ω加一修正量得到。
修正量等于[])1()()()(--n n x n d n g m Tm m ω。
其中)1()(-n n x m Tm ω为根据(n -1)时刻的最佳加仅和n 时刻数据对d (n )之预测值。
因而)1()()(--n n x n d m Tm ω为预测误差。
g m (n )确定了根据预测误差进行修正时的比例系数,因而称为增益系数。
比较式(4.1.35)和LMS 算法的递推公式(2.4.6)[])1()()()(2)1()(--+-=n n x n d n x n n T ωμωω可看出两者之差别仅在于增益系数。