www.pudn.com > gold.rar > gold.c
/* * $Log: gold.c,v $ * Revision 1.1 2000/05/03 14:30:04 bjc97r * Initial revision * */ char *_gold_id = "$Id: gold.c,v 1.1 2000/05/03 14:30:04 bjc97r Exp $"; #include#include #include "gold.h" // It creates a Gold code generator with the two preferred m-sequences // with the given seeds. The Gold code generator is returned. Gold * gold_create( unsigned deg, ulong p0, ulong p1, ulong s0, ulong s1 ) { Gold *gold; if ( deg > 31 ) { fprintf(stderr, "gold_create: ..cannot handle deg > 31\n"); return NULL; } gold = (Gold*) malloc ( sizeof(Gold) ); gold->mseq0 = mseq_create( deg, p0, s0 ); gold->mseq1 = mseq_create( deg, p1, s1 ); return gold; } // gold_free() deallocates the memory space for the Gold sequence generator. void gold_free( Gold *gold ) { mseq_free( gold->mseq0 ); mseq_free( gold->mseq1 ); free( gold ); } // gold() gives the next Gold sequence. The sequence is unipolar, ie 1 or 0. char gold( Gold *gen ) { return mseq(gen->mseq0) ^ mseq(gen->mseq1); }