How do I remove background noise from a sound wave?
Ältere Kommentare anzeigen
I have a sound wave y(1:441000) gathered using a microphone and I have background n(1:441000) also gathered by the microphone. I have tried removing the background noise using a script something like:
Y=fft(y);
N=fft(n);
Yclean=Y-N;
yClean=ifft(Yclean);
However, yClean is not correct and is backwards in time. Do you have any suggestions?
Thanks,
Dave
Akzeptierte Antwort
Weitere Antworten (3)
Umair Nadeem
am 18 Nov. 2013
1 Stimme
It would be easier if you could upload the noisy signal too. Save the variable y which supposedly has the noisy signal in a .mat file using save command and attach it with your post. Some frequency analysis could be done if the signal is available.
Also try to provide info about the signal frequency (if known), and the sampling frequency which you used to sample the data.
pinreddy chaitanya
am 22 Okt. 2018
Bearbeitet: Walter Roberson
am 22 Okt. 2018
weights = weights + step_size * err(n) * input; %Weights Updating
what is the use of this line
1 Kommentar
Albin Lindmark
am 8 Jul. 2019
It is to update the weights of the adaptive filter.
pravin m
am 5 Nov. 2019
0 Stimmen
mtlb_noisy = y;
noise = n;
% Define Adaptive Filter Parameters
filterLength = 32;
weights = zeros(1,filterLength);
step_size = 0.004;
% Initialize Filter's Operational inputs
output = zeros(1,length(mtlb_noisy));
err = zeros(1,length(mtlb_noisy));
input = zeros(1,filterLength);
% For Loop to run through the data and filter out noise
for n = 1: length(mtlb_noisy),
%Get input vector to filter
for k= 1:filterLength
if ((n-k)>0)
input(k) = noise(n-k+1);
end
end
output(n) = weights * input'; %Output of Adaptive Filter
err(n) = mtlb_noisy(n) - output(n); %Error Computation
weights = weights + step_size * err(n) * input; %Weights Updating
end
yClean = err;
Kategorien
Mehr zu Adaptive Filters finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!