hello list , i am pranay ,undergraduate student at Indian Institute of Technology ,Madras .i am wondering whether anyone in this list has worked on OBSns (http://wine.icu.ac.kr/~obsns/index.php <http://wine.icu.ac.kr/%7Eobsns/index.php>) software for NS . I am studying the way in which self similar characteristic is implemented in obsns . But i cant understand ,how the flicker noise is generated in the file fract_flick.cc
int N; /* filter order */ int i; double f, ae, be; double *apt, *bpt; double W, R; N = (int)ceil (n*h); *a = 0.13; /* From Barnes and Greenhall paper */ R = pow (10.0, 1/(2.0*h)); W = ((1.0 - (*a))/sqrt(*a)); *b = 0.0; for (i = 2, apt = a+1, bpt = b+1; i <= N; i++, apt++, bpt++) { W = W / pow (R, 2.0 - gamma); (*bpt) = 1.0 + ((0.5*W) * (W - sqrt((W * W) + 4.0))); W = W / pow (R, gamma); (*apt) = 1.0 + ((0.5*W) * (W - sqrt((W * W) + 4.0))); } } void flicker (int N, double *y, double *y_old, double *a, double *b) /* * Inegrate fractional flicker noise generator over 1 time step * * N = number of filter stages (= n*h, see init_flick above) * y = pointer to array of current state vector plus white noise input in * element zero (array size = N+1) * y_old = pointer to array of previous time step state vector plus white * noise input in element zero (array size = N+1) * a = pointer to array of poles (array size = N) * (phi array of Barnes and Greenhall) * b = pointer to array of zeros (array size = N) * (theta array of Barnes and Greenhall) */ { int i; double *ypt, *y_oldpt, *apt, *bpt; *(y+1) = ( (*a) - (*b) ) * (*(y_old+1)) + (*(y)); for (i = 2, ypt = y+2, y_oldpt = y_old+2, apt = a+1, bpt = b+1; i <= N; i++, ypt++, y_oldpt++, apt++, bpt++) { *ypt = (*apt) * (*y_oldpt) + ( (*(ypt-1)) - (*bpt) * (*(y_oldpt - 1)) ); } for (i = 0, ypt = y, y_oldpt = y_old, apt = a, bpt = b; i <= N; i++, ypt++, y_oldpt++, apt++, bpt++) *y_oldpt = (*ypt); } its referring to some paper ,(barnes and greenhall) ,but i am not able to find that paper on net or any library . if someone can please explain me W = W / pow (R, 2.0 - gamma); (*bpt) = 1.0 + ((0.5*W) * (W - sqrt((W * W) + 4.0))); W = W / pow (R, gamma); (*apt) = 1.0 + ((0.5*W) * (W - sqrt((W * W) + 4.0))); why these formulae are used for generating arrrrays 'a' and 'b', i ud be very thankful . or else if u can send me the pdf of the above mentioned paper ,that ud be great . please help me ,as this is crucial for my project . thank you Pranay Prateek Department of Electrical Enginnering Indian Institute of Technology ,Madras Chennai ,India . .