⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nlms.m

📁 LMS 算法MATLAB代码,可以经常LMS的计算.这个是.M文件.希望大家多交流
💻 M
字号:
function [W,e,Xout] = NLMS(x,d,N,mu,alpha,Xin,Winit);
% [W,e,Xout] = NLMS(x,d,N,mu,alpha,Xin,Winit);
%
% Implementation of the normalized least mean square algorithm.
% For complex inputs, this algorithms return the complex conjugated 
% filter coefficients.
%
% Inputs:
% 	x	reference signal
%       d	desired signal
% 	N	# of taps in filter
%	mu	step size (0...1)
%	alpha   power bias term
% 	Xin	initialization of state vector
%	Winit	initialization of filter weights
%
% Outputs:
%	W	adapted filter weights (column vector)
%	e	error signal (row vector)
%	Xout	last state vector (column vector)
%
% St.Weiss, SIPI-USC, 16.2.1997

% ***** check input parameters for correctness *****
if (~exist('Winit')),
   W = zeros(N,1);
else
   if length(Winit)~=N,
      error('weight initialization must match filter length');
   end;
   W = Winit;
endif;

Lx = length(x);
[m,n] = size(x);
if n>m,
   x = x.';
endif;

if (~exist('Xin')),
   x = [zeros(N-1,1); x];
   p = alpha;
else
   if length(Xin)~=(N-1) 
      error('state initialization must match filter length minus one');
   endif;
   x = [Xin; x];
   p = Xin'*Xin+alpha;
endif; 
END

% ***** perform adaptive filtering *****
for k = 1:Lx,
   X = x(k+N-1:-1:k);
   y = W'*X;
   e(k) = d(k)-y;
   p = p+x(k+N-1)*conj(x(k+N-1));
   W = W+(2*mu*conj(e(k))/p)*X;
   p = p-x(k)*conj(x(k));
endfor;

% ***** prepare output parameter *****
Xout = x(Lx+1:Lx+N-1);	  





⌨️ 快捷键说明

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