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
alex037yang
OpenXG-RAN
Commits
eab744f6
Commit
eab744f6
authored
Nov 22, 2016
by
Xiwen JIANG
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add in allocate_REs_in_RB the TM7 case
parent
60a1f34a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
115 additions
and
1 deletion
+115
-1
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
+115
-1
No files found.
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
View file @
eab744f6
...
...
@@ -619,10 +619,21 @@ int allocate_REs_in_RB(PHY_VARS_eNB* phy_vars_eNB,
int32_t
tmp_sample1
,
tmp_sample2
;
int16_t
tmp_amp
=
amp
;
int
s
=
1
;
int
mprime2
=
mprime
,
ind
,
ind_dword
,
ind_qpsk_symb
;
gain_lin_QPSK
=
(
int16_t
)((
amp
*
ONE_OVER_SQRT2_Q15
)
>>
15
);
// if (mimo_mode == LARGE_CDD) gain_lin_QPSK>>=1;
int32_t
qpsk
[
4
];
((
int16_t
*
)
&
qpsk
[
0
])[
0
]
=
gain_lin_QPSK
;
((
int16_t
*
)
&
qpsk
[
0
])[
1
]
=
gain_lin_QPSK
;
((
int16_t
*
)
&
qpsk
[
1
])[
0
]
=
-
gain_lin_QPSK
;
((
int16_t
*
)
&
qpsk
[
1
])[
1
]
=
gain_lin_QPSK
;;
((
int16_t
*
)
&
qpsk
[
2
])[
0
]
=
gain_lin_QPSK
;;
((
int16_t
*
)
&
qpsk
[
2
])[
1
]
=
-
gain_lin_QPSK
;;
((
int16_t
*
)
&
qpsk
[
3
])[
0
]
=
-
gain_lin_QPSK
;;
((
int16_t
*
)
&
qpsk
[
3
])[
1
]
=
-
gain_lin_QPSK
;
if
(
dlsch1_harq
)
{
x1
=
dlsch1_harq
->
e
;
// Fill these in later for TM8-10
...
...
@@ -1285,8 +1296,111 @@ x0[1+*jj]);
*
re_allocated
=
*
re_allocated
+
1
;
}
}
if
(
mimo_mode
==
TM7
)
{
*
re_allocated
=
*
re_allocated
+
1
;
if
(
is_not_UEspecRS
(
lprime
,
re
,
frame_parms
->
Nid_cell
%
3
,
frame_parms
->
Ncp
,
7
))
{
switch
(
mod_order0
){
case
2
:
//QPSK
((
int16_t
*
)
&
txdataF
[
5
][
tti_offset
])[
0
]
=
(
x0
[
*
jj
]
==
1
)
?
(
-
gain_lin_QPSK
)
:
gain_lin_QPSK
;
*
jj
=
*
jj
+
1
;
((
int16_t
*
)
&
txdataF
[
5
][
tti_offset
])[
1
]
=
(
x0
[
*
jj
]
==
1
)
?
(
-
gain_lin_QPSK
)
:
gain_lin_QPSK
;
*
jj
=
*
jj
+
1
;
//printf("%d(%d) : %d,%d =>
//",tti_offset,*jj,((int16_t*)&tmp_sample1)[0],((int16_t*)&tmp_sample1)[1]);
break
;
case
4
:
//16QAM
qam16_table_offset_re
=
0
;
qam16_table_offset_im
=
0
;
if
(
x0
[
*
jj
]
==
1
)
qam16_table_offset_re
+=
2
;
*
jj
=*
jj
+
1
;
if
(
x0
[
*
jj
]
==
1
)
qam16_table_offset_im
+=
2
;
*
jj
=*
jj
+
1
;
if
(
x0
[
*
jj
]
==
1
)
qam16_table_offset_re
+=
1
;
*
jj
=*
jj
+
1
;
if
(
x0
[
*
jj
]
==
1
)
qam16_table_offset_im
+=
1
;
*
jj
=*
jj
+
1
;
((
int16_t
*
)
&
txdataF
[
5
][
tti_offset
])[
0
]
=
(
int16_t
)(((
int32_t
)
amp
*
qam16_table
[
qam16_table_offset_re
])
>>
15
);
((
int16_t
*
)
&
txdataF
[
5
][
tti_offset
])[
1
]
=
(
int16_t
)(((
int32_t
)
amp
*
qam16_table
[
qam16_table_offset_im
])
>>
15
);
break
;
case
6
:
//64QAM
qam64_table_offset_re
=
0
;
qam64_table_offset_im
=
0
;
if
(
x0
[
*
jj
]
==
1
)
qam64_table_offset_re
+=
4
;
*
jj
=*
jj
+
1
;
if
(
x0
[
*
jj
]
==
1
)
qam64_table_offset_im
+=
4
;
*
jj
=*
jj
+
1
;
if
(
x0
[
*
jj
]
==
1
)
qam64_table_offset_re
+=
2
;
*
jj
=*
jj
+
1
;
if
(
x0
[
*
jj
]
==
1
)
qam64_table_offset_im
+=
2
;
*
jj
=*
jj
+
1
;
if
(
x0
[
*
jj
]
==
1
)
qam64_table_offset_re
+=
1
;
*
jj
=*
jj
+
1
;
if
(
x0
[
*
jj
]
==
1
)
qam64_table_offset_im
+=
1
;
*
jj
=*
jj
+
1
;
((
int16_t
*
)
&
txdataF
[
5
][
tti_offset
])[
0
]
=
(
int16_t
)(((
int32_t
)
amp
*
qam64_table
[
qam64_table_offset_re
])
>>
15
);
((
int16_t
*
)
&
txdataF
[
5
][
tti_offset
])[
1
]
=
(
int16_t
)(((
int32_t
)
amp
*
qam64_table
[
qam64_table_offset_im
])
>>
15
);
break
;
}
}
else
{
//precoding UE spec RS
//printf("precoding UE spec RS\n");
ind
=
3
*
lprime
*
dlsch0_harq
->
nb_rb
+
mprime2
;
ind_dword
=
ind
>>
4
;
ind_qpsk_symb
=
ind
&
0xf
;
txdataF
[
5
][
tti_offset
]
=
qpsk
[(
phy_vars_eNB
->
lte_gold_uespec_port5_table
[
0
][
Ns
][
ind_dword
]
>>
(
2
*
ind_qpsk_symb
))
&
3
];
mprime2
++
;
}
if
(
mimo_mode
>=
TM8
)
{
//TM8,TM9,TM10
}
else
if
(
mimo_mode
>=
TM8
)
{
//TM8,TM9,TM10
//uint8_t is_not_UEspecRS(int8_t lprime, uint8_t re, uint8_t nushift, uint8_t Ncp, uint8_t beamforming_mode)
if
(
is_not_UEspecRS
(
lprime
,
re
,
frame_parms
->
nushift
,
frame_parms
->
Ncp
,
8
))
{
...
...
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