基于MATLAB的语音信号时域特征分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

,在矩形窗

+

k w m k

)()]

开始录音

1)短时能量

(1)加矩形窗

a=wavread('C:\Users\k01\WEI.wav'); subplot(6,1,1),plot(a);

N=32;

for i=2:6

h=linspace(1,1,2.^(i-2)*N);

En=conv(h,a.*a);

subplot(6,1,i),plot(En);

if(i==2) legend('N=32');

elseif(i==3) legend('N=64');

elseif(i==4) legend('N=128');

elseif(i==5) legend('N=256');

elseif(i==6) legend('N=512');

end

end

00.51 1.52 2.53 3.5

4x 105

-0.200.20

0.51 1.52 2.53 3.54x 105012 N=320

0.51 1.52 2.53 3.54x 105024 N=640

0.51 1.52 2.53 3.54x 10505 N=1280

0.51 1.52 2.53 3.54x 1050510 N=25600.51 1.52 2.53 3.54

x 105

01020 N=512

(2)加汉明窗

a=wavread('C:\Users\k01\WEI.wav');

subplot(6,1,1),plot(a);

N=32;

for i=2:6

h=hanning(2.^(i-2)*N);%形成一个汉明窗,长度为2.^(i-2)*N En=conv(h,a.*a);% 求短时能量函数En

subplot(6,1,i),plot(En);

if(i==2) legend('N=32');

elseif(i==3) legend('N=64');

elseif(i==4) legend('N=128');

elseif(i==5) legend('N=256');

elseif(i==6) legend('N=512');

end

end

00.51 1.52 2.53 3.5

4x 105

-0.200.20

0.51 1.52 2.53 3.54x 10500.51 N=320

0.51 1.52 2.53 3.54x 105012 N=640

0.51 1.52 2.53 3.54x 105024 N=1280

0.51 1.52 2.53 3.54x 10505 N=25600.51 1.52 2.53 3.54

x 105

0510 N=512

00.51 1.52 2.53 3.5

x 105

-0.50

0.5

3) 自相关函数

N=240

Y=WAVREAD('C:\Users\k01\WEI.wav');

x=Y(13271:13510);

x=x.*rectwin(240);

R=zeros(1,240);

for k=1:240

for n=1:240-k

R(k)=R(k)+x(n)*x(n+k);

end

end

j=1:240; plot(j,R); grid;

短时谱

1)短时谱

clear

a=wavread('C:\Users\k01\Desktop\WENWEI.wav');

subplot(2,1,1),

plot(a);title('original signal');

grid

N=256;

h=hamming(N);

for m=1:N

b(m)=a(m)*h(m)

end

y=20*log(abs(fft(b)))

subplot(2,1,2)

plot(y);title('短时谱');

grid

00.51 1.5

2 2.5

3 3.5x 105

-0.50

0.5

original signal

050100150200250300

-200-100

100

短时谱

2)语谱图

[x,fs,nbits]=wavread('C:\Users\k01\Desktop\WENWEI.wav ')

specgram(x,512,fs,100);

xlabel('时间(s)');

ylabel('频率(Hz)');

title('语谱图');

3)倒谱和复倒谱

(1)加矩形窗时的倒谱和复倒谱

clear

a=wavread('C:\Users\k01\Desktop\WENWEI.wav',[4000,4350]); N=300;

h=linspace(1,1,N);

for m=1:N

b(m)=a(m)*h(m);

end

c=cceps(b);

c=fftshift(c);

d=rceps(b);

d=fftshift(d);

subplot(2,1,1)

plot(d);title('加矩形窗时的倒谱')

subplot(2,1,2)

plot(c);title('加矩形窗时的复倒谱')

相关文档
最新文档