Sign in

username:

password:



Not a member?

Search matlab



Search tips

Subscribe to matlab



matlab by Keywords

Atanh | Autocorrelation | Bandpass Filter | C++ | Conv | Database | Deconv | Excel | FFT | Filter | Filtering | FIR | Fourier Transfrom | FSK | Gaussian Noise | Haykin | IFFT | Image | Java | LFSR | LMS | LPC | MEX | OFDM | QPSK | Radix | Random | Sampling | Segmentation | Simulink | Visual Basic | Waveform | Wavelet

Discussion Groups

Discussion Groups | Matlab DSP | a better RLS for multiple noise cancellation

Technical discussion about Matlab and issues related to Digital Signal Processing.

  

Post a new Thread

a better RLS for multiple noise cancellation - yasm...@hotmail.com - Apr 17 8:21:06 2008



I am working on a sinusoidal noise cancellation in a pump signal, i used for this the
typical model of widrow that he suggested for interference cancellation in ECG, it is working
pretty good on a single interference,but when i want to do that for multiple noises in the same
signal by adding the results of the parallel filters the result is not good enough.
Could you please suggest me a better way to arrive to a good attenuation of my filter output?i
am thinking of a filter that can attenuate magnitude, but i don't even know how to do it on
Matlab.
Here is the code of my trail maybe it could help to understand:
%%Adaptive noise cancellation following the modele of Widrow for Cancelling
%60-Hz Interference in ECG (Adaptive Signal Processing-B.Widrow- P.329-330)
%%
close all
t=length(xfk);n=1:t;

for k=1:10
% -------------------reference and reference delayed with 90deg--------
 ref1=real(fmodany(k*IFlaw.'));
 ref2=real(fmodany(k*IFlaw.')*exp(i*pi/2));
% ------------------Calculation of weigths by Recursive Algorithm-------

[xi(k,:),w1]=rls02042008(0.9,1,ref1,x,100);
 [xii(k,:),w2]=rls02042008(0.9,1,ref2,x,100);
% ------------------sum of estimations----------------------------------
xn(k,:)=xi(k,:)+xii(k,:);
% xno(k,:)=x-sum(xn(k,:));

end;
% xni=signal(k,:)-xn;

[xiii,w3]=rls02042008(0.9,1,x,sum(xn),100);
%%%%%%%%%%plot results%%%%%%%%%%%%
%%                                                                                             
                                                                                               
                                                                                               
                                                                                               
                                                                                             
%%

instantMSE=(xiii).^2;
 figure,plot((filter(ones(100,1)/10,1,instantMSE)),'b'); grid,
MSE_dB=0;
for i=1:t-100
MSE_dB(i)=-20*log10(mean(abs(x(i:i+100)))'./mean(abs(instantMSE(i:i+100))));
end
dB_avg=mean(MSE_dB)
figure,
plot(MSE_dB)
title('attenuation (desired/MSE) in dB')
xlabel('sample');


(You need to be a member of matlab -- send a blank email to matlab-subscribe@yahoogroups.com )

Re: a better RLS for multiple noise cancellation - el01...@mail.ntua.gr - Apr 21 8:25:29 2008

I am working on a sinusoidal noise cancellation in a pump signal, i used for this the typical
model of widrow that he suggested for interference cancellation in ECG, it is working pretty
good on a single interference,but when i want to do that for multiple noises in the same signal
by adding the results of the parallel filters the result is not good enough.
>Could you please suggest me a better way to arrive to a good attenuation of my filter
output?i am thinking of a filter that can attenuate magnitude, but i don't even know how to do
it on Matlab.

Hello,

can you describe the problem a little more clearly?
What do you mean by "multiple noises in the same signal"? You mean that you have for
example interference at three frequencies instead of one, meaning that three sinusoids have
interfered with your signal? If yes, do you know the frequencies of the interferences?

Manolis



(You need to be a member of matlab -- send a blank email to matlab-subscribe@yahoogroups.com )