AssertFatal(1==0,"Illegal PRACH format %d for sequence length 839\n",prach_fmt_id);
// 10, 15 MHz @ 15.36 Ms/s
break;
Ncp>>=1;
}
dftlen>>=1;
}else{
switch(prach_fmt_id){
case4://A1
Ncp=288>>mu;
break;
break;
case5://A2
case23040:
Ncp=576>>mu;
// 20 MHz @ 23.04 Ms/s
Ncp=(Ncp*3)/4;
dftlen=(dftlen*3)/4;
break;
break;
case6://A3
case30720:
Ncp=864>>mu;
// 20, 25, 30 MHz @ 30.72 Ms/s
break;
break;
case7://B1
case46080:
Ncp=216>>mu;
// 40 MHz @ 46.08 Ms/s
Ncp=(Ncp*3)/2;
dftlen=(dftlen*3)/2;
break;
break;
/*
case61440:
case 4: //B2
// 40, 50, 60 MHz @ 61.44 Ms/s
Ncp = 360 >> mu;
Ncp<<=1;
dftlen<<=1;
break;
break;
case 5: //B3
case92160:
Ncp = 504 >> mu;
// 50, 60, 70, 80, 90 MHz @ 92.16 Ms/s
Ncp*=3;
dftlen*=3;
break;
break;
*/
case8://B4
case122880:
Ncp=936>>mu;
// 70, 80, 90, 100 MHz @ 122.88 Ms/s
Ncp<<=2;
dftlen<<=2;
break;
break;
case9://C0
case184320:
Ncp=1240>>mu;
// 100 MHz @ 184.32 Ms/s
Ncp=Ncp*6;
dftlen=dftlen*6;
break;
break;
case10://C2
case245760:
Ncp=2048>>mu;
// 200 MHz @ 245.76 Ms/s
Ncp<<=3;
dftlen<<=3;
break;
break;
default:
default:
AssertFatal(1==0,"Unknown PRACH format ID %d\n",prach_fmt_id);
AssertFatal(1==0,"sample rate %f MHz not supported for numerology %d\n",fp->samples_per_subframe/1000.0,mu);
break;
}
dftlen=2048>>mu;
}
}
//actually what we should be checking here is how often the current prach crosses a 0.5ms boundary. I am not quite sure for which paramter set this would be the case, so I will ignore it for now and just check if the prach starts on a 0.5ms boundary