% rand_gauss ret = rand_gauss(Mu, C, n) Verrauschen eines Vektors mit entsprechender Kovarianzmatrix unter Beachtung der Korrelationen Erweiterung: Beachte Singularität von Cll Mu = N x 1 mean vector C = N x N Covariance matrix n = number of vectors to be sampled ret = N x n Matrix of n random vectors @author Richard Steffen
0001 %% rand_gauss 0002 % 0003 % ret = rand_gauss(Mu, C, n) 0004 % 0005 % Verrauschen eines Vektors mit entsprechender Kovarianzmatrix unter 0006 % Beachtung der Korrelationen 0007 % Erweiterung: Beachte Singularität von Cll 0008 % 0009 % Mu = N x 1 mean vector 0010 % C = N x N Covariance matrix 0011 % n = number of vectors to be sampled 0012 % 0013 % ret = N x n Matrix of n random vectors 0014 % 0015 % @author Richard Steffen 0016 0017 0018 function ret = sugr_rand_gauss(Mu, Cll, n) 0019 0020 % Zerlegung in Eigenvektoren und Eigenwerte 0021 [R,S] = eig(Cll); 0022 % Eigenvectoren skalieren mit Wurzeln der Eigenwerte 0023 A = R .* repmat(sqrt(abs(diag(S)))',length(S),1); 0024 ret = repmat(Mu,1,n) + A*randn(length(Mu),n); 0025