blms.m
来自「这个自己下的一个块LMS的MATLAB程序,因为网站上的原来的一个根本就不是的」· M 代码 · 共 55 行
M
55 行
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Implementation of the BLMS filter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% u Input vector
% d Desired output
% mi mi coefficient
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%initalisation
M=length(w0); %Filter dimension
w=w0; %Initial w value
%mi=0.075; %Value of mi
L=M; %Block dimension
samples=length(u);
if (size(u,2)>1)
u=u';
end
if (size(w,2)==M)
w=w';
end
if (size(d,2)>1)
d=d';
end
if (mode(1)==1)
w_save=w;
end
if (mode(2)==1)
e_save=[];
end
if (mode(3)==1)
y_save=[];
end
for kk=1:((samples-M)/L)
A=[];
for ii=0:L-1
A=[A u((kk-1)*L+ii+M:-1:(kk-1)*L+ii+1)];
end
A=A';
y=A*w;
e=d((kk-1)*L+M:(kk-1)*L+M+L-1)-y;
phi=A'*e;
w=w+mi*phi;
if (mode(3)==1)
y_save=[y_save reshape(y,1,size(y,1)*size(y,2))];
end
if (mode(2)==1)
e_save=[e_save e];
end
if (mode(1)==1)
w_save=[w_save w];
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?