No BSD License  

Highlights from
Automatic Spectral Analysis

from Automatic Spectral Analysis by Stijn de Waele
Automatic spectral analysis for irregular sampling/missing data, analysis of spectral subband.

cov2pcv(cov)
function [pc, Pf, Pb] = cov2pcv(cov)

%function [pc, Pf, Pb] = cov2pcv(cov)
% Transforms a covariancefunction cov into partial correlations pc

%S. de Waele, March 2003.

s = kingsize(cov);
order = s(3)-1;
dim = s(1); I = eye(dim);
rc = zeros(s);  rc(:,:,1)  = I; 
par = zeros(s); par(:,:,1) = I; 
Pf   = zeros(s); Pf(:,:,1) = cov(:,:,1);

rcb = zeros(s); rcb(:,:,1) = I; 
parb= zeros(s); parb(:,:,1)= I; 
Pb  = zeros(s); Pb(:,:,1)  = cov(:,:,1);

%First cov2rcv
par_o  = par;
parb_o = parb;
for p = 1:order,
   %reflection coefficients
   delta = prodsumv(par_o(:,:,1:p),cov(:,:,p+1:-1:2));
   rc(:,:,p+1) = -delta *inv(Pb(:,:,p));
   rcb(:,:,p+1)= -delta'*inv(Pf(:,:,p));   
   
   %parameters
   par(:,:,2:p) = par_o(:,:,2:p) +timesv(rc(:,:,p+1),parb_o(:,:,p:-1:2));
   par(:,:,p+1) = rc(:,:,p+1);
   parb(:,:,2:p)= parb_o(:,:,2:p)+timesv(rcb(:,:,p+1) ,par_o(:,:,p:-1:2));
   parb(:,:,p+1)= rcb(:,:,p+1);
   par_o  = par;
   parb_o = parb;
   
   %residuals
   Pf(:,:,p+1) = (I-rc(:,:,p+1) *rcb(:,:,p+1))*Pf(:,:,p);
   Pb(:,:,p+1)= (I-rcb(:,:,p+1)*rc(:,:,p+1) )*Pb(:,:,p);
end
pc = rc2pcv(rc,cov(:,:,1));

Contact us at files@mathworks.com