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
zzha zzha
OpenXG-RAN
Commits
cce0b45f
Commit
cce0b45f
authored
Dec 02, 2015
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
a few small bugfixes, but not yet finished
parent
e24847b1
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
26 additions
and
35 deletions
+26
-35
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+10
-11
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
+4
-12
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
+4
-4
openair1/SIMULATION/LTE_PHY/dlsim.c
openair1/SIMULATION/LTE_PHY/dlsim.c
+8
-8
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
cce0b45f
...
...
@@ -5841,22 +5841,21 @@ uint16_t quantize_subband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,int nb_rb)
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_R1_11
;
else
if
(
pmi_re
<
pmi_im
)
pmiq
=
PMI_2A_R1_1j
;
printf
(
"subband %d, pmi%d
\n
"
,
i
,
pmiq
);
//According to Section 7.2.4 of 36.213
pmivect
|=
((
pmiq
-
1
)
<<
(
i
));
//shift 1 since only one bit
printf
(
"subband %d pmivect %d
\n
"
,
i
,
pmivect
);
if
(
pmi_re
>
pmi_im
)
pmiq
=
PMI_2A_R1_11
;
else
//if (pmi_re < pmi_im)
pmiq
=
PMI_2A_R1_1j
;
printf
(
"subband %d, pmi_re %d, pmi_in %d, pmiq %d
\n
"
,
i
,
pmi_re
,
pmi_im
,
pmiq
);
//According to Section 7.2.4 of 36.213
pmivect
|=
((
pmiq
-
1
)
<<
(
i
));
//shift 1 since only one bit
}
else
{
// This needs to be done properly!!!
msg
(
"PMI feedback for rank>1 not supported!
\n
"
);
else
{
LOG_E
(
PHY
,
"PMI feedback for rank>1 not supported!
\n
"
);
pmivect
=
0
;
}
}
printf
(
"subband %d pmivect %d
\n
"
,
i
,
pmivect
);
return
(
pmivect
);
}
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
View file @
cce0b45f
...
...
@@ -190,9 +190,6 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
//printf("rx_pdsch: harq_pid=%d, round=%d\n",harq_pid,round);
if
(
frame_parms
->
nb_antennas_tx_eNB
>
1
)
{
//#ifdef DEBUG_DLSCH_MOD
//printf("dlsch: using pmi %x (%p), rb_alloc %x\n",pmi2hex_2Ar1(dlsch0_harq->pmi_alloc),dlsch_ue[0],dlsch0_harq->rb_alloc_even[0]);
//#endif
nb_rb
=
dlsch_extract_rbs_dual
(
lte_ue_common_vars
->
rxdataF
,
lte_ue_common_vars
->
dl_ch_estimates
[
eNB_id
],
lte_ue_pdsch_vars
[
eNB_id
]
->
rxdataF_ext
,
...
...
@@ -205,6 +202,9 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
phy_vars_ue
->
high_speed_flag
,
frame_parms
,
dlsch0_harq
->
mimo_mode
);
//#ifdef DEBUG_DLSCH_MOD
printf
(
"dlsch: using pmi %lx, rb_alloc %x, pmi_ext %x
\n
"
,
pmi2hex_2Ar1
(
dlsch0_harq
->
pmi_alloc
),
*
rballoc
,
*
lte_ue_pdsch_vars
[
eNB_id
]
->
pmi_ext
);
//#endif
if
(
rx_type
==
rx_IC_single_stream
)
{
if
(
eNB_id_i
<
phy_vars_ue
->
n_connected_eNB
)
// we are in TM5
...
...
@@ -1830,7 +1830,7 @@ void dlsch_channel_compensation_TM34(LTE_DL_FRAME_PARMS *frame_parms,
int
**
dl_ch_magb1
=
lte_ue_pdsch_vars
->
dl_ch_magb1
;
int
**
rxdataF_comp0
=
lte_ue_pdsch_vars
->
rxdataF_comp0
;
int
**
rxdataF_comp1
=
lte_ue_pdsch_vars
->
rxdataF_comp1
[
harq_pid
][
round
];
unsigned
char
*
*
pmi_ext
=
lte_ue_pdsch_vars
->
pmi_ext
;
unsigned
char
*
pmi_ext
=
lte_ue_pdsch_vars
->
pmi_ext
;
__m128i
mmtmpD0
,
mmtmpD1
,
mmtmpD2
,
mmtmpD3
,
QAM_amp0_128
,
QAM_amp0_128b
,
QAM_amp1_128
,
QAM_amp1_128b
;
symbol_mod
=
(
symbol
>=
(
7
-
frame_parms
->
Ncp
))
?
symbol
-
(
7
-
frame_parms
->
Ncp
)
:
symbol
;
...
...
@@ -4016,14 +4016,6 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF,
LTE_DL_FRAME_PARMS
*
frame_parms
,
MIMO_mode_t
mimo_mode
)
{
/*uint8_t get_pmi(uint8_t N_RB_DL,LTE_DL_eNB_HARQ_t *dlsch_harq,uint16_t rb)
{
MIMO_mode_t mode = dlsch_harq->mimo_mode;*/
//PHY_VARS_UE *phy_vars_ue,
int
prb
,
nb_rb
=
0
;
int
prb_off
,
prb_off2
;
int
rb_alloc_ind
,
skip_half
=
0
,
sss_symb
,
pss_symb
=
0
,
nsymb
,
l
;
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
View file @
cce0b45f
...
...
@@ -1254,7 +1254,6 @@ uint8_t get_pmi(uint8_t N_RB_DL,LTE_DL_eNB_HARQ_t *dlsch_harq,uint16_t rb)
MIMO_mode_t
mode
=
dlsch_harq
->
mimo_mode
;
uint32_t
pmi_alloc
=
dlsch_harq
->
pmi_alloc
;
printf
(
"Getting pmi for RB %d => %d
\n
"
,
rb
,((
pmi_alloc
>>
rb
)
&
1
));
switch
(
N_RB_DL
)
{
case
6
:
// 1 PRB per subband
if
(
mode
<=
PUSCH_PRECODING1
)
//single layer
...
...
@@ -1268,9 +1267,10 @@ uint8_t get_pmi(uint8_t N_RB_DL,LTE_DL_eNB_HARQ_t *dlsch_harq,uint16_t rb)
case
25
:
// 4 PRBs per subband
if
(
mode
<=
PUSCH_PRECODING1
)
return
((
pmi_alloc
>>
((
rb
>>
2
)
<<
1
))
&
3
);
else
else
{
printf
(
"Getting pmi for RB %d => %d
\n
"
,
rb
,((
pmi_alloc
>>
(
rb
>>
2
))
&
1
));
return
((
pmi_alloc
>>
(
rb
>>
2
))
&
1
);
}
break
;
case
50
:
// 6 PRBs per subband
...
...
@@ -1369,7 +1369,7 @@ int dlsch_modulation(mod_sym_t **txdataF,
for
(
l
=
num_pdcch_symbols
;
l
<
nsymb
;
l
++
)
{
#ifdef DEBUG_DLSCH_MODULATION
printf
(
"Generating DLSCH (harq_pid %d,mimo %d, pmi_alloc0 %l
l
x, mod0 %d, mod1 %d, rb_alloc[0] %d) in %d
\n
"
,
printf
(
"Generating DLSCH (harq_pid %d,mimo %d, pmi_alloc0 %lx, mod0 %d, mod1 %d, rb_alloc[0] %d) in %d
\n
"
,
harq_pid
,
dlsch0_harq
->
mimo_mode
,
pmi2hex_2Ar2
(
dlsch0_harq
->
pmi_alloc
),
...
...
openair1/SIMULATION/LTE_PHY/dlsim.c
View file @
cce0b45f
...
...
@@ -1712,8 +1712,8 @@ n(tikz_fname,"w");
((
DCI2_20MHz_2A_TDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
mcs2
=
mcs2
;
((
DCI2_20MHz_2A_TDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
ndi2
=
1
;
((
DCI2_20MHz_2A_TDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
rv2
=
0
;
((
DCI2_
1
0MHz_2A_TDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tb_swap
=
0
;
((
DCI2_
1
0MHz_2A_TDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tpmi
=
2
;
((
DCI2_
2
0MHz_2A_TDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tb_swap
=
0
;
((
DCI2_
2
0MHz_2A_TDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tpmi
=
2
;
dci_length
=
sizeof_DCI2_20MHz_2A_TDD_t
;
dci_length_bytes
=
sizeof
(
DCI2_20MHz_2A_TDD_t
);
break
;
...
...
@@ -1735,7 +1735,7 @@ n(tikz_fname,"w");
((
DCI2_1_5MHz_2A_FDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
ndi2
=
1
;
((
DCI2_1_5MHz_2A_FDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
rv2
=
0
;
((
DCI2_1_5MHz_2A_FDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tb_swap
=
0
;
((
DCI2_1_5MHz_2A_
T
DD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tpmi
=
0
;
((
DCI2_1_5MHz_2A_
F
DD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tpmi
=
0
;
break
;
case
25
:
dci_length
=
sizeof_DCI2_5MHz_2A_FDD_t
;
...
...
@@ -1751,7 +1751,7 @@ n(tikz_fname,"w");
((
DCI2_5MHz_2A_FDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
ndi2
=
1
;
((
DCI2_5MHz_2A_FDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
rv2
=
0
;
((
DCI2_5MHz_2A_FDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tb_swap
=
0
;
((
DCI2_5MHz_2A_
T
DD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tpmi
=
0
;
((
DCI2_5MHz_2A_
F
DD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tpmi
=
0
;
break
;
case
50
:
dci_length
=
sizeof_DCI2_10MHz_2A_FDD_t
;
...
...
@@ -1767,7 +1767,7 @@ n(tikz_fname,"w");
((
DCI2_10MHz_2A_FDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
ndi2
=
1
;
((
DCI2_10MHz_2A_FDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
rv2
=
0
;
((
DCI2_10MHz_2A_FDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tb_swap
=
0
;
((
DCI2_10MHz_2A_
T
DD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tpmi
=
0
;
((
DCI2_10MHz_2A_
F
DD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tpmi
=
0
;
break
;
case
100
:
dci_length
=
sizeof_DCI2_20MHz_2A_FDD_t
;
...
...
@@ -1783,7 +1783,7 @@ n(tikz_fname,"w");
((
DCI2_20MHz_2A_FDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
ndi2
=
1
;
((
DCI2_20MHz_2A_FDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
rv2
=
0
;
((
DCI2_20MHz_2A_FDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tb_swap
=
0
;
((
DCI2_20MHz_2A_
T
DD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tpmi
=
0
;
((
DCI2_20MHz_2A_
F
DD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tpmi
=
0
;
break
;
}
}
...
...
@@ -2149,7 +2149,7 @@ n(tikz_fname,"w");
// printf("Trial %d, round %d\n",trials,round);
round_trials
[
round
]
++
;
if
(
transmission_mode
>=
5
)
if
(
transmission_mode
==
4
||
transmission_mode
==
5
||
transmission_mode
==
6
)
pmi_feedback
=
1
;
else
pmi_feedback
=
0
;
...
...
@@ -2773,7 +2773,7 @@ n(tikz_fname,"w");
}
if
(
transmission_mode
==
4
&&
(((
DCI2_5MHz_2A_TDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tpmi
==
2
)){
if
(
transmission_mode
==
4
&&
(((
DCI2_5MHz_2A_TDD_t
*
)
&
DLSCH_alloc_pdu_1
[
k
])
->
tpmi
==
2
)){
PHY_vars_eNB
->
dlsch_eNB
[
0
][
0
]
->
harq_processes
[
0
]
->
pmi_alloc
=
quantize_subband_pmi
(
&
PHY_vars_UE
->
PHY_measurements
,
0
,
PHY_vars_eNB
->
lte_frame_parms
.
N_RB_DL
);
PHY_vars_UE
->
dlsch_ue
[
0
][
0
]
->
pmi_alloc
=
quantize_subband_pmi
(
&
PHY_vars_UE
->
PHY_measurements
,
0
,
PHY_vars_UE
->
lte_frame_parms
.
N_RB_DL
);
}
...
...
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