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);