wolffd@0: function [coef, C] = learn_AR_diagonal(y, k) wolffd@0: % Find the ML parameters for a collection of independent scalar AR processes. wolffd@0: wolffd@0: % sep_coef(1,1,t,i) is the coefficient to apply to compopnent i of the state vector t steps ago wolffd@0: % eg. consider two components L and R and let A = coef(:,:,1,:), B = coef(:,:,2,:) wolffd@0: % L3 (AL 0 BL 0) (L2) (CL 0 0 0) wolffd@0: % R3 = (0 AR 0 BR) (R2) (0 CR 0 0) wolffd@0: % L2 (1 0 0 0 ) (L1) + (0 0 0 0) wolffd@0: % R2 (0 1 0 0 ) (R1) (0 0 0 0) wolffd@0: wolffd@0: ss = size(y, 1); wolffd@0: sep_coef = zeros(1,1,k,ss); wolffd@0: for i=1:ss wolffd@0: [sep_coef(:,:,:,i), sep_cov(i)] = learn_AR(k, y(i,:)); wolffd@0: end wolffd@0: C = diag(sep_cov); wolffd@0: for t=1:k wolffd@0: x = sep_coef(1,1,t,:); wolffd@0: coef(:,:,t) = diag(x(:)); wolffd@0: end