Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2010-07-23, 16:41   #1
lincolnlee0126
初级会员
 
注册日期: 2009-05-13
帖子: 9
声望力: 0
lincolnlee0126 正向着好的方向发展
默认 LMS算法滤波 前后的误差问题

现在用到LMS做一个仿真,就是生成一组数据,然后给这组数加上噪声,然后利用LMS算法,用原始数据作为期望值进行滤波,
但是我发现,利用LMS算法自适应滤波前后, 数据变化并不大,滤波前的误差(加上噪声的数据和原始数据之差)和滤波后的误差(滤波后
的数据和原始数据之差)基本相同,甚至LMS滤波后误差更大!!! 小弟不解,求高人指教!!

附上代码
%y=zeros(N,1);
%e=zeros(N,1);
%eUn=zeros(N,1);
%w=zeros(tap,N);
%u=zeros(tap,1);
%steplength=0.03;
%displaysize=1000;
%count=0;
% N=2000;
% data0=rand(1,N);
% for k=1:length(data0)
% if data0(k)>0.5
% data0(k)=1;
% else
% data0(k)=-1;
% end
% end
%
% spow=( sum((abs(data0)).^2))/length(data0) ;
% attn=0.5*spow*10.^(-10/10);
% attn=sqrt(attn);
% noise=randn(1,length(data0)).*attn;
% data1=data0+(noise);
% data0=[zeros(1,tap-1),data0];
% data1=[zeros(1,tap-1),data1];
% data1=data1.';
%
% for n=tap:N
% u=data1(n:-1:n-tap+1);
% e(n)=data0(n)-w(:,n)'*u;
% w(:,n+1)=w(:,n)+steplength*u*conj(e(n));
%
% eUn(n)=data0(n)-data1(n);
% end
lincolnlee0126 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 08:57


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.