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.

Topic noise numpy gaussian python

Category Data Science


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.

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.