z1=wavread('C:zhouzheng.wav'); plot(z1);01234567x 105-0.4-0.3-0.2-0.100.10.20.30.40.5figure(1);subplot(2,1,2); y1=z1(1:8192); Y1=fft(y1); plot(abs(Y1));title('原始时域波形图');xlabel('时间t/s');ylabel('幅值/A'); figure(2);y1=fft(z1,8000);f1=8000*(0:7999)/8000; subplot(2,1,2); plot(f1,abs(y1));title('原始频域波形图');xlabel('频率 f/Hz');ylabel('幅值/db') 原语音频域和时域波形图如下:10002000300040005000600070008000900005101520原始时域波形图时间t/s幅值/A1000200030004000500060007000800005101520原始频域波形图频率 f/Hz幅值/d b②对语音信号进行频谱分析,在MATLAB 中,可以利用函数fft 对信号进行快速付立叶变换,得到信号的频谱特性 z1=wavread('C:zhouzheng.wav'); y1=z1(1:8192); Y1=fft(y1); n=0:8191; plot(n,Y1);图像输出如图2:0100020003000400050006000700080009000-20-15-10-5510153. 设计数字滤波器和对信号滤波(1)窗函数设计低通滤波器 程序设计如下: clear;close all[z1,fs,bits]=wavread('C:zhouzheng.wav') y1=z1(1:8192); Y1=fft(y1);fp=1000;fc=1200;As=100;Ap=1;Fs=8000; wc=2*pi*fc/Fs; wp=2*pi*fp/Fs; wdel=wc-wp;beta=0.112*(As-8.7);N=ceil((As-8)/2.285/wdel); wn= kaiser(N+1,beta); ws=(wp+wc)/2/pi;b=fir1(N,ws,wn); figure(1); freqz(b,1);x=fftfilt(b,z1); X=fft(x,8192); figure(2);subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]); title('滤波前信号频谱');subplot(2,2,2);plot(abs(X));axis([0,1000,0,1.0]); title('滤波后信号频谱'); subplot(2,2,3);plot(z1); title('滤波前信号波形'); subplot(2,2,4);plot(x); title('滤波前信号波形'); sound(x,fs,bits);图形分析如下:0.10.20.30.40.50.60.70.80.91-8000-6000-4000-2000Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )00.10.20.30.40.50.60.70.80.91-200-100100Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )050010000.51滤波前信号频谱050010000.51滤波后信号频谱02468x 105-0.50.5滤波前信号波形02468x 105-0.4-0.200.20.4滤波前信号波形2)窗函数设计高通滤波器程序设计如下: clear;close all[z1,fs,bits]=wavread('C:zhouzheng.wav') y1=z1(1:8192); Y1=fft(y1);fp=2800;fc=3000;As=100;Ap=1;Fs=8000; wc=2*pi*fc/Fs; wp=2*pi*fp/Fs; wdel=wc-wp;beta=0.112*(As-8.7);N=ceil((As-8)/2.285/wdel); wn= kaiser(N,beta); ws=(wp+wc)/2/pi;b=fir1(N-1,ws,'high',wn); figure(1); freqz(b,1);x=fftfilt(b,z1); X=fft(x,8192); figure(2);subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]); title('滤波前信号频谱');subplot(2,2,2);plot(abs(X));axis([0,1000,0,1.0]); title('滤波后信号频谱'); subplot(2,2,3);plot(z1);title('滤波前信号波形'); subplot(2,2,4);plot(x); title('滤波前信号波形'); sound(x,fs,bits);图形分析如下:0.10.20.30.40.50.60.70.80.91Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )00.10.20.30.40.50.60.70.80.91-200-100100Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )050010000.51滤波前信号频谱050010000.51滤波后信号频谱02468x 105-0.50.5滤波前信号波形02468x 105-4-2024-4滤波前信号波形(3)窗函数设计带通滤波器程序设计如下:clear;close all[z1,fs,bits]=wavread('C:zhouzheng.wav') y1=z1(1:8192); Y1=fft(y1);fp1=1200 ;fp2=3000 ;fc1=1000 ;fc2=3200 ;As=100 ;Ap=1 ;Fs=8000 ; wp1=2*pi*fp1/Fs; wc1=2*pi*fc1/Fs; wp2=2*pi*fp2/Fs; wc2=2*pi*fc2/Fs; wdel=wp1-wc1;beta=0.112*(As-8.7);N=ceil((As-8)/2.285/wdel);ws =[(wp1+wc1)/2/pi,(wp2+wc2)/2/pi]; wn= kaiser(N+1,beta); b=fir1(N,ws,wn); figure(1); freqz(b,1)x=fftfilt(b,z1); X=fft(x,8192); figure(2);subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]); title('滤波前信号频谱');subplot(2,2,2);plot(abs(X));axis([0,2000,0,0.0003]); title('滤波后信号频谱')subplot(2,2,3);plot(z1); title('滤波前信号波形'); subplot(2,2,4);plot(x); title('滤波前信号波形'); sound(x,fs,bits);图形分析如下:0.10.20.30.40.50.60.70.80.91-15000-10000-500005000Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )00.10.20.30.40.50.60.70.80.91-200-100100Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )050010000.51滤波前信号频谱050010001500200012x 10-4滤波后信号频谱02468x 105-0.50.5滤波前信号波形02468x 105-0.2-0.100.10.2滤波前信号波形(4)双线性变换法设计低通滤波器①选用butter 程序设计如下: clear;close all[z1,fs,bits]=wavread('C:zhouzheng.wav') y1=z1(1:8192); Y1=fft(y1);fp=1000;fc=1200;As=100;Ap=1;Fs=8000; wc=2*fc/Fs; wp=2*fp/Fs;[N,ws]=buttord(wc,wp,Ap,As); [b,a]=butter(N,ws); figure(1);freqz(b,a,512,Fs); x=filter(b,a,z1); X=fft(x,8192); figure(2);subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]); title('滤波前信号频谱');subplot(2,2,2);plot(abs(X));axis([0,1000,0,1.0]); title('滤波后信号频谱'); subplot(2,2,3);plot(z1); title('滤波前信号波形'); subplot(2,2,4);plot(x);title('滤波前信号波形'); sound(x,fs,bits);图形分析:5001000150020002500300035004000x 104Frequency (Hz)P h a s e (d e g r e e s )05001000150020002500300035004000-1000-5000500Frequency (Hz)M a g n i t u d e (d B )050010000.51滤波前信号频谱50010000.51滤波后信号频谱02468x 105-0.500.5滤波前信号波形02468x 105-55x 10300滤波前信号波形②选用cheby1程序设计如下:clear;close all[z1,fs,bits]=wavread('C:zhouzheng.wav')y1=z1(1:8192);Y1=fft(y1);fp=1000;fc=1200;As=100;Ap=1; ;Fs=8000;wc=2*fc/Fs;wb=2*fp/Fs;[n,wp]=cheb1ord(wc,wb,Ap,As);[b,a]=cheby1(n,Ap,wp);figure(1);freqz(b,a);x=filter(b,a,z1);X=fft(x,8192);figure(2);subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]); title('滤波前信号频谱');subplot(2,2,2);plot(abs(X));axis([0,4000,0,0.03]); title('滤波后信号频谱');subplot(2,2,3);plot(z1);title('滤波前信号波形');subplot(2,2,4);plot(x);title('滤波前信号波形');sound(x,fs,bits);图形分析如下:050010000.51滤波前信号频谱010002000300040000.010.020.03滤波后信号频谱02468x 105-0.50.5滤波前信号波形02468x 105-0.4-0.200.20.4滤波前信号波形050010000.51滤波前信号频谱010002000300040000.010.020.03滤波后信号频谱02468x 105-0.50.5滤波前信号波形02468x 105-0.4-0.200.20.4滤波前信号波形(5),双线性变换法设计高通滤波器①选用butter程序设计如下:clear;close all[z1,fs,bits]=wavread('C:zhouzheng.wav')y1=z1(1:8192);Y1=fft(y1);fc=2800 ;fp=3000 ;As=100;Ap=1;Fs=8000;wc=2*fc/Fs; wp=2*fp/Fs;[N,ws]=buttord(wc,wp,Ap,As);[b,a]=butter(N,ws,'high');figure(1);freqz(b,a,512,Fs);x=filter(b,a,z1);X=fft(x,8192);figure(2);subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]); title('滤波前信号频谱');subplot(2,2,2);plot(abs(X));axis([0,1000,0,1.0]); title('滤波后信号频谱');subplot(2,2,3);plot(z1);title('滤波前信号波形');subplot(2,2,4);plot(x);title('滤波前信号波形');sound(x,fs,bits);图形分析如下:05001000150020002500300035004000-5000050001000015000Frequency (Hz)P h a s e (d e g r e e s )05001000150020002500300035004000-800-600-400-200Frequency (Hz)M a g n i t u d e (d B )050010000.51滤波前信号频谱050010000.51滤波后信号频谱02468x 105-0.50.5滤波前信号波形02468x 105-11301滤波前信号波形②选用cheby1程序设计如下:clear;close all[z1,fs,bits]=wavread('C:zhouzheng.wav')y1=z1(1:8192);Y1=fft(y1);fc=2800 ;fp=3000 ;As=100;Ap=1; Fs=8000;wc=2*fc/Fs;wb=2*fp/Fs;[n,wp]=cheb1ord(wc,wb,Ap,As);[b,a]=cheby1(n,Ap,wp,'high');figure(1);freqz(b,a);x=filter(b,a,z1);X=fft(x,8192);figure(2);subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]); title('滤波前信号频谱');subplot(2,2,2);plot(abs(X));axis([0,4000,0,0.03]); title('滤波后信号频谱');subplot(2,2,3);plot(z1);title('滤波前信号波形');subplot(2,2,4);plot(x);title('滤波前信号波形');sound(x,fs,bits);图形分析如下:0.10.20.30.40.50.60.70.80.91-2000-1500-1000-500Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )00.10.20.30.40.50.60.70.80.91-600-400-200Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )050010000.51滤波前信号频谱010002000300040000.010.020.03滤波后信号频谱02468x 105-0.50.5滤波前信号波形02468x 105-4-2024-4滤波前信号波形(6),双线性变换法设计带通滤波器①选用butter程序设计如下clear;close all[z1,fs,bits]=wavread('C:zhouzheng.wav')y1=z1(1:8192);Y1=fft(y1);fp1=1200 ;fp2=3000; fc1=1000 ;fc2=3200 ;As=100;Ap=1; Fs=8000; wc=[2*fc1/Fs,2* fc2/Fs];wp=[2*fp1/Fs,2*fp2/Fs];[N,ws]=buttord(wc,wp,Ap,As);[b,a]=butter(N,ws,'stop');figure(1);freqz(b,a,512,Fs);x=filter(b,a,z1);X=fft(x,8192);figure(2);subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]);title('滤波前信号频谱');subplot(2,2,2);plot(abs(X));axis([0,1000,0,1.0]);title('滤波后信号频谱');subplot(2,2,3);plot(z1);title('滤波前信号波形');subplot(2,2,4);plot(x);title('滤波前信号波形');sound(x,fs,bits);图形分析如下:05001000150020002500300035004000-6000-4000-2000Frequency (Hz)P h a s e (d e g r e e s )05001000150020002500300035004000-400-200200Frequency (Hz)M a g n i t u d e (d B )050010000.51滤波前信号频谱050010000.51滤波后信号频谱02468x 105-0.50.5滤波前信号波形02468x 105-2-1012x 10306滤波前信号波形②选用cheby1程序设计如下:clear;close all[z1,fs,bits]=wavread('C:zhouzheng.wav')y1=z1(1:8192);Y1=fft(y1);fp1=1200 ;fp2=3000; fc1=1000 ;fc2=3200 ;As=100;Ap=1; Fs=8000; wc=[2*fc1/Fs,2* fc2/Fs];wb=[2*fp1/Fs,2*fp2/Fs];[n,wp]=cheb1ord(wc,wb,Ap,As);[b,a]=cheby1(n,Ap,wp,'stop');figure(1);freqz(b,a);x=filter(b,a,z1);X=fft(x,8192);figure(2);subplot(2,2,1);plot(abs(Y1));axis([0,1000,0,1.0]);title('滤波前信号频谱');subplot(2,2,2);plot(abs(X));axis([0,4000,0,0.03]);title('滤波后信号频谱');subplot(2,2,3);plot(z1);title('滤波前信号波形');subplot(2,2,4);plot(x);title('滤波前信号波形');sound(x,fs,bits);图形分析如下:00.10.20.30.40.50.60.70.80.91-3000-2000-1000Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )00.10.20.30.40.50.60.70.80.91-600-400-200Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )050010000.51滤波前信号频谱010002000300040000.010.020.03滤波后信号频谱02468x 105-0.50.5滤波前信号波形02468x 105-0.4-0.200.20.4滤波前信号波形。