Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lizhongxiao
OpenXG-RAN
Commits
cf2b532a
Commit
cf2b532a
authored
Nov 26, 2015
by
lukashov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
changes in dci_tools.c for TM4 to support tpmi2
parent
f6e750fb
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
38 additions
and
5 deletions
+38
-5
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+38
-5
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
cf2b532a
...
@@ -1551,7 +1551,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
...
@@ -1551,7 +1551,7 @@ int generate_eNB_dlsch_params_from_dci(int frame,
dlsch0_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING;
dlsch0_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING;
dlsch0_harq->pmi_alloc = DL_pmi_single;
dlsch0_harq->pmi_alloc = DL_pmi_single;
dlsch1_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING;
dlsch1_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING;
dlsch1_harq->pmi_alloc = DL_pmi_single
;
dlsch1_harq->pmi_alloc = DL_pmi_single
^ 0x1555; //opposite; this is just random assignment for first trial
break;
break;
default:
default:
break;
break;
...
@@ -4806,9 +4806,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
...
@@ -4806,9 +4806,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
break;
break;
case 2: // PUSCH precoding
case 2: // PUSCH precoding
dlsch0_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING;
dlsch0_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING;
dlsch0_harq->pmi_alloc =
0; //TODO: DL_pmi_single
;
dlsch0_harq->pmi_alloc =
dlsch0->pmi_alloc
;
dlsch1_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING;
dlsch1_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING;
dlsch1_harq->pmi_alloc =
0; //TODO: DL_pmi_single
;
dlsch1_harq->pmi_alloc =
dlsch0->pmi_alloc^0x1555
;
break;
break;
default:
default:
break;
break;
...
@@ -5774,7 +5774,7 @@ uint32_t pdcch_alloc2ul_frame(LTE_DL_FRAME_PARMS *frame_parms,uint32_t frame, ui
...
@@ -5774,7 +5774,7 @@ uint32_t pdcch_alloc2ul_frame(LTE_DL_FRAME_PARMS *frame_parms,uint32_t frame, ui
}
}
uint16_t quantize_subband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,int nb_
subbands
)
uint16_t quantize_subband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,int nb_
rb
)
{
{
int i, aarx;
int i, aarx;
...
@@ -5782,6 +5782,25 @@ uint16_t quantize_subband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,int nb_subba
...
@@ -5782,6 +5782,25 @@ uint16_t quantize_subband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,int nb_subba
uint16_t pmivect = 0;
uint16_t pmivect = 0;
uint8_t rank = meas->rank[eNB_id];
uint8_t rank = meas->rank[eNB_id];
int pmi_re,pmi_im;
int pmi_re,pmi_im;
int nb_subbands=0;
switch (nb_rb) {
case 6:
nb_subbands = 6;
break;
default:
case 25:
nb_subbands = 7;
break;
case 50:
nb_subbands = 9;
break;
case 100:
nb_subbands = 13;
break;
}
for (i=0; i<nb_subbands; i++) {
for (i=0; i<nb_subbands; i++) {
pmi_re = 0;
pmi_re = 0;
...
@@ -5808,7 +5827,21 @@ uint16_t quantize_subband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,int nb_subba
...
@@ -5808,7 +5827,21 @@ uint16_t quantize_subband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,int nb_subba
// printf("subband %d, pmi%d \n",i,pmiq);
// printf("subband %d, pmi%d \n",i,pmiq);
pmivect |= (pmiq<<(2*i));
pmivect |= (pmiq<<(2*i));
} else {
}
else if (rank==1) {
for (aarx=0; aarx<meas->nb_antennas_rx; aarx++) {
pmi_re += meas->subband_pmi_re[eNB_id][i][aarx];
pmi_im += meas->subband_pmi_im[eNB_id][i][aarx];
}
if (pmi_re > pmi_im)
pmiq = PMI_2A_11;
else if (pmi_re < pmi_im)
pmiq = PMI_2A_1m1;
printf("subband %d, pmi%d \n",i,pmiq);
pmivect |= (pmiq<<(2*i));
printf("subband %d pmivect %d \n",i, pmivect);
}
else {
// This needs to be done properly!!!
// This needs to be done properly!!!
msg("PMI feedback for rank>1 not supported!\n");
msg("PMI feedback for rank>1 not supported!\n");
pmivect = 0;
pmivect = 0;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment