⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encoder.cpp

📁 介绍了一种串行LDPC码的编码器和译码器的实现形式 C++环境下编写。有些地方还需完善
💻 CPP
字号:
#include "sparse.h"
#include "main.h"
/*function: according to the given form read the generation matrix and check matrix 
            information position into the corresponding vector
 parameter: S[][EncodedLength] generation matrix
            T[][H_ColNum] check matrix
            infoBitsLocation[]  information position            */
void Read_Matrix(int S[][EncodedLength],int T[][H_ColNum],int infoBitsLocation[])
{ 
	char codeName[20];
	int n,k,jj,ii,kk;
	int i,j;

	sprintf(codeName,"(1008,3,6).txt");
	FILE *file;
	if((file=fopen(codeName, "r"))==NULL)
	{	printf("can't open the file\n");
	exit(1);
	}
	
	fscanf(file, "%d%d%d%d%d", &n, &k, &jj, &ii, &kk);
	printf("code_length=%d\ninfo_bit_length=%d\ncheck_bit_length=%d\nGen_matrix_row_num=%d\nOne_bits_num_col=%d", n, k, jj, ii, kk);
	printf("\npress any key to continue...\n");
	getchar();
	
	// read generate matrix from file
	for (i = 0;i < G_RowNum;i++ )
	{   
		for(j = 0;j < EncodedLength;j++ ) 
		{	  
			fscanf(file,"%d",&S[i][j]);
			S[i][j]--; 
		}
	}
	
	// read check matrix from file
	if( ParityCheckNum ) 
	{   
		for( i = 0;i < ParityCheckNum; i++ )
		{  
			for( j = 0;j < H_ColNum; j++ )
			{  
				fscanf( file, "%d", &T[i][j]);	
				T[i][j]--; 
			}         
		}      
	}
	else 
		T = NULL;

	// read infomation bits' locations
	for (i = 0; i < InfoLength; i++ )
	{
		fscanf(file, "%d", &infoBitsLocation[i]);
		infoBitsLocation[i]--; 
	}
	
	fclose(file);

}

/*funtion:   encode information into code
  parameter: s[][EncodedLength] generation matrix
             info[] information to be encoded
             coded[] codeword                    */
void encoder(int S[][EncodedLength],int info[],int coded[])
{   
	int p = 0;
	int q = 0;
	int b = 0;
	
	for ( p = 0 ; p < EncodedLength ; p++ )
	{  
		b = 0;

		for ( q = 0 ; q < G_RowNum; q++)
		{
			if ( S[q][p] >= 0 ) 
				b = b + info[S[q][p]];
		}

		b = b%2;
		coded[p] = b;

	}
}

⌨️ 快捷键说明

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