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
end
Note that the inital condition is for the state vector of the SDE, x, and is not related to generating the white noise vectors.
  3 Comments
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) ) )
end
end

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