• 大小: 540KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: C/C++
  • 标签: 循环码  c语言  

资源简介

用c语言写的循环码的编译码,通用版,有注释!

资源截图

代码片段和文件信息

#include
#include
#include

#define n 15
#define k 11
#define d 4
/*
对不同的(nk)循环码,
修改下面n,k,d的值,同时按照注释修改数组的大小。
(需提前计算好生成多项式,然后输入生成多项式的系数)
*/
//int n=15;//(nk)循环码;
//int k=11;
//int d=4;//移存器的个数d=n-k;
/* 
编码输入     编码输出    译码输入 译码输出   s(x)临时存放数组
C_Input[k] C_Output[n]D_Input[n]Output[n] reg_temp[d]
*/
int C_Input[k] C_Output[n] D_Input[n] Output[n] reg_temp[d];
/*
编码除法电路余数,即校验位
reg[d] = {0};
*/
int reg[d] = { 0 };
/*
生成多项式的系数
G[d + 1]
*/
int G[d+1];
/*
译码器除法电路余数,即s(x)
D_reg[d]{0};
*/
int D_reg[d] = { 0 };

void Begin();
void Code();
void Decoding(int * int *);
void Transmit(int * int int *);
double gngauss(double double);

void main()
{
Begin();
}
void Begin(){
fflush(stdin);
char ch;
printf(“ ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘\n“);
printf(“input ‘c‘ to goto the code\n“);
//printf(“input ‘d‘ to goto the decoding\n“);
printf(“input ‘e‘ to exit\n “);
printf(“ ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘\n“);
ch = getchar();
if (ch == ‘c‘) Code();
//else if(ch==‘d‘) Decoding();
else if (ch == ‘e‘) exit(0);
else printf(“\n errerplease input again;\n“);
}
void Code()
{
int temp i jm;
m = n;
printf(“please input the %d bits information code:“k);
for (i = 0; i scanf_s(“%d“ &C_Input[i]);
printf(“输入 %d 位生成多项式的系数(从低位到高位中间用空格隔开,如生成多项式为g(x)=x^3+x^2+1),输入:1 0 1 1 ):“d+1);
for (i = 0; i<(d + 1); i++)
scanf_s(“%d“ &G[i]);
//for (i = 0; i < (d + 1); i++)
// printf(“%d“G[i]);
//exit(0);
for (i = 0; i {
temp = reg[d - 1] + C_Input[i];
if (temp == 2) temp = 0;
for (j = d; j>1; j--)
{
reg[j - 1] = reg[j - 2] + temp*G[j - 1];
if (reg[j - 1] == 2) reg[j - 1] = 0;
}
reg[0] = temp*G[0];
}
for (i = 0; i C_Output[i] = C_Input[i];
for (i = k; i {
temp = reg[d - 1];
for (j = d - 1; j>0; j--)
reg[j] = reg[j - 1];
reg[0] = 0;
C_Output[i] = temp;
}
printf(“\ncode Output:“);//输出编码结果。
for (i = 0; i printf(“%d“ C_Output[i]);
printf(“\n“);
Transmit(C_Output m G);
}

void Transmit(int *C_Output int m int *G){
double a b;
int i *G1;
G1 = G;
//printf(“\nTransmit input is:“);
//for (i = 0; i // printf(“%d“ C_Output[i]);
//printf(“\n“);
for (i = 0; i {
a = gngauss(0 0.1);//噪声
//printf(“%f\n“a);
b = C_Output[i] + a;
if (b<0.1) D_Input[i] = 0;
else D_Input[i] = 1;
}
//printf(“\nTransmit output is:“);
//for (i = 0; i // printf(“%d“D_Input[i]);
//printf(“\n“);
Decoding(D_Input G1);
}

void Decoding(int *D_Input int *G){
int temp i x = 1 p j;
printf(“\ndecode input is:“);
for (i = 0; i printf(“%d“ D_Input[i]);
printf(“\n“);
//printf(“\n input the receive information:“);
//for(i=0;i // scanf_s(“%d“&Input[i]);
//printf(“再输入一遍生成多项式的系数(从低位到高位中间用空格隔开,如生成多项式为g(x)=x^3+x^2+1),输入:1 0 1 1 ):“);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4102  2015-11-02 13:58  cycle codes and decodes\ConsoleApplication2\ConsoleApplication2.vcxproj

     文件        951  2015-11-02 13:58  cycle codes and decodes\ConsoleApplication2\ConsoleApplication2.vcxproj.filters

     文件       4922  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\cycle code.cpp

     文件        736  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug\ConsoleA.4B26EE22.tlog\cl.command.1.tlog

     文件       1016  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug\ConsoleA.4B26EE22.tlog\CL.read.1.tlog

     文件        628  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug\ConsoleA.4B26EE22.tlog\CL.write.1.tlog

     文件        183  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug\ConsoleA.4B26EE22.tlog\ConsoleApplication2.lastbuildstate

     文件       1302  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug\ConsoleA.4B26EE22.tlog\link.command.1.tlog

     文件       2338  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug\ConsoleA.4B26EE22.tlog\link.read.1.tlog

     文件        594  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug\ConsoleA.4B26EE22.tlog\link.write.1.tlog

     文件       1675  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug\ConsoleApplication2.log

     文件      17985  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug\cycle code.obj

     文件      44032  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug\vc120.idb

     文件      86016  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug\vc120.pdb

     文件    2555904  2015-11-03 11:41  cycle codes and decodes\cycle codes and decodes.sdf

     文件       1003  2015-11-02 13:49  cycle codes and decodes\cycle codes and decodes.sln

    ..A..H.     19456  2015-11-03 11:40  cycle codes and decodes\cycle codes and decodes.v12.suo

     文件      36352  2015-11-03 11:40  cycle codes and decodes\Debug\ConsoleApplication2.exe

     文件     265404  2015-11-03 11:40  cycle codes and decodes\Debug\ConsoleApplication2.ilk

     文件     643072  2015-11-03 11:40  cycle codes and decodes\Debug\ConsoleApplication2.pdb

     目录          0  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug\ConsoleA.4B26EE22.tlog

     目录          0  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2\Debug

     目录          0  2015-11-03 11:40  cycle codes and decodes\ConsoleApplication2

     目录          0  2015-11-02 15:59  cycle codes and decodes\Debug

     目录          0  2015-11-03 11:41  cycle codes and decodes

----------- ---------  ---------- -----  ----

              3687671                    25


评论

共有 条评论