代码:
clear [x,Fs]=audioread('mei.wav'); % 读入数据文件 x=x(:,1); % 双声道变单声道 wlen=200; inc=80; % 给出帧长和帧移 win=hamming(wlen); % 给出哈明窗 %win=boxcar(wlen); %给出矩形窗 N=length(x); % 信号长度 X=enframe(x,win,inc)'; % 分帧 fn=size(X,2); % 求出帧数 time=(0:N-1)/Fs; % 计算出信号的时间刻度 for i=1 : fn u=X(:,i); % 取出一帧 u2=u.*u; % 求出能量 En(i)=sum(u2); % 对一帧累加求和 end subplot 211; plot(time,x,'k'); % 画出时间波形 axis([0 0.5,-inf,inf]) %改变横轴范围 title('语音波形'); ylabel('幅值'); xlabel(['时间/s' 10 '(a)']); frameTime=frame2time(fn,wlen,inc,Fs); % 求出每帧对应的时间 subplot 212; plot(frameTime,En,'k') % 画出短时能量图 axis([0 0.5,-inf,inf]) %改变横轴范围 title('短时能量'); ylabel('幅值'); xlabel(['时间/s' 10 '(b)']);
结果: