I should be able to generate a stationary GRF from white noise in two different ways:

  • multiplying the white noise vector by the square root of a covariance matrix with appropriate kernel;
  • taking the 2D convolution of the white noise field with a 2D kernel

Each of these methods uses a kernel, but using the same kernel for both doesn't give samples from the same GRF.

If I want to use the convolution method to sample from the same GRF as the matrix method, how do I calculate the convolution kernel from the matrix kernel?

I would guess that I should take the square root of the matrix kernel, is this right?

  • $\begingroup$ What do you mean by the square root of the covariance matrix? Do you mean an element-wise square root? If so, this is not the correct way to obtain an observation from a multivariate normal. If $X \sim \mathcal N(\mu, \Sigma)$, then $X$ can be sampled by: $X = \mu + LZ$ where $Z$ is a vector of standard normals and L is the Cholesky decomposition of the covariance matrix, which I suspect you're after. I guess, in some sense, the Cholesky decomposition corresponds with the standard deviation in higher dimensions. $\endgroup$ – InfProbSciX Dec 11 '18 at 21:38
  • $\begingroup$ I mean either the matrix square root or the Cholesky decomposition. Not the element-wise square root. $\endgroup$ – prdnr Dec 12 '18 at 7:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.