一、简介
本文介绍了利用matlab软件及其中的图形用户界面(GUI)实现驱动声卡采集语音信号和语音信号采集后的文档处理方法,并通过实例利用matlab分析了语音信号处理的过程。
二、源代码
%梳状滤波器:H1=1+a*z^(-R) <=> y[n]=x[n]+a*x[n-R] |a|<1
%全通滤波器:H2=(b+z^(-R))/(1+b*z^(-R)) |b|<1
clf;
clc;
a=0.5;%回声衰减系数
b=0.5;
R=10; %回声混响时间
%从幅频、相频特性比较两者不同。实际上人对相位的变化的敏感度低于幅度的变化
[h1,w]=freqz([1 zeros(1,R) a],1);
[h2,w]=freqz([b zeros(1,R) 1],[1 zeros(1,R) b]);
subplot(2,2,1);plot(w/pi,abs(h1));
xlabel('w/pi');ylabel('梳状滤波器|H|');
subplot(2,2,2);plot(w/pi,angle(h1));
xlabel('w/pi');ylabel('梳状滤波器Angle');
subplot(2,2,3);plot(w/pi,abs(h2),'r');
xlabel('w/pi');ylabel('全通滤波器|H|');ylim([0 2]);
subplot(2,2,4);plot(w/pi,angle(h2),'r');
xlabel('w/pi');ylabel('全通滤波器Angle');
%试听比较
R=3000;
[x,fs,a]=wavread('jsl.wav');
for i=1:3
n=input('试听选择:1.原声 2.梳状滤波器 3.全通滤波器');
if n==1
sound(x,fs);
三、运行结果
四、备注
2014a