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
7d27d45d
Commit
7d27d45d
authored
Dec 02, 2015
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
few more fixes
parent
cce0b45f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
62 additions
and
93 deletions
+62
-93
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
+24
-14
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
+5
-5
openair1/PHY/LTE_TRANSPORT/proto.h
openair1/PHY/LTE_TRANSPORT/proto.h
+3
-2
openair1/SIMULATION/LTE_PHY/dlsim.c
openair1/SIMULATION/LTE_PHY/dlsim.c
+30
-72
No files found.
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
View file @
7d27d45d
...
...
@@ -203,7 +203,10 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
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
);
printf
(
"dlsch: using pmi %lx, rb_alloc %x, pmi_ext "
,
pmi2hex_2Ar1
(
dlsch0_harq
->
pmi_alloc
),
*
rballoc
);
for
(
rb
=
0
;
rb
<
nb_rb
;
rb
++
)
printf
(
"%d"
,
lte_ue_pdsch_vars
[
eNB_id
]
->
pmi_ext
[
rb
]);
printf
(
"
\n
"
);
//#endif
if
(
rx_type
==
rx_IC_single_stream
)
{
...
...
@@ -1381,17 +1384,19 @@ void prec2A_TM4_128(int pmi,__m128i *ch0,__m128i *ch1) {
ch0
[
0
]
=
_mm_adds_epi16
(
tmp0
,
tmp1
);
ch1
[
0
]
=
_mm_subs_epi16
(
tmp0
,
tmp1
);
}
else
{
else
{
//[1 j; 1 -j]
tmp0
=
ch0
[
0
];
tmp1
=
_mm_sign_epi16
(
ch1
[
0
],
*
(
__m128i
*
)
&
conjugate
[
0
]);
tmp1
=
_mm_shufflelo_epi16
(
tmp1
,
_MM_SHUFFLE
(
2
,
3
,
0
,
1
));
tmp1
=
_mm_shufflehi_epi16
(
tmp1
,
_MM_SHUFFLE
(
2
,
3
,
0
,
1
));
ch0
[
0
]
=
_mm_subs_epi16
(
tmp0
,
tmp1
);
tmp1
=
ch1
[
0
];
ch0
[
0
]
=
_mm_adds_epi16
(
tmp0
,
tmp1
);
ch1
[
0
]
=
_mm_subs_epi16
(
tmp0
,
tmp1
);
}
//print_shorts("prec2A_TM4 ch0 (middle):",ch0);
//print_shorts("prec2A_TM4 ch1 (middle):",ch1);
//print_shorts("prec2A_TM4 ch0 (middle):",ch0);
//print_shorts("prec2A_TM4 ch1 (middle):",ch1);
ch1
[
0
]
=
_mm_sign_epi16
(
ch1
[
0
],
*
(
__m128i
*
)
&
conjugate2
[
0
]);
ch1
[
0
]
=
_mm_shufflelo_epi16
(
ch1
[
0
],
_MM_SHUFFLE
(
2
,
3
,
0
,
1
));
ch1
[
0
]
=
_mm_shufflehi_epi16
(
ch1
[
0
],
_MM_SHUFFLE
(
2
,
3
,
0
,
1
));
}
//ch0[0] = _mm_mulhi_epi16(ch0[0],amp);
//ch0[0] = _mm_slli_epi16(ch0[0],1);
...
...
@@ -1902,7 +1907,7 @@ void dlsch_channel_compensation_TM34(LTE_DL_FRAME_PARMS *frame_parms,
}
}
else
if
(
mimo_mode
==
DUALSTREAM_PUSCH_PRECODING
)
{
else
if
(
mimo_mode
==
DUALSTREAM_PUSCH_PRECODING
)
{
prec2A_TM4_128
(
pmi_ext
[
rb
],
&
dl_ch0_128
[
0
],
&
dl_ch1_128
[
0
]);
prec2A_TM4_128
(
pmi_ext
[
rb
],
&
dl_ch0_128
[
1
],
&
dl_ch1_128
[
1
]);
...
...
@@ -4137,14 +4142,16 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF,
rxF
=
&
rxdataF
[
aarx
][
prb_off2
+
(
symbol
*
(
frame_parms
->
ofdm_symbol_size
))];
}
/*
if (mimo_mode <= PUSCH_PRECODING1)
*pmi_loc = (pmi>>((prb>>2)<<1))&3;
else
*pmi_loc=(pmi>>prb)&1;
*/
*
pmi_loc
=
get_pmi
(
frame_parms
->
N_RB_DL
,
mimo_mode
,
pmi
,
prb
);
pmi_loc
++
;
if
(
pilots
==
0
)
{
...
...
@@ -4279,14 +4286,17 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF,
#ifdef DEBUG_DLSCH_DEMOD
printf
(
"symbol %d / rb %d: alloc %d skip_half %d (rxF %p, rxF_ext %p) prb_off (%d,%d)
\n
"
,
symbol
,
prb
,
rb_alloc_ind
,
skip_half
,
rxF
,
rxF_ext
,
prb_off
,
prb_off2
);
#endif
/*
if (mimo_mode <= PUSCH_PRECODING1)
*pmi_loc = (pmi>>((prb>>2)<<1))&3;
else
*pmi_loc=(pmi>>prb)&1;
// printf("symbol_mod %d (pilots %d) rb %d, sb %d, pmi %d (pmi_loc %p,rxF %p, ch00 %p, ch01 %p, rxF_ext %p dl_ch0_ext %p dl_ch1_ext %p)\n",symbol_mod,pilots,prb,prb>>2,*pmi_loc,pmi_loc,rxF,dl_ch0, dl_ch1, rxF_ext,dl_ch0_ext,dl_ch1_ext);
*/
*
pmi_loc
=
get_pmi
(
frame_parms
->
N_RB_DL
,
mimo_mode
,
pmi
,
prb
);
pmi_loc
++
;
if
(
prb
!=
(
frame_parms
->
N_RB_DL
>>
1
))
{
// This PRB is not around DC
if
(
pilots
==
0
)
{
if
(
skip_half
==
1
)
{
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
View file @
7d27d45d
...
...
@@ -1247,12 +1247,12 @@ int allocate_REs_in_RB_MCH(mod_sym_t **txdataF,
return
(
0
);
}
uint8_t
get_pmi
(
uint8_t
N_RB_DL
,
LTE_DL_eNB_HARQ_t
*
dlsch_harq
,
uint16_t
rb
)
uint8_t
get_pmi
(
uint8_t
N_RB_DL
,
MIMO_mode_t
mode
,
uint32_t
pmi_alloc
,
uint16_t
rb
)
{
/*
MIMO_mode_t mode = dlsch_harq->mimo_mode;
uint32_t pmi_alloc = dlsch_harq->pmi_alloc;
*/
switch
(
N_RB_DL
)
{
case
6
:
// 1 PRB per subband
...
...
@@ -1268,7 +1268,7 @@ uint8_t get_pmi(uint8_t N_RB_DL,LTE_DL_eNB_HARQ_t *dlsch_harq,uint16_t rb)
if
(
mode
<=
PUSCH_PRECODING1
)
return
((
pmi_alloc
>>
((
rb
>>
2
)
<<
1
))
&
3
);
else
{
printf
(
"Getting pmi for RB %d => %d
\n
"
,
rb
,((
pmi_alloc
>>
(
rb
>>
2
))
&
1
));
//
printf("Getting pmi for RB %d => %d\n",rb,((pmi_alloc>>(rb>>2))&1));
return
((
pmi_alloc
>>
(
rb
>>
2
))
&
1
);
}
break
;
...
...
@@ -1572,7 +1572,7 @@ int dlsch_modulation(mod_sym_t **txdataF,
(
dlsch1
==
NULL
)
?
NULL
:
dlsch1
->
harq_processes
[
harq_pid
],
pilots
,
((
pilots
)
?
amp_rho_b
:
amp_rho_a
),
get_pmi
(
frame_parms
->
N_RB_DL
,
dlsch0
->
harq_processes
[
harq_pid
],
rb
),
get_pmi
(
frame_parms
->
N_RB_DL
,
dlsch0
->
harq_processes
[
harq_pid
]
->
mimo_mode
,
dlsch0
->
harq_processes
[
harq_pid
]
->
pmi_alloc
,
rb
),
qam_table_s0
,
qam_table_s1
,
&
re_allocated
,
...
...
openair1/PHY/LTE_TRANSPORT/proto.h
View file @
7d27d45d
...
...
@@ -1607,11 +1607,12 @@ uint32_t pmi_extend(LTE_DL_FRAME_PARMS *frame_parms,uint8_t wideband_pmi, uint8_
/** \brief This routine extracts a single subband PMI from a bitmap coming from UCI or the pmi_extend function
@param N_RB_DL number of resource blocks
@param dlsch_harq pointer to dlsch structure (containing mimo_mode and pmi_alloc)
@param mimo_mode
@param pmi_alloc subband PMI bitmap
@param rb resource block for which to extract PMI
@returns subband PMI
*/
uint8_t
get_pmi
(
uint8_t
N_RB_DL
,
LTE_DL_eNB_HARQ_t
*
dlsch_harq
,
uint16_t
rb
);
uint8_t
get_pmi
(
uint8_t
N_RB_DL
,
MIMO_mode_t
mode
,
uint32_t
pmi_alloc
,
uint16_t
rb
);
uint16_t
get_nCCE
(
uint8_t
num_pdcch_symbols
,
LTE_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
mi
);
...
...
openair1/SIMULATION/LTE_PHY/dlsim.c
View file @
7d27d45d
...
...
@@ -736,7 +736,7 @@ int main(int argc, char **argv)
if
(
transmission_mode
==
5
)
{
n_users
=
2
;
//eNB_id_i = PHY_vars_UE->n_connected_eNB;
eNB_id_i
=
1
;
eNB_id_i
=
1
;
}
else
...
...
@@ -3437,74 +3437,6 @@ n(tikz_fname,"w");
}
stop_meas
(
&
PHY_vars_UE
->
dlsch_llr_stats
);
}
if
(
test_perf
==
0
)
{
if
((
n_frames
==
1
)
&&
(
Ns
==
(
2
+
(
2
*
subframe
)))
&&
(
l
==
0
))
{
write_output
(
"chanF11.m"
,
"chF11"
,
eNB2UE
[
0
]
->
chF
[
0
],
12
*
NB_RB
,
1
,
8
);
write_output
(
"chan11.m"
,
"ch11"
,
eNB2UE
[
0
]
->
ch
[
0
],
eNB2UE
[
0
]
->
channel_length
,
1
,
8
);
if
(
PHY_vars_eNB
->
lte_frame_parms
.
nb_antennas_rx
==
2
&&
PHY_vars_eNB
->
lte_frame_parms
.
nb_antennas_tx
==
1
){
write_output
(
"chan21.m"
,
"ch21"
,
eNB2UE
[
0
]
->
ch
[
1
],
eNB2UE
[
0
]
->
channel_length
,
1
,
8
);
}
if
(
PHY_vars_eNB
->
lte_frame_parms
.
nb_antennas_tx
>
1
){
write_output
(
"chan12.m"
,
"ch12"
,
eNB2UE
[
0
]
->
ch
[
1
],
eNB2UE
[
0
]
->
channel_length
,
1
,
8
);
if
(
PHY_vars_eNB
->
lte_frame_parms
.
nb_antennas_rx
>
1
){
write_output
(
"chan21.m"
,
"ch21"
,
eNB2UE
[
0
]
->
ch
[
2
],
eNB2UE
[
0
]
->
channel_length
,
1
,
8
);
write_output
(
"chan22.m"
,
"ch22"
,
eNB2UE
[
0
]
->
ch
[
3
],
eNB2UE
[
0
]
->
channel_length
,
1
,
8
);
}
}
/*for (aarx=0;aarx<PHY_vars_UE->lte_frame_parms.nb_antennas_rx; aarx++) {
for (aa=0;aa<PHY_vars_UE->lte_frame_parms.nb_antennas_tx; aa++) {
sprintf(fname,"ch%d%d.m",(aarx+1), (aa+1));
write_output(fname,"ch",eNB2UE[0]->ch[2*aarx+aa],eNB2UE[0]->channel_length,1,8);
}
} */
/*write_output("ch0.m","ch0",eNB2UE[0]->ch[0],eNB2UE[0]->channel_length,1,8);
if (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1)
write_output("ch1.m","ch1",eNB2UE[0]->ch[PHY_vars_eNB->lte_frame_parms.nb_antennas_rx],eNB2UE[0]->channel_length,1,8);*/
//common vars
write_output
(
"rxsig0.m"
,
"rxs0"
,
&
PHY_vars_UE
->
lte_ue_common_vars
.
rxdata
[
0
][
0
],
10
*
PHY_vars_UE
->
lte_frame_parms
.
samples_per_tti
,
1
,
1
);
write_output
(
"rxsigF0.m"
,
"rxsF0"
,
&
PHY_vars_UE
->
lte_ue_common_vars
.
rxdataF
[
0
][
0
],
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
,
1
,
1
);
if
(
PHY_vars_UE
->
lte_frame_parms
.
nb_antennas_rx
>
1
)
{
write_output
(
"rxsig1.m"
,
"rxs1"
,
PHY_vars_UE
->
lte_ue_common_vars
.
rxdata
[
1
],
PHY_vars_UE
->
lte_frame_parms
.
samples_per_tti
,
1
,
1
);
write_output
(
"rxsigF1.m"
,
"rxsF1"
,
PHY_vars_UE
->
lte_ue_common_vars
.
rxdataF
[
1
],
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
,
1
,
1
);
}
write_output
(
"dlsch00_r0.m"
,
"dl00_r0"
,
&
(
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
eNB_id
][
0
][
0
]),
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
,
1
,
1
);
if
(
PHY_vars_UE
->
lte_frame_parms
.
nb_antennas_rx
>
1
)
write_output
(
"dlsch01_r0.m"
,
"dl01_r0"
,
&
(
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
eNB_id
][
1
][
0
]),
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
,
1
,
1
);
if
(
PHY_vars_eNB
->
lte_frame_parms
.
nb_antennas_tx
>
1
)
write_output
(
"dlsch10_r0.m"
,
"dl10_r0"
,
&
(
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
eNB_id
][
2
][
0
]),
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
,
1
,
1
);
if
((
PHY_vars_UE
->
lte_frame_parms
.
nb_antennas_rx
>
1
)
&&
(
PHY_vars_eNB
->
lte_frame_parms
.
nb_antennas_tx
>
1
))
write_output
(
"dlsch11_r0.m"
,
"dl11_r0"
,
&
(
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
eNB_id
][
3
][
0
]),
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
/
2
,
1
,
1
);
//pdsch_vars
dump_dlsch2
(
PHY_vars_UE
,
eNB_id
,
coded_bits_per_codeword
,
round
,
PHY_vars_UE
->
dlsch_ue
[
0
][
1
]
->
current_harq_pid
);
//dump_dlsch2(PHY_vars_UE,eNB_id_i,coded_bits_per_codeword);
// write_output("dlsch_e.m","e",PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4);
//pdcch_vars
write_output
(
"pdcchF0_ext.m"
,
"pdcchF_ext"
,
PHY_vars_UE
->
lte_ue_pdcch_vars
[
eNB_id
]
->
rxdataF_ext
[
0
],
2
*
3
*
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
,
1
,
1
);
write_output
(
"pdcch00_ch0_ext.m"
,
"pdcch00_ch0_ext"
,
PHY_vars_UE
->
lte_ue_pdcch_vars
[
eNB_id
]
->
dl_ch_estimates_ext
[
0
],
300
*
3
,
1
,
1
);
write_output
(
"pdcch_rxF_comp0.m"
,
"pdcch0_rxF_comp0"
,
PHY_vars_UE
->
lte_ue_pdcch_vars
[
eNB_id
]
->
rxdataF_comp
[
0
],
4
*
300
,
1
,
1
);
write_output
(
"pdcch_rxF_llr.m"
,
"pdcch_llr"
,
PHY_vars_UE
->
lte_ue_pdcch_vars
[
eNB_id
]
->
llr
,
2400
,
1
,
4
);
}
}
}
}
}
...
...
@@ -3751,6 +3683,8 @@ n(tikz_fname,"w");
stop_meas
(
&
PHY_vars_UE
->
phy_proc_rx
);
if
(
n_frames
==
1
)
{
//rxsig
sprintf
(
fname
,
"rxsig0_r%d.m"
,
round
);
sprintf
(
vname
,
"rxs0_r%d"
,
round
);
write_output
(
fname
,
vname
,
&
PHY_vars_UE
->
lte_ue_common_vars
.
rxdata
[
0
][
0
],
10
*
PHY_vars_UE
->
lte_frame_parms
.
samples_per_tti
,
1
,
1
);
...
...
@@ -3765,6 +3699,22 @@ n(tikz_fname,"w");
sprintf
(
vname
,
"rxs1F_r%d"
,
round
);
write_output
(
fname
,
vname
,
PHY_vars_UE
->
lte_ue_common_vars
.
rxdataF
[
1
],
2
*
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
,
2
,
1
);
}
//channel
write_output
(
"chanF11.m"
,
"chF11"
,
eNB2UE
[
0
]
->
chF
[
0
],
12
*
NB_RB
,
1
,
8
);
write_output
(
"chan11.m"
,
"ch11"
,
eNB2UE
[
0
]
->
ch
[
0
],
eNB2UE
[
0
]
->
channel_length
,
1
,
8
);
if
(
PHY_vars_eNB
->
lte_frame_parms
.
nb_antennas_rx
==
2
&&
PHY_vars_eNB
->
lte_frame_parms
.
nb_antennas_tx
==
1
){
write_output
(
"chan21.m"
,
"ch21"
,
eNB2UE
[
0
]
->
ch
[
1
],
eNB2UE
[
0
]
->
channel_length
,
1
,
8
);
}
if
(
PHY_vars_eNB
->
lte_frame_parms
.
nb_antennas_tx
>
1
){
write_output
(
"chan12.m"
,
"ch12"
,
eNB2UE
[
0
]
->
ch
[
1
],
eNB2UE
[
0
]
->
channel_length
,
1
,
8
);
if
(
PHY_vars_eNB
->
lte_frame_parms
.
nb_antennas_rx
>
1
){
write_output
(
"chan21.m"
,
"ch21"
,
eNB2UE
[
0
]
->
ch
[
2
],
eNB2UE
[
0
]
->
channel_length
,
1
,
8
);
write_output
(
"chan22.m"
,
"ch22"
,
eNB2UE
[
0
]
->
ch
[
3
],
eNB2UE
[
0
]
->
channel_length
,
1
,
8
);
}
}
//channel estimates
sprintf
(
fname
,
"dlsch00_r%d.m"
,
round
);
sprintf
(
vname
,
"dl00_r%d"
,
round
);
write_output
(
fname
,
vname
,
...
...
@@ -3775,21 +3725,21 @@ n(tikz_fname,"w");
sprintf
(
vname
,
"dl01_r%d"
,
round
);
write_output
(
fname
,
vname
,
&
(
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
eNB_id
][
1
][
0
]),
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
/
2
,
1
,
1
);
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
,
1
,
1
);
}
if
(
PHY_vars_eNB
->
lte_frame_parms
.
nb_antennas_tx
>
1
)
{
sprintf
(
fname
,
"dlsch10_r%d.m"
,
round
);
sprintf
(
vname
,
"dl10_r%d"
,
round
);
write_output
(
fname
,
vname
,
&
(
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
eNB_id
][
2
][
0
]),
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
/
2
,
1
,
1
);
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
,
1
,
1
);
}
if
((
PHY_vars_UE
->
lte_frame_parms
.
nb_antennas_rx
>
1
)
&&
(
PHY_vars_eNB
->
lte_frame_parms
.
nb_antennas_tx
>
1
))
{
sprintf
(
fname
,
"dlsch11_r%d.m"
,
round
);
sprintf
(
vname
,
"dl11_r%d"
,
round
);
write_output
(
fname
,
vname
,
&
(
PHY_vars_UE
->
lte_ue_common_vars
.
dl_ch_estimates
[
eNB_id
][
3
][
0
]),
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
/
2
,
1
,
1
);
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
*
nsymb
,
1
,
1
);
}
//pdsch_vars
dump_dlsch2
(
PHY_vars_UE
,
eNB_id
,
coded_bits_per_codeword
,
round
,
PHY_vars_UE
->
dlsch_ue
[
0
][
0
]
->
current_harq_pid
);
...
...
@@ -3799,6 +3749,14 @@ n(tikz_fname,"w");
write_output("dlsch_eNB_w.m","w",PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->w[0],3*(tbs+64),1,4);
write_output("dlsch_UE_w.m","w",PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->w[0],3*(tbs+64),1,0);
*/
//pdcch_vars
write_output
(
"pdcchF0_ext.m"
,
"pdcchF_ext"
,
PHY_vars_UE
->
lte_ue_pdcch_vars
[
eNB_id
]
->
rxdataF_ext
[
0
],
2
*
3
*
PHY_vars_UE
->
lte_frame_parms
.
ofdm_symbol_size
,
1
,
1
);
write_output
(
"pdcch00_ch0_ext.m"
,
"pdcch00_ch0_ext"
,
PHY_vars_UE
->
lte_ue_pdcch_vars
[
eNB_id
]
->
dl_ch_estimates_ext
[
0
],
300
*
3
,
1
,
1
);
write_output
(
"pdcch_rxF_comp0.m"
,
"pdcch0_rxF_comp0"
,
PHY_vars_UE
->
lte_ue_pdcch_vars
[
eNB_id
]
->
rxdataF_comp
[
0
],
4
*
300
,
1
,
1
);
write_output
(
"pdcch_rxF_llr.m"
,
"pdcch_llr"
,
PHY_vars_UE
->
lte_ue_pdcch_vars
[
eNB_id
]
->
llr
,
2400
,
1
,
4
);
if
(
round
==
3
)
exit
(
-
1
);
}
...
...
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