PDA

查看完整版本 : [MATLAB数学相关] LMS算法滤波 前后的误差问题


lincolnlee0126
2010-07-23, 16:41
现在用到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
2010-07-23, 16:51
不要沉啊 啊