Вам нужен только вектор средних (назовите его m
) и ковариационную матрицу (назовите его C
).Обратите внимание, что вы можете получить ковариационную матрицу из корреляции, используя уравнение C = R - m*m'
(или просто вычислить ее непосредственно путем вычисления корреляции последовательностей после вычитания их среднего значения).
Затем, чтобы получить вектор сковариации C, вы генерируете случайный вектор IID (скажем, гауссов):
w = randn(4,1)
Затем умножьте его на квадратный корень ковариационной матрицы (назовите его Q) и добавьте среднее:
v = Q*w + m
Вы можете использовать функцию sqrt Matlab для вычисления sqrt (C) или вычислить ее с помощью SVD или EIG.
[u,d] = eig(C)
Q = u*sqrt(d)*u'
Ковариация v
будет Q*Q'
(= C
), а среднее значение будет m
См. Статью в википедии о свойствах ковариационной матрицы.