当前位置:首页 > 数字信号滤波器处理
切比雪夫,bartlett窗滤波器设计
Bartlett窗高通200-20幅度(dB)-40-60-80-10000.10.20.30.40.50.6频率(HZ)0.70.80.91
图3.11 Bartlett窗高通滤波器图
3.2.3.3 语音处理——Bartlett 窗带通通滤波器
(1)添加噪声信号noise0=0.05*cos(2*pi*100*t/22050),MATLAB程序如下。噪声信号的时域及幅频图如图3.12所示。 %低频噪声 t=0:length(x)-1;
noise0=0.05*cos(2*pi*100*t/22050); %低频噪声时域波形显示 figure(2); subplot(2,1,1) plot(noise0)
title('噪声信号波形'); %回放噪音
sound(noise,FS,bits); %噪声信号频谱显示 noise1=fft(noise0,1200); subplot(2,1,2)
plot(f(1:600),abs(noise1(1:600))); title('噪声信号频谱');
21
切比雪夫,bartlett窗滤波器设计
噪声信号波形0.050-0.0500.511.522.5x 104噪声信号频谱30201000100020003000400050006000700080009000
图3.12 噪声信号的时域及频谱图
(2)设计Bartlett 窗带通滤波器,MATLAB程序如下。滤波器图如图3.13所示。
wlp=600*2*pi/FS,wup=6000*2*pi/FS; wls=400*2*pi/FS;wus=7000*2*pi/FS; Bt=wlp-wls;
N0=ceil(11*pi/Bt); N=N0+mod(N0+1,2); wc=[(wls+wlp)/2/pi,(wus+wup)/2/pi]; [bz,az]=fir1(N-1,wc,bartlett(N)); [h,w]=freqz(bz,az); plot(w/pi,20*log(abs(h)));
200-20-40-60-80-100-120-14000.10.20.30.40.50.60.70.80.91
图3.13 Bartlett窗带通滤波器图
22
切比雪夫,bartlett窗滤波器设计
4 程序调试及运行结果
4.1 切比雪夫低通数字滤波器
将语音信号和噪音信号叠加可以得到含噪声信号,分析其频谱特性之后用切比雪夫低通滤波器进行滤波。MATLAB程序如下,仿真处理如图4.1所示。 %语音信号采集,时域波形图和频谱显示 Fs=22050;
[x,FS,bits]=wavread('C:\\WINDOWS\\Media\\ding.wav'); x=x(:,1); figure(1); subplot(2,1,1); plot(x);
title('语音信号时域波形图') y=fft(x,3260);
f=(FS/1630)*[1:1630]; subplot(2,1,2);
plot(f(1:1630),abs(y(1:1630))); title('语音信号频谱图'); %回放语音 sound(x,FS,bits);
%产生噪声信号并加到语音信号 t=0:length(x)-1;
noise=0.05*cos(2*pi*10000*t/22050); noise0=0.05*cos(2*pi*10000*t/22050000); figure(2); subplot(2,1,1) plot(noise0)
23
切比雪夫,bartlett窗滤波器设计
title('噪声信号波形');
noise1=fft(noise,1200); subplot(2,1,2)
plot(f(1:600),abs(noise1(1:600))); title('噪声信号频谱'); x1=x+noise'; %回放噪音 sound(noise,FS,bits); %回放加入噪声后的语音 sound(x1,FS,bits);
%加入噪声后的信号波形和频谱显示 y1=fft(x1,1200); figure(3);
subplot(2,1,1);plot(x1); title('加入噪声后的信号波形'); subplot(2,1,2);
plot(f(1:600),abs(y1(1:600))); title('加入噪声后的信号频谱'); %低通滤波 Rp=1;As=10; wp=2*pi*3000; ws=2*pi*3300;
[N,w1]=cheb1ord(wp,ws,Rp,As,'s'); [B,A]=cheby1(N,Rp,w1,'s'); fk=0:3300/512:3300;wk=2*pi*fk; Hk=freqs(B,A,wk);
plot(fk/1000,20*log10(abs(Hk))); grid on;
xlabel('频率(kHZ)');ylabel('幅度(dB)');
24
共分享92篇相关文档