public string blockAvecErreur() { string resultatFinal = ""; string[] blocks = this.Blocks; string[] blocksCode = new string[blocks.Length]; Matrice matriceGeneratrice = this.MatriceGeneratrice; Matrice matriceControle = this.MatriceControle; BitDeParite[] bitDeParite = this.BitsDeParite; for (int i = 0; i < blocks.Length; i++) { string data = ""; string block = blocks[i]; double[] matriceColonne = this.blockEnMatriceColonne(block); double[] code = matriceGeneratrice.code(matriceColonne); for (int j = 0; j < code.Length; j++) { string donnee = code[j].ToString(); data += donnee; } Console.WriteLine(data); resultatFinal += data; } this.BlockErreur = resultatFinal; return(resultatFinal); }
public string applicationCodageHamming(string message) { string resultatFinal = ""; string[] blocks = this.Blocks; Matrice matriceGeneratrice = this.MatriceGeneratrice; Matrice matriceControle = this.MatriceControle; BitDeParite[] bitDeParite = this.BitsDeParite; List <double[]> codes = this.blockCode(message); for (int i = 0; i < blocks.Length; i++) { string resultat = ""; string block = blocks[i]; double[] matriceColonne = this.blockEnMatriceColonne(block); double[] code = codes[i]; double[] syndrome = matriceControle.code(code); if (!syndrome.Contains(1)) { resultat = this.decodage(code); } else { BitDeParite[] equationAvecErreur = this.equationAvecErreur(code); this.correctionErreur(code); resultat = this.decodage(code); } resultatFinal += resultat; } return(resultatFinal); }
public Matrice genererMatriceGeneratrice() { Matrice matrice = new Matrice(); double[][] donnees = new double[7][]; //ligne1 donnees[0] = new double[4]; donnees[0][0] = 1; donnees[0][1] = 1; donnees[0][2] = 0; donnees[0][3] = 1; //ligne2 donnees[1] = new double[4]; donnees[1][0] = 1; donnees[1][1] = 0; donnees[1][2] = 1; donnees[1][3] = 1; //ligne3 donnees[2] = new double[4]; donnees[2][0] = 1; donnees[2][1] = 0; donnees[2][2] = 0; donnees[2][3] = 0; //ligne4 donnees[3] = new double[4]; donnees[3][0] = 0; donnees[3][1] = 1; donnees[3][2] = 1; donnees[3][3] = 1; //ligne5 donnees[4] = new double[4]; donnees[4][0] = 0; donnees[4][1] = 1; donnees[4][2] = 0; donnees[4][3] = 0; //ligne6 donnees[5] = new double[4]; donnees[5][0] = 0; donnees[5][1] = 0; donnees[5][2] = 1; donnees[5][3] = 0; //ligne7 donnees[6] = new double[4]; donnees[6][0] = 0; donnees[6][1] = 0; donnees[6][2] = 0; donnees[6][3] = 1; matrice.Structure = donnees; this.MatriceGeneratrice = matrice; return(matrice); }
public Matrice produit(double[] colonne) { Matrice resultat = new Matrice(); double[][] matriceA = this.Structure; double[][] matriceProduit = new double[matriceA.Length][]; for (int i = 0; i < matriceA.Length; i++) { double[] ligneA = matriceA[i]; List <double> ligneResultat = new List <double>(); for (int j = 0; j < colonne.Length; j++) { double calcul = ligneA[j] * colonne[j]; ligneResultat.Add(calcul); } matriceProduit[i] = ligneResultat.ToArray(); } resultat.Structure = matriceProduit; return(resultat); }
public Matrice genererMatriceDeControle() { Matrice matrice = new Matrice(); double[][] donnees = new double[3][]; //ligne1 donnees[0] = new double[7]; donnees[0][0] = 1; donnees[0][1] = 0; donnees[0][2] = 1; donnees[0][3] = 0; donnees[0][4] = 1; donnees[0][5] = 0; donnees[0][6] = 1; //ligne2 donnees[1] = new double[7]; donnees[1][0] = 0; donnees[1][1] = 1; donnees[1][2] = 1; donnees[1][3] = 0; donnees[1][4] = 0; donnees[1][5] = 1; donnees[1][6] = 1; //ligne1 donnees[2] = new double[7]; donnees[2][0] = 0; donnees[2][1] = 0; donnees[2][2] = 0; donnees[2][3] = 1; donnees[2][4] = 1; donnees[2][5] = 1; donnees[2][6] = 1; matrice.Structure = donnees; this.MatriceControle = matrice; return(matrice); }