필터 지우기
필터 지우기

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

조회 수: 8 (최근 30일)
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')

답변 (2개)

UA
UA 2017년 7월 9일
Don't use waveread. use audioread.

Wayne King
Wayne King 2014년 2월 2일
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.

카테고리

Help CenterFile Exchange에서 Audio Processing Algorithm Design에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by