Noise Functions
The following functions return numbers from pseudo-random distributions of the specified shapes and parameters. Except for enoise and gnoise where you have an option to select a random number generator, the remaining noise functions use a Mersenne Twister algorithm for the initial uniform pseudo-random distribution. Note that whenever you need repeatable results you should use SetRandomSeed prior to executing any of the noise functions.
| Noise Function | Distribution |
| binomialNoise | Binomial distribution |
| enoise | Uniform distribution |
| expNoise | Exponential distribution |
| gammaNoise | Gamma distribution |
| gnoise | Gaussian distribution |
| HyperGNoise | Hypergeometric distribution |
| logNormalNoise | Lognormal distribution |
| poissonNoise | Poisson distribution |
| StatsPowerNoise | Power distribution |
| StatsVonMisesNoise | Von Mises distribution |
| WNoise | Two-parameter Weibull distribution |
You can easily verify that the various noise functions indeed generate the desired distribution. For example, suppose you generated 10000 data points from a Gamma distribution as in:
Make/n=1e4 noiseWave=gammaNoise(10,2)

Make/N=100/O W_Hist
Histogram/P/B={0,1,100} noiseWave,W_Hist

To fit this to a gamma distribution we write the following user function:
Function myFit(w,x) : FitFunc
Wave w
Variable x
return x^(w[0]-1)*exp(-x/w[1])/((w[1]^w[0])*Gamma(w[0]))
End
To determine the initial guesses for the fitting coefficients we note that the average of noiseWave is 19.8681. This average should be equal to the product a*b of the two parameters of the gamma distribution. Our guess is therefore a=b=sqrt(19.8)
Make/D/N=2/O W_coef={4.48,4.48}
FuncFit/NTHR=0/TBOX=768 myFit W_coef W_Hist[1,50] /D
The resulting fit to a Gamma distribution is drawn below in blue plotted over the calculated distribution (red).
