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
7854030b
Commit
7854030b
authored
Apr 24, 2017
by
HARADA Masayuki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add pucch format3 test to pucchsim
parent
46da6406
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
63 additions
and
19 deletions
+63
-19
openair1/PHY/LTE_TRANSPORT/proto.h
openair1/PHY/LTE_TRANSPORT/proto.h
+11
-0
openair1/PHY/LTE_TRANSPORT/pucch.c
openair1/PHY/LTE_TRANSPORT/pucch.c
+3
-2
openair1/SIMULATION/LTE_PHY/pucchsim.c
openair1/SIMULATION/LTE_PHY/pucchsim.c
+49
-17
No files found.
openair1/PHY/LTE_TRANSPORT/proto.h
100644 → 100755
View file @
7854030b
...
@@ -1998,6 +1998,17 @@ void generate_pucch2x(int32_t **txdataF,
...
@@ -1998,6 +1998,17 @@ void generate_pucch2x(int32_t **txdataF,
uint8_t
subframe
,
uint8_t
subframe
,
uint16_t
rnti
);
uint16_t
rnti
);
void
generate_pucch3x
(
int32_t
**
txdataF
,
LTE_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
ncs_cell
[
20
][
7
],
PUCCH_FMT_t
fmt
,
PUCCH_CONFIG_DEDICATED
*
pucch_config_dedicated
,
uint16_t
n3_pucch
,
uint8_t
shortened_format
,
uint8_t
*
payload
,
int16_t
amp
,
uint8_t
subframe
,
uint16_t
rnti
);
void
generate_pucch_emul
(
PHY_VARS_UE
*
phy_vars_ue
,
void
generate_pucch_emul
(
PHY_VARS_UE
*
phy_vars_ue
,
UE_rxtx_proc_t
*
proc
,
UE_rxtx_proc_t
*
proc
,
...
...
openair1/PHY/LTE_TRANSPORT/pucch.c
View file @
7854030b
...
@@ -1744,7 +1744,7 @@ int16_t pucchfmt3_Decode( int16_t b[48],
...
@@ -1744,7 +1744,7 @@ int16_t pucchfmt3_Decode( int16_t b[48],
Rho_max
=
Rho_tmp
;
Rho_max
=
Rho_tmp
;
}
}
}
}
if
(
Interpw
==
0
){
if
(
Interpw
<
1
){
Interpw
=
1
;
Interpw
=
1
;
}
}
if
((
Rho_max
/
Interpw
)
>
DTXthreshold
)
{
if
((
Rho_max
/
Interpw
)
>
DTXthreshold
)
{
...
@@ -1833,6 +1833,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB,
...
@@ -1833,6 +1833,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB,
uint16_t
n3_pucch
=
20
;
uint16_t
n3_pucch
=
20
;
uint16_t
n3_pucch_array
[
NUMBER_OF_UE_MAX
];
uint16_t
n3_pucch_array
[
NUMBER_OF_UE_MAX
];
uint8_t
do_sr
=
1
;
uint8_t
do_sr
=
1
;
uint16_t
crnti
=
0x1234
;
/* PUCCH format3 << */
/* PUCCH format3 << */
if
(
first_call
==
1
)
{
if
(
first_call
==
1
)
{
...
@@ -2472,7 +2473,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB,
...
@@ -2472,7 +2473,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB,
pucchfmt3_IDft2
(
(
int16_t
*
)
Fmt3xDataAvgSym
[
1
],
(
int16_t
*
)
IFFTOutData_Fmt3
[
1
]
);
pucchfmt3_IDft2
(
(
int16_t
*
)
Fmt3xDataAvgSym
[
1
],
(
int16_t
*
)
IFFTOutData_Fmt3
[
1
]
);
/* descramble */
/* descramble */
pucchfmt3_Descramble
(
IFFTOutData_Fmt3
,
b
,
subframe
,
frame_parms
->
Nid_cell
,
eNB
->
UE_stats
[
UE_id
].
crnti
);
pucchfmt3_Descramble
(
IFFTOutData_Fmt3
,
b
,
subframe
,
frame_parms
->
Nid_cell
,
crnti
);
/* Is payload 6bit or 7bit? */
/* Is payload 6bit or 7bit? */
if
(
do_sr
==
1
)
{
if
(
do_sr
==
1
)
{
...
...
openair1/SIMULATION/LTE_PHY/pucchsim.c
100644 → 100755
View file @
7854030b
...
@@ -85,11 +85,13 @@ int main(int argc, char **argv)
...
@@ -85,11 +85,13 @@ int main(int argc, char **argv)
// double pucch_sinr;
// double pucch_sinr;
uint8_t
osf
=
1
,
N_RB_DL
=
25
;
uint8_t
osf
=
1
,
N_RB_DL
=
25
;
uint32_t
pucch_tx
=
0
,
pucch1_missed
=
0
,
pucch1_false
=
0
,
sig
;
uint32_t
pucch_tx
=
0
,
pucch1_missed
=
0
,
pucch1_false
=
0
,
pucch3_false
=
0
,
sig
;
PUCCH_FMT_t
pucch_format
=
pucch_format1
;
PUCCH_FMT_t
pucch_format
=
pucch_format1
;
PUCCH_CONFIG_DEDICATED
pucch_config_dedicated
;
PUCCH_CONFIG_DEDICATED
pucch_config_dedicated
;
uint8_t
subframe
=
0
;
uint8_t
subframe
=
0
;
uint8_t
pucch_payload
,
pucch_payload_rx
;
uint8_t
pucch_payload
,
pucch_payload_rx
;
uint8_t
pucch3_payload_size
=
7
;
uint8_t
pucch3_payload
[
21
],
pucch3_payload_rx
[
21
];
double
tx_gain
=
1
.
0
;
double
tx_gain
=
1
.
0
;
int32_t
stat
;
int32_t
stat
;
double
stat_no_sig
,
stat_sig
;
double
stat_no_sig
,
stat_sig
;
...
@@ -98,6 +100,9 @@ int main(int argc, char **argv)
...
@@ -98,6 +100,9 @@ int main(int argc, char **argv)
uint16_t
n1_pucch
=
0
;
uint16_t
n1_pucch
=
0
;
uint16_t
n2_pucch
=
0
;
uint16_t
n2_pucch
=
0
;
uint16_t
n3_pucch
=
20
;
uint16_t
n_rnti
=
0x1234
;
number_of_cards
=
1
;
number_of_cards
=
1
;
...
@@ -118,6 +123,8 @@ int main(int argc, char **argv)
...
@@ -118,6 +123,8 @@ int main(int argc, char **argv)
pucch_format
=
pucch_format1a
;
pucch_format
=
pucch_format1a
;
else
if
(
atoi
(
optarg
)
==
2
)
else
if
(
atoi
(
optarg
)
==
2
)
pucch_format
=
pucch_format1b
;
pucch_format
=
pucch_format1b
;
else
if
(
atoi
(
optarg
)
==
6
)
// 3,4,5 is reserved for format2,2a,2b
pucch_format
=
pucch_format3
;
else
{
else
{
printf
(
"Unsupported pucch_format %d
\n
"
,
atoi
(
optarg
));
printf
(
"Unsupported pucch_format %d
\n
"
,
atoi
(
optarg
));
exit
(
-
1
);
exit
(
-
1
);
...
@@ -282,7 +289,7 @@ int main(int argc, char **argv)
...
@@ -282,7 +289,7 @@ int main(int argc, char **argv)
printf
(
"-N Noise variance in dB
\n
"
);
printf
(
"-N Noise variance in dB
\n
"
);
printf
(
"-R N_RB_DL
\n
"
);
printf
(
"-R N_RB_DL
\n
"
);
printf
(
"-O oversampling factor (1,2,4,8,16)
\n
"
);
printf
(
"-O oversampling factor (1,2,4,8,16)
\n
"
);
printf
(
"-f PUCCH format (0=1,1=1a,2=1b), formats 2/2a/2b not supported
\n
"
);
printf
(
"-f PUCCH format (0=1,1=1a,2=1b
,6=3
), formats 2/2a/2b not supported
\n
"
);
printf
(
"-F Input filename (.txt format) for RX conformance testing
\n
"
);
printf
(
"-F Input filename (.txt format) for RX conformance testing
\n
"
);
exit
(
-
1
);
exit
(
-
1
);
break
;
break
;
...
@@ -362,18 +369,34 @@ int main(int argc, char **argv)
...
@@ -362,18 +369,34 @@ int main(int argc, char **argv)
UE
->
frame_parms
.
pucch_config_common
.
nRB_CQI
=
4
;
UE
->
frame_parms
.
pucch_config_common
.
nRB_CQI
=
4
;
UE
->
frame_parms
.
pucch_config_common
.
nCS_AN
=
6
;
UE
->
frame_parms
.
pucch_config_common
.
nCS_AN
=
6
;
pucch_payload
=
0
;
if
(
(
pucch_format
==
pucch_format1
)
||
(
pucch_format
==
pucch_format1a
)
||
(
pucch_format
==
pucch_format1b
)
){
generate_pucch1x
(
UE
->
common_vars
.
txdataF
,
pucch_payload
=
0
;
frame_parms
,
generate_pucch1x
(
UE
->
common_vars
.
txdataF
,
UE
->
ncs_cell
,
frame_parms
,
pucch_format
,
UE
->
ncs_cell
,
&
pucch_config_dedicated
,
pucch_format
,
n1_pucch
,
&
pucch_config_dedicated
,
0
,
//shortened_format,
n1_pucch
,
&
pucch_payload
,
0
,
//shortened_format,
AMP
,
//amp,
&
pucch_payload
,
subframe
);
//subframe
AMP
,
//amp,
subframe
);
//subframe
}
else
if
(
pucch_format
==
pucch_format3
){
for
(
i
=
0
;
i
<
pucch3_payload_size
;
i
++
)
pucch3_payload
[
i
]
=
(
uint8_t
)(
taus
()
&
0x1
);
generate_pucch3x
(
UE
->
common_vars
.
txdataF
,
frame_parms
,
UE
->
ncs_cell
,
pucch_format
,
&
pucch_config_dedicated
,
n3_pucch
,
0
,
//shortened_format,
pucch3_payload
,
AMP
,
//amp,
subframe
,
//subframe
n_rnti
);
//rnti
}
write_output
(
"txsigF0.m"
,
"txsF0"
,
&
UE
->
common_vars
.
txdataF
[
0
][
2
*
subframe
*
nsymb
*
OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX
],
OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX
*
nsymb
,
1
,
1
);
write_output
(
"txsigF0.m"
,
"txsF0"
,
&
UE
->
common_vars
.
txdataF
[
0
][
2
*
subframe
*
nsymb
*
OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX
],
OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES_NO_PREFIX
*
nsymb
,
1
,
1
);
tx_lev
=
0
;
tx_lev
=
0
;
...
@@ -429,6 +452,7 @@ int main(int argc, char **argv)
...
@@ -429,6 +452,7 @@ int main(int argc, char **argv)
pucch_tx
=
0
;
pucch_tx
=
0
;
pucch1_missed
=
0
;
pucch1_missed
=
0
;
pucch1_false
=
0
;
pucch1_false
=
0
;
pucch3_false
=
0
;
stat_no_sig
=
0
;
stat_no_sig
=
0
;
stat_sig
=
0
;
stat_sig
=
0
;
...
@@ -540,7 +564,7 @@ int main(int argc, char **argv)
...
@@ -540,7 +564,7 @@ int main(int argc, char **argv)
n1_pucch
,
n1_pucch
,
n2_pucch
,
n2_pucch
,
0
,
//shortened_format,
0
,
//shortened_format,
&
pucch_payload_rx
,
//payload,
(
pucch_format
==
pucch_format3
)
?
pucch3_payload_rx
:
&
pucch_payload_rx
,
//payload,
0
/* frame not defined, let's pass 0 */
,
0
/* frame not defined, let's pass 0 */
,
subframe
,
subframe
,
pucch1_thres
);
pucch1_thres
);
...
@@ -561,8 +585,15 @@ int main(int argc, char **argv)
...
@@ -561,8 +585,15 @@ int main(int argc, char **argv)
printf("EXIT\n");
printf("EXIT\n");
exit(-1);
exit(-1);
}*/
}*/
}
else
{
}
else
if
(
(
pucch_format
==
pucch_format1a
)
||
(
pucch_format
==
pucch_format1b
)
)
{
pucch1_false
=
(
pucch_payload_rx
!=
pucch_payload
)
?
(
pucch1_false
+
1
)
:
pucch1_false
;
pucch1_false
=
(
pucch_payload_rx
!=
pucch_payload
)
?
(
pucch1_false
+
1
)
:
pucch1_false
;
}
else
if
(
pucch_format
==
pucch_format3
){
for
(
i
=
0
;
i
<
pucch3_payload_size
;
i
++
){
if
(
pucch3_payload
[
i
]
!=
pucch3_payload_rx
[
i
]){
pucch3_false
=
(
pucch3_false
+
1
);
break
;
}
}
}
}
// printf("sig %d\n",sig);
// printf("sig %d\n",sig);
...
@@ -576,7 +607,8 @@ int main(int argc, char **argv)
...
@@ -576,7 +607,8 @@ int main(int argc, char **argv)
printf
(
"pucch_trials %d : pucch1a_errors %d
\n
"
,
pucch_tx
,
pucch1_false
);
printf
(
"pucch_trials %d : pucch1a_errors %d
\n
"
,
pucch_tx
,
pucch1_false
);
else
if
(
pucch_format
==
pucch_format1b
)
else
if
(
pucch_format
==
pucch_format1b
)
printf
(
"pucch_trials %d : pucch1b_errors %d
\n
"
,
pucch_tx
,
pucch1_false
);
printf
(
"pucch_trials %d : pucch1b_errors %d
\n
"
,
pucch_tx
,
pucch1_false
);
else
if
(
pucch_format
==
pucch_format3
)
printf
(
"pucch_trials %d : pucch3_errors %d
\n
"
,
pucch_tx
,
pucch3_false
);
}
}
if
(
n_frames
==
1
)
{
if
(
n_frames
==
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