首页

> 学术论文知识库

首页 学术论文知识库 问题

自适应滤波器的毕业论文

发布时间:

自适应滤波器的毕业论文

本论文主要研究了自适应滤波器的基本结构和原理,然后介绍了最小均方误差算法(LMS算法),并完成了一种基于MATLAB平台的自适应LMS自适应滤波器的设计,同时,

% RLS算法 randn('seed', 0) ; rand('seed', 0) ; NoOfData = 8000 ; % Set no of data points used for training Order = 32 ; % 自适应滤波权数 Lambda = ; % 遗忘因子 Delta = ; % 相关矩阵R的初始化 x = randn(NoOfData, 1) ;%高斯随机系列 h = rand(Order, 1) ; % 系统随机抽样 d = filter(h, 1, x) ; % 期望输出 % RLS算法的初始化 P = Delta * eye ( Order, Order ) ;%相关矩阵 w = zeros ( Order, 1 ) ;%滤波系数矢量的初始化 % RLS Adaptation for n = Order : NoOfData ; u = x(n:-1:n-Order+1) ;%延时函数 pi_ = u' * P ;%互相关函数 k = Lambda + pi_ * u ; K = pi_'/k;%增益矢量 e(n) = d(n) - w' * u ;%误差函数 w = w + K * e(n) ;%递归公式 PPrime = K * pi_ ; P = ( P - PPrime ) / Lambda ;%误差相关矩阵 w_err(n) = norm(h - w) ;%真实估计误差 end ; % 作图表示结果 figure ; plot(20*log10(abs(e))) ;%| e |的误差曲线 title('学习曲线') ; xlabel('迭代次数') ; ylabel('输出误差估计') ; figure ; semilogy(w_err) ;%作实际估计误差图 title('矢量估计误差') ; xlabel('迭代次数') ; ylabel('误差权矢量') ; %lms 算法 clear all close all hold off%系统信道权数 sysorder = 5 ;%抽头数 N=1000;%总采样次数 inp = randn(N,1);%产生高斯随机系列 n = randn(N,1); [b,a] = butter(2,); Gz = tf(b,a,-1);%逆变换函数 h= [;;;;;];%信道特性向量 y = lsim(Gz,inp);%加入噪声 n = n * std(y)/(10*std(n));%噪声信号 d = y + n;%期望输出信号 totallength=size(d,1);%步长 N=60 ; %60节点作为训练序列 %算法的开始 w = zeros ( sysorder , 1 ) ;%初始化 for n = sysorder : N u = inp(n:-1:n-sysorder+1) ;% u的矩阵 y(n)= w' * u;%系统输出 e(n) = d(n) - y(n) ;%误差 if n < 20 mu=; else mu=; end w = w + mu * u * e(n) ;%迭代方程 end %检验结果 for n = N+1 : totallength u = inp(n:-1:n-sysorder+1) ; y(n) = w' * u ; e(n) = d(n) - y(n) ;%误差 end hold on plot(d) plot(y,'r'); title('系统输出') ; xlabel('样本') ylabel('实际输出') figure semilogy((abs(e))) ;% e的绝对值坐标 title('误差曲线') ; xlabel('样本') ylabel('误差矢量') figure%作图 plot(h, 'k+') hold on plot(w, 'r*') legend('实际权矢量','估计权矢量') title('比较实际和估计权矢量') ; axis([0 6 ])

数字滤波器在数字信号处理中的应用广泛,是数字信号处理的重要基础。自适应滤波器可以不必事先给定信号及噪声的自相关函数,它可以利用前一时刻已获得的滤波器参数自动地调节现时刻的滤波器参数使得滤波器输出和未知的输入之间的均方误差最小化,从而它可以实现最优滤波。 自适应滤波器的算法有很多,有RLS(递归最小二乘法)和LMS(最小均方算法)等。自适应LMS算法是一种很有用且很简单的估计梯度的方法,在信号处理中得到广泛应用。 本论文主要研究了自适应滤波器的基本结构和原理,然后介绍了最小均方误差算法(LMS算法),并完成了一种基于MATLAB平台的自适应LMS自适应滤波器的设计,同时实现了对信号进行初步的降噪处理。 通过仿真,我们实现了LMS自适应滤波算法,并从结果得知步长和滤波器的阶数是滤波器中很重要的两个参数,并通过修改它们证实了这一点,其中步长影响着收敛时间,而且阶数的大小也会大大地影响自适应滤波器的性能。

自适应滤波器实际上是一种能够自动调整本身参数的特殊维纳滤波器,在设计时不需要预先知道关于输入信号和噪声的统计特性,它能够在工作过程中逐步“了解” 或估计出所需的统计特性,并以此为依据自动调整自身的参数,以达到最佳滤波效果。一旦输入信号的统计特性发生变化,它又能够跟踪这种变化,自动调整参数,使滤波器性能重新达到最佳。 自适应滤波器由参数可调的数字滤波器(或称为自适应处理器)和自适应算法两部分组成,如图7-3所示。参数可调数字滤波器可以是FIR数字滤波器或IIR数字滤波器,也可以是格型数字滤波器。输入信号x(n)通过参数可调数字滤波器后产生输出信号(或响应)y(n),将其与参考信号(或称期望响应)d(n)进行比较,形成误差信号e(n),并以此通过某种自适应算法对滤波器参数进行调整,最终使e(n)的均方值最小。尽管自适应滤波器具有各种不同的算法和结构,但是,其最本质特征是始终不变的。这种最本质的特征可以概括为:自适应滤波器依据用户可以接受的准则或性能规范,在未知的而且可能是时变的环境中正常运行,而无须人为的干预。本章主要讨论的是基于维纳滤波器理论的最小均方(LMS)算法,可以看到LMS算法的主要优点是算法简单、运算量小、易于实现;其主要缺点是收敛速度较慢,而且与输入信号的统计特性有关。 自适应线性滤波器是一种参数可自适应调整的有限冲激响应(FIR)数字滤波器,具有非递归结构形式。因为它的分析和实现比较简单,所以在大多数自适应信号处理系统中得到了广泛应用。如图7-4所示的是自适应线性滤波器的一般形式。输入信号矢量x(n)的L+1个元素,既可以通过在同一时刻对L+1个不同信号源取样得到,也可以通过对同一信号源在n以前L+1个时刻取样得到。前者称为多输入情况,如图7-5所示,后者称为单输入情况如图7-4所示,这两种情况下输入信号矢量都用x(n)表示,但应注意它们有如下区别。 单输入情况: (7-18) 多输入情况: (7-19) 单输入情况下x(n)是一个时间序列,其元素由一个信号在不同时刻的取样值构成;而多输入情况下x(n)是一个空间序列,其元素由同一时刻的一组取样值构成,相当于并行输入。 对于一组固定的权系数来说,线性滤波器是输出y(n)等于输入矢量x(n)的各元素的线性加权之和。然而实际上权系数是可调的,调整权系数的过程叫做自适应过程。在自适应过程中,各个权系数不仅是误差信号e(n)的函数,而且还可能是输入信号的函数,因此,自适应线性滤波器的输出就不再是输入信号的线性函数。 输入信号和输出信号之间的关系为 单输入情况: (7-20) 多输入情况: (7-21) 如图7-4所示的单输入自适应线性滤波器,实际上是一个时变横向数字滤波器,有时称为自适应横向滤波器。它在信号处理中应用很广泛。自适应线性滤波器的L+1个权系数构成一个权系数矢量,称为权矢量,用w(n)表示,即 (7-22) 这样,输出响应表示为 (7-23) 参考响应与输出响应之差称为误差信号,用e(n)表示,即 (7-24) 自适应线性滤波器按照误差信号均方值(或平均功率)最小的准则,即 (7-25) 来自动调整权矢量。

clear all close all %channel system order sysorder = 5 ; % Number of system points N=2000; inp = randn(N,1); n = randn(N,1); [b,a] = butter(2,); Gz = tf(b,a,-1); %This function is submitted to make inverse Z-transform (Matlab central file exchange) %The first sysorder weight value %h=ldiv(b,a,sysorder)'; % if you use ldiv this will give h :filter weights to be h= [; ; ; ; ;]; y = lsim(Gz,inp); %add some noise n = n * std(y)/(10*std(n)); d = y + n; totallength=size(d,1); %Take 60 points for training N=60 ; %begin of algorithm w = zeros ( sysorder , 1 ) ; for n = sysorder : N u = inp(n:-1:n-sysorder+1) ; y(n)= w' * u; e(n) = d(n) - y(n) ; % Start with big mu for speeding the convergence then slow down to reach the correct weights if n < 20 mu=; else mu=; end w = w + mu * u * e(n) ; end %check of results for n = N+1 : totallength u = inp(n:-1:n-sysorder+1) ; y(n) = w' * u ; e(n) = d(n) - y(n) ; end hold on plot(d) plot(y,'r'); title('System output') ; xlabel('Samples') ylabel('True and estimated output') figure semilogy((abs(e))) ; title('Error curve') ; xlabel('Samples') ylabel('Error value') figure plot(h, 'k+') hold on plot(w, 'r*') legend('Actual weights','Estimated weights') title('Comparison of the actual weights and the estimated weights') ; axis([0 6 ]) % RLS 算法 randn('seed', 0) ; rand('seed', 0) ; NoOfData = 8000 ; % Set no of data points used for training Order = 32 ; % Set the adaptive filter order Lambda = ; % Set the fetting factor Delta = ; % R initialized to Delta*I x = randn(NoOfData, 1) ;% Input assumed to be white h = rand(Order, 1) ; % System picked randomly d = filter(h, 1, x) ; % Generate output (desired signal) % Initialize RLS P = Delta * eye ( Order, Order ) ; w = zeros ( Order, 1 ) ; % RLS Adaptation for n = Order : NoOfData ; u = x(n:-1:n-Order+1) ; pi_ = u' * P ; k = Lambda + pi_ * u ; K = pi_'/k; e(n) = d(n) - w' * u ; w = w + K * e(n) ; PPrime = K * pi_ ; P = ( P - PPrime ) / Lambda ; w_err(n) = norm(h - w) ; end ; % Plot results figure ; plot(20*log10(abs(e))) ; title('Learning Curve') ; xlabel('Iteration Number') ; ylabel('Output Estimation Error in dB') ; figure ; semilogy(w_err) ; title('Weight Estimation Error') ; xlabel('Iteration Number') ; ylabel('Weight Error in dB') ;

处理的重要基础。自适应滤波器可以不必事先给定信号及噪声的自相关函数,它可以利用前一时刻已获得的滤波器参数自动地调节现时刻的滤波器参数使得滤波器输出和未知的输入之间的均方误差最小化,从而它可以实现最优滤波。 自适应滤波器的算法有很多,有RLS(递归最小二乘法)和LMS(最小均方算法)等。自适应LMS算法是一种很有用且很简单的估计梯度的方法,在信号处理中得到广泛应用。 本论文主要研究了自适应滤波器的基本结构和原理,然后介绍了最小均方误差算法(LMS算法),并完成了一种基于MATLAB平台的自适应LMS自适应滤波器的设计,同时实现了对信号进行初步的降噪处理。 通过仿真,我们实现了LMS自适应滤波算法,并从结果得知步长和滤波器的阶数是滤波器中很重要的两个参数,并通过修改它们证实了这一点,其中步长影响着收敛时间,而且阶数的大小也会大大地影响自适应滤波器的性能。

clear all close all N=10; %滤波器阶数 sample_N=500; %采样点数 A=1; %信号幅度 snr=10; %信噪比 t=1:sample_N; length_t=100; %期望信号序列长度 d=A*sin(2*pi*t/length_t); %期望信号 M=length(d); %M为接收数据长度 x=awgn(d,snr); %经过信道(加噪声) delta=1/(10*N*(A^2)); %计算能够使LMS算法收敛的delta y=zeros(1,M); h=zeros(1,N); %LMS滤波器系数 h_normalized=zeros(1,N); %归一化LMS滤波器系数 y1=zeros(1,N); for n=N:M %系数调整LMS算法 x1=x(n:-1:n-N+1); %LMS算法 y(n)=h*x1'; e(n)=d(n)-y(n); h=h+delta*e(n)*x1; %NLMS算法 y_normalized(n)=h_normalized*x1'; e_normalized(n)=d(n)-y_normalized(n); h_normalized=h_normalized+e_normalized(n)*x1/(x1*x1'); end error=e.^2; %LMS算法每一步迭代的均方误差 error_normalized=e_normalized.^2; %NLMS算法每一步迭代的均方误差 for n=N:M %利用求解得到的h,与输入信号x做卷积,得到滤波后结果 x2=x(n:-1:n-N+1); y1(n)=h*x2'; y2(n)=h_normalized*x2'; end subplot(411) plot(t,d); axis([1,sample_N,-2,2]); subplot(412) plot(t,x); subplot(413) plot(t,y); subplot(414) plot(t,y_normalized); figure(2) plot(t,error,'r',t,error_normalized,'b');

帮你在百度文库里找到这个算法,自适应噪声抵消LMS算法Matlab仿真,希望对你有帮助。如有问题,可以再讨论解决。

里面有些代码有问题,可以参考,代码还是自己写:! %基于RLS算法的自适应线性预测 clc; clear all; N=300; M=100;%计算的次数 w1=zeros(N,M);w2=zeros(N,M);I=eye(2);e1=zeros(N,M); for k=1:M %产生白噪声 Pv=;%定义白噪声方差 a1=;a2=;o=;r=; m=5000;%产生5000个随机数 v=randn(1,m); v=v*sqrt(Pv);%产生均值为0,方差为Pv的白噪声 %m=1:N; v=v(1:N);%取出前1000个 %plot(m,v);title('均值为0,方差为的白噪声');ylabel('v(n)');xlabel('n'); v=v'; %向量初使化 x=zeros(1,N); x(1)=v(1);%x(0)=v(0) x(2)=v(2)-a1*v(1);%x(1)=v(1)-a1*v(0) w=zeros(2,N); w(:,1)=[0 0]';%w(0)=[0 0]'; X=zeros(2,N); X(:,2)=[v(1) 0]';%X(0)=[0 0]';X(1)=[v(0) 0]' C=zeros(2,2*N); C(:,1:2)=1/o.*I;%C(0)=1/o*I e=zeros(1,N)';%定义误差向量 u=zeros(1,N); g=zeros(2,N); %根据RLS算法进行递推 for n=1:N-2 x(n+2)=v(n+2)-a1*x(n+1)-a2*x(n); X(:,n+2)=[x(n+1) x(n)]'; u(n)=X(:,n+1)'*C(:,2*n-1:2*n)*X(:,n+1); g(:,n)=(C(:,2*n-1:2*n)*X(:,n+1))./(r+u(n)); w(:,n+1)=w(:,n)+g(:,n)*(x(n+1)-X(:,n+1)'*w(:,n)); C(:,2*n+1:2*(n+1))=1/r.*(C(:,2*n-1:2*n)-g(:,n)*X(:,n+1)'*C(:,2*n-1:2*n)); e(n)=x(n+1)-X(:,n+1)'*w(:,n);

w1(:,k)=w(1,:)'; w2(:,k)=w(2,:)';%将每次计算得到的权矢量值储存 e1(:,k)=e(:,1);%将每次计算得到的误差储存 end

end %求权矢量和误差的M次的平均值 wa1=zeros(N,1);wa2=zeros(N,1);en=zeros(N,1); for k=1:M wa1(:,1)=wa1(:,1)+w1(:,k); wa2(:,1)=wa2(:,1)+w2(:,k); en(:,1)=en(:,1)+e1(:,k); end n=1:N; subplot(221) plot(n,w(1,n),n,w(2,n));%作出单次计算权矢量的变化曲线 xlabel('n');ylabel('w(n)');title('w1(n)和w2(n)的单次变化曲线(线性预测,RLS)') subplot(222) plot(n,wa1(n,1)./M,n,wa2(n,1)./M);%作出100次计算权矢量的平均变化曲线 xlabel('n');ylabel('w(n)');title('w1(n)和w2(n)的100次平均变化曲线') subplot(223) plot(n,e(n,1).^2);%作出单次计算e^2的变化曲线 xlabel('n');ylabel('e^2');title('单次计算e^2的变化曲线'); subplot(224) plot(n,(en(n,1)/M).^2);%作出M次计算e^2的平均变化曲线 xlabel('n');ylabel('e^2');title('100次计算e^2的平均变化曲线');

自适应滤波算法毕业论文

处理的重要基础。自适应滤波器可以不必事先给定信号及噪声的自相关函数,它可以利用前一时刻已获得的滤波器参数自动地调节现时刻的滤波器参数使得滤波器输出和未知的输入之间的均方误差最小化,从而它可以实现最优滤波。 自适应滤波器的算法有很多,有RLS(递归最小二乘法)和LMS(最小均方算法)等。自适应LMS算法是一种很有用且很简单的估计梯度的方法,在信号处理中得到广泛应用。 本论文主要研究了自适应滤波器的基本结构和原理,然后介绍了最小均方误差算法(LMS算法),并完成了一种基于MATLAB平台的自适应LMS自适应滤波器的设计,同时实现了对信号进行初步的降噪处理。 通过仿真,我们实现了LMS自适应滤波算法,并从结果得知步长和滤波器的阶数是滤波器中很重要的两个参数,并通过修改它们证实了这一点,其中步长影响着收敛时间,而且阶数的大小也会大大地影响自适应滤波器的性能。

一、应用:1)消除心电图中的电源干扰;2)检测胎儿心音时滤除母亲的心音及背景干扰;3)在有多人讲话的场合下提取某人的讲话;4)作为天线阵列的自适应旁瓣对消器。二、简介: 自适应滤波器属于现代滤波器)它是20世纪40年代发展起来的)在自适应信号处理领域中发挥着重要的作用。 自适应滤波器是相对固定滤波器而言的(自适应滤波器滤波的频率是自动适应输入信号而变化的)在没有任何关于信号和噪声的先验知识的条件下。 自适应滤波器利用前一时刻已获得的滤波器的参数来自动调节现时刻的滤波器的参数-以适应信号和噪声未知或随机变化的统计特性,从而实现最优滤波器。即是根据不同的信号环境实现自身参数的调整。而实际情况中,信号和噪声的统计特性常常未知或无法获知,因此自适应滤波器的应用空间非常广泛-如系统辨识u噪声对消u自适应均衡w线性预测w自适应天线阵列等很多领域。

一种具有双瞬变因子的LMS自适应滤波算法 曾召华 刘贵忠 马社祥 (西安交通大学信息与通信工程研究所 西安710049) 作者在文献〔4〕中提出了一种改进的瞬变步长SPLMS自适应滤波算法。本文在SPLMS算法的基础上,进一步提出一种基于瞬变步长、瞬变平滑因子的双瞬变SPLMS算法—DSPLMS算法。该算法除具有常规LMS算法简单的优点外,还具有更高的起始收敛速率、更小的权失调噪声和更大的抑噪能力。文中重点讨论瞬变步长、瞬变平滑因子的变化特性。计算机仿真结果支持了理论分析。 自适应滤波器,失调噪声,收敛速度,最小均方误差,瞬变因子1 引言 自适应滤波器及其相应算法是多年来人们广泛研究的课题。基于Widrow-Hoff标准的LMS算法和其相应的自适应滤波器以其算法和结构简单,便于实时信号处理等优点,在不同领域得到了最为广泛的应用。而为克服常规的固定步长LMS或牛顿LMS(Newton LMS,即NLMS)自适应算法在收敛速率、跟踪速率与权失调噪声之间要求上存在的较大矛盾,人们发展了各种各样的改进型LMS算法,如基于瞬变步长LMS自适应滤波算法〔1~6〕、基于正交变换(DCT、FFT、小波变换、子带滤波)的新型LMS均衡算法〔7~8〕。基于模糊判断的自适应LMS系统识别和基于最小四次均方误差的LMS自适应平稳收敛算法〔9~10〕。在所有改进型LMS算法中,瞬变步长LMS自适应滤波算法是研究最为广泛的一类LMS自适应滤波算法。本文算法也是基于瞬变因子的一种改进LMS自适应滤波算法。2 SPLMS算法分析及问题的提出 在文献〔4〕中,作者对上述方案进行了大量的计算机仿真和理论分析,结果表明:(1)上述诸种算法的收敛速率与系统输入信噪比SNR直接相关,信噪比SNR越高,它们的收敛速率普遍提高;随着信噪比SNR的降低,它们的收敛速率减慢,甚至出现发散现象,因此它们必须在弱干扰下完成规一化起动,即在起始过程中噪声要相当小,否则效果不佳。(2)在上述所有算法中,由于采用瞬时平方误差性能函数e2k来代替均方误差性能函数,所以其算法的权值收敛过程表现为加权矢量的平均值变化规律和由于噪声引起的随机起伏项的叠加。因此,噪声方差越大,则随机起伏项越大,表现为权值振动也就越大。(3)为了追求更快的收敛性,往往增大μ和M,但滤波器阶数越高,步长因子μ和输入功率越大,就便得失调系数也越大。在有限次数起动迭代过程中,也就很难收敛到较稳态值,所以必须寻求更佳的瞬态步长算法。 文献〔4〕在准最小均方(Pseudo-LMS,即PLMS)误差算法基础上通过采用滑动时间窗,减少PLMS算法起动过程的计算量;同时在权值迭代中加一平滑迭代而使PLMS算法具备全局较强的抗噪性能,较快速收敛性能而提出了SPLMS算法,即: 其中rk为M阶滤波器输入信号的功率估值;Wk为滤波器的第k步M维最优权矢量估值;Xk是滤波器输入信号的M维输入数据矢量;dk为希望输出;μk为滤波器第k步瞬态步长。切换条件中,阈值μ类似于LMS算法的步长因子μL,满足:μL<μ<1/trR,R=E〔XkXTk〕(7)为待定的算法常数,是μk变化的动态平衡点。而α是一常数为平滑因子,它决定上一次的权值变化对本次权值更新的影响程度。k0是采用式(2)规一化启动后,算法收敛到较稳态时的步数。式(4)是μk下降的递推算法,式(5)是μk上升的平滑递推算法。λ为上升的速度因子,满足0<λ<1。在实际应用中,考虑到学习过程的启动速度,一般取较大的λ值,即: 0.9<λ<1,k0=25~35,|α|<0.3(8) SPLMS算法的实质是:在开始k0步中,采用启动速度较快的MLMS(Mend LMS)算法收敛到相对较稳态的状态;然后在k≥k0+1过程中,采用瞬态步长μk来训练算法。而μk根据不同的切换条件将围绕μ作升降变化,其迭代计算主要表现为不降即升的动态过程。α主要根据经验来取值,输入数据的非平稳性越大,噪声方差越大时,增大α可明显抑制振动,从而加速收敛过程;在噪声小时减小α。 但SPLMS算法也有一明显不足,即α主要根据经验来取值,没有理论上的确切依据。α取值不当,反而容易造成算法收敛性能更差,甚至发散的现象。从理论上分析,α与瞬态步长μk和输出误差ek(文中定义为:ek=dk-WTk Xk)应有一定关系。在算法启动阶段,ek较大,为追求启动速度而常取较大步长μk,但μk越大,权失调系数也就越大,有时反而起不到应有的作用,这时就应相应增加α值来平滑权失调噪声;在算法渐趋稳定,步长μk渐趋于常数,ek渐趋于0,此时α也应渐趋于0。综合起来就是:α应随步长μk和误差ek瞬时变化而变化,也应是一瞬变因子。本文重点就是寻求瞬变因子αk的数学表达式以满足上述分析的要求。3 改进的双瞬变因子SPLMS算法——DSPLMS算法3.1 μk的变化特性 从式(4)和式(5)可以看出,在k≥k0+1过程中,μk根据不同的切换条件将围绕μ作升降变化,μk的迭 代计算主要表现为不降即升的动态过程。对于式(5),设k≥kr时,μk<μ,则在k≥kr>k0+1的上升过程中: 即上升速度按指数衰减,使趋于平衡点μ的上升速度迅速减小。其变化过程类似于一电阻电容串联电路上电容的充电过程。对式(4),由于μk=μk-1/(1+Rk),Rk>0,即使很小的Rk经过一步迭代就足以使μk<μ,再次切换到上升过程。当rk较大时,下降形成的负脉冲也较大。 综上所述,在k≥k0+1的收敛过程中,μk的时变特性等价于幅值极不对称的随机正负尖脉冲序列组成的瞬态分量和直流分量μ的线性叠加。瞬态分量的负脉冲强度与rk瞬值对应,有利于抑制局部自激或短暂发散,减小权矢量噪声,提高稳定度。在rk较小、算法渐趋于稳定时,瞬变分量趋于0,μk~μ。3.2 αk的变化特性 定义:ΔWk=Wk+1-Wk为自适应滤波器的权系数增量;ξ为均方误差性能函数,ξ=E〔ek〕2,ek=dk-WTk Xk为输出误差,则SPLMS算法的权系数更新公式由式(1)可重写为: Wk+1=Wk-μk^Wξk+αΔWk-1(10)其中Wξ为ξ的梯度函数,^W为Wξ的第k步估计。由式(10)的系数更新公式,我们可写出均方误差性能函数的表达式:式中上标T表示矢量的转置。若用一矢量^Wζk+1去左乘式(10),则可得到:^Wξk+1Wk+1=^Wζk+1Wk-μk^Wζk+1^Wζk+^Wζk+1αΔWk-1(13)利用式(12)的结论,可将式(13)化简为:^TWζk+1ΔWk=0(14)由于参量μk和α均为实的标量因子,故式(14)又可写成: (μk^TWζk+1)(αΔWk)=0(15)式(15)清楚地表明:在SPLMS算法中,自适应滤波器的权系数在迭代过程中,其均方误差性能函数的梯度估值与权系数增量始终存在一个正交关系。ΔWk-1对ΔWk的调节作用是在当前梯度估值方向上,给出与梯度估值方向正交矢量,并以这两个矢量所构成的合矢量来改变权系数空间的权重。 对于FIR结构的LMS自适应系统而言,其均方误差性能函数在平稳输入时为一个二次型函数,在收敛点附近仍可视为一个二次型函数,故有: ξ(Wk+1)=WTk RWk-2WTk P+C(16)式中R=E〔XTk Xk〕为输入信号的自相关矩阵,P=E〔dkXk〕为所需信号与输入信号的互相关矢量,C=E〔d2k〕,则由式(16)可得: 将式(17)代入式(18),则式(18)可变形为:式(19)就是本文给出的瞬变平滑因子αk的数学表达式。显然,它满足前面分析时所提出的要求,且在算法达到稳态收敛时,满足:limk→∞αk=0(20)3.3 改进的双瞬变SPLMS算法——DSPLMS算法 用式(19)中αk的表达式替换式(1)中的α,就得到本文提出的具有双瞬变因子的LMS算法——DSPLMS算法,即 Wk+1=Wk+2μk(dk-WTk Xk)Xk+αk(Wk-Wk-1)(21)μk=λ/(1+2λrk),0≤k≤k0(22)由式(19)、(20)可知,αk是一个与μk成正比且具有衰减性的瞬变因子,从而使本文提出的DSPLMS算法比SPLMS算法更能快速稳定收敛;与常规LMS算法相比,其性能有极大的提高,为实时信号处理提供了一个较好的算法。4 计算机仿真 仿真实验的结构如图1所示,其中dk为随机输入信号,nk为高斯白噪声,ek为输出误差,xk为自适应滤波器的输入,yk为滤波器输出,此时xk=dk+nk。在图2中,dk是均值为0、方差为1的高斯白噪声;nk是与dk不相关的均值为0、方差为1的高斯白噪声;滤波器参数:M=32,λ=0.9,μL=0.005,μ=0.01,α=0.1。在图3中,nk为均值为0、方差为0.1的高斯白噪声,其它参数同图2。图2、3为分别采用LMS、SPLMS和DSPLMS算法进行滤波的学习曲线比较图。从图2(强干扰启动)和图3(较弱干扰启动)中可以看出:在强干扰下,DSPL MS 具有比SPLMS好、比LMS好得多的启动速度和收敛速度;而在弱干扰下,DSPLMS仍具有比SPLMS快、比LMS快得多的启动速度。从图中同时还可看出:DSPLMS与SPLM S具有几乎相同的收敛速度,它们的收敛速度比LMS快得多。5 结语 加进瞬变平滑项的规一化起动,使DSPLMS具有更高的起始收敛速度、更小的权失调噪声和更大的抑噪能力;在平稳连接之后的稳态过程中,该算法趋于步长为μ的LMS算法性能,但由于瞬变分量负脉冲的作用,在相近的权失调量下可按式(7)取较大的μ值,增强算法对时变参数过程的跟踪处理能力;输入数据的非平稳性越大,噪声方差越大时,加进的瞬变平滑项使权失调噪声减小,从而使本文提出的DSPLMS算法比SPLMS算法更能快速稳定地收敛;与常规LMS算法相比,其性能有极大的提高,可以明显抑制振动,从而加速收敛过程。网址:

噪音的危害不仅可使正常人听力下降、记忆力衰退,还可引起心肌缺血和消化不良。对病人来说,可使病情加重,因此,嗓音有效的综合治理应引起人们的重视。噪声的存在给语音通信带来干扰,致使通信效果变差。尤其是在强噪声背景环境下,语音信号甚至完全被背景噪声所淹没,几乎无法识别。通信过程无法正常的实现,给生产、生活、军事行动带来严重影响,给个人、单位乃至国家造成巨大的经济损失。因此,在强噪声背景下,如何有效地抑制和消除干扰噪声成为人们研究的热门课题。针对时变强噪声背景环境下语音通信中的噪声消除问题,就现有的去噪方法进行对比分析,最终选定自适应噪声对消,并就自适应噪声对消的可行性进行分析论证。之后,对滤波器结构做了对比分析,对最小均方误差(LMS)算法和递归最小二乘(RLS)算法进行性能比较,最终以有限冲击响应(FIR)横式滤波器结构和递归最小二乘(RLS)算法构建系统模型,确定自适应噪声对消方案。本文以自适应滤波算法的研究为主要内容。在对标准的递归最小二乘(RLS)算法深入分析的基础上,针对其自身固有缺点,提出改进方案。之后,引入三种已经成功应用在自适应均衡和自适应估计的改进算法,并进行原理分析和性能验证。

saw滤波器毕业论文

声表面波(SAW)滤波器曾一度广泛用于工作在20MHz以上频段的次中频滤波。它在抑制电子设备高次谐波、镜像信息、发射漏泄信号以及各类寄生杂波干扰等方面起到了良好的作用。其特点是可灵活设计、模拟/数字兼用、群延迟时间偏差和频率选择特性优良、输入输出阻抗误差小。近年来已将SAW滤波器片式化,重约;另外由于采用了新的晶体材料和最新精细加工技术,致使SAW器件的使用上限频率提高到,这必将促进SAW滤波器在抗EMI领域获得更广泛的应用。低插损技术与片式化封装是这类EMI滤波器目前和今后一段时间内的研究开发方向。

SAW滤波器是surface acoustic wave滤波器,即表面声波滤波器SAW中频滤波器就是通带在中频的SAW滤波器

cic滤波器毕业论文

CIC滤波器实现简单,资源消耗少(只需要加法器),成为变采样率系统中比较常用的滤波器,但也需要在合适的场景中使用,不然对信号质量会造成较大影响。 我们可以通过matlab的filter designer了解CIC滤波器的各种特性。通过图1和图2找到CIC滤波器设计窗口。 从幅频曲线中容易得出CIC滤器器通带平台性差,过渡带宽,带外抑制性能起伏较大。 带外抑制性能可以通过增加CIC级数(Number Of Sections)来提升,但这会对通带平坦性带来负面影响,具体设计CIC时需要折中该参数。 通常在C语言实现CIC时,可以将该参数设计为偶数,这样会使拖尾是一个整数,方便去掉数据首尾的无效值。更进一步,设计为2,4,8时,归一化可以直接通过移位实现。 当我们使用CIC时,需要保证 有用信号的fmax应足够小于fs/2/Mcic ,其中Mcic为内插倍数。这样才能保证在有效带宽内足够的平坦度,一般fmax相对于直流衰减不能超过. 所以在变速率系统中,CIC一般作为最后数字滤波器的前端(靠近模拟域),如上采样系统中信号先经过限带成型滤波器(低通FIR),HB滤器组,最后经过CIC到DAC速率。 下图为8倍上采样的图示。 需要注意的是为了保证CIC前后信号时域采样点平均功率的一致性,在第一级CIC滤波器中没有做归一化,这部分增益正好可以补偿上采样插0带来采样点功率的损失。后续每一级都要做归一化,防止溢出。 clear;clc;close all; %% load data symbols from RRC out,make sure fmax << fs/2/Mcic load('')  % 8x oversampling signal symbPower = funCountPower(zeroDataFilterOut); % Power before filter %% CIC filter for interpolate 8 times Mcic = 8; coefCic = ones(Mcic,1); N = 4;      % number of CIC section modDataZero8x = upsample(zeroDataFilterOut,Mcic); txPower = funCountPower(modDataZero8x); % Power after zero insertion %% filter dataFilterTemp = conv(modDataZero8x,coefCic);  % First CIC section for i = 1:N-1     dataFilterTemp = conv(dataFilterTemp,coefCic)/Mcic; end tailLen = N*(Mcic-1)/2; dataOut = dataFilterTemp(tailLen+1:end-tailLen); outPower = funCountPower(dataOut);  % Power after filter

[论文关键词]铁路 电力 远动终端 干扰 [论文摘要]研究分析电磁干扰产生的原因、特点及干扰对电力远动系统的影响,从设计的角度对铁路电力远动监控系统进行抗干扰分析研究。 抗干扰设计是电力远动监控系统安全运行的一个重要组成部分,在研制综合自动化系统的过程中,如果不充分考虑可靠性问题,在强电场干扰下,很容易出现差错,使整个电力远动监控系统无法正常运行或出错误(误跳闸事故等),无法向站场和区间供电,影响铁路行车安全。 一、电磁干扰产生的原因及特点 (一)传导瞬变和高频干扰 1.由于雷击、断路器操作和短路故障等引起的浪涌和高频瞬变电压或电流通过变(配)电所二次侧进入远动终端设备,对设备正常运行产生干扰,严重还可损坏电路。2.由电磁继电器的通断引起的瞬变干扰,电压幅值高,时间短、重复率高,相当于一连串脉冲群。3.铁路电力供电中,特别是现代高速铁路对电力要求都比较高,一般都是几路电源供电,母线投切转换比较频繁,振荡波出现的次数较多。 (二)场的干扰 1.正常情况下的稳态磁场和短路事故时的暂态磁场两种,特别是短路事故时的磁场对显示器等影响比较大。2.由于断路器的操作或短路事故、雷击等引起的脉冲磁场。3.变电所中的隔离开关和高压柜手车在操作时产生的阻尼振荡瞬变过程,也产生一定的磁场。4.无线通信、对讲机等辐射电磁场对远动终端会产生一定的干扰,铁路中继站通常会和通信站在一处,通信发射塔对中继站电力远动终端设备的干扰比较大。 (三)对通信线路的干扰 1.铁路变电所远动终端的数据由串口通信经双绞线进入车站通信站,再经过转换成光信号沿铁通专用通信光缆送至电力远动调度中心,遥信和遥控数据在变电所到通信站的过程走的是电信号,由于变电所高低压进出线缆很多,远动终端受的干扰比较大。2.中继站一般距铁路都比较近,列车通过时的振动对远动终端设备有一定的干扰。 (四)继电器本身原因 继电器本身可能由于某种原因一次性未合到位而产生干扰的振动信号,或负荷开关、断路器、隔离开关等二次侧产生振动信号。 二、干扰对电力远动系统的影响 无论交流电源供电还是直流供电,电源与干扰源之间耦合通道都相对较多,很容易影响到远动终端设备,包括要害的CPU;模拟量输入受干扰,可能会造成采样数据的错误,影响精度和计量的准确性,还可能会引起微机保护误动、损坏远动终端设备和微机保护部分元器件;开关量输入、输出通道受干扰,可能会导致微机和远动终端判断错误,远动调试终端数据错误远动终端CPU受干扰会导致CPU工作不正常,无法正常工作,还可能会导致远动终端程序受到破坏。 三、抗干扰设计分析 (一)屏蔽措施 1.高压设备与远动终端输入、输出采用有铠装(屏蔽层)的电缆,电缆钢铠两端接地,这样可以在很大程度上减小耦合感应电压。2.在选择变电所和中继站电力设备时尽量选设有专门屏蔽层的互感器,也有利于防止高频干扰进入远动终端设备内部。3.在远动终端设备的输入端子上对地接一耐高压的小电容,可以有效抑制外部高频干扰。 (二)系统接地设计 1.一次系统接地主要是为了防雷、中性点接地、保护设备,合适的接地系统可以有效的保障设备安全运行,对于断路器柜接地处要增加接地扁铁和接地极的数量,设备接地处增加增加接地网络互接线,降低接地网中瞬变电位差,提高对二次设备的电磁兼容,减少对远动终端的干扰。2. 二次系统接地分为安全接地和工作接地,安全接地主要是为了避免工作人员因设备绝缘损坏或绝缘降低时,遭受触电危险和保证设备安全,将设备外壳接地,接地线采用多股铜软线,导电性好、接地牢固可靠,安全接地网可以和一次设备的接地网相连;工作接地是为了给电子设备、微机控制系统和保护装置一个电位基准,保证其可靠运行,防止地环流干扰。3.由于高低压柜本身都是多都是采用镀锌薄钢板材料,本身也有屏蔽作用,将高低高柜都可靠接地。4.远动终端微机电源地和数字地不与机壳外壳相连,这样可以减小电源线同机壳之间的分布电容,提高抗共模干扰的能力,可明显提高电力远动监控系统的安全性、可靠性。 (三)采取良好的隔离措施 1.为避免远动终端自身电源干扰采取隔离变压器,电源高频噪声主要是通过变压器初、次级寄生电容耦合,隔离变压器初级和次级之间由屏蔽层隔离,分布电容小,可提高抗共模干扰的能力。2.电力远动监控系统开关量的输入主要断路器、隔离开关、负荷开关的辅助触点和电力调压器分接头位置等,开关量的输出主要是对断路器、负荷开关和电力调压器分接头的控制。3.信号电缆尽量避开电力电缆,在印刷远动终端的电路板布线时注意避免互感。4.采用光电耦合隔离,光电耦合器的输入阻抗很小,而干扰源内阻大,且输入/输出回路之间分布电容极小,绝缘电阻很大,因此回路一侧的干扰很难通过光耦送到另一侧去,能有效地防止干扰从过程通道进入主CPU。 (四)滤波器的设计 1.采用低通滤波去高次谐波。2.采用双端对称输入来抑制共模干扰,软件采用离散的采集方式,并选用相应的数字滤波技术。 (五)分散独立功能块供电,每个功能块均设单独的电压过载保护,不会因某块稳压电源故障而使整个系统破坏,也减少了公共阻抗的相互耦合及公共电源的耦合,大大提高供电的可靠性。 (六)数据采集抗干扰设计 1.在信息量采集时,取消专门的变送器屏柜,将变送器部分封装在RTU内,减少中间环节,这样可以减少变送器部分输出的弱电流电路的长度。2.遥信由于合闸一次不到位或由于二次侧振动而产生的误遥信干扰信号,并且还会产生尖脉冲信号,也可能对遥信回路产生干扰误遥信号。 (七)过程通道抗干扰设计 (八)印刷电路板设计。在印刷电路板设计中尽量将数字电路地和模拟地电路地分开;电源输入端跨接10~100μF的电解电容。 (九)控制状态位的干扰设计 (十)程序运行失常的抗干扰设计 (十一)单片机软件的抗干扰设计 (十二)对于终端至通信站的数字通信电缆加穿钢管,特别是穿越其他电力电缆时,避免和其他电力电缆等同沟敷设并保持一定的交叉距离。 (十三)对于特殊的变(配)电所或区间信号站的环境 (十四)提高远动信息传输的可靠性,在电力调度中心和远动终端之间建立出错重发技术直到住处确认信息为止。

CIC cascade imtegrator comb,积分梳状滤波器CIC滤波器最初由Hogenauer提出,因为它结构简单,没有乘法器,只用加法器、积分器和寄存器,适合工作在高采样率。而且,CIC滤波器是一种基于令吉电相消的FIR滤波器,已经被证明是在高速抽取或插值系统中非常有效的单元。CIC滤波器包括两个基本部分:积分部分和梳状部分。单级CIC抽取滤波器如图1所示:单级CIC插值滤波器如图2所示:

通信信号自适应滤波处理研究论文

4G通信技术的发展及应用探析论文

一、4G通信技术发展优势

网络速度更快

4G网络表现出的最大优势在于其具备的无线通信速度,根据研究者预测,未来,4G通信系统中的无线传输速度可以达到10M-20Mbps,如果是起峰值的传输速度则可能达到更高的点,由此为人们应用无线网络提供了较大的便捷。

网络相关频谱更宽

要想实现4G通信技术,达到更快的网线网络速度,就必须对现有的3G通信速度进行改造及升级处理,由此也就使得4G通信技术中的网络频谱宽带要超过3G通信技术,根据研究者表明,对于4G网络通信,每个信道都能够占用仅100Mhz的频谱,而这是3G通信技术无法企及的。

更智能化

随着4G通信技术的推广使用,其所表现出的通信网络及终端智能化也不断升高,这不仅体现在通信终端的设计及操作智能化,同时在体现在网络设备功能的智能化,如根据用户的环境、时间及其他因素不同,可以通过网络设备终端,为用户提供个性化的服务。

通信方式更多样化

4G网络支持的手机已经不再是简单的电话,其能够提供更加可靠的语音数据服务,方便人们的语音通话,而在设计及功能方面则有着更大的突破,也就是能够做成任何可以想象的形状。

二、4G通信技术的应用

软件无线电技术

此种技术又被称为SDR技术,可以对现代化的数字信号技术进行有效利用,结合可编程平台,根据软件定义无线平台的功能。在软件无线电技术中,可以采用的技术包括可编程器件、信号处理技术、数字信号处理等,同时,通过应用软件无线电技术,还能够确保通信系统中各种功能的实现,如软件可编程、硬件设备重复利用等,以减少资源浪费。

技术

此项技术是4G通信技术中最重要的一项技术,在无线传输中得到了广泛应用,此项技术的应用主要是将通信信道划分成多个子信道,并对子信道的子波进行调制处理,然后进行传输,从而保证信道的频率选择性,而且确保每一个子信道都能够保持平坦。通过子信道实现窄宽的传输,在此过程中能够保证信号带宽比信道带宽小,从而对信号波形之间产生的干扰起到有效的抑制作用。此外,此项技术的应用也在很大程度上客服了数据传输干扰的难题,大大提升了系统传输频率,并简化了硬件结构,有利于网络传输速度的加快。

智能天线技术

此项技术又被称为自适应天线阵列,即AAA,最初,此项技术主要应用在雷达、声钠等军事领域,主要是为了实现空间滤波及定位,在此项技术体系中,通过应用空分多址技术,实现信号传输差别处理,并准确区分系统中的同频率或同码道信号,以对信号覆盖区域产生动态控制,及时将主波束转移至用户的所在方向,确保用户应用网络的可靠性及安全性。通过对信号干扰进行控制,并跟踪用户及其所处环境,能够时刻了解用户所在网络的具体情况,从而为入网用户提供质量较高的链路,以加强对干扰信号的抑制作用,并最大限度的提取可应用信号,确保用户网络的可利用性。

三、4G通信技术的发展趋势

4G通信技术的应用已经表现出了极大的优势,在未来的发展过程中,4G通信技术势必能够完全取代2G、3G通信技术,成为移动通信发展的主导型技术。首先,4G用户市场会不断扩大,实际价值也会不断升高,这主要是由于其所具备的网络优势是传统移动通信技术所不能达到的,因此,未来的4G通信技术发展必然会呈现出多频段、多模式及多业务应用的局面,而且实现完全的智能化,随之而来的是越来越广泛的.用户市场,并带来巨大的经济效益。其次,4G通信技术对于设备需求更高,作为4G通信技术发展的基础性条件,要想达到其网络传输频率,就必须建设更多的基站,以满足4G通信技术的传输需求。最后,各个运营商展开4G通信业务争夺战,由于4G通信技术表现出巨大的优势,其必然能够拥有更加庞大的用户群,而这为各大运营商带来了甜头,因此,对于4G业务的开展势必会有一番较量,而在此过程中也能够进一步完善此项技术,为用户提供更为可靠的服务。

四、结语

4G通信技术的萌芽及广泛应用不仅为人们提供了更快速的网络服务,同时不断拓展应用市场,形成更加庞大的受众群体,其在表现出光明发展前景的同时,也能够创造出更大的市场价值,为人们带来更多的经济效益,因此加强4G通信技术研究具有重要意义,这也是未来我国市场经济发展应当重视的一个版块,以实现移动通信技术的不断进步。

% RLS算法 randn('seed', 0) ; rand('seed', 0) ; NoOfData = 8000 ; % Set no of data points used for training Order = 32 ; % 自适应滤波权数 Lambda = ; % 遗忘因子 Delta = ; % 相关矩阵R的初始化 x = randn(NoOfData, 1) ;%高斯随机系列 h = rand(Order, 1) ; % 系统随机抽样 d = filter(h, 1, x) ; % 期望输出 % RLS算法的初始化 P = Delta * eye ( Order, Order ) ;%相关矩阵 w = zeros ( Order, 1 ) ;%滤波系数矢量的初始化 % RLS Adaptation for n = Order : NoOfData ; u = x(n:-1:n-Order+1) ;%延时函数 pi_ = u' * P ;%互相关函数 k = Lambda + pi_ * u ; K = pi_'/k;%增益矢量 e(n) = d(n) - w' * u ;%误差函数 w = w + K * e(n) ;%递归公式 PPrime = K * pi_ ; P = ( P - PPrime ) / Lambda ;%误差相关矩阵 w_err(n) = norm(h - w) ;%真实估计误差 end ; % 作图表示结果 figure ; plot(20*log10(abs(e))) ;%| e |的误差曲线 title('学习曲线') ; xlabel('迭代次数') ; ylabel('输出误差估计') ; figure ; semilogy(w_err) ;%作实际估计误差图 title('矢量估计误差') ; xlabel('迭代次数') ; ylabel('误差权矢量') ; %lms 算法 clear all close all hold off%系统信道权数 sysorder = 5 ;%抽头数 N=1000;%总采样次数 inp = randn(N,1);%产生高斯随机系列 n = randn(N,1); [b,a] = butter(2,); Gz = tf(b,a,-1);%逆变换函数 h= [;;;;;];%信道特性向量 y = lsim(Gz,inp);%加入噪声 n = n * std(y)/(10*std(n));%噪声信号 d = y + n;%期望输出信号 totallength=size(d,1);%步长 N=60 ; %60节点作为训练序列 %算法的开始 w = zeros ( sysorder , 1 ) ;%初始化 for n = sysorder : N u = inp(n:-1:n-sysorder+1) ;% u的矩阵 y(n)= w' * u;%系统输出 e(n) = d(n) - y(n) ;%误差 if n < 20 mu=; else mu=; end w = w + mu * u * e(n) ;%迭代方程 end %检验结果 for n = N+1 : totallength u = inp(n:-1:n-sysorder+1) ; y(n) = w' * u ; e(n) = d(n) - y(n) ;%误差 end hold on plot(d) plot(y,'r'); title('系统输出') ; xlabel('样本') ylabel('实际输出') figure semilogy((abs(e))) ;% e的绝对值坐标 title('误差曲线') ; xlabel('样本') ylabel('误差矢量') figure%作图 plot(h, 'k+') hold on plot(w, 'r*') legend('实际权矢量','估计权矢量') title('比较实际和估计权矢量') ; axis([0 6 ])

数字滤波器在数字信号处理中的应用广泛,是数字信号处理的重要基础。自适应滤波器可以不必事先给定信号及噪声的自相关函数,它可以利用前一时刻已获得的滤波器参数自动地调节现时刻的滤波器参数使得滤波器输出和未知的输入之间的均方误差最小化,从而它可以实现最优滤波。 自适应滤波器的算法有很多,有RLS(递归最小二乘法)和LMS(最小均方算法)等。自适应LMS算法是一种很有用且很简单的估计梯度的方法,在信号处理中得到广泛应用。 本论文主要研究了自适应滤波器的基本结构和原理,然后介绍了最小均方误差算法(LMS算法),并完成了一种基于MATLAB平台的自适应LMS自适应滤波器的设计,同时实现了对信号进行初步的降噪处理。 通过仿真,我们实现了LMS自适应滤波算法,并从结果得知步长和滤波器的阶数是滤波器中很重要的两个参数,并通过修改它们证实了这一点,其中步长影响着收敛时间,而且阶数的大小也会大大地影响自适应滤波器的性能。

自适应滤波器实际上是一种能够自动调整本身参数的特殊维纳滤波器,在设计时不需要预先知道关于输入信号和噪声的统计特性,它能够在工作过程中逐步“了解” 或估计出所需的统计特性,并以此为依据自动调整自身的参数,以达到最佳滤波效果。一旦输入信号的统计特性发生变化,它又能够跟踪这种变化,自动调整参数,使滤波器性能重新达到最佳。 自适应滤波器由参数可调的数字滤波器(或称为自适应处理器)和自适应算法两部分组成,如图7-3所示。参数可调数字滤波器可以是FIR数字滤波器或IIR数字滤波器,也可以是格型数字滤波器。输入信号x(n)通过参数可调数字滤波器后产生输出信号(或响应)y(n),将其与参考信号(或称期望响应)d(n)进行比较,形成误差信号e(n),并以此通过某种自适应算法对滤波器参数进行调整,最终使e(n)的均方值最小。尽管自适应滤波器具有各种不同的算法和结构,但是,其最本质特征是始终不变的。这种最本质的特征可以概括为:自适应滤波器依据用户可以接受的准则或性能规范,在未知的而且可能是时变的环境中正常运行,而无须人为的干预。本章主要讨论的是基于维纳滤波器理论的最小均方(LMS)算法,可以看到LMS算法的主要优点是算法简单、运算量小、易于实现;其主要缺点是收敛速度较慢,而且与输入信号的统计特性有关。 自适应线性滤波器是一种参数可自适应调整的有限冲激响应(FIR)数字滤波器,具有非递归结构形式。因为它的分析和实现比较简单,所以在大多数自适应信号处理系统中得到了广泛应用。如图7-4所示的是自适应线性滤波器的一般形式。输入信号矢量x(n)的L+1个元素,既可以通过在同一时刻对L+1个不同信号源取样得到,也可以通过对同一信号源在n以前L+1个时刻取样得到。前者称为多输入情况,如图7-5所示,后者称为单输入情况如图7-4所示,这两种情况下输入信号矢量都用x(n)表示,但应注意它们有如下区别。 单输入情况: (7-18) 多输入情况: (7-19) 单输入情况下x(n)是一个时间序列,其元素由一个信号在不同时刻的取样值构成;而多输入情况下x(n)是一个空间序列,其元素由同一时刻的一组取样值构成,相当于并行输入。 对于一组固定的权系数来说,线性滤波器是输出y(n)等于输入矢量x(n)的各元素的线性加权之和。然而实际上权系数是可调的,调整权系数的过程叫做自适应过程。在自适应过程中,各个权系数不仅是误差信号e(n)的函数,而且还可能是输入信号的函数,因此,自适应线性滤波器的输出就不再是输入信号的线性函数。 输入信号和输出信号之间的关系为 单输入情况: (7-20) 多输入情况: (7-21) 如图7-4所示的单输入自适应线性滤波器,实际上是一个时变横向数字滤波器,有时称为自适应横向滤波器。它在信号处理中应用很广泛。自适应线性滤波器的L+1个权系数构成一个权系数矢量,称为权矢量,用w(n)表示,即 (7-22) 这样,输出响应表示为 (7-23) 参考响应与输出响应之差称为误差信号,用e(n)表示,即 (7-24) 自适应线性滤波器按照误差信号均方值(或平均功率)最小的准则,即 (7-25) 来自动调整权矢量。

clear all close all %channel system order sysorder = 5 ; % Number of system points N=2000; inp = randn(N,1); n = randn(N,1); [b,a] = butter(2,); Gz = tf(b,a,-1); %This function is submitted to make inverse Z-transform (Matlab central file exchange) %The first sysorder weight value %h=ldiv(b,a,sysorder)'; % if you use ldiv this will give h :filter weights to be h= [; ; ; ; ;]; y = lsim(Gz,inp); %add some noise n = n * std(y)/(10*std(n)); d = y + n; totallength=size(d,1); %Take 60 points for training N=60 ; %begin of algorithm w = zeros ( sysorder , 1 ) ; for n = sysorder : N u = inp(n:-1:n-sysorder+1) ; y(n)= w' * u; e(n) = d(n) - y(n) ; % Start with big mu for speeding the convergence then slow down to reach the correct weights if n < 20 mu=; else mu=; end w = w + mu * u * e(n) ; end %check of results for n = N+1 : totallength u = inp(n:-1:n-sysorder+1) ; y(n) = w' * u ; e(n) = d(n) - y(n) ; end hold on plot(d) plot(y,'r'); title('System output') ; xlabel('Samples') ylabel('True and estimated output') figure semilogy((abs(e))) ; title('Error curve') ; xlabel('Samples') ylabel('Error value') figure plot(h, 'k+') hold on plot(w, 'r*') legend('Actual weights','Estimated weights') title('Comparison of the actual weights and the estimated weights') ; axis([0 6 ]) % RLS 算法 randn('seed', 0) ; rand('seed', 0) ; NoOfData = 8000 ; % Set no of data points used for training Order = 32 ; % Set the adaptive filter order Lambda = ; % Set the fetting factor Delta = ; % R initialized to Delta*I x = randn(NoOfData, 1) ;% Input assumed to be white h = rand(Order, 1) ; % System picked randomly d = filter(h, 1, x) ; % Generate output (desired signal) % Initialize RLS P = Delta * eye ( Order, Order ) ; w = zeros ( Order, 1 ) ; % RLS Adaptation for n = Order : NoOfData ; u = x(n:-1:n-Order+1) ; pi_ = u' * P ; k = Lambda + pi_ * u ; K = pi_'/k; e(n) = d(n) - w' * u ; w = w + K * e(n) ; PPrime = K * pi_ ; P = ( P - PPrime ) / Lambda ; w_err(n) = norm(h - w) ; end ; % Plot results figure ; plot(20*log10(abs(e))) ; title('Learning Curve') ; xlabel('Iteration Number') ; ylabel('Output Estimation Error in dB') ; figure ; semilogy(w_err) ; title('Weight Estimation Error') ; xlabel('Iteration Number') ; ylabel('Weight Error in dB') ;

处理的重要基础。自适应滤波器可以不必事先给定信号及噪声的自相关函数,它可以利用前一时刻已获得的滤波器参数自动地调节现时刻的滤波器参数使得滤波器输出和未知的输入之间的均方误差最小化,从而它可以实现最优滤波。 自适应滤波器的算法有很多,有RLS(递归最小二乘法)和LMS(最小均方算法)等。自适应LMS算法是一种很有用且很简单的估计梯度的方法,在信号处理中得到广泛应用。 本论文主要研究了自适应滤波器的基本结构和原理,然后介绍了最小均方误差算法(LMS算法),并完成了一种基于MATLAB平台的自适应LMS自适应滤波器的设计,同时实现了对信号进行初步的降噪处理。 通过仿真,我们实现了LMS自适应滤波算法,并从结果得知步长和滤波器的阶数是滤波器中很重要的两个参数,并通过修改它们证实了这一点,其中步长影响着收敛时间,而且阶数的大小也会大大地影响自适应滤波器的性能。

clear all close all N=10; %滤波器阶数 sample_N=500; %采样点数 A=1; %信号幅度 snr=10; %信噪比 t=1:sample_N; length_t=100; %期望信号序列长度 d=A*sin(2*pi*t/length_t); %期望信号 M=length(d); %M为接收数据长度 x=awgn(d,snr); %经过信道(加噪声) delta=1/(10*N*(A^2)); %计算能够使LMS算法收敛的delta y=zeros(1,M); h=zeros(1,N); %LMS滤波器系数 h_normalized=zeros(1,N); %归一化LMS滤波器系数 y1=zeros(1,N); for n=N:M %系数调整LMS算法 x1=x(n:-1:n-N+1); %LMS算法 y(n)=h*x1'; e(n)=d(n)-y(n); h=h+delta*e(n)*x1; %NLMS算法 y_normalized(n)=h_normalized*x1'; e_normalized(n)=d(n)-y_normalized(n); h_normalized=h_normalized+e_normalized(n)*x1/(x1*x1'); end error=e.^2; %LMS算法每一步迭代的均方误差 error_normalized=e_normalized.^2; %NLMS算法每一步迭代的均方误差 for n=N:M %利用求解得到的h,与输入信号x做卷积,得到滤波后结果 x2=x(n:-1:n-N+1); y1(n)=h*x2'; y2(n)=h_normalized*x2'; end subplot(411) plot(t,d); axis([1,sample_N,-2,2]); subplot(412) plot(t,x); subplot(413) plot(t,y); subplot(414) plot(t,y_normalized); figure(2) plot(t,error,'r',t,error_normalized,'b');

帮你在百度文库里找到这个算法,自适应噪声抵消LMS算法Matlab仿真,希望对你有帮助。如有问题,可以再讨论解决。

里面有些代码有问题,可以参考,代码还是自己写:! %基于RLS算法的自适应线性预测 clc; clear all; N=300; M=100;%计算的次数 w1=zeros(N,M);w2=zeros(N,M);I=eye(2);e1=zeros(N,M); for k=1:M %产生白噪声 Pv=;%定义白噪声方差 a1=;a2=;o=;r=; m=5000;%产生5000个随机数 v=randn(1,m); v=v*sqrt(Pv);%产生均值为0,方差为Pv的白噪声 %m=1:N; v=v(1:N);%取出前1000个 %plot(m,v);title('均值为0,方差为的白噪声');ylabel('v(n)');xlabel('n'); v=v'; %向量初使化 x=zeros(1,N); x(1)=v(1);%x(0)=v(0) x(2)=v(2)-a1*v(1);%x(1)=v(1)-a1*v(0) w=zeros(2,N); w(:,1)=[0 0]';%w(0)=[0 0]'; X=zeros(2,N); X(:,2)=[v(1) 0]';%X(0)=[0 0]';X(1)=[v(0) 0]' C=zeros(2,2*N); C(:,1:2)=1/o.*I;%C(0)=1/o*I e=zeros(1,N)';%定义误差向量 u=zeros(1,N); g=zeros(2,N); %根据RLS算法进行递推 for n=1:N-2 x(n+2)=v(n+2)-a1*x(n+1)-a2*x(n); X(:,n+2)=[x(n+1) x(n)]'; u(n)=X(:,n+1)'*C(:,2*n-1:2*n)*X(:,n+1); g(:,n)=(C(:,2*n-1:2*n)*X(:,n+1))./(r+u(n)); w(:,n+1)=w(:,n)+g(:,n)*(x(n+1)-X(:,n+1)'*w(:,n)); C(:,2*n+1:2*(n+1))=1/r.*(C(:,2*n-1:2*n)-g(:,n)*X(:,n+1)'*C(:,2*n-1:2*n)); e(n)=x(n+1)-X(:,n+1)'*w(:,n);

w1(:,k)=w(1,:)'; w2(:,k)=w(2,:)';%将每次计算得到的权矢量值储存 e1(:,k)=e(:,1);%将每次计算得到的误差储存 end

end %求权矢量和误差的M次的平均值 wa1=zeros(N,1);wa2=zeros(N,1);en=zeros(N,1); for k=1:M wa1(:,1)=wa1(:,1)+w1(:,k); wa2(:,1)=wa2(:,1)+w2(:,k); en(:,1)=en(:,1)+e1(:,k); end n=1:N; subplot(221) plot(n,w(1,n),n,w(2,n));%作出单次计算权矢量的变化曲线 xlabel('n');ylabel('w(n)');title('w1(n)和w2(n)的单次变化曲线(线性预测,RLS)') subplot(222) plot(n,wa1(n,1)./M,n,wa2(n,1)./M);%作出100次计算权矢量的平均变化曲线 xlabel('n');ylabel('w(n)');title('w1(n)和w2(n)的100次平均变化曲线') subplot(223) plot(n,e(n,1).^2);%作出单次计算e^2的变化曲线 xlabel('n');ylabel('e^2');title('单次计算e^2的变化曲线'); subplot(224) plot(n,(en(n,1)/M).^2);%作出M次计算e^2的平均变化曲线 xlabel('n');ylabel('e^2');title('100次计算e^2的平均变化曲线');

自适应过程一般采用典型LMS自适应算法,但当滤波器的输入信号为有色随机过程时,特别是当输入信号为高度相关时,这种算法收敛速度要下降许多,这主要是因为输入信号的自相关矩阵特征值的分散程度加剧将导致算法收敛性能的恶化和稳态误差的增大。此时若采用变换域算法可以增加算法收敛速度。变换域算法的基本思想是:先对输入信号进行一次正交变换以去除或衰减其相关性,然后将变换后的信号加到自适应滤波器以实现滤波处理,从而改善相关矩阵的条件数。因为离散傅立叶变换�DFT本身具有近似正交性,加之有FFT快速算法,故频域分块LMS�FBLMS算法被广泛应用。FBLMS算法本质上是以频域来实现时域分块LMS算法的,即将时域数据分组构成N个点的数据块,且在每块上滤波权系数保持不变。其原理框图如图2所示。FBLMS算法在频域内可以用数字信号处理中的重叠保留法来实现,其计算量比时域法大为减少,也可以用重叠相加法来计算,但这种算法比重叠保留法需要较大的计算量。块数据的任何重叠比例都是可行的,但以50%的重叠计算效率为最高。对FBLMS算法和典型LMS算法的运算量做了比较,并从理论上讨论了两个算法中乘法部分的运算量。本文从实际工程出发,详细分析了两个算法中乘法和加法的总运算量,其结果为:复杂度之比=FBLMS实数乘加次数/LMS实数乘加次数=(25Nlog2N+2N-4)/[2N(2N-1)]�采用ADSP的C语言来实现FBLMS算法的程序如下:for(i=0;i<=30;i++){for(j=0;j<=n-1;j++){in[j]=input[i×N+j;]rfft(in,tin,nf,wfft,wst,n);rfft(w,tw,wf,wfft,wst,n);cvecvmlt(inf,wf,inw,n);ifft(inw,t,O,wfft,wst,n);for(j=0,j<=N-1;j++){y[i×N+j]=O[N+j].re;e[i×N+j]=refere[i×N+j]-y[i×N+j];temp[N+j]=e[i×N+j;}rfft(temp,t,E,wfft,wst,n);for(j=0;j<=n-1;j++){inf_conj[j]=conjf(inf[j]);}��cvecvmlt(E,inf_conj,Ein,n);ifft(Ein,t,Ein,wfft,wst,n);for(j=0;j<=N-1;j++){OO[j]=Ein[j].re;w[j]=w[j]+2*u*OO[j];}��}在EZ-KIT测试板中,笔者用汇编语言和C语言程序分别测试了典型LMS算法的运行速度,并与FBLMS算法的C语言运行速度进行了比较,表2所列是其比较结果,从表2可以看出滤波器阶数为64时,即使是用C语言编写的FBLMS算法也比用汇编编写的LMS算法速度快20%以上,如果滤波器的阶数更大,则速度会提高更多。

相关百科

热门百科

首页
发表服务