Borrar filtros
Borrar filtros

matlab code for digital filter design to remove gaussian noise from a speech signal ?

8 visualizaciones (últimos 30 días)
please give me matlab code for digital filter design to remove gaussian noise from a speech signal ? I have tried as following
Fs = 12000;
x =wavread('d:/assignment_1/speech_safety_-2db_snr.wav');
% plotting original sound signal
figure(1)
%subplot(2,1,1)
plot(x)
xlabel('time');ylabel('Amplitude');title('Original Sound Signal')
% Specifying the filter
%'Fp,Fst,Ap,Ast' (passband frequency, stopband frequency, passband ripple, stopband attenuation)
hlpf = fdesign.lowpass('Fp,Fst,Ap,Ast',4.0e3,5.5e3,01,50,Fs);
% Designing the filter
D = design(hlpf);
% Applying the filter
y = filter(D,x);
% Getting sound after sampling and Filteration
sound(y,Fs)
% plotting modified sound signal
% noise is removed after filteration
figure(2)
%subplot(2,1,2)
plot(y)
xlabel('time');ylabel('Amplitude');title('modified sound signal')

Respuestas (2)

UA
UA el 9 de Jul. de 2017
Don't use waveread. use audioread.

Wayne King
Wayne King el 2 de Feb. de 2014
So what is not working about the above code? You can probably push the passband frequency a bit lower without affect intelligibility, try 3000, so maybe a design like:
hlpf = fdesign.lowpass('Fp,Fst,Ap,Ast',3.0e3,3.5e3,0.5,50,Fs);
You have to understand that if you are talking about white Gaussian noise that has power at all frequencies so you cannot filter out that noise completely without removing the signal as well.

Categorías

Más información sobre Audio Processing Algorithm Design en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by