Home > voicebox > pow2cep.m

pow2cep

PURPOSE ^

CEP2POW convert cepstral means and variances to the power domain

SYNOPSIS ^

function [u,v]=pow2cep(m,c,mode)

DESCRIPTION ^

CEP2POW convert cepstral means and variances to the power domain
 Inputs:
    m: vector giving means in the power domain
    c: covariance matrix in the power domain
 mode: 'c'  pow=exp(irdct(cep))   [default]
       'f'  pow=exp(rsfft(cep)/n)  [fft length even]
       'fo' pow=exp(rsfft(cep)/n)  [fft length odd]
       'i'  pow=exp(cep)           [ no transformation ]

 Outputs:
    u: row vector giving the cepstral means with u(1) the 0'th cepstral coefficient
    v: cepstral covariance matrix

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [u,v]=pow2cep(m,c,mode)
0002 %CEP2POW convert cepstral means and variances to the power domain
0003 % Inputs:
0004 %    m: vector giving means in the power domain
0005 %    c: covariance matrix in the power domain
0006 % mode: 'c'  pow=exp(irdct(cep))   [default]
0007 %       'f'  pow=exp(rsfft(cep)/n)  [fft length even]
0008 %       'fo' pow=exp(rsfft(cep)/n)  [fft length odd]
0009 %       'i'  pow=exp(cep)           [ no transformation ]
0010 %
0011 % Outputs:
0012 %    u: row vector giving the cepstral means with u(1) the 0'th cepstral coefficient
0013 %    v: cepstral covariance matrix
0014 
0015 %      Copyright (C) Mike Brookes 1998
0016 %      Version: $Id: pow2cep.m 713 2011-10-16 14:45:43Z dmb $
0017 %
0018 %   VOICEBOX is a MATLAB toolbox for speech processing.
0019 %   Home page: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html
0020 %
0021 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0022 %   This program is free software; you can redistribute it and/or modify
0023 %   it under the terms of the GNU General Public License as published by
0024 %   the Free Software Foundation; either version 2 of the License, or
0025 %   (at your option) any later version.
0026 %
0027 %   This program is distributed in the hope that it will be useful,
0028 %   but WITHOUT ANY WARRANTY; without even the implied warranty of
0029 %   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0030 %   GNU General Public License for more details.
0031 %
0032 %   You can obtain a copy of the GNU General Public License from
0033 %   http://www.gnu.org/copyleft/gpl.html or by writing to
0034 %   Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA.
0035 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0036 
0037 if nargin<3 mode='c'; end
0038 if min(size(c))==1
0039    v=diag(c);
0040 end
0041 m=m(:)';        % force to be a row vector
0042 q=log(1+c./(m'*m));
0043 p=log(m)-0.5*diag(q)';
0044 if any(mode=='f')
0045    n=2*length(m)-2;
0046    if any(mode=='o')
0047       n=n+1;
0048    end
0049    u=rsfft(p,n);
0050    v=rsfft(rsfft(q,n)',n);
0051 elseif any(mode=='i')
0052     u=p;
0053     v=q;
0054 else
0055    u=rdct(p);
0056    v=rdct(rdct(q)');
0057 end

Generated on Fri 22-Sep-2017 19:37:38 by m2html © 2003