您好,欢迎来到纷纭教育。
搜索
您的当前位置:首页语音短时平均能量的实现

语音短时平均能量的实现

来源:纷纭教育
语音短时平均能量的实现

一.实验目的:

1.熟悉Matlab基本程序的运用。

2.充分理解取不同窗长时的语音短时平均能量的变化情况。 3.熟悉Matlab编程语言在语音信号处理中的作用。 4.能够实现程序的重新编制。 二.实验原理:

定义n时刻某语音信号的短时平均能量En为:

Enm[x(m)w(nm)]2mn(N1)[x(m)w(nm)]n2

式中N为窗长,可见短时平均能量为为一帧样点值的甲醛平方和。特殊地,当窗函数为矩形窗时,有

Enmn(N1)xn2(m)

三.实验要求:

1.实验前自己用Cool Edit音频编辑软件录制声音“我到北京去”,并把它保存为.txt文件。

2.编程实现不同矩形窗长N=50、100、200、800的短时平均能量。 3.用Matlab画出不同窗长的短时平均能量的图形。 4.写出实验报告,分析实验结果。 四.实验条件:

计算机 Matlab软件 五.实验步骤:

1.用Cooledit读入语音“我到北京去”。设置采样率为8kHz,16位,单声道。 2.将读入的语音wav文件保存为txt文件,即zqq.txt文件。 3.把保存的文件zqq.txt文件读入Matlab。 4.对采样到的语音样点值进行分帧。

5.对照不同矩形窗长N的短时平均能量,画出图形。 六.实验程序及数据: fid=fopen('zqq.txt','rt'); x=fscanf(fid,'%f');

fclose(fid); s=fra(25,50,x) s2=s.^2;

energy=sum(s2,2) subplot(2,2,1) plot(energy) xlabel('帧数')

ylabel('短时能量 E') legend('N=50')

axis([0,1500,0,2* 10^10]) s=fra(60,100,x) s2=s.^2;

energy=sum(s2,2) subplot(2,2,2) plot(energy) xlabel('帧数')

ylabel('短时能量 E') legend('N=100')

axis([0,750,0,4* 10^10]) 2x 1010N=50s=fra(250,400,x) E1.5 s2=s.^2;

量energy=sum(s2,2) 能1时subplot(2,2,3) 短0.5plot(energy) xlabel('帧数')

0050010001500ylabel('短时能量 E') 帧数legend('N=400')

axis([0,190,0,1.5* 10^11]) 15x 1010N=400s=fra(500,800,x) E s2=s.^2;

量10energy=sum(s2,2) 能时subplot(2,2,4) 短5plot(energy)

xlabel('帧数') 0050100150ylabel('短时能量 E') 帧数legend('N=800')

axis([0,95,0,3* 10^11])

其中fra()为分帧函数,其MATLAB程序如下: function f=fra(len,inc,x)

fh=fix(((size(x,1)-len)/inc)+1) f=zeros(fh,len); i=1;n=1;

while i<=fh j=1;

while j<=len f(i,j)=x(n); j=j+1;n=n+1; end

n=n-len+inc; i=i+1;

End

4x 1010N=100E3 量能2时短100200400600帧数3x 1011N=800E 量2能时短10020406080帧数

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务