Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }