encode27.c

来自「viterbi 1/2码率 长度k=7的编码译码程序」· C语言 代码 · 共 34 行

C
34
字号
/* Encode standard input in the r=1/2 K=7 standard convolutional code. * Encoded output is big-endian, one byte per symbol, with 1 represented * by 255 and 0 by 0 */#include <stdio.h>#include "viterbi27.h"extern unsigned char Partab[];	/* Parity lookup table */main(int argc,char *argv[]){  unsigned int encstate;  int c,i;  encstate = 0;  while((c = getchar()) != EOF){    for(i=7;i>=0;i--){      encstate = (encstate << 1) | ((c >> 7) & 1);      c <<= 1;      /* 1-sym -> 255, 0-sym -> 0 */      putchar(0 - Partab[encstate & POLYA]);      putchar(0 - Partab[encstate & POLYB]);    }  }  /* Generate tail */  for(i=5;i>=0;i--){    encstate = encstate << 1;    putchar(0 - Partab[encstate & POLYA]);    putchar(0 - Partab[encstate & POLYB]);  }  return 0;}

⌨️ 快捷键说明

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