function f=enframe(x,win,inc) nx=length(x); nwin=length(win); if (nwin == 1) len = win; else len = nwin; end if (nargin < 3) inc = len; end nf = fix((nx-len+inc)/inc); f=zeros(nf,len); indf= inc*(0:(nf-1)).'; inds = (1:len); f(:) = x(indf(:,ones(1,len))+inds(ones(nf,1),:)); if (nwin > 1) w = win(:)'; f = f .* w(ones(nf,1),:); end
时间: 2024-04-23 16:26:38 浏览: 193
PyPI 官网下载 | q4nwin-0.0.3.tar.gz
这段代码实现了将语音信号分帧的功能。
输入参数包括语音信号x,帧长度win和帧移inc。代码首先计算出语音信号x可以被分成多少帧,即nf。然后,定义一个大小为nf*len的矩阵f,其中len表示每一帧的长度,可以是win或者win的长度。接下来,使用indf和inds计算矩阵f中每一帧的起始位置,其中indf是一个列向量,表示每一帧的起始位置,inds是一个行向量,表示每一帧中包含的样本点。最后,将每一帧信号保存到矩阵f中。
如果输入参数中的win是一个向量,则表示需要将每一帧信号乘以窗函数,以减小帧边缘的影响。因此,代码中将窗函数w转换为行向量,并使用矩阵乘法将窗函数应用到每一帧信号上,最终返回处理后的帧矩阵f。
阅读全文