matlab 短时能量计算+源代码
【摘要】
代码:
clear
[x,Fs]=audioread('mei.wav'); % 读入数据文件
x=x(:,1); % 双声道变单声道
wlen=200; i...
代码:
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)']);
结果:
文章来源: chuanchuan.blog.csdn.net,作者:川川菜鸟,版权归原作者所有,如需转载,请联系作者。
原文链接:chuanchuan.blog.csdn.net/article/details/121006000
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)