たたみこみ符号関係の関数(速度の保証なし)
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);