|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 eecsseudl 于 2013-4-29 10:01 编辑
现在用到LMS做一个仿真,就是生成一组数据,然后给这组数加上噪声,然后利用LMS算法,用
原始数据作为期望值进行滤波,
但是我发现,利用LMS算法自适应滤波前后, 数据变化并不大,滤波前的误差(加上噪声的数
据和原始数据之差)和滤波后的误差(滤波后
的数据和原始数据之差)基本相同,甚至LMS滤波后误差更大!!! 小弟不解,求高人指教!
!
附上代码
% N=2000;
%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;
% 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
|
|