public double ZnachenyaIBinary(BinaryRegister reg)
        {
            double ekv = 0;

            for (int i = this.reg.binarySys.n - 1; i >= 0; i--)
            {
                ekv += reg.polinom[i] * this.reg.binarySys.ideal[i];
            }
            return(ekv);
        }
        public CalibratorOfTrackingCombinations(ADC adcInst)
        {
            this.adcInst = adcInst;

            int            binaryN   = (int)Math.Ceiling(Math.Log(adcInst.dac.schvn.alpha, Math.E) * adcInst.dac.schvn.n / Math.Log(2, Math.E));
            NotationSystem binarySys = new NotationSystem(binaryN, 2, 0);

            binaryReg = new BinaryRegister(binarySys);

            bToSchvnConv = new Converter(binarySys, adcInst.dac.schvn);
        }
        public int[] Convert(BinaryRegister binaryReg)
        {
            this.reg.SetPolinomNull();

            double signal = ZnachenyaIBinary(binaryReg);

            for (int ik1 = this.reg.n - 1; ik1 >= 0; ik1--)
            {
                if (ZnachenyaC(this.reg.AddBitValue(ik1, 1)) <= signal)
                {
                }
                else
                {
                    this.reg.AddBitValue(ik1, 0);
                }
            }
            return(this.reg.polinom);
        }
Пример #4
0
        public SCHVNRegister Convert(BinaryRegister regBinary)
        {
            SCHVNRegister regSchvn = RegisterFactory.Create(schvnNotSyst);

            double signal = bivaryDac.ZnachenyaI(regBinary);

            for (int ik1 = shcvnDac.schvn.n - 1; ik1 >= 0; ik1--)
            {
                if (shcvnDac.ZnachenyaC(regSchvn.AddBitValue(ik1, 1)) <= signal)
                {
                }
                else
                {
                    shcvnDac.AddBitValue(ik1, 0);
                }
            }
            return(regSchvn);
        }
Пример #5
0
        public SCHVNRegister ConvertC(BinaryRegister regBinary)
        {
            // цей метод не може бути замінений ADC.SARAnalogSignal(...
            // оскільки оперує чисто цифровими значеннями ваг розрядів
            regSchvn.SetPolinomNull();
            double signal = bivaryDac.ZnachenyaI(regBinary);

            for (int ik1 = shcvnDac.schvn.n - 1; ik1 >= 0; ik1--)
            {
                if (shcvnDac.ZnachenyaC(regSchvn.AddBitValue(ik1, 1)) <= signal)
                {
                }
                else
                {
                    regSchvn.AddBitValue(ik1, 0);
                }
            }

            return(regSchvn);
        }