Beispiel #1
0
 public double getCRB() {
   double p = h / var;
   AllPAMSymbolGenerator gen = new AllPAMSymbolGenerator();
   double bestcrb = Double.NEGATIVE_INFINITY;
   double[] d = new double[T];
   for (int i = 0; i < Math.pow(M, T); i++) {
     double[] nextsym = gen.getNext();
     // System.out.println(nextsym.length);
     for (int j = 0; j < T; j++) {
       d[j] = x[j] - nextsym[j];
     }
     double magd2 = VectorFunctions.sum2(d);
     if (magd2 > 0.5) {
       double std = VectorFunctions.dot(x, d);
       double crb = var / (magx2 - p * std * std / Math.expm1(p * magd2));
       if (crb > bestcrb) bestcrb = crb;
     }
   }
   return bestcrb;
 }