Beispiel #1
0
        public Register(NotationSystem notSystem)
        {
            this.n  = notSystem.n;
            polinom = new int[n];

            Diapason = Math.Pow(2, this.n) - 1;
        }
Beispiel #2
0
        public MethodOfCalibrationOfWeights(ADC adcInst)
        {
            this.adcInst    = adcInst;
            this.dacInst    = adcInst.dac;
            this.shchvnInst = adcInst.dac.schvn;

            RAM.InitRAM(shchvnInst);
        }
Beispiel #3
0
        public ADC(NotationSystem schvn)
        {
            dac = new DAC(schvn);
            reg = RegisterFactory.Create(schvn);
            isTrackingCalibrated  = false;
            isCletchingCalibrated = false;

            RAM.Weights.InitRAMWeights(schvn);
        }
 public static Register Create(NotationSystem notSystem)
 {
     if (notSystem.alpha == 2.0)
     {
         return(new BinaryRegister(notSystem));
     }
     else
     {
         return(new SCHVNRegister(notSystem));
     }
 }
Beispiel #5
0
 public static void InitRAMWeights(NotationSystem shchvn)
 {
     lock (locker)
     {
         isInit            = true;
         shchvnInst        = shchvn;
         calibratedWeights = new double[shchvnInst.n];
         // врівноваження відбувається реальними вагами розрядів, допоки не визначені калібровані ваги
         shchvnInst.ideal.CopyTo(calibratedWeights, 0);
     }
 }
        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 SCHVNRegister(NotationSystem notSystem)
            : base(notSystem)
        {
            this.schvnSys = notSystem;
            double binaryNDouble = Math.Log(notSystem.alpha, Math.E) * this.n / Math.Log(2, Math.E);
            int    binaryNInt    = (int)Math.Ceiling(binaryNDouble);

            this.Diapason = Math.Pow(2, binaryNDouble) - 1;

            binarySys = new NotationSystem(binaryNInt, 2, 0);
            binaryReg = new BinaryRegister(binarySys);

            CollapsingNumberOfBits = GetCollapsingNumberOfBits();
        }
 public Converter(NotationSystem binaryNotSyst, NotationSystem schvnNotSyst)
 {
     bivaryDac = new DAC(binaryNotSyst);
     shcvnDac  = new DAC(schvnNotSyst);
     regSchvn  = RegisterFactory.Create(schvnNotSyst) as SCHVNRegister;
 }
Beispiel #9
0
 public DAC(NotationSystem schvn)
 {
     this.schvn   = schvn;
     isCalibrated = false;
 }
 public BinaryRegister(NotationSystem notSystem)
     : base(notSystem)
 {
 }
Beispiel #11
0
 public Converter(NotationSystem binaryNotSyst, NotationSystem schvnNotSyst)
 {
     bivaryDac = new DAC(binaryNotSyst);
     shcvnDac  = new DAC(schvnNotSyst);
 }