⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mseq.c

📁 Kasami序列产生器 用于扩频通信
💻 C
字号:
/* * $Log: mseq.c,v $ * Revision 1.1  2000/05/03 14:30:04  bjc97r * Initial revision * */char *_mseq_id = "$Id: mseq.c,v 1.1 2000/05/03 14:30:04 bjc97r Exp $";#include <stdio.h>#include <stdlib.h>#include "mseq.h"/* * It create an m-sequence generator with the given generator * polynomial and the initial register sate. * The pointer to the m-sequence generator is returned. * The max degree of the generator poly is 31. */Mseq * mseq_create( unsigned deg, unsigned long poly, unsigned long seed ){  Mseq *mseq;  if ( deg > 31 ) {    fprintf(stderr, "mseq_create: ..cannot handle deg > 31\n");    fprintf(stderr, " Use mseql_create() instead.\n");    return NULL;  }  mseq = (Mseq*) malloc( sizeof(Mseq) );  mseq->state = seed;  mseq->mask  = poly >> 1;  return mseq;}/* mseq_free() deallocates the memory space for the m-sequence generator. */void mseq_free( Mseq * mseq ){  free( (void*) mseq );}/* * mseq() gives the next m-sequence bit of the m-sequence generator. * The generated bit is unipolar, ie 1 or 0. */char mseq( Mseq * id ){  char seq;    seq = (char)(id->state & 1);  id->state >>= 1;  if ( seq ) id->state ^= id->mask;  return seq;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -