成都理工大学2012届本科毕业设计(论文)
title('加噪语音信号频谱图'); xlabel('频率Hz'); ylabel('频率幅值');
附录7
[y,fs,bits]=wavread('wangqingtian.wav'); sound(y,fs) n=length(y) y_p=fft(y,n); f=fs*(0:n/2-1)/n; figure(1)
subplot(2,1,1); plot(y);
title('原始语音信号采样后的时域波形'); xlabel('时间轴') ylabel('幅值A') subplot(2,1,2);
plot(f,abs(y_p(1:n/2)));
title('原始语音信号采样后的频谱图'); xlabel('频率Hz'); ylabel('频率幅值'); L=length(y)
noise=0.1*randn(L,2); y_z=y+noise; sound(y_z,fs) n=length(y); y_zp=fft(y_z,n); f=fs*(0:n/2-1)/n; figure(2)
subplot(2,1,1); plot(y_z);
title('加噪语音信号时域波形'); xlabel('时间轴') ylabel('幅值A') subplot(2,1,2);
plot(f,abs(y_zp(1:n/2)));
title('加噪语音信号频谱图'); xlabel('频率Hz'); ylabel('频率幅值'); Ft=5000; Fp=1000; Fs=1200; wp=2*Fp/Ft; ws=2*Fs/Ft;
33
成都理工大学2012届本科毕业设计(论文)
rp=1; rs=50;
p=1-10.^(-rp/20); s=10.^(-rs/20); fpts=[wp ws]; mag=[1 0]; dev=[p s];
[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev); b21=fir1(n21,wn21,Kaiser(n21+1,beta)); [h,w]=freqz(b21,1); plot(w/pi,abs(h));
title('FIR低通滤波器'); x=fftfilt(b21,y_z); X=fft(x,n); figure(4);
subplot(2,2,1);plot(f,abs(y_zp(1:n/2))); title('滤波前信号的频谱');
subplot(2,2,2);plot(f,abs(X(1:n/2))); title('滤波后信号的频谱'); subplot(2,2,3);plot(y_z);
title('滤波前信号的时域波形') subplot(2,2,4);plot(x);
title('滤波后信号的时域波形') sound(x,fs,bits) 附录8
Ft=8000; Fp=1000; Fs=1200;
wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; fp=2*Ft*tan(wp/2); fs=2*Fs*tan(wp/2);
[n11,wn11]=buttord(wp,ws,1,50,'s'); %求低通滤波器的阶数和截止频率 [b11,a11]=butter(n11,wn11,'s'); %求S域的频率响应的参数
[num11,den11]=bilinear(b11,a11,0.5); %双线性变换实现S域到Z域的变换 [h,w]=freqz(num11,den11); %根据参数求出频率响应 plot(w*8000*0.5/pi,abs(h)); legend('用butter设计'); grid;
[y,fs,nbits]=wavread ('BYSJ.wav');
n = length (y) ; %求出语音信号的长度 noise=0.01*randn(n,2); %随机函数产生噪声 s=y+noise; %语音信号加入噪声 S=fft(s); %傅里叶变换
34
成都理工大学2012届本科毕业设计(论文)
z11=filter(num11,den11,s); sound(z11);
m11=fft(z11); %求滤波后的信号 subplot(2,2,1); plot(abs(S),'g');
title('滤波前信号的频谱'); grid;
subplot(2,2,2); plot(abs(m11),'r');
title('滤波后信号的频谱'); grid;
subplot(2,2,3); plot(s);
title('滤波前信号的波形'); grid;
subplot(2,2,4); plot(z11);
title('滤波后的信号波形');
35