double CalibrateThirdStrategyLogic(int bitNum)
        {
            RAM.Weights.InitRAMWeights(adcInst.dac.schvn);

            int    k   = (int)(bitNum / 2);
            double res = 0;

            SCHVNRegister adcReg = adcInst.reg as SCHVNRegister;

            if (adcReg != null)
            {
                adcReg.polinom[bitNum] = 1;
                double aKalSuper = adcInst.dac.Convert(adcReg);

                for (int i = 0; i < k; i++)
                {
                    double q1 = adcInst.dac.ZnachenyaC(adcInst.ConvertBySARMethod(aKalSuper));
                    adcReg.UCollapse(bitNum - i);
                    double aKalCollapsed = adcInst.dac.Convert(adcReg);

                    double q2 = adcInst.dac.ZnachenyaC(adcInst.ConvertBySARMethod(aKalSuper > aKalCollapsed ? aKalSuper : aKalCollapsed, bitNum));
                    res += q1 - q2;
                }
                return(res / k);
            }
            else
            {
                throw new Exception("Not supported operation in CalibrateThirdStrategyLogic()");
            }
        }
예제 #2
0
        public CalibratorOfCollapsingCombinations(ADC adcInst)
        {
            this.adcInst        = adcInst;
            registerUnCollapsed = (SCHVNRegister)this.adcInst.reg.Clone();
            registerUnCollapsed.SetPolinomNull();

            registerUnCollapsed.AddBitValue(0, 1);
            registerUnCollapsed.AddBitValue(1, 1);
        }
예제 #3
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);
        }
예제 #4
0
 public Converter(NotationSystem binaryNotSyst, NotationSystem schvnNotSyst)
 {
     bivaryDac = new DAC(binaryNotSyst);
     shcvnDac  = new DAC(schvnNotSyst);
     regSchvn  = RegisterFactory.Create(schvnNotSyst) as SCHVNRegister;
 }