Filter löschen
Filter löschen

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

8 Ansichten (letzte 30 Tage)
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')

Antworten (2)

UA
UA am 9 Jul. 2017
Don't use waveread. use audioread.

Wayne King
Wayne King am 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.

Kategorien

Mehr zu Audio Processing Algorithm Design finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by