matlab 短时能量
时间: 2023-11-07 13:06:09 浏览: 212
短时能量基于matlab语音信号短时能量【含Matlab源码 1719期】.zip
短时能量是语音信号处理中的一个重要特征,它可以用来表示语音信号在短时间内的能量大小。在Matlab中,可以通过以下步骤计算短时能量:
1. 将语音信号分帧,每一帧的长度为wlen,帧移为inc。
2. 对于每一帧,计算其能量,即将帧内的每个样本平方后求和。
3. 将每一帧的能量值存储在一个向量中,即可得到短时能量序列。
下面是一个Matlab代码示例,用于计算短时能量:
clear all; clc; close all;
filedir=[]; % 设置路径
filename='bluesky3.wav'; % 设置文件名
fle=[filedir filename]; % 构成完整的路径和文件名
[x,Fs]=audioread(fle); % 读入数据文件
wlen=200; inc=80; % 给出帧长和帧移
win=hanning(wlen); % 给出海宁窗
N=length(x); % 信号长度
X=enframe(x,win,inc)'; % 分帧
fn=size(X,2); % 求出帧数。size函数里选择1时是返回行数,2是返回列数
for i=1 : fn
u=X(:,i); % 取出一帧
u2=u.*u; % 求出能量
En(i)=sum(u2); % 对一帧累加求和
end
subplot 211; plot(time,x,'k'); % 画出时间波形
title('语音波形'); ylabel('幅值'); xlabel(['时间/s' 10 '(a)']);
frameTime=frame2time(fn,wlen,inc,Fs); % 求出每帧对应的时间
subplot 212; plot(frameTime,En,'k') % 画出短时能量图
title('短时能量'); ylabel('幅值'); xlabel(['时间/s' 10 '(b)']);
阅读全文