Esempio n. 1
0
        public BchCodding_Code(ulong characteristicofField, int countMistake, ulong[] figure)

        {
            try
            {
                CharOfField          = characteristicofField;
                CountError           = countMistake;
                GeneratingFieldArray = figure;
                InitializeComponent();

                var generator = new Polynomial(GeneratingFieldArray);
                _bch = new BchCode(CountError, CharOfField, generator);
                var lengthOfMessage         = _bch.CodeLength;
                var numOfInformationSymbols = _bch.NumberOfInformationSymbols;
                var countOfMistake          = _bch.ErrorNumber;

                string str1 = Convert.ToString(lengthOfMessage);
                string str2 = Convert.ToString(numOfInformationSymbols);
                string str3 = Convert.ToString(countOfMistake);
                string str4 = ",";
                InfoTextBox.Text = "(" + str1 + str4 + str2 + str4 + str3 + ")";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            //var field=new FactorRing(new Polynomial(new ulong[] { 1, 1, 1 }),3 );
            //Polynomial[,] p=new Polynomial[2,2];
            //p[0,0]=new Polynomial(new ulong[] {2});
            //p[0, 1] = new Polynomial(new ulong[] { 2 });
            //p[1, 0] = new Polynomial(new ulong[] { 2 });
            //p[1, 1] = new Polynomial(new ulong[] { 0 });
            //Matrix m=new Matrix(p,field);
            //var x = m.Solve();
            //Console.ReadKey();
            DivTest(11);
            Dictionary <int, Polynomial> table = new Dictionary <int, Polynomial>()
            {
                { 2, new Polynomial(new ulong[] { 1, 1, 1 }) },
                { 3, new Polynomial(new ulong[] { 1, 0, 1, 1 }) },
                { 4, new Polynomial(new ulong[] { 1, 1, 0, 0, 1 }) },
                { 5, new Polynomial(new ulong[] { 1, 0, 0, 1, 0, 1 }) },
                { 6, new Polynomial(new ulong[] { 1, 0, 0, 0, 0, 1, 1 }) },
            };



            var     generator = new Polynomial(new ulong[] { 1, 1, 0, 1 });
            BchCode bch       = new BchCode(20, 7, generator);
            var     msg1      = new Polynomial(new ulong[] { 1 });
            var     msg2      = bch.Code(msg1);
            var     error     = new Polynomial(new ulong[] { 2, 2, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 1, 2 });
            var     msg3      = error + msg2;

            msg3.SetMod(7);
            msg3.Reduce();
            var msg4 = bch.Decode(msg3);


            Console.WriteLine("Введите характеристику поля:");
            Console.WriteLine("Введите порождающий полином:\n");



            Console.WriteLine("Введите сообщение:" + msg1);
            Console.WriteLine("Закодированное сообщение:" + msg2);

            Console.WriteLine("\nВведите вектор ошибки:" + error);
            Console.WriteLine("Принятое сообщение:" + msg3);
            Console.WriteLine("Исправленное сообщение" + msg4);
            Console.ReadKey();
        }