X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Ftsa-4.2.4%2Fpoly2rc.m;fp=octave_packages%2Ftsa-4.2.4%2Fpoly2rc.m;h=1f38e614bcfd1cd5d96deaf9772060d5402dd2fd;hp=0000000000000000000000000000000000000000;hb=f5f7a74bd8a4900f0b797da6783be80e11a68d86;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/tsa-4.2.4/poly2rc.m b/octave_packages/tsa-4.2.4/poly2rc.m new file mode 100644 index 0000000..1f38e61 --- /dev/null +++ b/octave_packages/tsa-4.2.4/poly2rc.m @@ -0,0 +1,50 @@ +function [RC,r0] = poly2rc(a,efinal); +% converts AR-polynomial into reflection coefficients +% [RC,R0] = poly2rc(A [,Efinal]) +% +% INPUT: +% A AR polynomial, each row represents one polynomial +% Efinal is the final prediction error variance (default value 1) +% +% OUTPUT +% RC reflection coefficients +% R0 is the variance (autocovariance at lag=0) based on the +% prediction error +% +% +% see also ACOVF ACORF AR2RC RC2AR DURLEV AC2POLY, POLY2RC, RC2POLY, RC2AC, AC2RC, POLY2AC + +% $Id: poly2rc.m 5090 2008-06-05 08:12:04Z schloegl $ +% Copyright (C) 1998-2002,2008 by Alois Schloegl +% +% 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 3 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 should have received a copy of the GNU General Public License +% along with this program. If not, see . + +if all(size(a))>1, + fprintf(2,'Error poly2rc: "a" must be a vector\n'); + return; +end; +a=a(:).'; + +mfilename='POLY2RC'; +if ~exist('ar2rc','file') + fprintf(2,'Error %s: AR2RC.M not found. \n Download TSA toolbox from http://www.dpmi.tu-graz.ac.at/~schloegl/matlab/tsa/\n',mfilename); + return; +end; + +if nargin<2, efinal=1; end; + +[AR,RC,PE] = ar2rc(poly2ar(a)); +if nargout>1, + r0=efinal.*PE(:,1)./PE(:,size(PE,2)); +end;