how can we find or display mean square error of Block LMS algorithm? The code is as follows:
3 views (last 30 days)
Show older comments
%BLOCKLMS % Call: % [e,w]=blocklms(mu,M,u,Dalton); % % Input arguments: % mu = step size, dim 1x1 % M = filter length, dim 1x1 % u = input signal, dim Nx1 % d = desired signal, dim Nx1 % % Output arguments: % e = estimation error, dim Nx1 % w = final filter coefficients, dim Mx1 % % The length N is adjusted such that N/M is integer! % %initialization M=100; N=200; w=zeros(M,1); L=floor(N/M)*M; d=zeros(N,1); u=zeros(N,1); d=d(:); e=d; u=u(:); %no. of blocks Blocks=N/M; %Loop, BlockLMS for k=1:Blocks-1 %Set up input signal matrix, dim. MxM (cf. example 1, Haykin p. 448) umat=toeplitz(u(k*M:1:(k+1)*M-1),u(k*M:-1:(k-1)*M+1)); %Set up vector with desired signal dvec=d(k*M:1:(k+1)*M-1); %calculate output signal (Eq.10.5) yvec=umat.*w; %calculate error vector (Eq.10.8) evec=dvec-yvec; %log error e(k*M:1:(k+1)*M-1)=evec; %calculate gradient estimate (Eq.10.11) phi=umat.'*evec; %update filter coefficients (Eq.10.10) w=w+mu*phi; end
0 Comments
Answers (0)
See Also
Categories
Find more on Adaptive Filters in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!