Home > voicebox > lpcar2pp.m

lpcar2pp

PURPOSE ^

LPCAR2PP LPC: Convert ar filter to power spectrum polynomial in cos(w) PP=(AR)

SYNOPSIS ^

function pp=lpcar2pp(ar)

DESCRIPTION ^

LPCAR2PP LPC: Convert ar filter to power spectrum polynomial in cos(w) PP=(AR)
 the pp is a polynomial such that |polyval(ar,e^jw)|^2 = polyval(pp,cos(w))

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function pp=lpcar2pp(ar)
0002 %LPCAR2PP LPC: Convert ar filter to power spectrum polynomial in cos(w) PP=(AR)
0003 % the pp is a polynomial such that |polyval(ar,e^jw)|^2 = polyval(pp,cos(w))
0004 
0005 %      Copyright (C) Mike Brookes 1998
0006 %      Version: $Id: lpcar2pp.m 713 2011-10-16 14:45:43Z dmb $
0007 %
0008 %   VOICEBOX is a MATLAB toolbox for speech processing.
0009 %   Home page: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html
0010 %
0011 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0012 %   This program is free software; you can redistribute it and/or modify
0013 %   it under the terms of the GNU General Public License as published by
0014 %   the Free Software Foundation; either version 2 of the License, or
0015 %   (at your option) any later version.
0016 %
0017 %   This program is distributed in the hope that it will be useful,
0018 %   but WITHOUT ANY WARRANTY; without even the implied warranty of
0019 %   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0020 %   GNU General Public License for more details.
0021 %
0022 %   You can obtain a copy of the GNU General Public License from
0023 %   http://www.gnu.org/copyleft/gpl.html or by writing to
0024 %   Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA.
0025 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0026 
0027 persistent tp;
0028 [nf,p1]=size(ar);
0029 ra=zeros(nf,p1);
0030 for i=1:p1
0031    ra(:,i)=sum(ar(:,1:p1+1-i).*ar(:,i:p1),2);
0032 end
0033 % we check here if p is the same as before and reuse the tp matrix
0034 if size(tp,1)~=p1
0035    p=p1-1;
0036    % chebyshev polynomials up to order p
0037    tp=zeros(p1,p1);
0038    tp(1,p1)=2;
0039    tp(2,p)=2;
0040    for i=3:p1
0041       tp(i,p+2-i:p)=2*tp(i-1,p+3-i:p1)-tp(i-2,p+2-i:p);
0042       tp(i,p1)=-tp(i-2,p1);
0043    end
0044    tp(1,p1)=1;
0045 end
0046 pp=ra*tp;

Generated on Tue 10-Oct-2017 08:30:10 by m2html © 2003