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
9410e893
Commit
9410e893
authored
Jan 22, 2016
by
lukashov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Small change in measurements: while calculating pmi take into account ch_12[1] as well.
parent
c453384e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
29 additions
and
6 deletions
+29
-6
openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
+23
-2
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+4
-2
openair1/SIMULATION/LTE_PHY/dlsim.c
openair1/SIMULATION/LTE_PHY/dlsim.c
+2
-2
No files found.
openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
View file @
9410e893
...
...
@@ -577,6 +577,7 @@ void lte_ue_measurements(PHY_VARS_UE *phy_vars_ue,
}
for
(
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
//printf("aarx=%d", aarx);
// skip the first 4 RE due to interpolation filter length of 5 (not possible to skip 5 due to 128i alignment, must be multiple of 128bit)
#if defined(__x86_64__) || defined(__i386__)
...
...
@@ -634,9 +635,29 @@ void lte_ue_measurements(PHY_VARS_UE *phy_vars_ue,
// print_ints("mm_madd_epi16",&mmtmpPMI1);
// mmtmpPMI1 contains imag part of 4 consecutive outputs (32-bit)
pmi128_re
=
_mm_add_epi32
(
pmi128_re
,
mmtmpPMI0
);
// print_ints(" pmi128_re
",&pmi128_re);
// print_ints(" pmi128_re 0
",&pmi128_re);
pmi128_im
=
_mm_add_epi32
(
pmi128_im
,
mmtmpPMI1
);
// print_ints(" pmi128_im",&pmi128_im);
// print_ints(" pmi128_im 0 ",&pmi128_im);
mmtmpPMI0
=
_mm_xor_si128
(
mmtmpPMI0
,
mmtmpPMI0
);
mmtmpPMI1
=
_mm_xor_si128
(
mmtmpPMI1
,
mmtmpPMI1
);
mmtmpPMI0
=
_mm_madd_epi16
(
dl_ch0_128
[
1
],
dl_ch1_128
[
1
]);
// print_ints("re",&mmtmpPMI0);
mmtmpPMI1
=
_mm_shufflelo_epi16
(
dl_ch1_128
[
1
],
_MM_SHUFFLE
(
2
,
3
,
0
,
1
));
// print_ints("_mm_shufflelo_epi16",&mmtmpPMI1);
mmtmpPMI1
=
_mm_shufflehi_epi16
(
mmtmpPMI1
,
_MM_SHUFFLE
(
2
,
3
,
0
,
1
));
// print_ints("_mm_shufflehi_epi16",&mmtmpPMI1);
mmtmpPMI1
=
_mm_sign_epi16
(
mmtmpPMI1
,
*
(
__m128i
*
)
&
conjugate
);
// print_ints("_mm_sign_epi16",&mmtmpPMI1);
mmtmpPMI1
=
_mm_madd_epi16
(
mmtmpPMI1
,
dl_ch0_128
[
1
]);
// print_ints("mm_madd_epi16",&mmtmpPMI1);
// mmtmpPMI1 contains imag part of 4 consecutive outputs (32-bit)
pmi128_re
=
_mm_add_epi32
(
pmi128_re
,
mmtmpPMI0
);
// print_ints(" pmi128_re 1",&pmi128_re);
pmi128_im
=
_mm_add_epi32
(
pmi128_im
,
mmtmpPMI1
);
//print_ints(" pmi128_im 1 ",&pmi128_im);
#elif defined(__arm__)
mmtmpPMI0
=
vmull_s16
(((
int16x4_t
*
)
dl_ch0_128
)[
0
],
((
int16x4_t
*
)
dl_ch1_128
)[
0
]);
...
...
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
9410e893
...
...
@@ -5877,14 +5877,16 @@ uint16_t quantize_subband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,int nb_rb)
else
if
(
rank
==
1
)
{
for
(
aarx
=
0
;
aarx
<
meas
->
nb_antennas_rx
;
aarx
++
)
{
pmi_re
+=
meas
->
subband_pmi_re
[
eNB_id
][
i
][
aarx
];
//printf("meas->subband_pmi_re[eNB_id][i][%d]=%d\n", aarx, meas->subband_pmi_re[eNB_id][i][aarx]);
pmi_im
+=
meas
->
subband_pmi_im
[
eNB_id
][
i
][
aarx
];
//printf("meas->subband_pmi_im[eNB_id][i][%d]=%d\n",aarx, meas->subband_pmi_im[eNB_id][i][aarx]);
}
if
(((
pmi_re
>
pmi_im
)
&&
(
pmi_re
>
-
pmi_im
))
||
((
pmi_re
<
pmi_im
)
&&
(
pmi_re
<
-
pmi_im
)))
if
(((
pmi_re
>
=
pmi_im
)
&&
(
pmi_re
>=
-
pmi_im
))
||
((
pmi_re
<
pmi_im
)
&&
(
pmi_re
<
-
pmi_im
)))
pmiq
=
PMI_2A_R1_11
;
else
pmiq
=
PMI_2A_R1_1j
;
//
printf("subband %d, pmi_re %d, pmi_im %d, pmiq %d \n",i,pmi_re,pmi_im,pmiq);
//
printf("subband %d, pmi_re %d, pmi_im %d, pmiq %d \n",i,pmi_re,pmi_im,pmiq);
// printf("subband %d, pmi%d \n",i,pmiq);
//According to Section 7.2.4 of 36.213
...
...
openair1/SIMULATION/LTE_PHY/dlsim.c
View file @
9410e893
...
...
@@ -833,9 +833,9 @@ int main(int argc, char **argv)
else
if
(
perfect_ce
==
1
)
sprintf
(
csv_fname
,
"dout_tx%d_r%d_mcs%d_mcsi%d_ch%d_ns%d_R%d_
ab_pce_sh%d_d2_%d_sumnormdif
.m"
,
transmission_mode
,
rx_type
,
mcs1
,
mcs2
,
channel_model
,
n_frames
,
num_rounds
,
interf_unaw_shift
,
n_ch_rlz
);
sprintf
(
csv_fname
,
"dout_tx%d_r%d_mcs%d_mcsi%d_ch%d_ns%d_R%d_
pce_sh%d_d2_%d_sumnormdif_ms
.m"
,
transmission_mode
,
rx_type
,
mcs1
,
mcs2
,
channel_model
,
n_frames
,
num_rounds
,
interf_unaw_shift
,
n_ch_rlz
);
else
sprintf
(
csv_fname
,
"dout_tx%d_r%d_mcs%d_mcsi%d_ch%d_ns%d_R%d_
ab_sh%d_d2_%d_sumnormdif
.m"
,
transmission_mode
,
rx_type
,
mcs1
,
mcs2
,
channel_model
,
n_frames
,
num_rounds
,
interf_unaw_shift
,
n_ch_rlz
);
sprintf
(
csv_fname
,
"dout_tx%d_r%d_mcs%d_mcsi%d_ch%d_ns%d_R%d_
sh%d_d2_%d_sumnormdif_ms
.m"
,
transmission_mode
,
rx_type
,
mcs1
,
mcs2
,
channel_model
,
n_frames
,
num_rounds
,
interf_unaw_shift
,
n_ch_rlz
);
csv_fd
=
fopen
(
csv_fname
,
"w"
);
fprintf
(
csv_fd
,
"data_all%d=["
,
mcs1
);
...
...
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