encode.c
来自「程序由C写成,在VC环境中实现,主要描述了数字电视地面广播标准中BCH(762,」· C语言 代码 · 共 155 行
C
155 行
//Head files
//-----------------------------------------------------------------
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
#include "time.h"
#include "encode.h"
//-----------------------------------------------------------------
//产生随机数
void RandData(int FrameLength)
{
int i, j;
for (i =0; i<DATA_LENGTH; i++)
{
j = rand()%2;
if (i <INFOR_DATA_LENGTH)
{
if (j ==0)
CodesTemp[i] = Codes[i] = 0;
else
CodesTemp[i] = Codes[i] = 1;
}
else
{
Codes[i] = 0;
}
}
}
//产生已知数
void KnownData(void)
{
int i;
for (i =0; i<DATA_LENGTH; i++)
{
if (i <INFOR_DATA_LENGTH)
{
if (i%2 == 0)
CodesTemp[i] = Codes[i] = 1;
else
CodesTemp[i] = Codes[i] = 0;
}
else
{
Codes[i] = 0;
}
}
}
//BCH编码
void BchEncode (void)
{
int Garray[CHECK_DATA_LENGTH+1];
int i, j;
for (i =0; i<(CHECK_DATA_LENGTH+1); i++)
{
if ((i == 0) || (i == 7) || (i == 10)) //10000001001
Garray[i] = 1;
else
Garray[i] = 0;
}
for (i =0; i<INFOR_DATA_LENGTH; i++)
{
if (Codes[i] == 1)
{
for (j =0; j<(CHECK_DATA_LENGTH+1); j++)
{
Codes[i+j] = (Codes[i+j]+Garray[j])%2;
}
}
}
for (i =0; i<INFOR_DATA_LENGTH; i++)
{
Codes[i] = CodesTemp[i];
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?