4.3 利用滤波器处理加有噪声的音频波形(1) 利用窗函数法设计的低通滤波器处理加有噪声的音频波形程序参见附录二3-(1)利用窗函数法设计的低通滤波器处理加噪声的音频波形0.050.10.150.20.250.30.35-1-0.50.51时间(t)幅度(Y )加噪前音频语音波形的时域图01002003004005006007008009001000050100150200频率(f)幅度(F Y )加噪前音频波形的频域图图4-16 原始音频的时域与频域0.050.10.150.20.250.30.35-1-0.500.51时间(t)幅度(Y 1)400500600700800900100011001200050100150200频率(f)幅度(F Y 1)加噪声后音频波形的频域图图4-17 加噪声后音频的时域与频域波形0200400600800100012001400-140-120-100-80-60-40-2020频率/赫兹增益/分贝滤波器的增益响应图4-18 滤波器的增益响应0.050.10.150.20.250.30.35-1-0.50.51时间(t)幅度(s f )400500600700800900100011001200050100150200频率(f)幅度(F s f )滤波后音频波形的频域图图4-19 滤波后音频的时域与频域波形从参考程序及以上的四个图像中可以得到如下结论:①从原始信号波形的频域图可以看到其频率分量主要在500到900Hz 之间,噪声的频率分量主要集中在950Hz ,利用通带截频为800Hz 的低通滤波器可以滤除噪声。
对比图4-16和图4-19滤波前后的波形和频谱,可以看到波形得到了重现 ②滤波器的采样频率为22050Hz ,滤波器的阶数为266③滤波器的通带截频0.8π,阻带截频0.82π,过渡带宽0.02π④通带衰减为0.019dB ,阻带衰减约为53dB(2) 利用频率抽样法设计的高通滤波器处理加有噪声的音频波形程序参见附录二3-(2)00.050.10.150.20.250.30.350.4-1-0.50.51时间(t)幅度(Y )加噪前信号波形的时域图01002003004005006007008009001000050100150200频率(f)幅度(F Y )加噪前信号波形的频域图图4-20 加噪前信号的时域与频域波形00.050.10.150.20.250.30.350.4-1-0.500.51时间(t)幅度(Y 1)加噪声后信号波形的时域图01002003004005006007008009001000050100150200频率(f)幅度(F Y 1)加噪声后信号波形的频域图图4-21 加噪后信号的时域与频域波形00.10.20.30.40.50.60.70.80.91-100-80-60-40-2020归一化频率增益/分贝滤波器的增益响应图4-22 滤波器的增益响应00.050.10.150.20.250.30.350.4-1-0.50.51时间/秒幅度信号滤波后时域图0100200300400500600700800900050100150200频率/赫兹幅度信号滤波后频域图图4-23 信号滤波后的时域图和频域图从参考程序及以上的四个图像中可以得到如下结论:①从原始信号波形的频域图可以看到其频率分量主要在500到900Hz之间,噪声的频率分量主要集中在250Hz,利用通带截频为300Hz的低通滤波器可以滤除噪声。
对比图4-20和图4-23滤波前后的波形和频谱,可以看到波形得到了重现②滤波器的采样频率为22050Hz,滤波器的阶数为266③滤波器的通带截频0.4π,阻带截频0.3π,过渡带宽0.1π3.利用滤波器处理加有噪声的音频波形(1)利用窗函数法设计的低通滤波器处理加有噪声的音频的程序:f3=950;%所加噪声正弦函数的频率[Y,fs,bits]=wavread('E:\马世超.wav');%利用wavread产生音频的函数及采样频率L=length(Y);t=0:1/fs:(L-1)/fs;%定义时间的范围及步长y=0.005*sin(2*pi*f3*t); n1=floor(L/2);%所加噪声f1=(0:n1)*fs/L;Y=Y(:,1);sound(Y,fs);%输出加噪前音频Y1=y+Y';%给音频加噪声FY1=abs(fft(Y1,L));FY=abs(fft(Y,L));sound(Y1,fs);%输出加噪后的音频figure(1)subplot(211)plot(t(1:1000),Y(1:1000)); grid on;%加噪前音频的时域图xlabel('时间(t)');ylabel('幅度(Y)');title('加噪前音频语音波形的时域图');axis([0.05 0.35 -1 1]);subplot(212)plot(f1,FY(1:n1+1)); grid on;%加噪前音频的频域图xlabel('频率(f)');ylabel('幅度(FY)');title('加噪前音频波形的频域图');axis([400 1200 0 200]);figure(2)subplot(211)plot(t(1:1000),Y1(1:1000)); grid on;%加噪后音频的时域图xlabel('时间(t)');ylabel('幅度(Y1)');title('加噪声后音频波形的时域图');axis([0.05 0.35 -1 1]);subplot(212)plot(f1,FY1(1:n1+1)); grid on;%加噪后音频的频域图xlabel('频率(f)');ylabel('幅度(FY1)');title('加噪声后音频波形的频域图');axis([400 1200 0 200]);m=0.03; M=round(8/m);N=M-1;%定义滤波器的阶数b=fir1(N,0.6);figure(3)[h,f]=freqz(b,1,512);%滤波器的幅频特性图plot(f*fs/(2*pi),20*log10(abs(h)))%参数分别是频率与幅值xlabel('频率/赫兹');ylabel('增益/分贝');title('滤波器的增益响应'); figure(4)sf=filter(b,1,Y1);%使用filter函数对信号进行滤波Fsf=abs(fft(sf,L));subplot(211)plot(t(1:1000),sf(1:1000)); grid on;%滤波后音频的时域图xlabel('时间(t)');ylabel('幅度(sf)');title('滤波后音频波形的时域图');axis([0.05 0.35 -1 1]);subplot(212)plot(f1,Fsf(1:n1+1)); grid on;%滤波后音频的频域图xlabel('频率(f)');ylabel('幅度(Fsf)');title('滤波后音频波形的频域图');axis([400 1200 0 200]);sound(sf,fs);(2)利用频率抽样法设计的高通滤波器处理加有噪声的信号的程序:f3=250;%所加噪声正弦函数的频率[Y,fs,bits]=wavread('E:\马世超.wav');%利用wavread产生信号的函数及采样频率L=length(Y);t=0:1/fs:(L-1)/fs;%定义时间的范围及步长y=0.025*sin(2*pi*f3*t); n1=floor(L/2);%所加噪声f1=(0:n1)*fs/L;Y=Y(:,1);sound(Y,fs);%输出加噪前信号Y1=y+Y';%给信号加噪声FY1=abs(fft(Y1,L));FY=abs(fft(Y,L));sound(Y1,fs);%输出加噪后的信号figure(1)subplot(211)plot(t(1:1000),Y(1:1000)); grid on;%加噪前信号的时域图xlabel('时间(t)');ylabel('幅度(Y)');title('加噪前信号波形的时域图');subplot(212)plot(f1,FY(1:n1+1)); grid on;%加噪前信号的频域图xlabel('频率(f)');ylabel('幅度(FY)');title('加噪前信号波形的频域图');axis([0 1000 0 200]);figure(2)subplot(211)plot(t(1:1000),Y1(1:1000)); grid on;%加噪后信号的时域图xlabel('时间(t)');ylabel('幅度(Y1)');title('加噪声后信号波形的时域图');subplot(212)plot(f1,FY1(1:n1+1)); grid on;%加噪后信号的频域图xlabel('频率(f)');ylabel('幅度(FY1)');title('加噪声后信号波形的频域图');axis([0 1000 0 200]);M=32;%所需频率采样点个数Wp=0.6*pi;%通带截止频率m=0:M/2;%阻频带上的采样点Wm=2*pi*m./(M+1);%阻带截止频率mtr=ceil(Wp*(M+1)/(2*pi));%向正方向舍入ceil(3.5)=4;ceil(-3.2)=-3; Ad=[Wm>=Wp];Ad(mtr)=0.28;Hd=Ad.*exp(-j*0.5*M*Wm);%构造频域采样向量H(k)Hd=[Hd conj(fliplr(Hd(2:M/2+1)))];%fliplr函数实现矩阵的左右翻转conj是求复数的共轭h=real(ifft(Hd));%h(n)=IDFT[H(k)]w=linspace(0,pi,1000);%用于产生0,pi之间的1000点行矢量H=freqz(h,[1],w);%滤波器的幅频特性图figure(3)plot(w/pi,20*log10(abs(H)));grid on;%参数分别是归一化频率与幅值xlabel('归一化频率');ylabel('增益/分贝');title('滤波器的增益响应'); axis([0 1 -100 20]);figure(4)sf=filter(h,1,Y1);%使用filter函数对信号进行滤波subplot(211)plot(t,sf)%滤波后的信号图像xlabel('时间/秒');ylabel('幅度');title('信号滤波后时域图');axis([0 0.4 -1 1]);%限定图像坐标范围subplot(212)plot(f1,Fsf(1:n1+1)); grid on;%滤波后的信号频域图xlabel('频率/赫兹');ylabel('幅度');title('信号滤波后频域图');axis([0 1000 0 200]);。