Matlab课程设计--基于MATLAB有噪声语音信号处理(4)

2019-08-29 23:46

[num,den]=lp2hp(b13,a13,wn13); [num13,den13]=bilinear(num,den,0.5); [h,w]=freqz(num13,den13); figure;

plot(w*21000*0.5/pi,abs(h));

legend(‘IIR高通滤波器’,’Location’,’NorthWest’); axis([0 11000 0 1.5]); grid;

程序结果如下图:

%======================IIR带通滤波器========================== Fp1=1200; Fp2=3000; Fs1=1000; Fs2=3200; Ft=8000;

wp1=tan(pi*Fp1/Ft); wp2=tan(pi*Fp2/Ft); ws1=tan(pi*Fs1/Ft); ws2=tan(pi*Fs2/Ft); w=wp1*wp2/ws2;

bw=wp2-wp1; %有效通带频率 wp=1;

ws=(wp1*wp2-w.^2)/(bw*w); [n12,wn12]=buttord(wp,ws,1,50,’s’); [b12,a12]=butter(n12,wn12,’s’);

[num2,den2]=lp2bp(b12,a12,sqrt(wp1*wp2),bw); [num12,den12]=bilinear(num2,den2,0.5); [h,w]=freqz(num12,den12); figure;

plot(w*8000*0.5/pi,abs(h)); axis([0 4500 0 1.5]);

legend(‘IIR带通滤波器’,’Location’,’NorthWest’); grid;

程序结果如下图:

附录(II)比较滤波前后语音信号的波形及频谱

% ======================双线性变换法======================= %*************************低通滤波器************************ [y,fs,nbits]=wavread (‘OriSound’); %IIR低通 n = length (y) ; %求出语音信号的长度 Noise=0.2*randn(n,2); %随机函数产生噪声 s=y+Noise; %语音信号加入噪声 S=fft(s); Ft=8000; Fp=1000; Fs=1200; wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft;

[n11,wn11]=buttord(wp,ws,1,50,’s’);%求低通滤波器的阶数和截止频率

[b11,a11]=butter(n11,wn11,’s’); %求S域的频率响应的参数

[num11,den11]=bilinear(b11,a11,0.5); %利用双线性变换实现频率响应S域到Z域的变换

z11=filter(num11,den11,s); sound(z11);

m11=fft(z11); %求滤波后的信号 figure; subplot(2,2,1); plot(abs(S),’g’);

title(‘滤波前信号的频谱’,’fontweight’,’bold’); axis([ 0 150000 0 4000]); grid; subplot(2,2,2); plot(abs(m11),’r’);

title(‘滤波后信号的频谱’,’fontweight’,’bold’); axis([ 0 150000 0 4000]); grid; subplot(2,2,3); plot(s);

title(‘滤波前信号的波形’,’fontweight’,’bold’); axis([95000 100000 -1 1]); grid; subplot(2,2,4); plot(z11);

title(‘滤波后的信号波形’,’fontweight’,’bold’); axis([95000 100000 -1 1]); grid;

程序结果如下图:

附II-1 双线性低通滤波器比较

%**********************高通滤波器***************************** [y,fs,nbits]=wavread (‘OriSound’); %IIR高通 n = length (y) ; %求出语音信号的长度 Noise=0.2*randn(n,2); %随机函数产生噪声 s=y+Noise; %语音信号加入噪声 S=fft(s); %傅里叶变换 Fp1=1200; Fs1=1000; Ft=8000;

wp1=tan(pi*Fp1/Ft); ws1=tan(pi*Fs1/Ft); wp=1;

ws=wp1*wp/ws1;


Matlab课程设计--基于MATLAB有噪声语音信号处理(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:钢铁工业废水废气的形成于处理2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: