fixing NR_arfcn calculation
This commit is contained in:
committed by
Raymond Knopp
parent
5df0326946
commit
794f9dac71
@@ -69,14 +69,14 @@ nr_bandentry_t nr_bandtable[] = {
|
||||
{83, 703000, 748000, 000, 000, 20, 140600, 100},
|
||||
{84, 1920000, 1980000, 000, 000, 20, 384000, 100},
|
||||
{86, 1710000, 1785000, 000, 000, 20, 342000, 100},
|
||||
{257,26500000,29500000,26500000,29500000, 1,2054166, 60},
|
||||
{257,26500000,29500000,26500000,29500000, 2,2054167, 120},
|
||||
{258,24250000,27500000,24250000,27500000, 1,2016667, 60},
|
||||
{258,24250000,27500000,24250000,27500000, 2,2016667, 120},
|
||||
{260,37000000,40000000,37000000,40000000, 1,2229166, 60},
|
||||
{260,37000000,40000000,37000000,40000000, 2,2229167, 120},
|
||||
{261,27500000,28350000,27500000,28350000, 1,2070833, 60},
|
||||
{261,27500000,28350000,27500000,28350000, 2,2070833, 120}
|
||||
{257,26500020,29500000,26500020,29500000, 1,2054166, 60},
|
||||
{257,26500080,29500000,26500080,29500000, 2,2054167, 120},
|
||||
{258,24250080,27500000,24250080,27500000, 1,2016667, 60},
|
||||
{258,24250080,27500000,24250080,27500000, 2,2016667, 120},
|
||||
{260,37000020,40000000,37000020,40000000, 1,2229166, 60},
|
||||
{260,37000080,40000000,37000080,40000000, 2,2229167, 120},
|
||||
{261,27500040,28350000,27500040,28350000, 1,2070833, 60},
|
||||
{261,27500040,28350000,27500040,28350000, 2,2070833, 120}
|
||||
};
|
||||
|
||||
|
||||
@@ -306,13 +306,23 @@ uint32_t to_nrarfcn(int nr_bandP,
|
||||
(long long unsigned int)(nr_bandtable[i].dl_max - bw_kHz));
|
||||
|
||||
int deltaFglobal = 60;
|
||||
uint32_t N_REF_Offs = 2016667;
|
||||
uint64_t F_REF_Offs_khz = 24250080;
|
||||
|
||||
if (dl_CarrierFreq < 3e9) deltaFglobal = 15;
|
||||
if (dl_CarrierFreq < 24.25e9) deltaFglobal = 5;
|
||||
if (dl_CarrierFreq < 24.25e9) {
|
||||
deltaFglobal = 15;
|
||||
N_REF_Offs = 600000;
|
||||
F_REF_Offs_khz = 3000000;
|
||||
}
|
||||
if (dl_CarrierFreq < 3e9) {
|
||||
deltaFglobal = 5;
|
||||
N_REF_Offs = 0;
|
||||
F_REF_Offs_khz = 0;
|
||||
}
|
||||
|
||||
// This is equation before Table 5.4.2.1-1 in 38101-1-f30
|
||||
// F_REF=F_REF_Offs + deltaF_Global(N_REF-NREF_REF_Offs)
|
||||
nrarfcn = (((dl_CarrierFreq_by_1k - nr_bandtable[i].dl_min)/deltaFglobal)+nr_bandtable[i].N_OFFs_DL);
|
||||
nrarfcn = (((dl_CarrierFreq_by_1k - F_REF_Offs_khz)/deltaFglobal)+N_REF_Offs);
|
||||
|
||||
delta_arfcn = nrarfcn - nr_bandtable[i].N_OFFs_DL;
|
||||
if(delta_arfcn%(nr_bandtable[i].step_size)!=0)
|
||||
@@ -329,13 +339,21 @@ uint64_t from_nrarfcn(int nr_bandP,
|
||||
{
|
||||
int i;
|
||||
int deltaFglobal = 5;
|
||||
uint32_t N_REF_Offs = 0;
|
||||
uint64_t F_REF_Offs_khz = 0;
|
||||
int scs_khz = 15<<scs_index;
|
||||
uint32_t delta_arfcn;
|
||||
|
||||
if (dl_nrarfcn > 599999 && dl_nrarfcn < 2016667)
|
||||
deltaFglobal = 15;
|
||||
if (dl_nrarfcn > 2016666 && dl_nrarfcn < 3279166)
|
||||
if (dl_nrarfcn > 599999 && dl_nrarfcn < 2016667) {
|
||||
deltaFglobal = 15;
|
||||
N_REF_Offs = 600000;
|
||||
F_REF_Offs_khz = 3000000;
|
||||
}
|
||||
if (dl_nrarfcn > 2016666 && dl_nrarfcn < 3279166) {
|
||||
deltaFglobal = 60;
|
||||
N_REF_Offs = 2016667;
|
||||
F_REF_Offs_khz = 24250080;
|
||||
}
|
||||
|
||||
AssertFatal(nr_bandP <= 261, "nr_band %d > 260\n", nr_bandP);
|
||||
for (i = 0; i < NR_BANDTABLE_SIZE && nr_bandtable[i].band != nr_bandP; i++);
|
||||
@@ -349,14 +367,11 @@ uint64_t from_nrarfcn(int nr_bandP,
|
||||
if(delta_arfcn%(nr_bandtable[i].step_size)!=0)
|
||||
AssertFatal(1==0,"dl_nrarfcn %u is not on the raster for step size %lu",dl_nrarfcn,nr_bandtable[i].step_size);
|
||||
|
||||
LOG_I(PHY,"Computing dl_frequency (pointA %llu => %llu (dlmin %llu, nr_bandtable[%d].N_OFFs_DL %llu))\n",
|
||||
LOG_I(PHY,"Computing dl_frequency (arfcn %llu => %llu)\n",
|
||||
(unsigned long long)dl_nrarfcn,
|
||||
(unsigned long long)(1000*(nr_bandtable[i].dl_min + (dl_nrarfcn - nr_bandtable[i].N_OFFs_DL) * deltaFglobal)),
|
||||
(unsigned long long)nr_bandtable[i].dl_min,
|
||||
i,
|
||||
(unsigned long long)nr_bandtable[i].N_OFFs_DL);
|
||||
(unsigned long long)(1000*(F_REF_Offs_khz + (dl_nrarfcn - N_REF_Offs) * deltaFglobal)));
|
||||
|
||||
return 1000*(nr_bandtable[i].dl_min + (dl_nrarfcn - nr_bandtable[i].N_OFFs_DL) * deltaFglobal);
|
||||
return 1000*(F_REF_Offs_khz + (dl_nrarfcn - N_REF_Offs) * deltaFglobal);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user