sqrtflt.m

来自「这是几种滤波器的MATLAB的M文件源码」· M 代码 · 共 33 行

M
33
字号
function w=sqrtflt(w,x,perr,s,gamma,N)

%	A simple square root RLS adaptive filter			
%	For details, see:						
%	Digital Signal Processing: A Practical Approach			
%	E C Ifeachor and B W Jervis, Addison-Wesley, 1993		

forgt=sqrt(gamma);
sig=forgt;
sigsq=forgt*forgt;
ij=1; ji=1;
for j=2:N
	fj=0.0;
	for i=1:j-1
		 ji=ji+1;
		fj=fj+s(ji)*x(i);
	end
	a=sig/forgt;
	b=fj/sigsq;
	sigsq=sigsq+fj*fj;
	sig=sqrt(sigsq);
	a=a/sig;
	g(j)=s(ji)*fj;
	s(ji)=a*s(ji);
	for i=1:j-1
		ij=ij+1;
		sqp=s(ij);
		s(ij)=a*(sqp-b*g(i));
		g(i)=g(i)+sqp*fj;
	end
	ij=ij+1;
end
w = w + g'*perr/sigsq;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?