语音信号的数字滤波处理数字信号课程设计(编辑修改稿)内容摘要:

log(abs(Hk)))。 xlabel(39。 频率( Hz) 39。 )。 ylabel(39。 幅度( dB)39。 ) axis([0,160,5]) 给被污染的信号加带通数字滤波器 MATLAB 程序: wp=2*pi*[100,500]。 ws=2*pi*[10,800]。 Rp=1。 As=20。 [N1,wp1]=cheb1ord(wp,ws,Rp,As,39。 s39。 )。 [B,A]=cheby1(N1,Rp,wp1,39。 s39。 )。 fk=0:2020/512:2020。 wk=2*pi*fk。 Hk=freqs(B,A,wk)。 figure(4)。 plot(fk/1000,20*log(abs(Hk)))。 xlabel(39。 频率( Hz) 39。 )。 ylabel(39。 幅度( dB)39。 ) title(39。 带通滤波器的频谱分析 39。 )。 axis([0,160,5])。 [Bz,Az]=impinvar(B,A,Fs)。 M=filter(Bz,Az,y)。 sound(M)。 %回放污染语音 figure(5)。 subplot(2,1,1)。 plot(M)。 title(39。 滤波后被污染的信号波形 39。 )。 M1=fft(M,2020)。 subplot(2,1,2)。 plot(f(1:1000),abs(M1(1:1000)))。 title(39。 滤波后被污染的信号频谱 39。 )。 一语音信号的数字滤波处理 第 23 页 运行结果: 一语音信号的数字滤波处理 第 24 页 设计数字高通滤波器 设计指标: 先将高通滤波器的指标装换为对应的低通数字滤波气的指标,设计相应的低通系统函数,对低通系统函数进行频率变换,得到高通数字滤波器,本次取高通滤波器通带边界频率 350Hz,阻带边界截止频率150Hz MATLAB 程序: wp=2*pi*350。 ws=2*pi*150。 rp=3。 rs=10。 fs=1000。 [n,wc]=cheb2ord(wp,ws,rp,rs,39。 s39。 )。 [z,p,k]=cheb2ap(n,rs)。 [a,b,c,d]=zp2ss(z,p,k)。 [at1,bt1,ct1,dt1]=lp2hp(a,b,c,d,wc)。 [at2,bt2,ct2,dt2]=bilinear(at1,bt1,ct1,dt1,fs)。 %双线性变换法 [num,den]=ss2tf(at2,bt2,ct2,dt2)。 一语音信号的数字滤波处理 第 25 页 figure(4)。 freqz(num,den,128,fs)。 axis([150,400,60,0]) grid on。 给被污染的信号加高通数字滤波器 wp=2*pi*350。 ws=2*pi*150。 rp=3。 rs=10。 fs=1000。 [n,wc]=cheb2ord(wp,ws,rp,rs,39。 s39。 )。 [z,p,k]=cheb2ap(n,rs)。 [a,b,c,d]=zp2ss(z,p,k)。 [at1,bt1,ct1,dt1]=lp2hp(a,b,c,d,wc)。 [at2,bt2,ct2,dt2]=bilinear(at1,bt1,ct1,dt1,fs)。 %双线性变换法 [num,den]=ss2tf(at2,bt2,ct2,dt2)。 figure(4)。 freqz(num,den,128,fs)。 axis([150,400,60,0]) grid on。 M=filter(num,den,y)。 sound(M,FS,bits)。 %回放污染语音 figure(5)。 subplot(2,1,1)。 plot(M)。 title(39。 滤波后被污染的信号波形 39。 )。 M1=fft(M,2020)。 subplot(2,1,2)。 plot(f(1:1000),abs(M1(1:1000)))。 axis([0,1400,0,150]) title(39。 滤波后被污染的信号频谱 39。 )。 程序运行结果: 一语音信号的数字滤波处理 第 26 页 一语音信号的数字滤波处理 第 27 页 采用直接法设计 FIR 数字滤波器 设计 Blackman 窗 低通: 设计指标: 选取低通滤波器指标,通带边界截止频率 500Hz,阻带边界截止频率 1000Hz Matlab 程序: fp=500。 fs=1000。 wp=2*pi*fp/FS。 ws=2*pi*fs/FS。 Bt=wswp。 N0=ceil(11*pi/Bt)。 N=N0+mod(N0+1,2)。 wc=(wp+ws)/2/pi。 [bz,az]=fir1(N1,wc,blackman(N))。 [h,w]=freqz(bz,az)。 figure(4)。 subplot(2,1,1)。 plot([bz,az])。 axis([0,40,])。 title(39。 h(n)波形 39。 )。 subplot(2,1,2)。 plot(w/pi*FS,20*log(abs(h)))。 axis([0,3500,400,2])。 title(39。 低通 损耗函数曲线 39。 )。 给被污染的信号加窗: fp=500。 fs=1000。 wp=2*pi*fp/FS。 ws=2*pi*fs/FS。 Bt=wswp。 N0=ceil(11*pi/Bt)。 N=N0+mod(N0+1,2)。 wc=(wp+ws)/2/pi。 [bz,az]=fir1(N1,wc,blackman(N))。 [h,w]=freqz(bz,az)。 一语音信号的数字滤波处理 第 28 页 figure(4)。 subplot(2,1,1)。 plot([bz,az])。 axis([0,40,])。 title(39。 h(n)波形 39。 )。 subplot(2,1,2)。 plot(w/pi*FS,20*log(abs(h)))。 axis([0,3500,400,2])。 title(39。 低通 损耗函数曲线 39。 )。 M=filter(bz,az,y)。 sound(M,FS,bits)。 %播放加窗后语音 figure(5)。 subplot(2,1,1)。 plot(M)。 title(39。 滤波后被污染的信号波形 39。 )。 M1=fft(M,2020)。 subplot(2,1,2)。 plot(f(1:500),abs(M1(1:500)))。 title(39。 滤波后被污染的信号频谱 39。 )。 程序运行结果: 一语音信号的数字滤波处理 第 29 页 一语音信号的数字滤波处理 第 30 页 设计 Blackman 窗 带通 设计指标: 选取带 通指标参数:通带截止频率 100Hz, 500Hz,阻带截止频率 30Hz,800Hz Matlab 程序: wlp=100*2*pi/FS。 wup=500*2*pi/FS。 wls=30*2*pi/FS。 wus=1500*2*pi/FS。 Bt=wlpwls。 N0=ceil(11*pi/Bt)。 N=N0+mod(N0+1,2)。 wc=[(wls+wlp)/2/pi,(wus+wup)/2/pi]。 [bz,az]=fir1(N1,wc,blackman(N))。 [h,w]=freqz(bz,az)。 figure(4)。 subplot(2,1,1)。 plot([bz,az])。 axis([100,200,])。 title(39。 h(n)波形 39。 )。 subplot(2,1,2)。 plot(w/pi*FS,20*log(abs(h)))。 title(39。 带通 损耗函数曲线 39。 )。 给被污染的信号加窗: wlp=100*2*pi/FS。 wup=500*2*pi/FS。 wls=30*2*pi/FS。 wus=1500*2*pi/FS。 Bt=wlpwls。 N0=ceil(11*pi/Bt)。 N=N0+mod(N0+1,2)。 wc=[(wls+wlp)/2/pi,(wus+wup)/2/pi]。 [bz,az]=fir1(N1,wc,blackman(N))。 [h,w]=freqz(bz,az)。 figure(4)。 subplot(2,1,1)。 plot([bz,az])。 axis([100,200,])。 title(39。 h(n)波形 39。 )。 subplot(2,1,2)。 plot(w/pi*FS,20*log(abs(h)))。 title(39。 带通 损耗函数曲线 39。 )。 %axis([0,1,600,50])。 一语音信号的数字滤波处理 第 31 页 M=filter(bz,az,y)。 sound(M,FS,bits)。 %播放加窗后语音 figure(5)。 subplot(2,1,1)。 plot(M)。 title(39。 滤波后被污染的信号波形 39。 )。 M1=fft(M,2020)。 subplot(2,1,2)。 plot(f(1:1000),abs(M1(1:1000)))。 axis([0,2020,0,150])。 title(39。 滤波后被污染的信号频谱 39。 )。 程序运行结果: 一语音信号的数字滤波处理 第 32 页 一语音信号的数字滤波处理 第 33 页 设计 Blackman 窗 高通: 设计指标: 选取带通指标参数:通带截止频率 600Hz 阻带截止频率 400Hz Matlab 程序: [h,w]=freqz(bz,az)。 figure(4)。 subplot(2,1,1)。 plot([bz,az])。 axis([0,70,1])。 title(39。 h(n)波形 39。 )。 subplot(2,1,2)。 plot(w/pi*FS,20*log(abs(h)))。 axis([300,1400,300,100])。 title(39。 高通 损耗函 fp=600。 fs=400。 wp=2*pi*fp/FS。 ws=2*pi*fs/FS。 Bt=wpws。 N0=ceil(11*pi/Bt)。 N=N0+mod(N0+1,2)。 wc=(wp+ws)/2/pi。 [bz,az]=fir1(N1,wc,39。 high39。 ,blackman(N))。 数曲线 39。 )。 给被污染的信号加窗: fp=600。 fs=400。 wp=2*pi*fp/FS。 ws=2*pi*fs/FS。 Bt=wpws。 N0=ceil(11*pi/Bt)。 N=N0+mod(N0+1,2)。 wc=(wp+ws)/2/pi。 [bz,az]=fir1(N1,wc,39。 high39。 ,blackman(N))。 [h,w]=freqz(bz,az)。 figure(4)。 subplot(2,1,1)。 一语。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。