当前栏目:

语音信号处理-实验二 语音信号的时域分析

时间:2011-07-20浏览:288设置

实验二 语音信号的时域分析(4课时)

一、实验目的

通过Matlab编程实现语音信号的时域波形图,并观察清音、浊音信号的时域特点。掌握语音信号的时域分析技术,如短时平均能量、短时平均幅度、短时平均过零率分析、短时平均自相关、短时平均幅度差。

二、实验原理

语音信号的时域分析就是分析和提取语音信号的时域参数。时域分析通常用于最基本的参数分析及应用,此方法表示语音信号比较直观,物理意义明确,实现起来比较简单,运算量少。

三、实验过程

1)观察浊音信号波形图

2)观察清音信号波形图

3)计算语音信号的短时能量、短时平均幅度并画图

4)计算信号的短时平均过零率并画图

  

5)计算语音信号的短时自相关函数并画图

  

6)计算语音信号的短时平均幅度差函数并画图

四、实验结果

  

实验二程序

%短时能量

[x,fs,bits]=wavread('c:\WINDOWS\Media\chimes.wav');

x=x(:,1);

x=x';

len=length(x);

N=256;

M=128;

Fn=fix((len-N)/M+1);

y=[];

for i=1:Fn

down=1+(i-1)*M;

up=down+N-1;

temp=x(down:up);

y=[y;temp];

end

% K=100;

E=[];

for i=1:Fn

temp=sum(y(i,:).^2,2);

E=[E,temp];

end

plot(E)

  

  

%短时平均幅度差

[x,fs,bits]=wavread('c:\WINDOWS\Media\chimes.wav');

x=x(:,1);

x=x';

len=length(x);

N=256;

M=128;

Fn=fix((len-N)/M+1);

y=[];

for i=1:Fn

down=1+(i-1)*M;

up=down+N-1;

temp=x(down:up);

y=[y;temp];

end

% K=100;

M=[];

for i=1:Fn

temp=sum(abs(y(i,:)),2)

M=[M,temp];

end

plot(M)

  

  

%短时过零率

[x,fs,bits]=wavread('c:\WINDOWS\Media\chimes.wav');

x=x(:,1);

x=x';

len=length(x);

N=256;

M=128;

Fn=fix((len-N)/M+1);

y=[];

for i=1:Fn

down=1+(i-1)*M;

up=down+N-1;

temp=x(down:up);

y=[y;temp];

end

% K=100;

z=[];

for i=1:Fn

temp=sum(abs(sign(y(i,2:N))-sign(y(i,1:N-1))),2);

z=[z,temp];

end

plot(z)

  

  

%短时自相关函数

[x,fs,bits]=wavread('c:\WINDOWS\Media\chimes.wav');

x=x(:,1);

x=x';

len=length(x);

N=256;

M=128;

Fn=fix((len-N)/M+1);

y=[];

for i=1:Fn

down=1+(i-1)*M;

up=down+N-1;

temp=x(down:up);

y=[y;temp];

end

K=100;

for i=1:Fn

for j=0:K

R(i,j+1)=sum(y(i,1:N-j).*y(i,j+1:N),2);

end

end

plot(R(111,:));

  

%短时平均幅度差

[x,fs,bits]=wavread('c:\WINDOWS\Media\chimes.wav');

x=x(:,1);

x=x';

len=length(x);

N=256;

M=128;

Fn=fix((len-N)/M+1);

y=[];

for i=1:Fn

down=1+(i-1)*M;

up=down+N-1;

temp=x(down:up);

y=[y;temp];

end

% K=100;

for i=1:Fn

for j=0:K

F(i,j+1)=sum(abs(y(i,1:N-j)-y(i,j+1:N)),2);

end

end

plot(F(111,:));

  

  

  


同栏目信息

其它相关信息