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()"); } }
public CalibratorOfCollapsingCombinations(ADC adcInst) { this.adcInst = adcInst; registerUnCollapsed = (SCHVNRegister)this.adcInst.reg.Clone(); registerUnCollapsed.SetPolinomNull(); registerUnCollapsed.AddBitValue(0, 1); registerUnCollapsed.AddBitValue(1, 1); }
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); }
public Converter(NotationSystem binaryNotSyst, NotationSystem schvnNotSyst) { bivaryDac = new DAC(binaryNotSyst); shcvnDac = new DAC(schvnNotSyst); regSchvn = RegisterFactory.Create(schvnNotSyst) as SCHVNRegister; }