• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: Matlab
  • 标签: 基频  自相关  matlab  

资源简介

录音并用自相关法计算语音基频。配有相关作图。你懂的,课程练习参考。

资源截图

代码片段和文件信息

function f=enframe(xwininc)
%ENframe split signal up into (overlapping) frames: one per row. F=(XWININC)
%
% F = ENframe(XLEN) splits the vector X up into
% frames. Each frame is of length LEN and occupies
% one row of the output matrix. The last few frames of X
% will be ignored if its length is not divisible by LEN.
% It is an error if X is shorter than LEN.
%
% F = ENframe(XLENINC) has frames beginning at increments of INC
% The centre of frame I is X((I-1)*INC+(LEN+1)/2) for I=12...
% The number of frames is fix((length(X)-LEN+INC)/INC)
%
% F = ENframe(XWINDOW) or ENframe(XWINDOWINC) multiplies
% each frame by WINDOW(:)

% Copyright (C) Mike Brookes 1997
%
%      Last modified Tue May 12 13:42:01 1998
%
%   VOICEBOX home page: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   This program is free software; you can redistribute it and/or modify
%   it under the terms of the GNU General Public License as published by
%   the Free Software Foundation; either version 2 of the License or
%   (at your option) any later version.
%
%   This program is distributed in the hope that it will be useful
%   but WITHOUT ANY WARRANTY; without even the implied warranty of
%   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%   GNU General Public License for more details.
%
%   You can obtain a copy of the GNU General Public License from
%   ftp://prep.ai.mit.edu/pub/gnu/COPYING-2.0 or by writing to
%   Free Software Foundation Inc.675 Mass Ave Cambridge MA 02139 USA.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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(nflen);
indf= inc*(0:(nf-1)).‘;
inds = (1:len);
f(:) = x(indf(:ones(1len))+inds(ones(nf1):));
if (nwin > 1)
    w = win(:)‘;
    f = f .* w(ones(nf1):);
end



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2072  2017-06-07 23:16  基频计算\enframe.m

     文件        879  2019-11-18 13:46  基频计算\pitchcalculator.m

     目录          0  2019-11-18 13:47  基频计算

----------- ---------  ---------- -----  ----

                 2951                    3


评论

共有 条评论