Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
dyyu
openairinterface5G
Commits
a2f37668
Commit
a2f37668
authored
Jul 26, 2017
by
tct-labo4
Browse files
Merge branch 'ue_new_thread_idx' into develop_integration_w30
parents
767606f9
a738eead
Changes
23
Expand all
Hide whitespace changes
Inline
Side-by-side
openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c
View file @
a2f37668
...
...
@@ -60,8 +60,8 @@ void lte_adjust_synch(LTE_DL_FRAME_PARMS *frame_parms,
temp
=
0
;
for
(
aa
=
0
;
aa
<
frame_parms
->
nb_antennas_rx
;
aa
++
)
{
Re
=
((
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates_time
[
eNB_id
][
aa
])[(
i
<<
2
)];
Im
=
((
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates_time
[
eNB_id
][
aa
])[
1
+
(
i
<<
2
)];
Re
=
((
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates_time
[
eNB_id
][
aa
])[(
i
<<
2
)];
Im
=
((
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates_time
[
eNB_id
][
aa
])[
1
+
(
i
<<
2
)];
temp
+=
(
Re
*
Re
/
2
)
+
(
Im
*
Im
/
2
);
}
...
...
@@ -78,7 +78,7 @@ void lte_adjust_synch(LTE_DL_FRAME_PARMS *frame_parms,
max_pos_fil
=
((
max_pos_fil
*
coef
)
+
(
max_pos
*
ncoef
))
>>
15
;
// do not filter to have proactive timing adjustment
//
max_pos_fil = max_pos;
max_pos_fil
=
max_pos
;
if
(
subframe
==
6
)
{
...
...
openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c
View file @
a2f37668
...
...
@@ -51,7 +51,7 @@ int lte_dl_bf_channel_estimation(PHY_VARS_UE *phy_vars_ue,
int
uespec_pilot
[
300
];
LTE_DL_FRAME_PARMS
*
frame_parms
=
&
phy_vars_ue
->
frame_parms
;
LTE_UE_DLSCH_t
**
dlsch_ue
=
phy_vars_ue
->
dlsch
[
(
Ns
>>
1
)
%
RX_NB_TH
][
eNB_id
];
LTE_UE_DLSCH_t
**
dlsch_ue
=
phy_vars_ue
->
dlsch
[
phy_vars_ue
->
current_thread_id
[
Ns
>>
1
]
][
eNB_id
];
LTE_DL_UE_HARQ_t
*
dlsch0_harq
;
harq_pid
=
dlsch_ue
[
0
]
->
current_harq_pid
;
...
...
@@ -63,9 +63,9 @@ int lte_dl_bf_channel_estimation(PHY_VARS_UE *phy_vars_ue,
else
rballoc
=
dlsch0_harq
->
rb_alloc_even
;
rxdataF
=
phy_vars_ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
Ns
>>
1
)
%
RX_NB_TH
].
rxdataF
;
rxdataF
=
phy_vars_ue
->
common_vars
.
common_vars_rx_data_per_thread
[
phy_vars_ue
->
current_thread_id
[
Ns
>>
1
]
].
rxdataF
;
dl_bf_ch_estimates
=
phy_vars_ue
->
pdsch_vars
[
(
Ns
>>
1
)
%
RX_NB_TH
][
eNB_id
]
->
dl_bf_ch_estimates
;
dl_bf_ch_estimates
=
phy_vars_ue
->
pdsch_vars
[
phy_vars_ue
->
current_thread_id
[
Ns
>>
1
]
][
eNB_id
]
->
dl_bf_ch_estimates
;
beamforming_mode
=
phy_vars_ue
->
transmission_mode
[
eNB_id
]
>
6
?
phy_vars_ue
->
transmission_mode
[
eNB_id
]
:
0
;
if
(
phy_vars_ue
->
high_speed_flag
==
0
)
// use second channel estimate position for temporary storage
...
...
openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
View file @
a2f37668
...
...
@@ -50,10 +50,10 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue,
uint16_t
Nid_cell
=
(
eNB_offset
==
0
)
?
ue
->
frame_parms
.
Nid_cell
:
ue
->
measurements
.
adj_cell_id
[
eNB_offset
-
1
];
uint8_t
nushift
,
pilot1
,
pilot2
,
pilot3
;
uint8_t
previous_
sfn
=
((
Ns
>>
1
)
-
1
)
<
0
?
9
:
(
Ns
>>
1
)
-
1
;
int
**
dl_ch_estimates
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
Ns
>>
1
)
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_offset
];
int
**
dl_ch_estimates_previous
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
previous_
sfn
)
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_offset
];
int
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
Ns
>>
1
)
%
RX_NB_TH
].
rxdataF
;
uint8_t
previous_
thread_id
=
ue
->
current_thread_id
[
Ns
>>
1
]
==
0
?
(
RX_NB_TH
-
1
)
:
(
ue
->
current_thread_id
[
Ns
>>
1
]
-
1
)
;
int
**
dl_ch_estimates
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]
].
dl_ch_estimates
[
eNB_offset
];
int
**
dl_ch_estimates_previous
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
previous_
thread_id
].
dl_ch_estimates
[
eNB_offset
];
int
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]
].
rxdataF
;
if
(
ue
->
frame_parms
.
Ncp
==
0
)
{
// normal prefix
pilot1
=
4
;
...
...
@@ -800,15 +800,15 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue,
// do ifft of channel estimate
for
(
aarx
=
0
;
aarx
<
ue
->
frame_parms
.
nb_antennas_rx
;
aarx
++
)
for
(
p
=
0
;
p
<
ue
->
frame_parms
.
nb_antenna_ports_eNB
;
p
++
)
{
if
(
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
Ns
>>
1
)
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_offset
][(
p
<<
1
)
+
aarx
])
idft
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
Ns
>>
1
)
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_offset
][(
p
<<
1
)
+
aarx
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
Ns
>>
1
)
%
RX_NB_TH
].
dl_ch_estimates_time
[
eNB_offset
][(
p
<<
1
)
+
aarx
],
1
);
if
(
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]
].
dl_ch_estimates
[
eNB_offset
][(
p
<<
1
)
+
aarx
])
idft
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]
].
dl_ch_estimates
[
eNB_offset
][(
p
<<
1
)
+
aarx
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]
].
dl_ch_estimates_time
[
eNB_offset
][(
p
<<
1
)
+
aarx
],
1
);
}
#if T_TRACER
T
(
T_UE_PHY_DL_CHANNEL_ESTIMATE
,
T_INT
(
eNB_id
),
T_INT
(
ue
->
Mod_id
),
T_INT
(
ue
->
proc
.
proc_rxtx
[(
Ns
>>
1
)
&
1
].
frame_rx
%
1024
),
T_INT
(
ue
->
proc
.
proc_rxtx
[(
Ns
>>
1
)
&
1
].
subframe_rx
),
T_INT
(
0
),
T_BUFFER
(
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
Ns
>>
1
)
%
RX_NB_TH
].
dl_ch_estimates_time
[
eNB_offset
][
0
][
0
],
512
*
4
));
T_INT
(
0
),
T_BUFFER
(
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]
].
dl_ch_estimates_time
[
eNB_offset
][
0
][
0
],
512
*
4
));
#endif
return
(
0
);
...
...
openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
View file @
a2f37668
...
...
@@ -44,8 +44,8 @@ int lte_dl_mbsfn_channel_estimation(PHY_VARS_UE *ue,
// unsigned int n;
// int i;
int
**
dl_ch_estimates
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
0
];
int
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
;
int
**
dl_ch_estimates
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
0
];
int
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
;
ch_offset
=
(
l
*
(
ue
->
frame_parms
.
ofdm_symbol_size
));
symbol_offset
=
ch_offset
;
//phy_vars_ue->lte_frame_parms.ofdm_symbol_size*l;
...
...
@@ -734,31 +734,31 @@ int lte_dl_mbsfn_channel_estimation(PHY_VARS_UE *ue,
// do ifft of channel estimate
for
(
aa
=
0
;
aa
<
ue
->
frame_parms
.
nb_antennas_rx
*
ue
->
frame_parms
.
nb_antennas_tx
;
aa
++
)
{
if
(
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_offset
][
aa
])
{
if
(
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_offset
][
aa
])
{
switch
(
ue
->
frame_parms
.
N_RB_DL
)
{
case
6
:
idft128
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
idft128
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
1
);
break
;
case
25
:
idft512
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
idft512
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
1
);
break
;
case
50
:
idft1024
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
idft1024
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
1
);
break
;
case
75
:
idft1536
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
idft1536
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
1
);
break
;
case
100
:
idft2048
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
idft2048
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
1
);
break
;
default:
...
...
openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
View file @
a2f37668
...
...
@@ -184,8 +184,9 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
uint16_t
Nid_cell
=
ue
->
frame_parms
.
Nid_cell
;
uint8_t
eNB_offset
,
nu
,
l
,
nushift
,
k
;
uint16_t
off
;
uint8_t
previous_thread_id
=
ue
->
current_thread_id
[
subframe
]
==
0
?
(
RX_NB_TH
-
1
)
:
(
ue
->
current_thread_id
[
subframe
]
-
1
);
//uint8_t isPss; // indicate if this is a slot for extracting PSS
//uint8_t isPss; // indicate if this is a slot for extracting PSS
//uint8_t isSss; // indicate if this is a slot for extracting SSS
//int32_t pss_ext[4][72]; // contain the extracted 6*12 REs for mapping the PSS
//int32_t sss_ext[4][72]; // contain the extracted 6*12 REs for mapping the SSS
...
...
@@ -210,13 +211,13 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
if
(
ue
->
frame_parms
.
frame_type
==
FDD
)
{
rxF_sss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
[
aarx
][(
5
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_pss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
[
aarx
][(
6
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_sss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
[
aarx
][(
5
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_pss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
[
aarx
][(
6
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
}
else
{
rxF_sss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
subframe
-
1
)
%
RX_NB_TH
].
rxdataF
[
aarx
][(
13
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_pss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
[
aarx
][(
2
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_sss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
previous_thread_id
].
rxdataF
[
aarx
][(
13
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_pss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
[
aarx
][(
2
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
}
//-ve spectrum from SSS
...
...
@@ -234,13 +235,13 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
// printf("pss32 %d\n",ue->measurements.n0_power[aarx]); //-ve spectrum from PSS
if
(
ue
->
frame_parms
.
frame_type
==
FDD
)
{
rxF_sss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
[
aarx
][(
6
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_pss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
[
aarx
][(
7
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_sss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
[
aarx
][(
6
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_pss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
[
aarx
][(
7
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
}
else
{
rxF_sss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
subframe
-
1
)
%
RX_NB_TH
].
rxdataF
[
aarx
][(
14
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_pss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
[
aarx
][(
3
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_sss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
previous_thread_id
].
rxdataF
[
aarx
][(
14
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_pss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
[
aarx
][(
3
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
}
// ue->measurements.n0_power[aarx] += (((int32_t)rxF_pss[-72]*rxF_pss[-72])+((int32_t)rxF_pss[-71]*rxF_pss[-71]));
// printf("pssm36 %d\n",ue->measurements.n0_power[aarx]);
...
...
@@ -275,10 +276,10 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
if
(
ue
->
frame_parms
.
Ncp
==
NORMAL
)
{
for
(
aarx
=
0
;
aarx
<
ue
->
frame_parms
.
nb_antennas_rx
;
aarx
++
)
{
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[(
subframe
%
RX_NB_TH
)].
rxdataF
;
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[(
ue
->
current_thread_id
[
subframe
]
)].
rxdataF
;
rxF_pss
=
(
int16_t
*
)
&
rxdataF
[
aarx
][((
pss_symb
*
(
ue
->
frame_parms
.
ofdm_symbol_size
)))];
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
subframe
-
1
)
%
RX_NB_TH
].
rxdataF
;
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
previous_thread_id
].
rxdataF
;
rxF_sss
=
(
int16_t
*
)
&
rxdataF
[
aarx
][((
sss_symb
*
(
ue
->
frame_parms
.
ofdm_symbol_size
)))];
//-ve spectrum from SSS
...
...
@@ -303,7 +304,7 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
ue
->
measurements
.
n0_power
[
aarx
]
+=
(((
int32_t
)
rxF_pss
[
2
+
66
]
*
rxF_pss
[
2
+
66
])
+
((
int32_t
)
rxF_pss
[
2
+
65
]
*
rxF_pss
[
2
+
65
]));
// ue->measurements.n0_power[aarx] += (((int32_t)rxF_pss[2+64]*rxF_pss[2+64])+((int32_t)rxF_pss[2+63]*rxF_pss[2+63]));
// printf("pss32 %d\n",ue->measurements.n0_power[aarx]); //-ve spectrum from PSS
rxF_pss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
[
aarx
][(
7
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF_pss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
[
aarx
][(
7
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
// ue->measurements.n0_power[aarx] += (((int32_t)rxF_pss[-72]*rxF_pss[-72])+((int32_t)rxF_pss[-71]*rxF_pss[-71]));
// printf("pssm36 %d\n",ue->measurements.n0_power[aarx]);
ue
->
measurements
.
n0_power
[
aarx
]
+=
(((
int32_t
)
rxF_pss
[
-
70
]
*
rxF_pss
[
-
70
])
+
((
int32_t
)
rxF_pss
[
-
69
]
*
rxF_pss
[
-
69
]));
...
...
@@ -349,7 +350,7 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
#endif
for
(
aarx
=
0
;
aarx
<
ue
->
frame_parms
.
nb_antennas_rx
;
aarx
++
)
{
rxF
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
[
aarx
][(
l
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
rxF
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
[
aarx
][(
l
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
off
=
(
ue
->
frame_parms
.
first_carrier_offset
+
k
)
<<
1
;
if
(
l
==
(
4
-
ue
->
frame_parms
.
Ncp
))
{
...
...
@@ -515,7 +516,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
for
(
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
for
(
aatx
=
0
;
aatx
<
frame_parms
->
nb_antenna_ports_eNB
;
aatx
++
)
{
ue
->
measurements
.
rx_spatial_power
[
eNB_id
][
aatx
][
aarx
]
=
(
signal_energy_nodc
(
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
][(
aatx
<<
1
)
+
aarx
][
0
],
(
signal_energy_nodc
(
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
][(
aatx
<<
1
)
+
aarx
][
0
],
(
N_RB_DL
*
12
)));
//- ue->measurements.n0_power[aarx];
...
...
@@ -608,8 +609,8 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
// cqi/pmi information
for
(
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
dl_ch0
=
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
][
aarx
][
4
];
dl_ch1
=
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
][
2
+
aarx
][
4
];
dl_ch0
=
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
][
aarx
][
4
];
dl_ch1
=
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
][
2
+
aarx
][
4
];
for
(
subband
=
0
;
subband
<
nb_subbands
;
subband
++
)
{
...
...
@@ -664,13 +665,13 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
#if defined(__x86_64__) || defined(__i386__)
__m128i
pmi128_re
,
pmi128_im
,
mmtmpPMI0
,
mmtmpPMI1
/* ,mmtmpPMI2,mmtmpPMI3 */
;
dl_ch0_128
=
(
__m128i
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
][
aarx
][
4
];
dl_ch1_128
=
(
__m128i
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
][
2
+
aarx
][
4
];
dl_ch0_128
=
(
__m128i
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
][
aarx
][
4
];
dl_ch1_128
=
(
__m128i
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
][
2
+
aarx
][
4
];
#elif defined(__arm__)
int32x4_t
pmi128_re
,
pmi128_im
,
mmtmpPMI0
,
mmtmpPMI1
,
mmtmpPMI0b
,
mmtmpPMI1b
;
dl_ch0_128
=
(
int16x8_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
][
aarx
][
4
];
dl_ch1_128
=
(
int16x8_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
][
2
+
aarx
][
4
];
dl_ch0_128
=
(
int16x8_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
][
aarx
][
4
];
dl_ch1_128
=
(
int16x8_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
][
2
+
aarx
][
4
];
#endif
for
(
subband
=
0
;
subband
<
nb_subbands
;
subband
++
)
{
...
...
@@ -764,7 +765,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
else
{
// cqi information only for mode 1
for
(
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
dl_ch0
=
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
][
aarx
][
4
];
dl_ch0
=
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
][
aarx
][
4
];
for
(
subband
=
0
;
subband
<
7
;
subband
++
)
{
...
...
openair1/PHY/LTE_TRANSPORT/dci.c
View file @
a2f37668
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
a2f37668
...
...
@@ -7355,7 +7355,7 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
uint8_t
transmission_mode
=
ue
->
transmission_mode
[
eNB_id
];
ANFBmode_t
AckNackFBMode
;
LTE_UE_ULSCH_t
*
ulsch
=
ue
->
ulsch
[
eNB_id
];
LTE_UE_DLSCH_t
**
dlsch
=
ue
->
dlsch
[
subframe
%
RX_NB_TH
][
0
];
LTE_UE_DLSCH_t
**
dlsch
=
ue
->
dlsch
[
ue
->
current_thread_id
[
subframe
]
][
0
];
PHY_MEASUREMENTS
*
meas
=
&
ue
->
measurements
;
LTE_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
// uint32_t current_dlsch_cqi = ue->current_dlsch_cqi[eNB_id];
...
...
@@ -8162,7 +8162,7 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
//int dl_subframe = (subframe<4) ? (subframe+6) : (subframe-4);
int
dl_subframe
=
subframe
;
if
(
ue
->
dlsch
[
dl_subframe
%
RX_NB_TH
][
eNB_id
][
0
]
->
harq_ack
[
dl_subframe
].
send_harq_status
>
0
)
{
// we have downlink transmission
if
(
ue
->
dlsch
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
][
0
]
->
harq_ack
[
dl_subframe
].
send_harq_status
>
0
)
{
// we have downlink transmission
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
1
;
}
else
{
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
0
;
...
...
@@ -8921,7 +8921,7 @@ double sinr_eff_cqi_calc(PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe)
uint8_t
transmission_mode
=
ue
->
transmission_mode
[
eNB_id
];
PHY_MEASUREMENTS
*
meas
=
&
ue
->
measurements
;
LTE_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
int32_t
**
dl_channel_est
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
];
int32_t
**
dl_channel_est
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
];
double
*
s_dB
;
s_dB
=
ue
->
sinr_CQI_dB
;
// LTE_UE_ULSCH_t *ulsch = ue->ulsch[eNB_id];
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
View file @
a2f37668
...
...
@@ -272,7 +272,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
return(max_turbo_iterations);
}*/
/*harq_pid = dlsch->current_harq_pid[
subframe%RX_NB_TH
];
/*harq_pid = dlsch->current_harq_pid[
phy_vars_ue->current_thread_id[subframe]
];
if (harq_pid >= 8) {
printf("dlsch_decoding.c: Illegal harq_pid %d\n",harq_pid);
return(max_turbo_iterations);
...
...
@@ -962,9 +962,9 @@ uint32_t dlsch_decoding_emul(PHY_VARS_UE *phy_vars_ue,
break
;
case
PDSCH
:
// TB0
dlsch_ue
=
phy_vars_ue
->
dlsch
[
subframe
%
RX_NB_TH
][
eNB_id
][
0
];
dlsch_ue
=
phy_vars_ue
->
dlsch
[
phy_vars_ue
->
current_thread_id
[
subframe
]
][
eNB_id
][
0
];
harq_pid
=
dlsch_ue
->
current_harq_pid
;
ue_id
=
(
uint32_t
)
find_ue
((
int16_t
)
phy_vars_ue
->
pdcch_vars
[
subframe
%
RX_NB_TH
][(
uint32_t
)
eNB_id
]
->
crnti
,
PHY_vars_eNB_g
[
eNB_id2
][
CC_id
]);
ue_id
=
(
uint32_t
)
find_ue
((
int16_t
)
phy_vars_ue
->
pdcch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]
][(
uint32_t
)
eNB_id
]
->
crnti
,
PHY_vars_eNB_g
[
eNB_id2
][
CC_id
]);
DevAssert
(
ue_id
!=
(
uint32_t
)
-
1
);
dlsch_eNB
=
PHY_vars_eNB_g
[
eNB_id2
][
CC_id
]
->
dlsch
[
ue_id
][
0
];
...
...
@@ -1008,9 +1008,9 @@ uint32_t dlsch_decoding_emul(PHY_VARS_UE *phy_vars_ue,
break
;
case
PDSCH1
:
{
// TB1
dlsch_ue
=
phy_vars_ue
->
dlsch
[
subframe
%
RX_NB_TH
][
eNB_id
][
1
];
dlsch_ue
=
phy_vars_ue
->
dlsch
[
phy_vars_ue
->
current_thread_id
[
subframe
]
][
eNB_id
][
1
];
harq_pid
=
dlsch_ue
->
current_harq_pid
;
int8_t
UE_id
=
find_ue
(
phy_vars_ue
->
pdcch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
crnti
,
PHY_vars_eNB_g
[
eNB_id2
][
CC_id
]
);
int8_t
UE_id
=
find_ue
(
phy_vars_ue
->
pdcch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
crnti
,
PHY_vars_eNB_g
[
eNB_id2
][
CC_id
]
);
DevAssert
(
UE_id
!=
-
1
);
dlsch_eNB
=
PHY_vars_eNB_g
[
eNB_id2
][
CC_id
]
->
dlsch
[
UE_id
][
1
];
// reset HARQ
...
...
@@ -1062,7 +1062,7 @@ uint32_t dlsch_decoding_emul(PHY_VARS_UE *phy_vars_ue,
break
;
default:
dlsch_ue
=
phy_vars_ue
->
dlsch
[
subframe
%
RX_NB_TH
][
eNB_id
][
0
];
dlsch_ue
=
phy_vars_ue
->
dlsch
[
phy_vars_ue
->
current_thread_id
[
subframe
]
][
eNB_id
][
0
];
LOG_E
(
PHY
,
"dlsch_decoding_emul: FATAL, unknown DLSCH_id %d
\n
"
,
dlsch_id
);
dlsch_ue
->
last_iteration_cnt
=
1
+
dlsch_ue
->
max_turbo_iterations
;
return
(
1
+
dlsch_ue
->
max_turbo_iterations
);
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
View file @
a2f37668
...
...
@@ -148,8 +148,8 @@ int rx_pdsch(PHY_VARS_UE *ue,
break
;
case
PDSCH
:
pdsch_vars
=
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
];
dlsch
=
ue
->
dlsch
[
subframe
%
RX_NB_TH
][
eNB_id
];
pdsch_vars
=
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
];
dlsch
=
ue
->
dlsch
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
];
//printf("status TB0 = %d, status TB1 = %d \n", dlsch[0]->harq_processes[harq_pid]->status, dlsch[1]->harq_processes[harq_pid]->status);
LOG_D
(
PHY
,
"AbsSubframe %d.%d / Sym %d harq_pid %d, harq status %d.%d
\n
"
,
frame
,
subframe
,
symbol
,
harq_pid
,
...
...
@@ -272,8 +272,8 @@ int rx_pdsch(PHY_VARS_UE *ue,
#if UE_TIMING_TRACE
start_meas
(
&
ue
->
generic_stat_bis
[
subframe
%
RX_NB_TH
][
slot
]);
#endif
nb_rb
=
dlsch_extract_rbs_dual
(
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
],
nb_rb
=
dlsch_extract_rbs_dual
(
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
],
pdsch_vars
[
eNB_id
]
->
rxdataF_ext
,
pdsch_vars
[
eNB_id
]
->
dl_ch_estimates_ext
,
dlsch0_harq
->
pmi_alloc
,
...
...
@@ -293,8 +293,8 @@ int rx_pdsch(PHY_VARS_UE *ue,
if
(
rx_type
>=
rx_IC_single_stream
)
{
if
(
eNB_id_i
<
ue
->
n_connected_eNB
)
// we are in TM5
nb_rb
=
dlsch_extract_rbs_dual
(
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id_i
],
nb_rb
=
dlsch_extract_rbs_dual
(
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id_i
],
pdsch_vars
[
eNB_id_i
]
->
rxdataF_ext
,
pdsch_vars
[
eNB_id_i
]
->
dl_ch_estimates_ext
,
dlsch0_harq
->
pmi_alloc
,
...
...
@@ -306,8 +306,8 @@ int rx_pdsch(PHY_VARS_UE *ue,
frame_parms
,
dlsch0_harq
->
mimo_mode
);
else
nb_rb
=
dlsch_extract_rbs_dual
(
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
],
nb_rb
=
dlsch_extract_rbs_dual
(
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
],
pdsch_vars
[
eNB_id_i
]
->
rxdataF_ext
,
pdsch_vars
[
eNB_id_i
]
->
dl_ch_estimates_ext
,
dlsch0_harq
->
pmi_alloc
,
...
...
@@ -320,8 +320,8 @@ int rx_pdsch(PHY_VARS_UE *ue,
dlsch0_harq
->
mimo_mode
);
}
}
else
if
(
beamforming_mode
==
0
)
{
//else if nb_antennas_ports_eNB==1 && beamforming_mode == 0
nb_rb
=
dlsch_extract_rbs_single
(
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
],
nb_rb
=
dlsch_extract_rbs_single
(
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
],
pdsch_vars
[
eNB_id
]
->
rxdataF_ext
,
pdsch_vars
[
eNB_id
]
->
dl_ch_estimates_ext
,
dlsch0_harq
->
pmi_alloc
,
...
...
@@ -334,8 +334,8 @@ int rx_pdsch(PHY_VARS_UE *ue,
if
(
rx_type
==
rx_IC_single_stream
)
{
if
(
eNB_id_i
<
ue
->
n_connected_eNB
)
nb_rb
=
dlsch_extract_rbs_single
(
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id_i
],
nb_rb
=
dlsch_extract_rbs_single
(
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id_i
],
pdsch_vars
[
eNB_id_i
]
->
rxdataF_ext
,
pdsch_vars
[
eNB_id_i
]
->
dl_ch_estimates_ext
,
dlsch0_harq
->
pmi_alloc
,
...
...
@@ -346,8 +346,8 @@ int rx_pdsch(PHY_VARS_UE *ue,
ue
->
high_speed_flag
,
frame_parms
);
else
nb_rb
=
dlsch_extract_rbs_single
(
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
dl_ch_estimates
[
eNB_id
],
nb_rb
=
dlsch_extract_rbs_single
(
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
dl_ch_estimates
[
eNB_id
],
pdsch_vars
[
eNB_id_i
]
->
rxdataF_ext
,
pdsch_vars
[
eNB_id_i
]
->
dl_ch_estimates_ext
,
dlsch0_harq
->
pmi_alloc
,
...
...
@@ -359,7 +359,7 @@ int rx_pdsch(PHY_VARS_UE *ue,
frame_parms
);
}
}
else
if
(
beamforming_mode
==
7
)
{
//else if beamforming_mode == 7
nb_rb
=
dlsch_extract_rbs_TM7
(
common_vars
->
common_vars_rx_data_per_thread
[
subframe
%
RX_NB_TH
].
rxdataF
,
nb_rb
=
dlsch_extract_rbs_TM7
(
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]
].
rxdataF
,
pdsch_vars
[
eNB_id
]
->
dl_bf_ch_estimates
,
pdsch_vars
[
eNB_id
]
->
rxdataF_ext
,
pdsch_vars
[
eNB_id
]
->
dl_bf_ch_estimates_ext
,
...
...
@@ -1198,12 +1198,12 @@ int rx_pdsch(PHY_VARS_UE *ue,
if(1)
{
#if 1
write_output("rxdataF0.m" , "rxdataF0", &common_vars->common_vars_rx_data_per_thread[
subframe%RX_NB_TH
].rxdataF[0][0],14*frame_parms->ofdm_symbol_size,1,1);
//write_output("rxdataF1.m" , "rxdataF1", &common_vars->common_vars_rx_data_per_thread[
subframe%RX_NB_TH
].rxdataF[0][0],14*frame_parms->ofdm_symbol_size,1,1);
write_output("dl_ch_estimates00.m", "dl_ch_estimates00", &common_vars->common_vars_rx_data_per_thread[
subframe%RX_NB_TH
].dl_ch_estimates[eNB_id][0][0],14*frame_parms->ofdm_symbol_size,1,1);
//write_output("dl_ch_estimates01.m", "dl_ch_estimates01", &common_vars->common_vars_rx_data_per_thread[
subframe%RX_NB_TH
].dl_ch_estimates[eNB_id][1][0],14*frame_parms->ofdm_symbol_size,1,1);
//write_output("dl_ch_estimates10.m", "dl_ch_estimates10", &common_vars->common_vars_rx_data_per_thread[
subframe%RX_NB_TH
].dl_ch_estimates[eNB_id][2][0],14*frame_parms->ofdm_symbol_size,1,1);
//write_output("dl_ch_estimates11.m", "dl_ch_estimates11", &common_vars->common_vars_rx_data_per_thread[
subframe%RX_NB_TH
].dl_ch_estimates[eNB_id][3][0],14*frame_parms->ofdm_symbol_size,1,1);
write_output("rxdataF0.m" , "rxdataF0", &common_vars->common_vars_rx_data_per_thread[
ue->current_thread_id[subframe]
].rxdataF[0][0],14*frame_parms->ofdm_symbol_size,1,1);
//write_output("rxdataF1.m" , "rxdataF1", &common_vars->common_vars_rx_data_per_thread[
ue->current_thread_id[subframe]
].rxdataF[0][0],14*frame_parms->ofdm_symbol_size,1,1);
write_output("dl_ch_estimates00.m", "dl_ch_estimates00", &common_vars->common_vars_rx_data_per_thread[
ue->current_thread_id[subframe]
].dl_ch_estimates[eNB_id][0][0],14*frame_parms->ofdm_symbol_size,1,1);
//write_output("dl_ch_estimates01.m", "dl_ch_estimates01", &common_vars->common_vars_rx_data_per_thread[
ue->current_thread_id[subframe]
].dl_ch_estimates[eNB_id][1][0],14*frame_parms->ofdm_symbol_size,1,1);
//write_output("dl_ch_estimates10.m", "dl_ch_estimates10", &common_vars->common_vars_rx_data_per_thread[
ue->current_thread_id[subframe]
].dl_ch_estimates[eNB_id][2][0],14*frame_parms->ofdm_symbol_size,1,1);
//write_output("dl_ch_estimates11.m", "dl_ch_estimates11", &common_vars->common_vars_rx_data_per_thread[
ue->current_thread_id[subframe]
].dl_ch_estimates[eNB_id][3][0],14*frame_parms->ofdm_symbol_size,1,1);
//write_output("rxdataF_ext00.m" , "rxdataF_ext00", &pdsch_vars[eNB_id]->rxdataF_ext[0][0],14*frame_parms->N_RB_DL*12,1,1);
...
...
@@ -6037,50 +6037,50 @@ void dump_dlsch2(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t subframe,unsigned int *c
sprintf
(
fname
,
"dlsch%d_rxF_r%d_ext0.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_rxF_r%d_ext0"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
rxdataF_ext
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
rxdataF_ext
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
if
(
ue
->
frame_parms
.
nb_antennas_rx
>
1
)
{
sprintf
(
fname
,
"dlsch%d_rxF_r%d_ext1.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_rxF_r%d_ext1"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
rxdataF_ext
[
1
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
rxdataF_ext
[
1
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
}
sprintf
(
fname
,
"dlsch%d_ch_r%d_ext00.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_ch_r%d_ext00"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
dl_ch_estimates_ext
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
dl_ch_estimates_ext
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
if
(
ue
->
transmission_mode
[
eNB_id
]
==
7
){
sprintf
(
fname
,
"dlsch%d_bf_ch_r%d.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_bf_ch_r%d"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
dl_bf_ch_estimates
[
0
],
512
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
dl_bf_ch_estimates
[
0
],
512
*
nsymb
,
1
,
1
);
//write_output(fname,vname,phy_vars_ue->lte_ue_pdsch_vars[eNB_id]->dl_bf_ch_estimates[0],512,1,1);
sprintf
(
fname
,
"dlsch%d_bf_ch_r%d_ext00.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_bf_ch_r%d_ext00"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
dl_bf_ch_estimates_ext
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
dl_bf_ch_estimates_ext
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
}
if
(
ue
->
frame_parms
.
nb_antennas_rx
==
2
)
{
sprintf
(
fname
,
"dlsch%d_ch_r%d_ext01.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_ch_r%d_ext01"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
dl_ch_estimates_ext
[
1
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
dl_ch_estimates_ext
[
1
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
}
if
(
ue
->
frame_parms
.
nb_antenna_ports_eNB
==
2
)
{
sprintf
(
fname
,
"dlsch%d_ch_r%d_ext10.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_ch_r%d_ext10"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
dl_ch_estimates_ext
[
2
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
dl_ch_estimates_ext
[
2
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
if
(
ue
->
frame_parms
.
nb_antennas_rx
==
2
)
{
sprintf
(
fname
,
"dlsch%d_ch_r%d_ext11.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_ch_r%d_ext11"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
dl_ch_estimates_ext
[
3
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
dl_ch_estimates_ext
[
3
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
}
}
sprintf
(
fname
,
"dlsch%d_rxF_r%d_uespec0.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_rxF_r%d_uespec0"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
rxdataF_uespec_pilots
[
0
],
12
*
N_RB_DL
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
rxdataF_uespec_pilots
[
0
],
12
*
N_RB_DL
,
1
,
1
);
/*
write_output("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*nsymb,1,1);
...
...
@@ -6090,31 +6090,31 @@ void dump_dlsch2(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t subframe,unsigned int *c
sprintf
(
fname
,
"dlsch%d_r%d_rho.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl_rho_r%d_%d"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
dl_ch_rho_ext
[
harq_pid
][
round
][
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
dl_ch_rho_ext
[
harq_pid
][
round
][
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
sprintf
(
fname
,
"dlsch%d_r%d_rho2.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl_rho2_r%d_%d"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
dl_ch_rho2_ext
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
dl_ch_rho2_ext
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
sprintf
(
fname
,
"dlsch%d_rxF_r%d_comp0.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_rxF_r%d_comp0"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
rxdataF_comp0
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
rxdataF_comp0
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
if
(
ue
->
frame_parms
.
nb_antenna_ports_eNB
==
2
)
{
sprintf
(
fname
,
"dlsch%d_rxF_r%d_comp1.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_rxF_r%d_comp1"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
rxdataF_comp1
[
harq_pid
][
round
][
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
rxdataF_comp1
[
harq_pid
][
round
][
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
}
sprintf
(
fname
,
"dlsch%d_rxF_r%d_llr.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_r%d_llr"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
llr
[
0
],
coded_bits_per_codeword
[
0
],
1
,
0
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
llr
[
0
],
coded_bits_per_codeword
[
0
],
1
,
0
);
sprintf
(
fname
,
"dlsch%d_r%d_mag1.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_r%d_mag1"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
dl_ch_mag0
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
ue
->
current_thread_id
[
subframe
]
][
eNB_id
]
->
dl_ch_mag0
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);
sprintf
(
fname
,
"dlsch%d_r%d_mag2.m"
,
eNB_id
,
round
);
sprintf
(
vname
,
"dl%d_r%d_mag2"
,
eNB_id
,
round
);
write_output
(
fname
,
vname
,
ue
->
pdsch_vars
[
subframe
%
RX_NB_TH
][
eNB_id
]
->
dl_ch_magb0
[
0
],
12
*
N_RB_DL
*
nsymb
,
1
,
1
);