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

📄 conv.h

📁 uCLinux下的一个TCP/IP协议栈源码
💻 H
字号:
unsigned long decode(unsigned char *data,signed char *symbols,
 unsigned int nbits,int mettab[2][3],int delta,unsigned long maxcycles);
int encode(unsigned char *symbols,unsigned char *data,unsigned int nbytes);
void expsym(signed char *,unsigned char *,unsigned int);
double gen_met(int mettab[2][3],double ber,double nc);

extern unsigned char Partab[];
extern unsigned char Bitcnt[]; 
extern unsigned char Revtab[];

/* PN symbol scrambler definitions
 * The 23-degree polynomial is the CCITT standard for V.29, V.32 and V.33
 */
#define	PN_START	1
#define	PN_SCRAMBLE(X)	Partab[((X) & 0x420000) >> 17]
/*#define	PN_SCRAMBLE(X)	Partab[((X) & 0x60) >> 5] */


#define	ILEAVE	64

/* Convolutional coding polynomials. All are rate 1/2, K=32 */
#define	LL 1

#ifdef	NASA_STANDARD
/* "NASA standard" code by Massey & Costello
 * Nonsystematic, quick look-in, dmin=11, dfree=23
 * used on Pioneer 10-12, Helios A,B
 */
#define	POLY1	0xbbef6bb7
#define	POLY2	0xbbef6bb5
#endif

#ifdef	MJ
/* Massey-Johannesson code
 * Nonsystematic, quick look-in, dmin=13, dfree>=23
 * Purported to be more computationally efficient than Massey-Costello
 */
#define	POLY1	0xb840a20f
#define POLY2	0xb840a20d
#endif

#ifdef	LL
/* Layland-Lushbaugh code
 * Nonsystematic, non-quick look-in, dmin=?, dfree=?
 */
#define	POLY1	0xf2d05351
#define	POLY2	0xe4613c47
#endif

#define	ENCODE(sym,encstate){\
	unsigned long _tmp;\
\
	_tmp = (encstate) & POLY1;\
	_tmp ^= _tmp >> 16;\
	(sym) = Partab[(_tmp ^ (_tmp >> 8)) & 0xff];\
	_tmp = (encstate) & POLY2;\
	_tmp ^= _tmp >> 16;\
	(sym) |= Partab[(_tmp ^ (_tmp >> 8)) & 0xff] << 1;\
}


⌨️ 快捷键说明

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