Azzera filtri
Azzera filtri

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

8 visualizzazioni (ultimi 30 giorni)
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')

Risposte (2)

UA
UA il 9 Lug 2017
Don't use waveread. use audioread.

Wayne King
Wayne King il 2 Feb 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.

Categorie

Scopri di più su Audio Processing Algorithm Design in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by