gusucode.com > MATLAB下的语音信号处理,采用是巴特沃斯低通滤波器源码程序 > Filter1.m
function[]=Filter1(); [x,fs,bits]=wavread('bluetooth_input.wav');%播放原始信号 N=length(x);%返回采样点数 t=(1:N)/fs; df=fs/N;%采样间隔 n1=1:N/2; f=(n1-1)*df;%频带宽度 y1=awgn(x,45);%加入高斯白噪声,信噪比为45 %*****************************布拉克曼滤波器设计************************* Window=blackman(35); %长度为35的布拉克曼窗Window b=fir1(34,0.1,Window);%产生低通布拉克曼滤波器 H=freqz(b,1,512); figure(6); plot(abs(H)); title('布拉克曼滤波器的频率响应'); %********************************************************************** ys=fftfilt(b,y1);%信号送入滤波器滤波,ys为输出 fftwave=fft(ys);%将滤波后的语音信号进行快速傅立叶变换 figure(7); plot(f,20*log10(abs(fftwave(n1)))),grid on; title('布拉克曼滤波器滤波后信号的频谱图'); xlabel('频率/Hz'); ylabel('幅值/db'); grid; wavwrite(ys,fs,'bluetooth_input.wav');%把滤波后的信号写入d:\cc1.wav中 [g,fs,bits]=wavread('bluetooth_input.wav');%语音回放 wavplay(g,fs);