MATLAB Answers

How to generate iid Gaussian noise vector

46 views (last 30 days)
Muhammad Yasir
Muhammad Yasir on 14 Jul 2021
Edited: Ben McMahon on 15 Oct 2021 at 11:39
I am trying to simulate algorithams given in a research paper.
How can I generate a noise sequence w_t, which is i.i.d. Gaussian of mean zero with variance 2I3 (2xI3 ,where I3 is identity matrix of dimension 3x3) and the initial condition is x_init = [10 10 −10]'
Kindly look at this segment of the paper for which I need to create Gaussian noise samples. I think gaussian noise is a column vector...

Answers (1)

Ben McMahon
Ben McMahon on 14 Jul 2021
Edited: Ben McMahon on 15 Oct 2021 at 11:39
For your particular example as your covariance is idenity and your mean 0, this is a mulitvariate standard normal distrbuiton:
The simple answer to this is to use the randn function to generate your samples. For example
% Set Number of Samples
NumSamples = 1000;
% Prealloacte
w = zeros(3,NumSamples);
% Loop for each sample
for t = 1:NumSamples
w(3,t) = randn(3,1); % Generate a 3x1 Random vector
Note that the inital condition is for the state vector of the SDE, x, and is not related to generating the white noise vectors.
Muhammad Yasir
Muhammad Yasir on 12 Aug 2021
i think it should be the code
mu = 0;
sigma = 10*eye(3)
R = chol(sigma);
w_t = repmat(mu,3,1) + randn(3,3)*R
for i=1:length(w_t(1,:))
for j=1:length(w_t(:,1))
phi(i,j) = ( 1 - exp( w_t(i,j) ) )/ ( 1 + exp( w_t(i,j) ) )

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by