语音信号处理王耀辉

loading 分享 2026-8-15 下载文档

武汉理工大学《MATLAB原理与应用》课程设计说明书

fr=4800; wp=(fp/fs)*2*pi; ws=(fr/fs)*2*pi; OmegaP=2*fs*tan(wp/2); OmegaS=2*fs*tan(ws/2); ap=1; as=20;

[N,Wn]=buttord(OmegaP,OmegaS,ap,as,'s'); %选择滤波器的最小阶数 [b,a]=butter(N,Wn,'high','s'); [bz,az]=bilinear(b,a,fs); [h,w]=freqz(bz,az); y1=filter(bz,az,y); subplot(223);

plot(t,y1);title('滤波后语音信号波形');xlabel('t/s'); y2=fft(y1,1024); subplot(224);

plot(f,20*log10(abs(y2(1:512))));title('滤波后语音信号频谱'); xlabel('f/Hz');ylabel('dB'); sound(y1,fs,bit);

滤波处理后的时域和频域波形:

23

武汉理工大学《MATLAB原理与应用》课程设计说明书

图 8双极性变换法高通滤波结果

比较上图的原语音频谱图和滤波处理后的语音频谱图,频率较低的语音信号被明显地衰减,高频的语音信号保留了下来,起到了高通滤波的效果。

2.2.4 带通滤波器

1 窗函数法

[y,fs,bit]=wavread('system.wav'); sound(y,fs,bit); f=fs*(0:511)/1024; t=(0:length(y)-1)/fs; subplot(221);

plot(t,y);title('原始语音信号波形');xlabel('t/s'); x1=fft(y,1024); subplot(222);

plot(f,20*log10(abs(x1(1:512))));title('原始语音信号频谱');

24

武汉理工大学《MATLAB原理与应用》课程设计说明书

xlabel('f/Hz');ylabel('dB'); fr=1200; fp=3000; wr=2*pi*fr;

Window=blackman(16);

b=fir1(15,[fr/(fs/2),fp/(fs/2)],Window); [h,w]=freqz(b,1); y1=filter(b,1,y); subplot(223);

plot(t,y1);title('滤波后语音信号波形');xlabel('t/s'); y2=fft(y1,1024); subplot(224);

plot(f,20*log10(abs(y2(1:512))));title('滤波后语音信号频谱'); xlabel('f/Hz');ylabel('dB'); sound(y1,fs,bit);

图 9 窗函数带通滤波结果

25

武汉理工大学《MATLAB原理与应用》课程设计说明书

比较上图的原语音频谱图和滤波处理后的语音频谱图,频率较低的语音信号和频率较高的语音信号被明显地衰减,中间频率的语音信号保留了下来,起到了带通滤波的效果。 2 双线性变换法

[y,fs,bit]=wavread('system.wav'); sound(y,fs,bit); f=fs*(0:511)/1024; t=(0:length(y)-1)/fs; subplot(221);

plot(t,y);title('原始语音信号波形');xlabel('t/s'); x1=fft(y,1024); subplot(222);

plot(f,20*log10(abs(x1(1:512))));title('原始语音信号频谱'); xlabel('f/Hz');ylabel('dB'); fp1=1200; fr1=1000; fp2=3000; fr2=3200; fp=[fp1 fp2]; fr=[fr1 fr2]; wp=(fp/fs)*2*pi; ws=(fr/fs)*2*pi; OmegaP=2*fs*tan(wp/2); OmegaS=2*fs*tan(ws/2); ap=1; as=9;

[N,Wn]=buttord(OmegaP,OmegaS,ap,as,'s'); %选择滤波器的最小阶数 [b,a]=butter(N,Wn,'s'); %[b1,a1]=lp2bp(b,a,sqrt())

26


语音信号处理王耀辉.doc 将本文的Word文档下载到电脑
搜索更多关于: 语音信号处理王耀辉 的文档
相关推荐
相关阅读