📄 blockcodegenerator.c
字号:
#include <string.h>#include <iostream.h>#include <stdio.h>#include "BlockCodeGenerator.h"BlockCodeGenerator::BlockCodeGenerator(char codeName[100]) { int i; FILE *file; file=fopen(codeName, "r"); //fscanf(file, "%d%d%d%d%d", &N, &K, &M, &l, &m); fscanf(file, "%d%d%d", &N, &M, &m); K=N-M; //tentative K /* S = new int*[l]; for (i = 0; i < l; i++) { S[i] = new int[N]; for (int j = 0; j < N; j++) { fscanf(file, "%d", &S[i][j]); S[i][j]--; // matlab indices start with 1 } } */ S = NULL; if (M) { T = new int*[M]; for (int i = 0; i < M; i++) { T[i] = new int[m]; for (int j = 0; j < m; j++) { fscanf(file, "%d", &T[i][j]); T[i][j]--; // matlab indices start with 1 } } } else { // no parity-check matrix T = NULL; } /* infoBitsLocation = new int[K]; for (i = 0; i < K; i++) { fscanf(file, "%d", &infoBitsLocation[i]); infoBitsLocation[i]--; // matlab indices start with 1 } */ fclose(file); //printDegSeq();}void BlockCodeGenerator::printDegSeq(void) { int i, j, k, itmp, *(*H); H=new int*[M]; for(i=0;i<M;i++) H[i]=new int[N]; for(i=0;i<M;i++){ for(j=0;j<N;j++) H[i][j]=0; for(j=0;j<m;j++){ if(T[i][j]>=0){ H[i][T[i][j]]=1; } } } cout<<"Row weight distribution..."<<endl; for(i=0;i<M;i++){ itmp=0; for(j=0;j<N;j++) itmp+=H[i][j]; cout<<itmp<<" "; } cout<<endl; cout<<"Column weight distribution..."<<endl; for(i=0;i<N;i++){ itmp=0; for(j=0;j<M;j++) itmp+=H[j][i]; cout<<itmp<<" "; } cout<<endl; for(i=0;i<M;i++) delete [] H[i]; delete [] H;}BlockCodeGenerator::~BlockCodeGenerator() { if(infoBitsLocation!=NULL) { delete[] infoBitsLocation; } infoBitsLocation=NULL; if (T != NULL) { for (int i = 0; i < M; i++) { delete[] T[i]; T[i] = NULL; } delete[] T; } T = NULL; if(S !=NULL) { for (int i = 0; i < l; i++) { delete[] S[i]; S[i] = NULL; } delete[] S; } S = NULL;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -