# How to create a complex Gaussian random noise with a specific covariance matrix

I am trying to generate a complex Gaussian white noise, with zero mean and the covariance matrix of them is going to be a specific matrix which is assumed to be given.

Assume i to be a point on the grid of x axis, where there are N points on the axis. The problem is to generate a complex valued random noise at each point (let's call the random value at the point i as $$y_i$$), which obeys Gaussian distribution and has a covariance matrix of,

$$E((y_i)(y_j^*)) = c_{ij}$$

where $$c_{ij}$$ is a given diagonal NxN matrix. * is complex conjugate, E represents the expectation value.

I am trying to generate this on Python.

Might be a bit late, but if you're still looking for an answer, here it is. You can use np.random.multivariate_normal. You need to provide the said covariance matrix as an argument to the function. You can find the documentation here.