たたみこみ符号関係の関数(速度の保証なし)


ConvCoder	new_conv_coder(char *coder);
		coder: 符号を文字列で指定する

		例1: (2,1,5) の場合 "2:1:5:65:57" 後半の数値は生成多項式の系数
		例2: (4,3,2) の場合 "4:3:2:6:1:0:7:3:4:1:6:2:3:7:4"


void		reset_conv_coder(ConvCoder c);

int		conv_encode(ConvCoder c, int x);
		x: 入力シンボル
		戻り値: xをたたみこみ符号化したシンボル

int		conv_viterbi_decode(ConvCoder c, int x);
		x: 硬判定後のシンボル
		戻り値: xをビタビ復号したシンボル
		注: 入力シンボルに対する復号シンボルは
		(n,k,m) 符号の場合 n * (m + 1) * 5 後に出力される


BitIlvr		new_bit_interleaver(int ns, int blen);
		ns: インターリーブをかけるシンボルの数
		blen: シンボル当りのビット長

void		bit_interleave(BitIlvr b, int *src, int *dst);
void		bit_deinterleave(BitIlvr b, int *src, int *dst);

SymIlvr		new_symbol_interleaver(int ns);
		ns: インターリーブをかけるシンボルの数

void		symbol_interleave(SymIlvr s, int *src, int *dst);
void		symbol_deinterleave(SymIlvr s, int *src, int *dst);