how to generate a Gaussian white noise with a mean of zero inside ODE function
    30 views (last 30 days)
  
       Show older comments
    
Hi,
I am new to the matlab, I am trying to generate a Gaussian white noise with a mean of zero ranging from -0.03 to 0.03 like the attached photo, inside an ODE function.
I was using 
White_noise= wgn(1,1,0);
but i don't think it is correct! should i used randn istead?

my code 
function dydt = surfeq(t,y)
no=0.1;
n00=0.011;
v=80*1000/3600;
gq=1024;
white_noise= wgn(1,1,0);
%noise = rand(1);
x = 2*pi*no*sqrt(gq*v)*white_noise;
dydt = -2*pi*n00*v*y(1)+x;
0 Comments
Answers (2)
  Sai Sri Pathuri
    
 on 5 May 2020
        You are using correct function to generate white gaussian noise samples. However, you may not create white gaussian noise within a given range. As a workaround, you may follow below procedure.
% Create a vector of wgn samples
white_noise = wgn(1000,1,0);
j = 1;
% Get the samples within required range
for i = 1:1000
    if white_noise(i) >= -0.03 && white_noise(i) <= 0.03
        white_noise_inRange(j) = white_noise(i);
        j = j+1;
    end
end
  Sai Sri Pathuri
    
 on 18 May 2020
        Try to use more samples (n) of white_noise such that you get desired number of samples within range -0.03 to 0.03
white_noise = wgn(n,1,0);
0 Comments
See Also
Categories
				Find more on Creating and Concatenating Matrices in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!