9b496d593ef94c76b8bba2fe3b60306a8949fa17
[scilab.git] / scilab / modules / cacsd / macros / noisegen.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA -
3 //
4 // Copyright (C) 2012 - 2016 - Scilab Enterprises
5 //
6 // This file is hereby licensed under the terms of the GNU GPL v2.0,
7 // pursuant to article 5.3.4 of the CeCILL v.2.1.
8 // This file was originally licensed under the terms of the CeCILL v2.1,
9 // and continues to be available under such terms.
10 // For more information, see the COPYING file which you should have received
11 // along with this program.
12
13 function noisegen(pas,Tmax,sig)
14     // This function returns in the calling env
15     // a macro  [b]=Noise(t)
16     // Noize(t) is a piecewise constant function [k*pas,(k+1)*pas]
17     //The value on each constant interval are random values from
18     // i.i.d  Gaussian variables of standard deviation sig.
19     // The function is constant for t<=0 and t>=Tmax.
20     //!
21
22     dua_g=sig*rand(0:pas:Tmax,"n");
23     [nn1,nn2]=size(dua_g);
24     deff("[b]=Noise(t)","b=dua_g(min(max((t/"+string(Tmax)+...
25     ")*"+string(nn2)+",1),"+string(nn2)+"))");
26     [dua_g,Noise]=resume(dua_g,Noise);
27 endfunction