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
wangwenhui
OpenXG-RAN
Commits
5f3cc30c
Commit
5f3cc30c
authored
Jun 16, 2017
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Introducing individual error counts for 2 CWs.
parent
72a69a94
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
171 additions
and
231 deletions
+171
-231
openair1/SIMULATION/LTE_PHY/dlsim.c
openair1/SIMULATION/LTE_PHY/dlsim.c
+171
-231
No files found.
openair1/SIMULATION/LTE_PHY/dlsim.c
View file @
5f3cc30c
...
...
@@ -1304,7 +1304,7 @@ int main(int argc, char **argv)
unsigned
int
ret
;
unsigned
int
coded_bits_per_codeword
=
0
,
nsymb
;
//,tbs=0;
unsigned
int
tx_lev
=
0
,
tx_lev_dB
=
0
,
trials
,
errs
[
4
]
=
{
0
,
0
,
0
,
0
},
errs2
[
4
]
=
{
0
,
0
,
0
,
0
},
round_trials
[
4
]
=
{
0
,
0
,
0
,
0
},
dci_errors
[
4
]
=
{
0
,
0
,
0
,
0
};
//,num_layers;
unsigned
int
tx_lev
=
0
,
tx_lev_dB
=
0
,
trials
,
errs
[
2
][
4
]
=
{{
0
,
0
,
0
,
0
},{
0
,
0
,
0
,
0
}
},
round_trials
[
4
]
=
{
0
,
0
,
0
,
0
},
dci_errors
[
4
]
=
{
0
,
0
,
0
,
0
};
//,num_layers;
//int re_allocated;
char
fname
[
32
],
vname
[
32
];
FILE
*
bler_fd
;
...
...
@@ -1375,7 +1375,7 @@ int main(int argc, char **argv)
double
effective_rate
=
0
.
0
;
char
channel_model_input
[
10
]
=
"I"
;
int
TB0_active
=
1
;
int
TB0_active
=
1
,
TB1_active
=
0
;
uint32_t
perfect_ce
=
0
;
// LTE_DL_UE_HARQ_t *dlsch0_ue_harq;
...
...
@@ -2290,14 +2290,14 @@ int main(int argc, char **argv)
for
(
SNR
=
snr0
;
SNR
<
snr1
;
SNR
+=
snr_step
)
{
UE
->
proc
.
proc_rxtx
[
subframe
&
1
].
frame_rx
=
0
;
errs
[
0
]
=
0
;
errs
[
1
]
=
0
;
errs
[
2
]
=
0
;
errs
[
3
]
=
0
;
errs
2
[
0
]
=
0
;
errs
2
[
1
]
=
0
;
errs
2
[
2
]
=
0
;
errs
2
[
3
]
=
0
;
errs
[
0
]
[
0
]
=
0
;
errs
[
0
][
1
]
=
0
;
errs
[
0
][
2
]
=
0
;
errs
[
0
][
3
]
=
0
;
errs
[
1
]
[
0
]
=
0
;
errs
[
1
]
[
1
]
=
0
;
errs
[
1
]
[
2
]
=
0
;
errs
[
1
]
[
3
]
=
0
;
round_trials
[
0
]
=
0
;
round_trials
[
1
]
=
0
;
round_trials
[
2
]
=
0
;
...
...
@@ -2365,12 +2365,17 @@ int main(int argc, char **argv)
fflush
(
stdout
);
round
=
0
;
//if (trials%100==0)
TB0_active
=
1
;
if
((
transmission_mode
==
3
)
||
(
transmission_mode
==
4
))
TB1_active
=
1
;
else
TB1_active
=
0
;
eNB2UE
[
0
]
->
first_run
=
1
;
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
harq_ack
[
subframe
].
ack
=
0
;
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
1
]
->
harq_ack
[
subframe
].
ack
=
0
;
while
(
(
round
<
num_rounds
)
&&
(
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
harq_ack
[
subframe
].
ack
==
0
)
)
{
while
(
round
<
num_rounds
)
{
// printf("Trial %d, round %d\n",trials,round);
round_trials
[
round
]
++
;
...
...
@@ -2406,16 +2411,12 @@ int main(int argc, char **argv)
num_ue_spec_dci
=
0
;
if
(
round
==
0
)
{
// First round
TB0_active
=
1
;
eNB
->
dlsch
[
0
][
0
]
->
harq_processes
[
0
]
->
rvidx
=
round
&
3
;
fill_DCI
(
eNB
,
&
dci_alloc
[
0
],
subframe
,
n_rnti
,
n_users
,
transmission_mode
,
common_flag
,
DLSCH_RB_ALLOC
,
TPC
,
mcs1
,
mcs2
,
!
(
trials
&
1
),
round
&
3
,
&
num_common_dci
,
&
num_ue_spec_dci
,
&
num_dci
);
}
else
{
fill_DCI
(
eNB
,
&
dci_alloc
[
0
],
subframe
,
n_rnti
,
n_users
,
transmission_mode
,
common_flag
,
DLSCH_RB_ALLOC
,
TPC
,
(
TB0_active
==
1
)
?
mcs1
:
0
,
mcs2
,
!
(
trials
&
1
),(
TB
0
_active
==
1
)
?
round
&
3
:
0
,
&
num_common_dci
,
&
num_ue_spec_dci
,
&
num_dci
);
(
TB0_active
==
1
)
?
mcs1
:
0
,
mcs2
,
!
(
trials
&
1
),(
TB
1
_active
==
1
)
?
round
&
3
:
0
,
&
num_common_dci
,
&
num_ue_spec_dci
,
&
num_dci
);
}
for
(
i
=
num_common_dci
;
i
<
num_dci
;
i
++
)
{
...
...
@@ -2666,28 +2667,27 @@ int main(int argc, char **argv)
if
(
TB0_active
)
{
if
(
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
harq_ack
[
subframe
].
ack
==
1
)
{
avg_iter
+=
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
last_iteration_cnt
;
iter_trials
++
;
if
(
n_frames
==
1
)
printf
(
"No DLSCH errors found (round %d),
uncoded ber %f
\n
"
,
round
,
uncoded_ber
);
printf
(
"No DLSCH errors found on CW 0 (round %d),
uncoded ber %f
\n
"
,
round
,
uncoded_ber
);
UE
->
total_TBS
[
eNB_id
]
=
UE
->
total_TBS
[
eNB_id
]
+
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
current_harq_pid
]
->
TBS
;
TB0_active
=
0
;
UE
->
total_TBS
[
eNB_id
]
=
UE
->
total_TBS
[
eNB_id
]
+
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
current_harq_pid
]
->
TBS
;
TB0_active
=
0
;
}
// DLSCH received ok
}
// DLSCH
CW 0
received ok
else
{
errs
[
round
]
++
;
avg_iter
+=
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
last_iteration_cnt
-
1
;
iter_trials
++
;
errs
[
0
][
round
]
++
;
if
(
n_frames
==
1
)
{
//if ((n_frames==1) || (SNR>=30)) {
printf
(
"DLSCH errors found (round %d), uncoded ber %f
\n
"
,
round
,
uncoded_ber
);
printf
(
"DLSCH errors found on CW 0 (round %d), uncoded ber %f
\n
"
,
round
,
uncoded_ber
);
for
(
s
=
0
;
s
<
UE
->
dlsch
[
subframe
&
0x1
][
0
][
0
]
->
harq_processes
[
0
]
->
C
;
s
++
)
{
if
(
s
<
UE
->
dlsch
[
subframe
&
0x1
][
0
][
0
]
->
harq_processes
[
0
]
->
Cminus
)
...
...
@@ -2767,11 +2767,34 @@ int main(int argc, char **argv)
if
(
round
==
3
)
exit
(
-
1
);
}
}
}
// printf("round %d errors %d/%d\n",round,errs[round],trials);
if
(
TB1_active
)
{
if
(
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
1
]
->
harq_ack
[
subframe
].
ack
==
1
)
{
if
(
n_frames
==
1
)
printf
(
"No DLSCH errors found on CW 1 (round %d), uncoded ber %f
\n
"
,
round
,
uncoded_ber
);
UE
->
total_TBS
[
eNB_id
]
=
UE
->
total_TBS
[
eNB_id
]
+
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
1
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
1
]
->
current_harq_pid
]
->
TBS
;
TB1_active
=
0
;
}
//DLSCH CW 1 received ok
else
{
errs
[
1
][
round
]
++
;
if
(
n_frames
==
1
)
printf
(
"DLSCH errors found on CW 1 (round %d), uncoded ber %f
\n
"
,
round
,
uncoded_ber
);
}
}
if
(
TB0_active
||
TB1_active
)
{
iter_trials
++
;
round
++
;
// UE->dlsch[subframe&0x1][0][0]->harq_processes[0]->round++;
}
else
{
break
;
}
if
(
xforms
==
1
)
{
...
...
@@ -2785,9 +2808,9 @@ int main(int argc, char **argv)
UE
->
proc
.
proc_rxtx
[
subframe
&
1
].
frame_rx
++
;
}
//round
// printf("\n"
);
//printf("trial %d of %d (iter_trials %d, TB0_active %d, TB1_active %d)\n",trials,n_frames,iter_trials,TB0_active, TB1_active
);
if
((
errs
[
0
]
>=
n_frames
/
10
)
&&
(
trials
>
(
n_frames
/
2
)))
if
((
errs
[
0
]
[
0
]
>=
n_frames
/
10
)
&&
(
trials
>
(
n_frames
/
2
)))
break
;
//len = chbch_stats_read(stats_buffer,NULL,0,4096);
...
...
@@ -2935,26 +2958,29 @@ int main(int argc, char **argv)
double
std_phy_proc_rx_demod
=
0
;
double
std_phy_proc_rx_dec
=
0
;
effective_rate
=
1
.
0
-
((
double
)(
errs
[
0
]
+
errs
[
1
]
+
errs
[
2
]
+
errs
[
3
])
/
((
double
)
round_trials
[
0
]
+
round_trials
[
1
]
+
round_trials
[
2
]
+
round_trials
[
3
]));
effective_rate
=
1
.
0
-
((
double
)(
errs
[
0
]
[
0
]
+
errs
[
0
][
1
]
+
errs
[
0
][
2
]
+
errs
[
0
]
[
3
])
/
((
double
)
round_trials
[
0
]
+
round_trials
[
1
]
+
round_trials
[
2
]
+
round_trials
[
3
]));
printf
(
"
\n
**********************SNR = %f dB (tx_lev %f)**************************
\n
"
,
SNR
,
(
double
)
tx_lev_dB
+
10
*
log10
(
UE
->
frame_parms
.
ofdm_symbol_size
/
(
NB_RB
*
12
)));
printf
(
"Errors (%d(%d)/%d %d
/%d %d/%d %d
/%d), Pe = (%e,%e,%e,%e), dci_errors %d/%d, Pe = %e => effective rate %f, normalized delay %f (%f)
\n
"
,
errs
[
0
],
errs
2
[
0
],
printf
(
"Errors (%d(%d)/%d %d
(%d)/%d %d(%d)/%d %d(%d)
/%d), Pe = (%e,%e,%e,%e), dci_errors %d/%d, Pe = %e => effective rate %f, normalized delay %f (%f)
\n
"
,
errs
[
0
]
[
0
]
,
errs
[
1
]
[
0
],
round_trials
[
0
],
errs
[
1
],
errs
[
0
][
1
],
errs
[
1
][
1
],
round_trials
[
1
],
errs
[
2
],
errs
[
0
][
2
],
errs
[
1
][
2
],
round_trials
[
2
],
errs
[
3
],
errs
[
0
][
3
],
errs
[
1
][
3
],
round_trials
[
3
],
(
double
)
errs
[
0
]
/
(
round_trials
[
0
]),
(
double
)
errs
[
1
]
/
(
round_trials
[
1
]),
(
double
)
errs
[
2
]
/
(
round_trials
[
2
]),
(
double
)
errs
[
3
]
/
(
round_trials
[
3
]),
(
double
)
errs
[
0
]
[
0
]
/
(
round_trials
[
0
]),
(
double
)
errs
[
0
][
1
]
/
(
round_trials
[
1
]),
(
double
)
errs
[
0
][
2
]
/
(
round_trials
[
2
]),
(
double
)
errs
[
0
][
3
]
/
(
round_trials
[
3
]),
dci_errors
[
0
]
+
dci_errors
[
1
]
+
dci_errors
[
2
]
+
dci_errors
[
3
],
round_trials
[
0
]
+
round_trials
[
1
]
+
round_trials
[
2
]
+
round_trials
[
3
],
(
double
)(
dci_errors
[
0
]
+
dci_errors
[
1
]
+
dci_errors
[
2
]
+
dci_errors
[
3
])
/
(
round_trials
[
0
]
+
round_trials
[
1
]
+
round_trials
[
2
]
+
round_trials
[
3
]),
...
...
@@ -2962,9 +2988,9 @@ int main(int argc, char **argv)
100
*
effective_rate
,
//rate,
//rate*get_Qm(UE->dlsch[subframe&0x1][0][0]->harq_processes[UE->dlsch[subframe&0x1][0][0]->current_harq_pid]->mcs),
(
1
.
0
*
(
round_trials
[
0
]
-
errs
[
0
]
)
+
2
.
0
*
(
round_trials
[
1
]
-
errs
[
1
])
+
3
.
0
*
(
round_trials
[
2
]
-
errs
[
2
])
+
4
.
0
*
(
round_trials
[
3
]
-
errs
[
3
]))
/
((
double
)
round_trials
[
0
])
/
(
1
.
0
*
(
round_trials
[
0
]
-
errs
[
0
]
[
0
])
+
2
.
0
*
(
round_trials
[
1
]
-
errs
[
0
][
1
])
+
3
.
0
*
(
round_trials
[
2
]
-
errs
[
0
][
2
])
+
4
.
0
*
(
round_trials
[
3
]
-
errs
[
0
]
[
3
]))
/
((
double
)
round_trials
[
0
])
/
(
double
)
eNB
->
dlsch
[
0
][
0
]
->
harq_processes
[
0
]
->
TBS
,
(
1
.
0
*
(
round_trials
[
0
]
-
errs
[
0
]
)
+
2
.
0
*
(
round_trials
[
1
]
-
errs
[
1
])
+
3
.
0
*
(
round_trials
[
2
]
-
errs
[
2
])
+
4
.
0
*
(
round_trials
[
3
]
-
errs
[
3
]))
/
((
double
)
round_trials
[
0
]));
(
1
.
0
*
(
round_trials
[
0
]
-
errs
[
0
]
[
0
])
+
2
.
0
*
(
round_trials
[
1
]
-
errs
[
0
][
1
])
+
3
.
0
*
(
round_trials
[
2
]
-
errs
[
0
][
2
])
+
4
.
0
*
(
round_trials
[
3
]
-
errs
[
0
]
[
3
]))
/
((
double
)
round_trials
[
0
]));
if
(
print_perf
==
1
)
{
printf
(
"eNB TX function statistics (per 1ms subframe)
\n\n
"
);
...
...
@@ -3076,41 +3102,45 @@ int main(int argc, char **argv)
mcs1
,
eNB
->
dlsch
[
0
][
0
]
->
harq_processes
[
0
]
->
TBS
,
rate
,
errs
[
0
],
errs
[
0
]
[
0
]
,
round_trials
[
0
],
errs
[
1
],
errs
[
0
][
1
],
round_trials
[
1
],
errs
[
2
],
errs
[
0
][
2
],
round_trials
[
2
],
errs
[
3
],
errs
[
0
][
3
],
round_trials
[
3
],
dci_errors
[
0
]);
}
else
{
fprintf
(
bler_fd
,
"%f;%d;%d;%d;%d;%f;%d;%d;%d;%d;%d;%d;%d;%d;%d
\n
"
,
fprintf
(
bler_fd
,
"%f;%d;%d;%d;%d;%f;%d;%d;%d;%d;%d;%d;%d;%d;%d
;%d;%d;%d;%d
\n
"
,
SNR
,
mcs1
,
mcs2
,
eNB
->
dlsch
[
0
][
0
]
->
harq_processes
[
0
]
->
TBS
,
eNB
->
dlsch
[
0
][
1
]
->
harq_processes
[
0
]
->
TBS
,
rate
,
errs
[
0
],
errs
[
0
][
0
],
errs
[
0
][
1
],
round_trials
[
0
],
errs
[
1
],
errs
[
0
][
1
],
errs
[
1
][
1
],
round_trials
[
1
],
errs
[
2
],
errs
[
0
][
2
],
errs
[
1
][
2
],
round_trials
[
2
],
errs
[
3
],
errs
[
0
][
3
],
errs
[
1
][
3
],
round_trials
[
3
],
dci_errors
[
0
]);
}
if
(
abstx
)
{
//ABSTRACTION
blerr
[
0
]
=
(
double
)
errs
[
0
]
/
(
round_trials
[
0
]);
blerr
[
0
]
=
(
double
)
errs
[
0
]
[
0
]
/
(
round_trials
[
0
]);
if
(
num_rounds
>
1
)
{
blerr
[
1
]
=
(
double
)
errs
[
1
]
/
(
round_trials
[
1
]);
blerr
[
2
]
=
(
double
)
errs
[
2
]
/
(
round_trials
[
2
]);
blerr
[
3
]
=
(
double
)
errs
[
3
]
/
(
round_trials
[
3
]);
blerr
[
1
]
=
(
double
)
errs
[
0
][
1
]
/
(
round_trials
[
1
]);
blerr
[
2
]
=
(
double
)
errs
[
0
][
2
]
/
(
round_trials
[
2
]);
blerr
[
3
]
=
(
double
)
errs
[
0
][
3
]
/
(
round_trials
[
3
]);
fprintf
(
csv_fd
,
"%e,%e,%e,%e;
\n
"
,
blerr
[
0
],
blerr
[
1
],
blerr
[
2
],
blerr
[
3
]);
}
else
{
fprintf
(
csv_fd
,
"%e;
\n
"
,
blerr
[
0
]);
...
...
@@ -3118,96 +3148,6 @@ int main(int argc, char **argv)
}
//ABStraction
if
(
(
test_perf
!=
0
)
&&
(
100
*
effective_rate
>
test_perf
))
{
//fprintf(time_meas_fd,"SNR; MCS; TBS; rate; err0; trials0; err1; trials1; err2; trials2; err3; trials3; dci_err\n");
if
((
transmission_mode
!=
3
)
&&
(
transmission_mode
!=
4
))
{
fprintf
(
time_meas_fd
,
"%f;%d;%d;%f;%d;%d;%d;%d;%d;%d;%d;%d;%d;"
,
SNR
,
mcs1
,
eNB
->
dlsch
[
0
][
0
]
->
harq_processes
[
0
]
->
TBS
,
rate
,
errs
[
0
],
round_trials
[
0
],
errs
[
1
],
round_trials
[
1
],
errs
[
2
],
round_trials
[
2
],
errs
[
3
],
round_trials
[
3
],
dci_errors
[
0
]);
//fprintf(time_meas_fd,"SNR; MCS; TBS; rate; DL_DECOD_ITER; err0; trials0; err1; trials1; err2; trials2; err3; trials3; PE; dci_err;PE;ND;\n");
fprintf
(
time_meas_fd
,
"%f;%d;%d;%f; %2.1f%%;%f;%f;%d;%d;%d;%d;%d;%d;%d;%d;%e;%e;%e;%e;%d;%d;%e;%f;%f;"
,
SNR
,
mcs1
,
eNB
->
dlsch
[
0
][
0
]
->
harq_processes
[
0
]
->
TBS
,
rate
*
effective_rate
,
100
*
effective_rate
,
rate
,
(
double
)
avg_iter
/
iter_trials
,
errs
[
0
],
round_trials
[
0
],
errs
[
1
],
round_trials
[
1
],
errs
[
2
],
round_trials
[
2
],
errs
[
3
],
round_trials
[
3
],
(
double
)
errs
[
0
]
/
(
round_trials
[
0
]),
(
double
)
errs
[
1
]
/
(
round_trials
[
0
]),
(
double
)
errs
[
2
]
/
(
round_trials
[
0
]),
(
double
)
errs
[
3
]
/
(
round_trials
[
0
]),
dci_errors
[
0
],
round_trials
[
0
],
(
double
)
dci_errors
[
0
]
/
(
round_trials
[
0
]),
(
1
.
0
*
(
round_trials
[
0
]
-
errs
[
0
])
+
2
.
0
*
(
round_trials
[
1
]
-
errs
[
1
])
+
3
.
0
*
(
round_trials
[
2
]
-
errs
[
2
])
+
4
.
0
*
(
round_trials
[
3
]
-
errs
[
3
]))
/
((
double
)
round_trials
[
0
])
/
(
double
)
eNB
->
dlsch
[
0
][
0
]
->
harq_processes
[
0
]
->
TBS
,
(
1
.
0
*
(
round_trials
[
0
]
-
errs
[
0
])
+
2
.
0
*
(
round_trials
[
1
]
-
errs
[
1
])
+
3
.
0
*
(
round_trials
[
2
]
-
errs
[
2
])
+
4
.
0
*
(
round_trials
[
3
]
-
errs
[
3
]))
/
((
double
)
round_trials
[
0
]));
}
else
{
fprintf
(
time_meas_fd
,
"%f;%d;%d;%d;%d;%f;%d;%d;%d;%d;%d;%d;%d;%d;%d;"
,
SNR
,
mcs1
,
mcs2
,
eNB
->
dlsch
[
0
][
0
]
->
harq_processes
[
0
]
->
TBS
,
eNB
->
dlsch
[
0
][
1
]
->
harq_processes
[
0
]
->
TBS
,
rate
,
errs
[
0
],
round_trials
[
0
],
errs
[
1
],
round_trials
[
1
],
errs
[
2
],
round_trials
[
2
],
errs
[
3
],
round_trials
[
3
],
dci_errors
[
0
]);
//fprintf(time_meas_fd,"SNR; MCS; TBS; rate; DL_DECOD_ITER; err0; trials0; err1; trials1; err2; trials2; err3; trials3; PE; dci_err;PE;ND;\n");
fprintf
(
time_meas_fd
,
"%f;%d;%d;%d;%d;%f;%2.1f;%f;%f;%d;%d;%d;%d;%d;%d;%d;%d;%e;%e;%e;%e;%d;%d;%e;%f;%f;"
,
SNR
,
mcs1
,
mcs2
,
eNB
->
dlsch
[
0
][
0
]
->
harq_processes
[
0
]
->
TBS
,
eNB
->
dlsch
[
0
][
1
]
->
harq_processes
[
0
]
->
TBS
,
rate
*
effective_rate
,
100
*
effective_rate
,
rate
,
(
double
)
avg_iter
/
iter_trials
,
errs
[
0
],
round_trials
[
0
],
errs
[
1
],
round_trials
[
1
],
errs
[
2
],
round_trials
[
2
],
errs
[
3
],
round_trials
[
3
],
(
double
)
errs
[
0
]
/
(
round_trials
[
0
]),
(
double
)
errs
[
1
]
/
(
round_trials
[
0
]),
(
double
)
errs
[
2
]
/
(
round_trials
[
0
]),
(
double
)
errs
[
3
]
/
(
round_trials
[
0
]),
dci_errors
[
0
],
round_trials
[
0
],
(
double
)
dci_errors
[
0
]
/
(
round_trials
[
0
]),
(
1
.
0
*
(
round_trials
[
0
]
-
errs
[
0
])
+
2
.
0
*
(
round_trials
[
1
]
-
errs
[
1
])
+
3
.
0
*
(
round_trials
[
2
]
-
errs
[
2
])
+
4
.
0
*
(
round_trials
[
3
]
-
errs
[
3
]))
/
((
double
)
round_trials
[
0
])
/
(
double
)
eNB
->
dlsch
[
0
][
0
]
->
harq_processes
[
0
]
->
TBS
,
(
1
.
0
*
(
round_trials
[
0
]
-
errs
[
0
])
+
2
.
0
*
(
round_trials
[
1
]
-
errs
[
1
])
+
3
.
0
*
(
round_trials
[
2
]
-
errs
[
2
])
+
4
.
0
*
(
round_trials
[
3
]
-
errs
[
3
]))
/
((
double
)
round_trials
[
0
]));
}
//fprintf(time_meas_fd,"eNB_PROC_TX(%d); OFDM_MOD(%d); DL_MOD(%d); DL_SCR(%d); DL_ENC(%d); UE_PROC_RX(%d); OFDM_DEMOD_CH_EST(%d); RX_PDCCH(%d); CH_COMP_LLR(%d); DL_USCR(%d); DL_DECOD(%d);\n",
fprintf
(
time_meas_fd
,
"%d; %d; %d; %d; %d; %d; %d; %d; %d; %d; %d;"
,
...
...
@@ -3284,7 +3224,7 @@ int main(int argc, char **argv)
test_passed
=
0
;
}
if
(((
double
)
errs
[
0
]
/
(
round_trials
[
0
]))
<
(
10
.
0
/
n_frames
))
if
(((
double
)
errs
[
0
]
[
0
]
/
(
round_trials
[
0
]))
<
(
10
.
0
/
n_frames
))
break
;
}
// SNR
...
...
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