首页 > 代码库 > 语音信号短时域分析之短时平均能量(四)

语音信号短时域分析之短时平均能量(四)

       由于语音信号的能量随时间而变化,清音和浊音之间的能量差别相当显著,因此对短时能量和短时平均幅度进行分析,可以描述语音的这种特征变换情况。定义n时刻某语音信号的短时平均能量E为:

                             

式中,N为窗长,可见短时能量为一帧样点值的加权平方和。当窗函数为矩形窗时

                                                                                       

        短时平均能量用途:

       (1) 可以作为区分清音和浊音的特征参数;

       (2) 在信噪比比较高的情况下,短时能量可以作为区分有声和无声的依据;

       (3) 可以作为辅助的特征参数用于语音识别中。

       其中短时能量matlab代码如下: 

x = wavread('beijing.wav');
%计算N=50,帧移=20时的语音能量
s=fra(50,20,x);               
s2=s.^2;                    %一帧内各样点的能量
energy=sum(s2,2);            %求一帧能量
subplot(2,2,1);               %定义画图数量和布局 
plot(energy);                %画N=50时的语音能量图
xlabel('帧数');               %横坐标
ylabel('短时能量 E');         %纵坐标
legend('N=50');              %曲线标识
axis([0,1500,0,2*10^10]);      %定义横纵坐标范围

取不同帧时能量如下图:

                                                                          

其中,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