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},
|
{83, 703000, 748000, 000, 000, 20, 140600, 100},
|
||||||
{84, 1920000, 1980000, 000, 000, 20, 384000, 100},
|
{84, 1920000, 1980000, 000, 000, 20, 384000, 100},
|
||||||
{86, 1710000, 1785000, 000, 000, 20, 342000, 100},
|
{86, 1710000, 1785000, 000, 000, 20, 342000, 100},
|
||||||
{257,26500000,29500000,26500000,29500000, 1,2054166, 60},
|
{257,26500020,29500000,26500020,29500000, 1,2054166, 60},
|
||||||
{257,26500000,29500000,26500000,29500000, 2,2054167, 120},
|
{257,26500080,29500000,26500080,29500000, 2,2054167, 120},
|
||||||
{258,24250000,27500000,24250000,27500000, 1,2016667, 60},
|
{258,24250080,27500000,24250080,27500000, 1,2016667, 60},
|
||||||
{258,24250000,27500000,24250000,27500000, 2,2016667, 120},
|
{258,24250080,27500000,24250080,27500000, 2,2016667, 120},
|
||||||
{260,37000000,40000000,37000000,40000000, 1,2229166, 60},
|
{260,37000020,40000000,37000020,40000000, 1,2229166, 60},
|
||||||
{260,37000000,40000000,37000000,40000000, 2,2229167, 120},
|
{260,37000080,40000000,37000080,40000000, 2,2229167, 120},
|
||||||
{261,27500000,28350000,27500000,28350000, 1,2070833, 60},
|
{261,27500040,28350000,27500040,28350000, 1,2070833, 60},
|
||||||
{261,27500000,28350000,27500000,28350000, 2,2070833, 120}
|
{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));
|
(long long unsigned int)(nr_bandtable[i].dl_max - bw_kHz));
|
||||||
|
|
||||||
int deltaFglobal = 60;
|
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) {
|
||||||
if (dl_CarrierFreq < 24.25e9) deltaFglobal = 5;
|
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
|
// 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)
|
// 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;
|
delta_arfcn = nrarfcn - nr_bandtable[i].N_OFFs_DL;
|
||||||
if(delta_arfcn%(nr_bandtable[i].step_size)!=0)
|
if(delta_arfcn%(nr_bandtable[i].step_size)!=0)
|
||||||
@@ -329,13 +339,21 @@ uint64_t from_nrarfcn(int nr_bandP,
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int deltaFglobal = 5;
|
int deltaFglobal = 5;
|
||||||
|
uint32_t N_REF_Offs = 0;
|
||||||
|
uint64_t F_REF_Offs_khz = 0;
|
||||||
int scs_khz = 15<<scs_index;
|
int scs_khz = 15<<scs_index;
|
||||||
uint32_t delta_arfcn;
|
uint32_t delta_arfcn;
|
||||||
|
|
||||||
if (dl_nrarfcn > 599999 && dl_nrarfcn < 2016667)
|
if (dl_nrarfcn > 599999 && dl_nrarfcn < 2016667) {
|
||||||
deltaFglobal = 15;
|
deltaFglobal = 15;
|
||||||
if (dl_nrarfcn > 2016666 && dl_nrarfcn < 3279166)
|
N_REF_Offs = 600000;
|
||||||
|
F_REF_Offs_khz = 3000000;
|
||||||
|
}
|
||||||
|
if (dl_nrarfcn > 2016666 && dl_nrarfcn < 3279166) {
|
||||||
deltaFglobal = 60;
|
deltaFglobal = 60;
|
||||||
|
N_REF_Offs = 2016667;
|
||||||
|
F_REF_Offs_khz = 24250080;
|
||||||
|
}
|
||||||
|
|
||||||
AssertFatal(nr_bandP <= 261, "nr_band %d > 260\n", nr_bandP);
|
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++);
|
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)
|
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);
|
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)dl_nrarfcn,
|
||||||
(unsigned long long)(1000*(nr_bandtable[i].dl_min + (dl_nrarfcn - nr_bandtable[i].N_OFFs_DL) * deltaFglobal)),
|
(unsigned long long)(1000*(F_REF_Offs_khz + (dl_nrarfcn - N_REF_Offs) * deltaFglobal)));
|
||||||
(unsigned long long)nr_bandtable[i].dl_min,
|
|
||||||
i,
|
|
||||||
(unsigned long long)nr_bandtable[i].N_OFFs_DL);
|
|
||||||
|
|
||||||
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