nlms.m

来自「solution for the Statistical modelling f」· M 代码 · 共 83 行

M
83
字号
function [A,E] = nlms(x,d,beta,nord,a0)%NLMS	Normalized LMS adaptive filtering algorithm.%--- %USAGE	[A,E] = nlms(x,d,beta,nord,a0)%%           x    : input data to the adaptive filter.%           d    : desired output%           beta : adaptive filtering update (step-size) parameter%           nord : number of filter coefficients%           a0   : (optional) initial guess for FIR filter %		   coefficients - a row vector.  If a0 is omitted%		   then a0=0 is assumed.%%     The output matrix A contains filter coefficients.%        - The n'th row contains the filter coefficients at time n%        - The m'th column contains the m'th filter coeff vs. time.%        - The output vector E contains the error sequence versus time.%%  see also LMS and RLS%%---------------------------------------------------------------% copyright 1996, by M.H. Hayes.  For use with the book % "Statistical Digital Signal Processing and Modeling"% (John Wiley & Sons, 1996).%---------------------------------------------------------------X=convm(x,nord);[M,N] = size(X);if nargin < 5,   a0 = zeros(1,N);   enda0   = a0(:).';E(1) = d(1) - a0*X(1,:).'; DEN=X(1,:)*X(1,:)' + 0.0001;A(1,:) = a0 + beta/DEN*E(1)*conj(X(1,:));if M>1for k=2:M-nord+1;    E(k) = d(k) - A(k-1,:)*X(k,:).';    DEN=X(k,:)*X(k,:)' + 0.0001;    A(k,:) = A(k-1,:) + beta/DEN*E(k)*conj(X(k,:));    end;end;

⌨️ 快捷键说明

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