Dear
please refer the book " digital signal processing" using matlab by vinay k.kale
and john g. proakis {BookWare Companian Series}
-- shankar
Reply by el01...@mail.ntua.gr●March 15, 20082008-03-15
Hi,
the key to understanding this code, is first understanding the various signals
that appear in it. First of all x is the initial signal containing a component
of 50Hz which you want to remove by adaptive filtering. This signal will play
the role of the desired signal. Since we want to remove the frequency component
of 50Hz, the reference signal u must be a sinusoid of 50Hz. Now, the LMS
adaptive filter will try to use the reference signal u and from it
predict/estimate the desired signal x. So, the output of the adaptive filter,
namely u*w, will be as close as possible to the desired signal x. But since u
contains only one frequency, then the output of the adaptive filter will be an
estimation of the corresponding frequency component in the desired signal, if
such one exists. Consequently u*w will be an accurate approximation of the 50Hz
component in x. Now, the error signal of the adaptive filter is simply e=x-u*w,
but based on the above analysis e will be the initial signal with the 50Hz
component removed! Now this process is an IIR process. One way to think of that
is that the input to the overall system is x and the output is e. Hence the
transfer function E(z)/D(z) should indicate whether the filtering is IIR or FIR.
If you find this transfer function ("Fundamentals of Adaptive Filtering",Ali
Sayed, problem 5.14/page 261), then this is a transfer function of an IIR notch
filter! The derivation of the transfer function is somehow elaborate but you can
try it anyway.
Manolis C. Tsakiris
Reply by ashw...@yahoo.com●March 14, 20082008-03-14
hi im doing a project regarding development of an adptive digital notch filter
for the removal of 50hz noise from an ecg signal.i have the code.now my problem
is when do the full report for methodology.first I explained about adaptive
filter and followed by adaptive notch filter..then I explained about LMS
algorithm seems the sign regressor algorithm comes under LMS..the thing is im
confused with this method like it comes under IIR or FIR..because there also LMS
related with IIR and FIR..from what I studied adaptive notch filter always
related to FIR and also IIR..LMS notch filter code comes under IIR or FIR?could
anyone briefly explain to me?it will make to understand the flow of this code
working better..thank you
clear all
load data
Fs = 500;
N = 900;
i = [0 : N-1]';
xa(1:N)+5*sin(2*pi*50* i/Fs)+10*sin(2*pi*48* i/Fs);
u = sin(2*pi*50* i/Fs);
%adaptive filter architecture
L = 20;
step_size = 0.005;
w = zeros(1,L);
%run the adaptive filter
e(L) = x(L);
for k = L : N
regressor = flipud(u(k-L+ 1:k));
w = w + step_size * regressor' * e(k);
e(k+1) = x(k) - w * regressor;
end
%compute the spectrum of the initial signal and the filtered signal
f = [0 : Fs/N : Fs/2 - Fs/N]';
F = abs(fft(x));
E = abs(fft(e));
%plot
figure(1);
subplot(411) ;plot(x); title('initial signal');
subplot(412) ;plot(e(2:N+1)); title('initial signal after
filtering');
subplot(413) ;plot(f,F( 1:length( f)));title( 'spectrum of initial
signal');
subplot(414) ;plot(f,E( 1:length( f)));title( 'spectrum of initial signal
after filtering');
figure(2);
plot(i/Fs,x,'b-',i/Fs,e(2:N+1),'r-')