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
9c41f88a
Commit
9c41f88a
authored
Dec 21, 2015
by
lukashov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improving previuos commit: awgn TM4 for perfect CE.
parent
b21b87df
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
36 deletions
+35
-36
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
+11
-5
openair1/SIMULATION/LTE_PHY/dlsim.c
openair1/SIMULATION/LTE_PHY/dlsim.c
+24
-31
No files found.
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
View file @
9c41f88a
...
...
@@ -439,15 +439,21 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
if
(
rx_type
>
rx_standard
)
{
// LOG_D(PHY,"llr_offset = %d\n",offset_mumimo_llr_drange[dlsch0_harq->mcs][(dlsch1_harq->mcs>>1)-1]);
lte_ue_pdsch_vars
[
eNB_id
]
->
log2_maxh
=
log2_approx
(
avg
[
0
])
-
13
+
offset_mumimo_llr_drange
[
dlsch0_harq
->
mcs
][(
get_Qm
(
dlsch1_harq
->
mcs
)
>>
1
)
-
1
];
// interf_unaw_shift_tm4_mcs is to avoid tails in SNR/BLER curves
lte_ue_pdsch_vars
[
eNB_id
]
->
log2_maxh0
=
(
log2_approx
(
avg
[
0
])
/
2
)
+
interf_unaw_shift_tm4_mcs
[
dlsch0_harq
->
mcs
];
//+offset_mumimo_llr_drange[dlsch0_harq->mcs][(get_Qm(dlsch1_harq->mcs)>>1)-1];
lte_ue_pdsch_vars
[
eNB_id
]
->
log2_maxh1
=
(
log2_approx
(
avg
[
0
])
/
2
)
+
interf_unaw_shift_tm4_mcs
[
dlsch1_harq
->
mcs
];
//+offset_mumimo_llr_drange[dlsch1_harq->mcs][(get_Qm(dlsch0_harq->mcs)>>1)-1];
//printf("TM4 I-A shift layer1 = %d\n",interf_unaw_shift_tm4_mcs[dlsch0_harq->mcs]);
//printf("TM4 I-A shift layer2 = %d\n",interf_unaw_shift_tm4_mcs[dlsch1_harq->mcs] );
}
else
// to avoid tails in SNR/BLER curves
lte_ue_pdsch_vars
[
eNB_id
]
->
log2_maxh0
=
(
log2_approx
(
avg
[
0
])
/
2
)
+
interf_unaw_shift_tm4_mcs
[
dlsch0_harq
->
mcs
];
lte_ue_pdsch_vars
[
eNB_id
]
->
log2_maxh0
=
(
log2_approx
(
avg
[
0
])
/
2
)
+
interf_unaw_shift_tm4_mcs
[
dlsch0_harq
->
mcs
];
lte_ue_pdsch_vars
[
eNB_id
]
->
log2_maxh1
=
(
log2_approx
(
avg
[
0
])
/
2
)
+
interf_unaw_shift_tm4_mcs
[
dlsch1_harq
->
mcs
];
//printf("TM4 I-UA shift layer1 = %d\n",interf_unaw_shift_tm4_mcs[dlsch0_harq->mcs]);
lte_ue_pdsch_vars
[
eNB_id
]
->
log2_maxh1
=
(
log2_approx
(
avg
[
0
])
/
2
)
+
interf_unaw_shift_tm4_mcs
[
dlsch1_harq
->
mcs
];
//printf("TM4 I-UA shift layer2 = %d\n",interf_unaw_shift_tm4_mcs[dlsch1_harq->mcs] );
//printf("TM4 I-UA shift layer2 = %d\n",interf_unaw_shift_tm4_mcs[dlsch1_harq->mcs]);
}
dlsch_channel_compensation_TM34
(
frame_parms
,
...
...
openair1/SIMULATION/LTE_PHY/dlsim.c
View file @
9c41f88a
...
...
@@ -700,7 +700,7 @@ int main(int argc, char **argv)
}
else
NB_RB
=
4
;
NB_RB
=
conv_nprb
(
0
,
DLSCH_RB_ALLOC
,
N_RB_DL
);
///??
NB_RB
=
conv_nprb
(
0
,
DLSCH_RB_ALLOC
,
N_RB_DL
);
if
((
transmission_mode
>
1
)
&&
(
n_tx
!=
2
))
{
...
...
@@ -2960,11 +2960,7 @@ n(tikz_fname,"w");
//printf("r_im0 = %d\n",r_im[0][i]);
//printf("r_re1 = %d\n",r_re[1][i]);
//printf("r_im1 = %d\n",r_im[1][i]);
// r_re[0][i] = ((double)(((short *)PHY_vars_eNB->lte_eNB_common_vars.txdata[eNB_id][0]))[(2*subframe*PHY_vars_UE->lte_frame_parms.samples_per_tti) +(i<<1)]);
// r_im[0][i] = ((double)(((short *)PHY_vars_eNB->lte_eNB_common_vars.txdata[eNB_id][0]))[(2*subframe*PHY_vars_UE->lte_frame_parms.samples_per_tti) +(i<<1)+1]);
// r_re[1][i] = ((double)(((short *)PHY_vars_eNB->lte_eNB_common_vars.txdata[eNB_id][1]))[(2*subframe*PHY_vars_UE->lte_frame_parms.samples_per_tti) +(i<<1)]);
// r_im[1][i] = ((double)(((short *)PHY_vars_eNB->lte_eNB_common_vars.txdata[eNB_id][1]))[(2*subframe*PHY_vars_UE->lte_frame_parms.samples_per_tti) +(i<<1)+1]);
}
else
{
for
(
aarx
=
0
;
aarx
<
PHY_vars_UE
->
lte_frame_parms
.
nb_antennas_rx
;
aarx
++
)
{
...
...
@@ -3157,33 +3153,30 @@ n(tikz_fname,"w");
}
}
}
else
{
for
(
aa
=
0
;
aa
<
frame_parms
->
nb_antennas_tx
;
aa
++
)
{
for
(
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
for
(
i
=
0
;
i
<
frame_parms
->
N_RB_DL
*
12
;
i
++
)
{
if
(
transmission_mode
==
4
)
{
if
(
transmission_mode
==
4
)
{
for
(
i
=
0
;
i
<
frame_parms
->
N_RB_DL
*
12
;
i
++
)
{
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
0
])[
2
*
i
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
(
short
)(
AMP
);
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
0
])[
2
*
i
+
1
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
(
short
)(
AMP
);
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
1
])[
2
*
i
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
0
;
//(short)(AMP);
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
1
])[
2
*
i
+
1
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
0
;
//(short)(AMP);
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
2
])[
2
*
i
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
0
;
//(short)(AMP);
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
2
])[
2
*
i
+
1
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
0
;
//(short)(AMP);
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
3
])[
2
*
i
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
(
short
)(
AMP
);
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
3
])[
2
*
i
+
1
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
(
short
)(
AMP
);
}
else
{
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][(
aa
<<
1
)
+
aarx
])[
2
*
i
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
(
short
)(
AMP
);
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][(
aa
<<
1
)
+
aarx
])[
2
*
i
+
1
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
0
/
2
;
}
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
0
])[
2
*
i
+
1
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
0
;
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
1
])[
2
*
i
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
(
short
)(
AMP
);
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
1
])[
2
*
i
+
1
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
0
;
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
2
])[
2
*
i
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
(
short
)(
AMP
);
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
2
])[
2
*
i
+
1
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
0
;
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
3
])[
2
*
i
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=-
(
short
)(
AMP
);
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][
3
])[
2
*
i
+
1
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
0
;
}
}
else
{
for
(
aa
=
0
;
aa
<
frame_parms
->
nb_antennas_tx
;
aa
++
)
{
for
(
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
for
(
i
=
0
;
i
<
frame_parms
->
N_RB_DL
*
12
;
i
++
)
{
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][(
aa
<<
1
)
+
aarx
])[
2
*
i
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
(
short
)(
AMP
);
((
int16_t
*
)
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
0
][(
aa
<<
1
)
+
aarx
])[
2
*
i
+
1
+
((
l
+
(
Ns
%
2
)
*
pilot2
)
*
frame_parms
->
ofdm_symbol_size
+
LTE_CE_FILTER_LENGTH
)
*
2
]
=
0
/
2
;
}
}
}
}
}
}
}
}
}
}
if
((
Ns
==
((
2
*
subframe
)))
&&
(
l
==
0
))
{
lte_ue_measurements
(
PHY_vars_UE
,
subframe
*
PHY_vars_UE
->
lte_frame_parms
.
samples_per_tti
,
...
...
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