Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
oai
openairinterface5G
Commits
81c1e1b3
Commit
81c1e1b3
authored
Dec 30, 2018
by
knopp
Browse files
tested with slot-based processing for 40 and 80 MHz channels
parent
ae180291
Changes
35
Hide whitespace changes
Inline
Side-by-side
common/utils/LOG/vcd_signal_dumper.c
View file @
81c1e1b3
...
...
@@ -74,10 +74,10 @@ const char* eurecomVariablesNames[] = {
"frame_number_TX1_RU"
,
"frame_number_RX0_RU"
,
"frame_number_RX1_RU"
,
"
subframe
_number_TX0_RU"
,
"
subframe
_number_TX1_RU"
,
"
subframe
_number_RX0_RU"
,
"
subframe
_number_RX1_RU"
,
"
tti
_number_TX0_RU"
,
"
tti
_number_TX1_RU"
,
"
tti
_number_RX0_RU"
,
"
tti
_number_RX1_RU"
,
"runtime_TX_eNB"
,
"runtime_RX_eNB"
,
"frame_number_TX0_UE"
,
...
...
@@ -196,10 +196,10 @@ const char* eurecomVariablesNames[] = {
"frame_number_TX1_gNB"
,
"frame_number_RX0_gNB"
,
"frame_number_RX1_gNB"
,
"s
ubframe
_number_TX0_gNB"
,
"s
ubframe
_number_TX1_gNB"
,
"s
ubframe
_number_RX0_gNB"
,
"s
ubframe
_number_RX1_gNB"
"s
lot
_number_TX0_gNB"
,
"s
lot
_number_TX1_gNB"
,
"s
lot
_number_RX0_gNB"
,
"s
lot
_number_RX1_gNB"
};
const
char
*
eurecomFunctionsNames
[]
=
{
...
...
common/utils/LOG/vcd_signal_dumper.h
View file @
81c1e1b3
...
...
@@ -51,10 +51,10 @@ typedef enum {
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX1_RU
,
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX0_RU
,
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX1_RU
,
VCD_SIGNAL_DUMPER_VARIABLES_
SUBFRAME
_NUMBER_TX0_RU
,
VCD_SIGNAL_DUMPER_VARIABLES_
SUBFRAME
_NUMBER_TX1_RU
,
VCD_SIGNAL_DUMPER_VARIABLES_
SUBFRAME
_NUMBER_RX0_RU
,
VCD_SIGNAL_DUMPER_VARIABLES_
SUBFRAME
_NUMBER_RX1_RU
,
VCD_SIGNAL_DUMPER_VARIABLES_
TTI
_NUMBER_TX0_RU
,
VCD_SIGNAL_DUMPER_VARIABLES_
TTI
_NUMBER_TX1_RU
,
VCD_SIGNAL_DUMPER_VARIABLES_
TTI
_NUMBER_RX0_RU
,
VCD_SIGNAL_DUMPER_VARIABLES_
TTI
_NUMBER_RX1_RU
,
VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_TX_ENB
,
VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_RX_ENB
,
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_UE
,
...
...
@@ -173,10 +173,10 @@ typedef enum {
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX1_GNB
,
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX0_GNB
,
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX1_GNB
,
VCD_SIGNAL_DUMPER_VARIABLES_S
UBFRAME
_NUMBER_TX0_GNB
,
VCD_SIGNAL_DUMPER_VARIABLES_S
UBFRAME
_NUMBER_TX1_GNB
,
VCD_SIGNAL_DUMPER_VARIABLES_S
UBFRAME
_NUMBER_RX0_GNB
,
VCD_SIGNAL_DUMPER_VARIABLES_S
UBFRAME
_NUMBER_RX1_GNB
,
VCD_SIGNAL_DUMPER_VARIABLES_S
LOT
_NUMBER_TX0_GNB
,
VCD_SIGNAL_DUMPER_VARIABLES_S
LOT
_NUMBER_TX1_GNB
,
VCD_SIGNAL_DUMPER_VARIABLES_S
LOT
_NUMBER_RX0_GNB
,
VCD_SIGNAL_DUMPER_VARIABLES_S
LOT
_NUMBER_RX1_GNB
,
VCD_SIGNAL_DUMPER_VARIABLES_END
}
vcd_signal_dump_variables
;
...
...
common/utils/T/T_messages.txt
View file @
81c1e1b3
...
...
@@ -1099,26 +1099,26 @@ ID = VCD_VARIABLE_FRAME_NUMBER_RX1_RU
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
VCD_NAME = frame_number_RX1_RU
ID = VCD_VARIABLE_
SUBFRAME
_NUMBER_TX0_RU
DESC = VCD variable
SUBFRAME
_NUMBER_TX0_RU
ID = VCD_VARIABLE_
TTI
_NUMBER_TX0_RU
DESC = VCD variable
TTI
_NUMBER_TX0_RU
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
VCD_NAME =
subframe
_number_TX0_RU
ID = VCD_VARIABLE_
SUBFRAME
_NUMBER_TX1_RU
DESC = VCD variable
SUBFRAME
_NUMBER_TX1_RU
VCD_NAME =
tti
_number_TX0_RU
ID = VCD_VARIABLE_
TTI
_NUMBER_TX1_RU
DESC = VCD variable
TTI
_NUMBER_TX1_RU
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
VCD_NAME =
subframe
_number_TX1_RU
ID = VCD_VARIABLE_
SUBFRAME
_NUMBER_RX0_RU
DESC = VCD variable
SUBFRAME
_NUMBER_RX0_RU
VCD_NAME =
tti
_number_TX1_RU
ID = VCD_VARIABLE_
TTI
_NUMBER_RX0_RU
DESC = VCD variable
TTI
_NUMBER_RX0_RU
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
VCD_NAME =
subframe
_number_RX0_RU
ID = VCD_VARIABLE_
SUBFRAME
_NUMBER_RX1_RU
DESC = VCD variable
SUBFRAME
_NUMBER_RX1_RU
VCD_NAME =
tti
_number_RX0_RU
ID = VCD_VARIABLE_
TTI
_NUMBER_RX1_RU
DESC = VCD variable
TTI
_NUMBER_RX1_RU
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
VCD_NAME =
subframe
_number_RX1_RU
VCD_NAME =
tti
_number_RX1_RU
ID = VCD_VARIABLE_RUNTIME_TX_ENB
DESC = VCD variable RUNTIME_TX_ENB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
...
...
@@ -1701,26 +1701,26 @@ ID = VCD_VARIABLE_FRAME_NUMBER_RX1_GNB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
VCD_NAME = frame_number_RX1_gNB
ID = VCD_VARIABLE_S
UBFRAME
_NUMBER_TX0_GNB
DESC = VCD variable S
UBFRAME
_NUMBER_TX0_GNB
ID = VCD_VARIABLE_S
LOT
_NUMBER_TX0_GNB
DESC = VCD variable S
LOT
_NUMBER_TX0_GNB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
VCD_NAME = s
ubframe
_number_TX0_gNB
ID = VCD_VARIABLE_S
UBFRAME
_NUMBER_TX1_GNB
DESC = VCD variable S
UBFRAME
_NUMBER_TX1_GNB
VCD_NAME = s
lot
_number_TX0_gNB
ID = VCD_VARIABLE_S
LOT
_NUMBER_TX1_GNB
DESC = VCD variable S
LOT
_NUMBER_TX1_GNB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
VCD_NAME = s
ubframe
_number_TX1_gNB
ID = VCD_VARIABLE_S
UBFRAME
_NUMBER_RX0_GNB
DESC = VCD variable S
UBFRAME
_NUMBER_RX0_GNB
VCD_NAME = s
lot
_number_TX1_gNB
ID = VCD_VARIABLE_S
LOT
_NUMBER_RX0_GNB
DESC = VCD variable S
LOT
_NUMBER_RX0_GNB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
VCD_NAME = s
ubframe
_number_RX0_gNB
ID = VCD_VARIABLE_S
UBFRAME
_NUMBER_RX1_GNB
DESC = VCD variable S
UBFRAME
_NUMBER_RX1_GNB
VCD_NAME = s
lot
_number_RX0_gNB
ID = VCD_VARIABLE_S
LOT
_NUMBER_RX1_GNB
DESC = VCD variable S
LOT
_NUMBER_RX1_GNB
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
VCD_NAME = s
ubframe
_number_RX1_gNB
VCD_NAME = s
lot
_number_RX1_gNB
#functions
...
...
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h
View file @
81c1e1b3
...
...
@@ -149,8 +149,6 @@ typedef struct {
#define NFAPI_NR_SUBFRAME_CONFIG_NUMEROLOGY_INDEX_MU_TAG 0x5006
typedef
struct
{
nfapi_uint16_tlv_t
tx_antenna_ports
;
nfapi_uint16_tlv_t
rx_antenna_ports
;
nfapi_uint16_tlv_t
dl_carrier_bandwidth
;
nfapi_uint16_tlv_t
ul_carrier_bandwidth
;
nfapi_uint16_tlv_t
dl_bwp_subcarrierspacing
;
...
...
@@ -161,18 +159,17 @@ typedef struct {
nfapi_uint16_tlv_t
ul_absolutefrequencypointA
;
nfapi_uint16_tlv_t
dl_offsettocarrier
;
nfapi_uint16_tlv_t
ul_offsettocarrier
;
nfapi_uint16_tlv_t
dl_
scs_
subcarrierspacing
;
nfapi_uint16_tlv_t
ul_
scs_
subcarrierspacing
;
nfapi_uint16_tlv_t
dl_
scs_
specificcarrier_k0
;
nfapi_uint16_tlv_t
ul_
scs_
specificcarrier_k0
;
nfapi_uint16_tlv_t
dl_subcarrierspacing
;
nfapi_uint16_tlv_t
ul_subcarrierspacing
;
nfapi_uint16_tlv_t
dl_specificcarrier_k0
;
nfapi_uint16_tlv_t
ul_specificcarrier_k0
;
nfapi_uint16_tlv_t
NIA_subcarrierspacing
;
}
nfapi_nr_rf_config_t
;
#define NFAPI_NR_RF_CONFIG_DL_CHANNEL_BANDWIDTH_TAG 0x500A
#define NFAPI_NR_RF_CONFIG_UL_CHANNEL_BANDWIDTH_TAG 0x500B
#define NFAPI_NR_RF_CONFIG_REFERENCE_SIGNAL_POWER_TAG 0x500C
#define NFAPI_NR_RF_CONFIG_TX_ANTENNA_PORTS_TAG 0x500D
#define NFAPI_NR_RF_CONFIG_RX_ANTENNA_PORTS_TAG 0x500E
#define NFAPI_NR_RF_CONFIG_DL_CARRIER_BANDWIDTH_TAG 0x500A
#define NFAPI_NR_RF_CONFIG_UL_CARRIER_BANDWIDTH_TAG 0x500B
#define NFAPI_NR_RF_CONFIG_DL_SUBCARRIERSPACING_TAG 0x500C
#define NFAPI_NR_RF_CONFIG_UL_SUBCARRIERSPACING_TAG 0x500D
typedef
struct
{
nfapi_uint16_tlv_t
physical_cell_id
;
...
...
openair1/PHY/INIT/nr_init.c
View file @
81c1e1b3
...
...
@@ -165,20 +165,16 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB,
common_vars
->
rxdata
=
(
int32_t
**
)
NULL
;
common_vars
->
txdataF
=
(
int32_t
**
)
malloc16
(
NB_ANTENNA_PORTS_ENB
*
sizeof
(
int32_t
*
));
common_vars
->
txdataF
=
(
int32_t
**
)
malloc16
(
15
*
sizeof
(
int32_t
*
));
common_vars
->
rxdataF
=
(
int32_t
**
)
malloc16
(
64
*
sizeof
(
int32_t
*
));
LOG_D
(
PHY
,
"[INIT] NB_ANTENNA_PORTS_ENB:%d fp->nb_antenna_ports_gNB:%d
\n
"
,
NB_ANTENNA_PORTS_ENB
,
cfg
->
rf_config
.
tx_antenna_ports
.
value
);
for
(
i
=
0
;
i
<
NB_ANTENNA_PORTS_ENB
;
i
++
)
{
if
(
i
<
cfg
->
rf_config
.
tx_antenna_ports
.
value
||
i
==
5
)
{
for
(
i
=
0
;
i
<
15
;
i
++
){
common_vars
->
txdataF
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
samples_per_frame_wCP
*
sizeof
(
int32_t
)
);
LOG_D
(
PHY
,
"[INIT] common_vars->txdataF[%d] = %p (%lu bytes)
\n
"
,
i
,
common_vars
->
txdataF
[
i
],
fp
->
samples_per_frame_wCP
*
sizeof
(
int32_t
));
}
}
}
// Channel estimates for SRS
...
...
@@ -306,11 +302,9 @@ void phy_free_nr_gNB(PHY_VARS_gNB *gNB)
int
i
,
UE_id
;
for
(
i
=
0
;
i
<
NB_ANTENNA_PORTS_ENB
;
i
++
)
{
if
(
i
<
cfg
->
rf_config
.
tx_antenna_ports
.
value
||
i
==
5
)
{
free_and_zero
(
common_vars
->
txdataF
[
i
]);
for
(
i
=
0
;
i
<
15
;
i
++
)
{
free_and_zero
(
common_vars
->
txdataF
[
i
]);
/* rxdataF[i] is not allocated -> don't free */
}
}
free_and_zero
(
common_vars
->
txdataF
);
free_and_zero
(
common_vars
->
rxdataF
);
...
...
@@ -381,7 +375,6 @@ void nr_phy_config_request_sim(PHY_VARS_gNB *gNB,int N_RB_DL,int N_RB_UL,int mu)
gNB_config
->
nfapi_config
.
nrarfcn
.
value
=
620000
;
gNB_config
->
subframe_config
.
numerology_index_mu
.
value
=
mu
;
gNB_config
->
subframe_config
.
duplex_mode
.
value
=
TDD
;
gNB_config
->
rf_config
.
tx_antenna_ports
.
value
=
1
;
gNB_config
->
rf_config
.
dl_carrier_bandwidth
.
value
=
N_RB_DL
;
gNB_config
->
rf_config
.
ul_carrier_bandwidth
.
value
=
N_RB_UL
;
gNB_config
->
sch_config
.
half_frame_index
.
value
=
0
;
...
...
@@ -416,7 +409,6 @@ void nr_phy_config_request(NR_PHY_Config_t *phy_config)
gNB_config
->
nfapi_config
.
rf_bands
.
rf_band
[
0
]
=
phy_config
->
cfg
->
nfapi_config
.
rf_bands
.
rf_band
[
0
];
//22
gNB_config
->
nfapi_config
.
nrarfcn
.
value
=
phy_config
->
cfg
->
nfapi_config
.
nrarfcn
.
value
;
//6600
gNB_config
->
subframe_config
.
numerology_index_mu
.
value
=
phy_config
->
cfg
->
subframe_config
.
numerology_index_mu
.
value
;
//1
gNB_config
->
rf_config
.
tx_antenna_ports
.
value
=
phy_config
->
cfg
->
rf_config
.
tx_antenna_ports
.
value
;
//1
gNB_config
->
rf_config
.
dl_carrier_bandwidth
.
value
=
phy_config
->
cfg
->
rf_config
.
dl_carrier_bandwidth
.
value
;
//106;
gNB_config
->
rf_config
.
ul_carrier_bandwidth
.
value
=
phy_config
->
cfg
->
rf_config
.
ul_carrier_bandwidth
.
value
;
//106;
gNB_config
->
sch_config
.
half_frame_index
.
value
=
0
;
...
...
@@ -437,14 +429,13 @@ void nr_phy_config_request(NR_PHY_Config_t *phy_config)
fp
->
ul_CarrierFreq
=
fp
->
dl_CarrierFreq
-
(
get_uldl_offset
(
gNB_config
->
nfapi_config
.
rf_bands
.
rf_band
[
0
])
*
100000
);
fp
->
threequarter_fs
=
0
;
LOG_I
(
PHY
,
"Configuring MIB for instance %d, CCid %d : (band %d,N_RB_DL %d, N_RB_UL %d, Nid_cell
%d,gNB_tx_antenna_ports
%d,DL freq %u)
\n
"
,
LOG_I
(
PHY
,
"Configuring MIB for instance %d, CCid %d : (band %d,N_RB_DL %d, N_RB_UL %d, Nid_cell %d,DL freq %u)
\n
"
,
Mod_id
,
CC_id
,
gNB_config
->
nfapi_config
.
rf_bands
.
rf_band
[
0
],
gNB_config
->
rf_config
.
dl_carrier_bandwidth
.
value
,
gNB_config
->
rf_config
.
ul_carrier_bandwidth
.
value
,
gNB_config
->
sch_config
.
physical_cell_id
.
value
,
gNB_config
->
rf_config
.
tx_antenna_ports
.
value
,
fp
->
dl_CarrierFreq
);
nr_init_frame_parms
(
gNB_config
,
fp
);
...
...
openair1/PHY/INIT/nr_init_ru.c
View file @
81c1e1b3
...
...
@@ -107,9 +107,7 @@ int nr_phy_init_RU(RU_t *ru) {
for
(
i
=
0
;
i
<
RC
.
nb_nr_L1_inst
;
i
++
)
{
for
(
p
=
0
;
p
<
15
;
p
++
)
{
LOG_D
(
PHY
,
"[INIT] %s() nb_antenna_ports_eNB:%d
\n
"
,
__FUNCTION__
,
ru
->
gNB_list
[
i
]
->
gNB_config
.
rf_config
.
tx_antenna_ports
.
value
);
if
(
p
<
ru
->
gNB_list
[
i
]
->
gNB_config
.
rf_config
.
tx_antenna_ports
.
value
||
p
==
5
)
{
LOG_D
(
PHY
,
"[INIT] %s() DO BEAM WEIGHTS nb_antenna_ports_eNB:%d nb_tx:%d
\n
"
,
__FUNCTION__
,
ru
->
gNB_list
[
i
]
->
gNB_config
.
rf_config
.
tx_antenna_ports
.
value
,
ru
->
nb_tx
);
if
(
p
==
0
||
p
==
5
)
{
ru
->
beam_weights
[
i
][
p
]
=
(
int32_t
**
)
malloc16_clear
(
ru
->
nb_tx
*
sizeof
(
int32_t
*
));
for
(
j
=
0
;
j
<
ru
->
nb_tx
;
j
++
)
{
ru
->
beam_weights
[
i
][
p
][
j
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
ofdm_symbol_size
*
sizeof
(
int32_t
));
...
...
@@ -180,7 +178,7 @@ void nr_phy_free_RU(RU_t *ru)
for
(
i
=
0
;
i
<
RC
.
nb_nr_L1_inst
;
i
++
)
{
for
(
p
=
0
;
p
<
15
;
p
++
)
{
if
(
p
<
ru
->
gNB_list
[
i
]
->
gNB_config
.
rf_config
.
tx_antenna_ports
.
value
||
p
==
5
)
{
if
(
p
==
0
||
p
==
5
)
{
for
(
j
=
0
;
j
<
ru
->
nb_tx
;
j
++
)
free_and_zero
(
ru
->
beam_weights
[
i
][
p
][
j
]);
free_and_zero
(
ru
->
beam_weights
[
i
][
p
]);
}
...
...
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
81c1e1b3
...
...
@@ -162,7 +162,7 @@ void nr_pdcch_scrambling(uint32_t *in,
uint8_t
nr_generate_dci_top
(
NR_gNB_PDCCH
pdcch_vars
,
t_nrPolar_paramsPtr
*
nrPolar_params
,
uint32_t
**
gold_pdcch_dmrs
,
int32_t
*
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
NR_DL_FRAME_PARMS
frame_parms
,
nfapi_nr_config_request_t
config
)
...
...
@@ -216,14 +216,13 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
uint32_t
encoder_output
[
NR_MAX_DCI_SIZE_DWORD
];
uint16_t
n_RNTI
=
(
pdcch_params
.
search_space_type
==
NFAPI_NR_SEARCH_SPACE_TYPE_UE_SPECIFIC
)
?
((
pdcch_params
.
scrambling_id
)
?
pdcch_params
.
rnti
:
0
)
:
0
;
uint16_t
Nid
=
(
pdcch_params
.
search_space_type
==
NFAPI_NR_SEARCH_SPACE_TYPE_UE_SPECIFIC
)
?
pdcch_params
.
scrambling_id
:
config
.
sch_config
.
physical_cell_id
.
value
;
#ifdef PDCCH_TEST_POLAR_TEMP_FIX
t_nrPolar_paramsPtr
currentPtr
=
NULL
;
//, polarParams = NULL;
nr_polar_init
(
&
currentPtr
,
NR_POLAR_DCI_MESSAGE_TYPE
,
dci_alloc
.
size
,
dci_alloc
.
L
);
//#ifdef PDCCH_TEST_POLAR_TEMP_FIX
// nr_polar_init(¤tPtr, NR_POLAR_DCI_MESSAGE_TYPE, dci_alloc.size, dci_alloc.L);
// t_nrPolar_paramsPtr currentPtr = nr_polar_params(*nrPolar_params, NR_POLAR_DCI_MESSAGE_TYPE, dci_alloc.size, dci_alloc.L);
#else
//
#else
nr_polar_init
(
nrPolar_params
,
NR_POLAR_DCI_MESSAGE_TYPE
,
dci_alloc
.
size
,
dci_alloc
.
L
);
t_nrPolar_paramsPtr
currentPtr
=
nr_polar_params
(
*
nrPolar_params
,
NR_POLAR_DCI_MESSAGE_TYPE
,
dci_alloc
.
size
,
dci_alloc
.
L
);
#endif
//
#endif
//polar_encoder_dci(dci_alloc.dci_pdu, encoder_output, currentPtr, pdcch_params.rnti);
polar_encoder_fast
(
dci_alloc
.
dci_pdu
,
encoder_output
,
pdcch_params
.
rnti
,
currentPtr
);
...
...
@@ -261,10 +260,7 @@ printf("scrambled output: [0]->0x%08x \t [1]->0x%08x \t [2]->0x%08x \t [3]->0x%0
}
/// Resource mapping
a
=
(
config
.
rf_config
.
tx_antenna_ports
.
value
==
1
)
?
amp
:
(
amp
*
ONE_OVER_SQRT2_Q15
)
>>
15
;
for
(
int
aa
=
0
;
aa
<
config
.
rf_config
.
tx_antenna_ports
.
value
;
aa
++
)
{
if
(
cset_start_sc
>=
frame_parms
.
ofdm_symbol_size
)
cset_start_sc
-=
frame_parms
.
ofdm_symbol_size
;
...
...
@@ -293,8 +289,8 @@ printf("scrambled output: [0]->0x%08x \t [1]->0x%08x \t [2]->0x%08x \t [3]->0x%0
dmrs_idx
=
0
;
k
=
cset_start_sc
+
1
;
while
(
dmrs_idx
<
3
*
pdcch_params
.
n_rb
)
{
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
*
mod_dmrs
[
l
][
dmrs_idx
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
*
mod_dmrs
[
l
][(
dmrs_idx
<<
1
)
+
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
mp
*
mod_dmrs
[
l
][
dmrs_idx
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
mp
*
mod_dmrs
[
l
][(
dmrs_idx
<<
1
)
+
1
])
>>
15
;
#ifdef DEBUG_PDCCH_DMRS
printf
(
"symbol %d position %d => (%d,%d)
\n
"
,
l
,
k
,((
int16_t
*
)
txdataF
[
aa
])[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
]
,
((
int16_t
*
)
txdataF
[
aa
])[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
#endif
...
...
@@ -319,8 +315,8 @@ printf("scrambled output: [0]->0x%08x \t [1]->0x%08x \t [2]->0x%08x \t [3]->0x%0
for
(
int
m
=
0
;
m
<
NR_NB_SC_PER_RB
;
m
++
)
{
if
(
m
==
(
k_prime
<<
2
)
+
1
)
{
// DMRS if not already mapped
if
(
pdcch_params
.
precoder_granularity
==
NFAPI_NR_CSET_SAME_AS_REG_BUNDLE
)
{
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
*
mod_dmrs
[
l
][
dmrs_idx
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
*
mod_dmrs
[
l
][(
dmrs_idx
<<
1
)
+
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
mp
*
mod_dmrs
[
l
][
dmrs_idx
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
mp
*
mod_dmrs
[
l
][(
dmrs_idx
<<
1
)
+
1
])
>>
15
;
#ifdef DEBUG_PDCCH_DMRS
printf
(
"l %d position %d => (%d,%d)
\n
"
,
l
,
k
,((
int16_t
*
)
txdataF
[
aa
])[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
]
,
((
int16_t
*
)
txdataF
[
aa
])[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
#endif
...
...
@@ -329,8 +325,8 @@ printf("scrambled output: [0]->0x%08x \t [1]->0x%08x \t [2]->0x%08x \t [3]->0x%0
}
}
else
{
// DCI payload
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
*
mod_dci
[
dci_idx
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
*
mod_dci
[(
dci_idx
<<
1
)
+
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
mp
*
mod_dci
[
dci_idx
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
mp
*
mod_dci
[(
dci_idx
<<
1
)
+
1
])
>>
15
;
//printf("dci output %d %d\n",(a * mod_dci[dci_idx<<1]) >> 15, (a * mod_dci[(dci_idx<<1) + 1]) >> 15);
dci_idx
++
;
}
...
...
@@ -339,7 +335,6 @@ printf("scrambled output: [0]->0x%08x \t [1]->0x%08x \t [2]->0x%08x \t [3]->0x%0
k
-=
frame_parms
.
ofdm_symbol_size
;
}
}
}
#ifdef DEBUG_DCI
write_output
(
"txdataF_dci.m"
,
"txdataF_dci"
,
txdataF
[
0
],
frame_parms
.
samples_per_frame_wCP
>>
1
,
1
,
1
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dci.h
View file @
81c1e1b3
...
...
@@ -35,7 +35,7 @@ uint16_t nr_get_dci_size(nfapi_nr_dci_format_e format,
uint8_t
nr_generate_dci_top
(
NR_gNB_PDCCH
pdcch_vars
,
t_nrPolar_paramsPtr
*
nrPolar_params
,
uint32_t
**
gold_pdcch_dmrs
,
int32_t
*
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
NR_DL_FRAME_PARMS
frame_parms
,
nfapi_nr_config_request_t
config
);
...
...
openair1/PHY/NR_TRANSPORT/nr_pbch.c
View file @
81c1e1b3
...
...
@@ -46,7 +46,7 @@ uint8_t nr_pbch_payload_interleaving_pattern[32] = {16, 23, 18, 17, 8, 30, 10, 6
9
,
11
,
12
,
13
,
14
,
15
,
19
,
20
,
21
,
22
,
25
,
26
,
27
,
28
,
29
,
31
};
int
nr_generate_pbch_dmrs
(
uint32_t
*
gold_pbch_dmrs
,
int32_t
*
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
uint8_t
ssb_start_symbol
,
nfapi_nr_config_request_t
*
config
,
...
...
@@ -72,10 +72,7 @@ int nr_generate_pbch_dmrs(uint32_t *gold_pbch_dmrs,
}
/// Resource mapping
a
=
(
config
->
rf_config
.
tx_antenna_ports
.
value
==
1
)
?
amp
:
(
amp
*
ONE_OVER_SQRT2_Q15
)
>>
15
;
for
(
int
aa
=
0
;
aa
<
config
->
rf_config
.
tx_antenna_ports
.
value
;
aa
++
)
{
// PBCH DMRS are mapped within the SSB block on every fourth subcarrier starting from nushift of symbols 1, 2, 3
///symbol 1 [0+nushift:4:236+nushift] -- 60 mod symbols
...
...
@@ -86,12 +83,12 @@ int nr_generate_pbch_dmrs(uint32_t *gold_pbch_dmrs,
#ifdef DEBUG_PBCH_DMRS
printf
(
"m %d at k %d of l %d
\n
"
,
m
,
k
,
l
);
#endif
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
*
mod_dmrs
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
*
mod_dmrs
[(
m
<<
1
)
+
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
mp
*
mod_dmrs
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
mp
*
mod_dmrs
[(
m
<<
1
)
+
1
])
>>
15
;
#ifdef DEBUG_PBCH_DMRS
printf
(
"(%d,%d)
\n
"
,
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
],
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
],
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
#endif
k
+=
4
;
...
...
@@ -107,12 +104,12 @@ int nr_generate_pbch_dmrs(uint32_t *gold_pbch_dmrs,
#ifdef DEBUG_PBCH_DMRS
printf
(
"m %d at k %d of l %d
\n
"
,
m
,
k
,
l
);
#endif
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
*
mod_dmrs
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
*
mod_dmrs
[(
m
<<
1
)
+
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
mp
*
mod_dmrs
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
mp
*
mod_dmrs
[(
m
<<
1
)
+
1
])
>>
15
;
#ifdef DEBUG_PBCH_DMRS
printf
(
"(%d,%d)
\n
"
,
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
],
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
],
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
#endif
k
+=
(
m
==
71
)
?
148
:
4
;
// Jump from 44+nu to 192+nu
...
...
@@ -128,12 +125,12 @@ int nr_generate_pbch_dmrs(uint32_t *gold_pbch_dmrs,
#ifdef DEBUG_PBCH_DMRS
printf
(
"m %d at k %d of l %d
\n
"
,
m
,
k
,
l
);
#endif
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
*
mod_dmrs
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
*
mod_dmrs
[(
m
<<
1
)
+
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
mp
*
mod_dmrs
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
mp
*
mod_dmrs
[(
m
<<
1
)
+
1
])
>>
15
;
#ifdef DEBUG_PBCH_DMRS
printf
(
"(%d,%d)
\n
"
,
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
],
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
],
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
#endif
k
+=
4
;
...
...
@@ -141,7 +138,6 @@ int nr_generate_pbch_dmrs(uint32_t *gold_pbch_dmrs,
k
-=
frame_parms
->
ofdm_symbol_size
;
}
}
#ifdef DEBUG_PBCH_DMRS
...
...
@@ -232,7 +228,7 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
t_nrPolar_paramsPtr
polar_params
,
uint8_t
*
pbch_pdu
,
uint8_t
*
interleaver
,
int32_t
*
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
uint8_t
ssb_start_symbol
,
uint8_t
n_hf
,
...
...
@@ -337,10 +333,7 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
/// Resource mapping
nushift
=
config
->
sch_config
.
physical_cell_id
.
value
&
3
;
a
=
(
config
->
rf_config
.
tx_antenna_ports
.
value
==
1
)
?
amp
:
(
amp
*
ONE_OVER_SQRT2_Q15
)
>>
15
;
for
(
int
aa
=
0
;
aa
<
config
->
rf_config
.
tx_antenna_ports
.
value
;
aa
++
)
{
// PBCH modulated symbols are mapped within the SSB block on symbols 1, 2, 3 excluding the subcarriers used for the PBCH DMRS
///symbol 1 [0:239] -- 180 mod symbols
...
...
@@ -358,8 +351,8 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
#ifdef DEBUG_PBCH
printf
(
"m %d ssb_sc_idx %d at k %d of l %d
\n
"
,
m
,
ssb_sc_idx
,
k
,
l
);
#endif
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
*
mod_pbch_e
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
*
mod_pbch_e
[(
m
<<
1
)
+
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
mp
*
mod_pbch_e
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
mp
*
mod_pbch_e
[(
m
<<
1
)
+
1
])
>>
15
;
k
++
;
m
++
;
}
...
...
@@ -383,8 +376,8 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
#ifdef DEBUG_PBCH
printf
(
"m %d ssb_sc_idx %d at k %d of l %d
\n
"
,
m
,
ssb_sc_idx
,
k
,
l
);
#endif
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
*
mod_pbch_e
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
*
mod_pbch_e
[(
m
<<
1
)
+
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
mp
*
mod_pbch_e
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
mp
*
mod_pbch_e
[(
m
<<
1
)
+
1
])
>>
15
;
k
++
;
m
++
;
}
...
...
@@ -409,8 +402,8 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
#ifdef DEBUG_PBCH
printf
(
"m %d ssb_sc_idx %d at k %d of l %d
\n
"
,
m
,
ssb_sc_idx
,
k
,
l
);
#endif
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
*
mod_pbch_e
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
*
mod_pbch_e
[(
m
<<
1
)
+
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
mp
*
mod_pbch_e
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
mp
*
mod_pbch_e
[(
m
<<
1
)
+
1
])
>>
15
;
k
++
;
m
++
;
}
...
...
@@ -434,8 +427,8 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
#ifdef DEBUG_PBCH
printf
(
"m %d ssb_sc_idx %d at k %d of l %d
\n
"
,
m
,
ssb_sc_idx
,
k
,
l
);
#endif
((
int16_t
*
)
txdataF
[
aa
]
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
*
mod_pbch_e
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
aa
]
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
*
mod_pbch_e
[(
m
<<
1
)
+
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
]
=
(
a
mp
*
mod_pbch_e
[
m
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
)[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
a
mp
*
mod_pbch_e
[(
m
<<
1
)
+
1
])
>>
15
;
k
++
;
m
++
;
}
...
...
@@ -444,7 +437,6 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
k
-=
frame_parms
->
ofdm_symbol_size
;
}
}
#ifdef DEBUG_PBCH
...
...
openair1/PHY/NR_TRANSPORT/nr_pss.c
View file @
81c1e1b3
...
...
@@ -25,7 +25,7 @@
//#define NR_PSS_DEBUG
int
nr_generate_pss
(
int16_t
*
d_pss
,
int32_t
*
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
uint8_t
ssb_start_symbol
,
nfapi_nr_config_request_t
*
config
,
...
...
@@ -57,10 +57,8 @@ int nr_generate_pss( int16_t *d_pss,
#endif
/// Resource mapping
a
=
(
config
->
rf_config
.
tx_antenna_ports
.
value
==
1
)
?
amp
:
(
amp
*
ONE_OVER_SQRT2_Q15
)
>>
15
;
a
=
amp
;
for
(
int
aa
=
0
;
aa
<
config
->
rf_config
.
tx_antenna_ports
.
value
;
aa
++
)
{
// PSS occupies a predefined position (subcarriers 56-182, symbol 0) within the SSB block starting from
k
=
frame_parms
->
first_carrier_offset
+
frame_parms
->
ssb_start_subcarrier
+
56
;
//and
...
...
@@ -70,13 +68,12 @@ int nr_generate_pss( int16_t *d_pss,
for
(
m
=
0
;
m
<
NR_PSS_LENGTH
;
m
++
)
{
// printf("pss: writing position k %d / %d\n",k,frame_parms->ofdm_symbol_size);
((
int16_t
*
)
txdataF
[
aa
]
)[
2
*
(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)]
=
(
a
*
d_pss
[
m
])
>>
15
;
((
int16_t
*
)
txdataF
)[
2
*
(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)]
=
(
a
*
d_pss
[
m
])
>>
15
;
k
++
;
if
(
k
>=
frame_parms
->
ofdm_symbol_size
)
k
-=
frame_parms
->
ofdm_symbol_size
;
}
}
#ifdef NR_PSS_DEBUG
LOG_M
(
"pss_0.m"
,
"pss_0"
,
...
...
openair1/PHY/NR_TRANSPORT/nr_sss.c
View file @
81c1e1b3
...
...
@@ -24,7 +24,7 @@
//#define NR_SSS_DEBUG
int
nr_generate_sss
(
int16_t
*
d_sss
,
int32_t
*
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
uint8_t
ssb_start_symbol
,
nfapi_nr_config_request_t
*
config
,
...
...
@@ -65,23 +65,18 @@ int nr_generate_sss( int16_t *d_sss,
#endif
/// Resource mapping
a
=
(
config
->
rf_config
.
tx_antenna_ports
.
value
==
1
)
?
amp
:
(
amp
*
ONE_OVER_SQRT2_Q15
)
>>
15
;
for
(
int
aa
=
0
;
aa
<
config
->
rf_config
.
tx_antenna_ports
.
value
;
aa
++
)
{
// SSS occupies a predefined position (subcarriers 56-182, symbol 2) within the SSB block starting from
k
=
frame_parms
->
first_carrier_offset
+
frame_parms
->
ssb_start_subcarrier
+
56
;
//and
l
=
ssb_start_symbol
+
2
;
for
(
int
m
=
0
;
m
<
NR_SSS_LENGTH
;
m
++
)
{
((
int16_t
*
)
txdataF
[
aa
]
)[
2
*
(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)]
=
(
a
*
d_sss
[
m
])
>>
15
;
((
int16_t
*
)
txdataF
)[
2
*
(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)]
=
(
a
mp
*
d_sss
[
m
])
>>
15
;
k
++
;
if
(
k
>=
frame_parms
->
ofdm_symbol_size
)
k
-=
frame_parms
->
ofdm_symbol_size
;
}
}
#ifdef NR_SSS_DEBUG
// write_output("sss_0.m", "sss_0", (void*)txdataF[0][l*frame_parms->ofdm_symbol_size], frame_parms->ofdm_symbol_size, 1, 1);
#endif
...
...
openair1/PHY/NR_TRANSPORT/nr_transport.h
View file @
81c1e1b3
...
...
@@ -33,7 +33,7 @@
@returns 0 on success
*/
int
nr_generate_pss
(
int16_t
*
d_pss
,
int32_t
*
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
uint8_t
ssb_start_symbol
,
nfapi_nr_config_request_t
*
config
,
...
...
@@ -46,7 +46,7 @@ int nr_generate_pss( int16_t *d_pss,
@returns 0 on success
*/
int
nr_generate_sss
(
int16_t
*
d_sss
,
int32_t
*
*
txdataF
,
int32_t
*
txdataF
,