NLMS Adaptive filter
This program is used to implement a Normalized least mean square adaptive filter.
%Normalized Least Mean Square Adaptive Filter
%for Echo Cancellation
function [e,h,t
] = adapt_filt_nlms
(x,B,h,delta,l,l1
)
%x = the signal from the speaker
%B = signal through echo path
%h = impulse response of adaptive filter
%l = length of the signal x
%l1 = length of the adaptive filter
%delta = step size
%e = error
%h = adaptive filter impulse response
tic;
for k =
1:
150
for n=
1:l
xcap = x
((n+l1-
1):-
1:
(n+l1-
1)-l1+
1);
yout
(n
) = h*xcap';
e
(n
) = B
(n
) - yout
(n
);
xnorm =
0.000001+
(xcap*xcap'
);
h = h+
((delta*e
(n
))*
(xcap/xnorm
));
end
eold =
0.0;
for i =
1:l
mesquare = eold+
(e
(i)^
2);
eold = mesquare;
end
if mesquare <=
0.0001
break;
end
end
t =
toc;
%to get the time elapsed
Rate this code snippet:
0
Rating: 0 | Votes: 0
posted by Senthilkumar R