enframe.m
来自「关于双门限法的语音端点检测」· M 代码 · 共 35 行
M
35 行
function xn=enframe(x,N,M)
T=N-M;
wn=hamming(N);
%x=[1,2,-1,1,1,-1,-1,0,1,1,1,1,3,1,1,1,1,1,6,-1,1,1,1,-1,1,1,1,1,-1,1,2,3];测试向量
x_num=length(x); %确定数据的长度
frame_num=ceil((x_num-N)/T)+1; %确定帧的数目
for i=1:frame_num-1
xn(:,i)=wn.*x(T*(i-1)+1:T*(i-1)+N);
end
%对最后一帧进行处理
if x_num==N+(frame_num-1)*T %数据正好可以分为整数帧的情况
xn(:,frame_num)=wn.*x(T*(frame_num-1)+1:T*(frame_num-1)+N);
else %如果不为整数帧,需要补0操作
zero_num=N+(frame_num-1)*T-x_num; %确定补0的数目
xn(:,frame_num)=[(x((T*(frame_num-1)+1):x_num))', zeros(1,zero_num)];
xn(:,frame_num)=wn.*xn(:,frame_num);
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?