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
canghaiwuhen
OpenXG-RAN
Commits
4eb78faa
Commit
4eb78faa
authored
5 years ago
by
Sakthivel Velumani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added harq stats in dlsim
parent
fd50f1b5
develop
1
128-ues
256_QAM_demod
NCTU_OpinConnect_LDPC
NR-PHY-MAC-IF-multi-UE
NR_10MHz
NR_CSI_reporting
NR_DCI_01
NR_DL_sched_fixes
NR_DL_scheduler
NR_FAPI_beamindex_SSB_RO
NR_FR2_RA
NR_FR2_RRC_SSB
NR_MAC_Multi_Rach_GlobalEdge
NR_MAC_SSB_RO_GlobalEdge
NR_MAC_SSB_RO_UE_IDCC
NR_MAC_SSB_RO_merge
NR_MAC_TCI_UCI_GlobalEdge
NR_NGAP
NR_PUCCH_MultiUE
NR_RA_updates
NR_RRCConfiguration_FR2
NR_RRC_PDCP
NR_RRC_config_simplified
NR_RRC_harq_b
NR_SA_NGAP_RRC
NR_SA_NGAP_RRC_wk42
NR_SA_itti_sim_wk48
NR_SRB_Config
NR_UE_MAC_scheduler
NR_UE_RA_fixes
NR_UE_UL_DCI_improvements
NR_UE_enable_parallelization
NR_UE_stability_fixes
NR_UL_FAPI_programming
NR_UL_scheduler
NR_UL_scheduler_rebased
NR_UL_scheduling
NR_ipaccess_testing
NR_mac_uci_functions_rework
NR_msg2_phytest
NR_scheduling_CSIRS
NR_scheduling_request
NR_ue_dlsch_dmrs_cdm
PUSCH_TA_update
RA_CI_test
UE_DL_DCI_hotfix
bch-fixes-bitmap
benetel_5g_prach_fix
benetel_phase_rotation
benetel_phase_rotation_old
bugfix-nr-bands
bugfix-nr-ldpc-post-processing
bugfix-nr-ldpc-size-typo
bugfix-nr-pdcp-sn-size
bugfix-nr-rate-matching-assertion
cce_indexing_fix
cce_indexing_fix2
ci-deploy-docker-compose
ci-ul-iperf-from-trf-container
cleanup_softmodem_main
constant_power
develop-oriecpriupdates
develop-sib1
dfts_alternatives
dlsch-all-dlslots
dlsch_encode_mthread
dlsch_parallel
dongzhanyi-zte-develop
dongzhanyi-zte-develop2
feature/make-s1-mme-port-configurable
feature/make-s1-mme-port-configurable-with-astyle-fixes
fembms-enb-ue
finalize-oaicn-integration
firas
fix-ci-tun
fix-itti-segv
fix-softmodem-restart
fix_do_ra_data
fix_pdsch_low_prb
fix_rfsim_mimo
fix_rrc_x2_ticking
fixes-mac-sched-nfapi
fixes-mac-sched-tun
fixes-tun
flexran-apps
flexran-repair-mme-mgmt
fujitsu_lte_contribution
fujitsu_lte_contribution-128
harq-hotfix
hotfix-minor-remove-nr-rlc-cppcheck-error
hotfix-nr-rlc-tick
hotfix-ocp-executable
improve_nr_modulation
improve_ue_stability
integration_2020_wk40
integration_2020_wk41
integration_2020_wk42_2
integration_2020_wk45
integration_2020_wk45_2
integration_2020_wk46
integration_2020_wk46_2
integration_2020_wk47
integration_2020_wk48
integration_2020_wk48_2
integration_2020_wk49
integration_2020_wk50
integration_2020_wk50_1
inter-RRU-final
ldpc-decoder-codegen
ldpc-decoder-codegen2
ldpc_short_codeword_fixes
load_gnb
lte_uplink_improvement
mac-fixes-wk45_2
mosaic5g-oai-ran
mosaic5g-oai-sim
nfapi_nr_develop
ngap-dlul
ngap-support
ngap-w48-merge2
ngap-wf
ngap-wf-1120
ngap-wf-1120-srb
ngap-wf-1120-srb-gtp
ngap-wf-1120-srb-gtp-hs
ngap-wf-1120-srb-gtp-hs1
ngap-wf-1120-srb-gtp-hs2
ngap-wf-1203-yunsdr
ngap-wf-liuyu
ngap_lfq_1120
ngap_merge
noCore
nr-mac-pdu-wireshark
nr-mac-remove-ue-list
nr-rlc-am-bugfix-w44
nr-rlc-bugfix-w44
nrUE
nrUE-hs
nrUE-upper-layer
nr_bsr
nr_dl_dmrs_type2
nr_dl_pf
nr_dl_pf2
nr_dl_ul_ptrs
nr_fdd_if_fix
nr_prach_fr2
nr_ue_msg3
nr_ue_tti_cleanup
nrue_msg2_reception
nsa-ue
nsa_remove_band_hardcodings
oai-sim
oc-docker-october-improvements
openxg/develop
ptrs_rrc_config
pusch-mthread-scaling-fix
ra-dl-ul
remove_nos1_hack_pdcp
remove_x2_gnb_hardcoding
repair-TA
revert_memcpy
rh_ci_fix_autoterminate
rh_ci_fr1_update
rh_ci_oc
rh_ci_py
rh_ci_rfsim_ra
rh_fr1_newjenkins
rh_fr1_update
rh_gnb_compile_fix
rh_wk50_debug
rlc-v2-bugfix-status-reporting
rlc-v2-tick
rrc-enb-phy-testmode
s1_subnormal
s1ap-bugfix-rab_setup
small-bugfixes-w40
smallcleanup
testing_2symb_pdcch
testing_with_external_txdata
ue-csi
ul_dl_dci_same_slot
ul_harq
ulsch_decode_mthread
ulsim_changes
x2-endc-processing
yihongzheng_srb
zzs
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
10 deletions
+23
-10
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+23
-10
No files found.
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
4eb78faa
...
...
@@ -139,6 +139,9 @@ int main(int argc, char **argv)
int
i
,
aa
;
//,l;
double
sigma2
,
sigma2_dB
=
10
,
SNR
,
snr0
=-
2
.
0
,
snr1
=
2
.
0
;
uint8_t
snr1set
=
0
;
float
roundStats
[
50
];
float
psnr
;
uint8_t
snrRun
;
int
**
txdata
;
double
**
s_re
,
**
s_im
,
**
r_re
,
**
r_im
;
//double iqim = 0.0;
...
...
@@ -682,6 +685,7 @@ int main(int argc, char **argv)
nr_ue_phy_config_request
(
&
UE_mac
->
phy_config
);
NR_UE_list_t
*
UE_list
=
&
RC
.
nrmac
[
0
]
->
UE_list
;
NR_COMMON_channels_t
*
cc
=
RC
.
nrmac
[
0
]
->
common_channels
;
snrRun
=
0
;
for
(
SNR
=
snr0
;
SNR
<
snr1
;
SNR
+=
.
2
)
{
...
...
@@ -726,6 +730,8 @@ int main(int argc, char **argv)
UE_harq_process
->
harq_ack
.
ack
=
0
;
round
=
0
;
UE_harq_process
->
round
=
round
;
UE_harq_process
->
first_tx
=
1
;
while
((
round
<
num_rounds
)
&&
(
UE_harq_process
->
harq_ack
.
ack
==
0
))
{
memset
(
RC
.
nrmac
[
0
]
->
cce_list
[
1
][
0
],
0
,
MAX_NUM_CCE
*
sizeof
(
int
));
...
...
@@ -827,11 +833,7 @@ int main(int argc, char **argv)
do_pdcch_flag
,
normal_txrx
);
if
(
UE
->
dlsch
[
UE
->
current_thread_id
[
slot
]][
0
][
0
]
->
last_iteration_cnt
>=
UE
->
dlsch
[
UE
->
current_thread_id
[
slot
]][
0
][
0
]
->
max_ldpc_iterations
+
1
)
n_errors
++
;
printf
(
"dlsim round %d ends
\n
"
,
round
);
//printf("dlsim round %d ends\n",round);
round
++
;
}
// round
...
...
@@ -839,12 +841,13 @@ int main(int argc, char **argv)
//---------------------- count errors ----------------------
//----------------------------------------------------------
if
(
UE
->
dlsch
[
UE
->
current_thread_id
[
slot
]][
0
][
0
]
->
last_iteration_cnt
>=
UE
->
dlsch
[
UE
->
current_thread_id
[
slot
]][
0
][
0
]
->
max_ldpc_iterations
+
1
)
n_errors
++
;
NR_UE_PDSCH
**
pdsch_vars
=
UE
->
pdsch_vars
[
UE
->
current_thread_id
[
UE_proc
.
nr_tti_rx
]];
int16_t
*
UE_llr
=
pdsch_vars
[
0
]
->
llr
[
0
];
uint32_t
TBS
=
rel15
->
TBSize
[
0
];
uint16_t
length_dmrs
=
1
;
uint16_t
nb_rb
=
rel15
->
rbSize
;
...
...
@@ -892,15 +895,16 @@ int main(int argc, char **argv)
if
(
n_trials
==
1
)
printf
(
"errors_bit = %u (trial %d)
\n
"
,
errors_bit
,
trial
);
}
roundStats
[
snrRun
]
+=
((
float
)
round
);
}
// noise trials
roundStats
[
snrRun
]
/=
((
float
)
n_trials
);
printf
(
"*****************************************
\n
"
);
printf
(
"SNR %f, (false positive %f)
\n
"
,
SNR
,
(
float
)
n_errors
/
(
float
)
n_trials
);
printf
(
"*****************************************
\n
"
);
printf
(
"
\n
"
);
printf
(
"SNR %f : n_errors (negative CRC) = %d/%d,
Channel BER %e
\n
"
,
SNR
,
n_errors
,
n_trials
,(
double
)
errors_scrambling
/
available_bits
/
n_trials
);
printf
(
"SNR %f : n_errors (negative CRC) = %d/%d,
Avg round %.2f, Channel BER %e
\n
"
,
SNR
,
n_errors
,
n_trials
,
roundStats
[
snrRun
]
,(
double
)
errors_scrambling
/
available_bits
/
n_trials
);
printf
(
"
\n
"
);
if
(
n_trials
==
1
)
{
...
...
@@ -910,7 +914,6 @@ int main(int argc, char **argv)
LOG_M
(
"rxsig1.m"
,
"rxs1"
,
UE
->
common_vars
.
rxdata
[
1
],
frame_length_complex_samples
,
1
,
1
);
LOG_M
(
"chestF0.m"
,
"chF0"
,
UE
->
pdsch_vars
[
0
][
0
]
->
dl_ch_estimates_ext
,
N_RB_DL
*
12
*
14
,
1
,
1
);
write_output
(
"rxF_comp.m"
,
"rxFc"
,
&
UE
->
pdsch_vars
[
0
][
0
]
->
rxdataF_comp0
[
0
][
0
],
N_RB_DL
*
12
*
14
,
1
,
1
);
break
;
}
if
((
float
)
n_errors
/
(
float
)
n_trials
<=
target_error_rate
)
{
...
...
@@ -969,8 +972,18 @@ int main(int argc, char **argv)
printStatIndent2(&UE->dlsch_tc_intl2_stats,"intl2+HardDecode+CRC");
*/
}
snrRun
++
;
}
// NSR
if
(
n_trials
>
1
)
{
printf
(
"HARQ stats:
\n
SNR
\t
Rounds
\n
"
);
psnr
=
snr0
;
for
(
uint8_t
i
=
0
;
i
<
snrRun
;
i
++
)
{
printf
(
"%.1f
\t
%.2f
\n
"
,
psnr
,
roundStats
[
i
]);
psnr
+=
0
.
2
;
}
}
for
(
i
=
0
;
i
<
2
;
i
++
)
{
free
(
s_re
[
i
]);
free
(
s_im
[
i
]);
...
...
This diff is collapsed.
Click to expand it.
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