Technical discussion about Matlab and issues related to Digital Signal Processing.
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');
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