protected override List <int> GenerateWord(int currentState, int currentPeriod, int symbolNumber) { List <int> result = new List <int>(); double[] errorDistribution = GenerateErrorDistribution(currentState, currentPeriod); double[] symbolDistribution = MatrixUtils.GetRow(Model.B, currentState); for (int i = 0; i < symbolNumber; i++) { bool hasError = ProbabilityHandler.RealizeBinaryProbability(errorDistribution[i]) == 1; int symbol; if (hasError) { symbol = ProbabilityHandler.RealizeProbability(symbolDistribution) + 1; } else { symbol = 0; } result.Add(symbol); } return(result); }
protected override List <int> GenerateWord(int currentState, int currentPeriod, int symbolNumber) { List <int> result = new List <int>(); double[] symbolDistribution = MatrixUtils.GetRow(Model.B, currentState); for (int i = 0; i < symbolNumber; i++) { result.Add(ProbabilityHandler.RealizeProbability(symbolDistribution)); } return(result); }
protected AbstractHsmModelGenerator(T model, IPseudoRandomNumberGenerator pRnGenerator) { Model = model; ProbabilityHandler = new ProbabilityHandler(pRnGenerator); }