#include "stdio.h" #include "stdlib.h" #include "math.h" #include #include #include "paulslib.h" #define N 8192 #define TWOPOWER 13 #define TWOPI 6.283185307179586476925287 /* Create a noise signal using fBm */ int main(int argc,char **argv) { int i; double beta,seed; double mag,pha; double real[N],imag[N]; if (argc < 3) { fprintf(stderr,"Usage: %s beta seed\n",argv[0]); exit(0); } if ((beta = atof(argv[1])) < 1 || beta > 3) { fprintf(stderr,"Beta must be between 1 and 3\n"); exit(0); } if ((seed = atof(argv[2])) <= 0) { seed = time(NULL) % 30000; RandomInitialise(seed,seed+100); } real[0] = 0; imag[0] = 0; for (i=1;i<=N/2;i++) { mag = pow(i+1.0,-beta/2) * RandomGaussian(0.0,1.0); // Note to self a number of years later, why "i+1" pha = TWOPI * RandomUniform(); real[i] = mag * cos(pha); imag[i] = mag * sin(pha); real[N-i] = real[i]; imag[N-i] = -imag[i]; } imag[N/2] = 0; FFT(-1,TWOPOWER,real,imag); for (i=0;i