small fixes for 15 kHz SCS
This commit is contained in:
+11
-4
@@ -726,10 +726,17 @@ void tx_rf(RU_t *ru,int frame,int slot, uint64_t timestamp) {
|
|||||||
|
|
||||||
AssertFatal(txsymb>0,"illegal txsymb %d\n",txsymb);
|
AssertFatal(txsymb>0,"illegal txsymb %d\n",txsymb);
|
||||||
|
|
||||||
if(slot%(fp->slots_per_subframe/2))
|
if (fp->slots_per_subframe == 1) {
|
||||||
siglen = txsymb * (fp->ofdm_symbol_size + fp->nb_prefix_samples);
|
if (txsymb <= 7)
|
||||||
else
|
siglen = (fp->ofdm_symbol_size + fp->nb_prefix_samples0) + (txsymb - 1) * (fp->ofdm_symbol_size + fp->nb_prefix_samples);
|
||||||
siglen = (fp->ofdm_symbol_size + fp->nb_prefix_samples0) + (txsymb - 1) * (fp->ofdm_symbol_size + fp->nb_prefix_samples);
|
else
|
||||||
|
siglen = 2 * (fp->ofdm_symbol_size + fp->nb_prefix_samples0) + (txsymb - 2) * (fp->ofdm_symbol_size + fp->nb_prefix_samples);
|
||||||
|
} else {
|
||||||
|
if (slot%(fp->slots_per_subframe/2))
|
||||||
|
siglen = txsymb * (fp->ofdm_symbol_size + fp->nb_prefix_samples);
|
||||||
|
else
|
||||||
|
siglen = (fp->ofdm_symbol_size + fp->nb_prefix_samples0) + (txsymb - 1) * (fp->ofdm_symbol_size + fp->nb_prefix_samples);
|
||||||
|
}
|
||||||
|
|
||||||
//+ ru->end_of_burst_delay;
|
//+ ru->end_of_burst_delay;
|
||||||
flags = 3; // end of burst
|
flags = 3; // end of burst
|
||||||
|
|||||||
@@ -175,11 +175,19 @@ void rx_nr_prach_ru(RU_t *ru,
|
|||||||
int msg1_frequencystart = ru->config.prach_config.num_prach_fd_occasions_list[numRA].k1.value;
|
int msg1_frequencystart = ru->config.prach_config.num_prach_fd_occasions_list[numRA].k1.value;
|
||||||
|
|
||||||
int sample_offset_slot;
|
int sample_offset_slot;
|
||||||
if (!(slot%(fp->slots_per_subframe/2)))
|
if (prachStartSymbol == 0) {
|
||||||
sample_offset_slot = (prachStartSymbol==0?0:fp->ofdm_symbol_size*prachStartSymbol+fp->nb_prefix_samples0+fp->nb_prefix_samples*(prachStartSymbol-1));
|
sample_offset_slot = 0;
|
||||||
else
|
} else if (fp->slots_per_subframe == 1) {
|
||||||
sample_offset_slot = (prachStartSymbol==0?0:prachStartSymbol*(fp->ofdm_symbol_size+fp->nb_prefix_samples));
|
if (prachStartSymbol <= 7)
|
||||||
//to be checked for mu=0;
|
sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * (prachStartSymbol - 1) + (fp->ofdm_symbol_size + fp->nb_prefix_samples0);
|
||||||
|
else
|
||||||
|
sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * (prachStartSymbol - 2) + (fp->ofdm_symbol_size + fp->nb_prefix_samples0) * 2;
|
||||||
|
} else {
|
||||||
|
if (!(slot%(fp->slots_per_subframe/2)))
|
||||||
|
sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * (prachStartSymbol - 1) + (fp->ofdm_symbol_size + fp->nb_prefix_samples0);
|
||||||
|
else
|
||||||
|
sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * prachStartSymbol;
|
||||||
|
}
|
||||||
|
|
||||||
LOG_D(PHY,"frame %d, slot %d: doing rx_nr_prach_ru for format %d, numRA %d, prachStartSymbol %d, prachOccasion %d\n",frame,slot,prachFormat,numRA,prachStartSymbol,prachOccasion);
|
LOG_D(PHY,"frame %d, slot %d: doing rx_nr_prach_ru for format %d, numRA %d, prachStartSymbol %d, prachOccasion %d\n",frame,slot,prachFormat,numRA,prachStartSymbol,prachOccasion);
|
||||||
|
|
||||||
|
|||||||
@@ -102,10 +102,19 @@ int32_t generate_nr_prach(PHY_VARS_NR_UE *ue, uint8_t gNB_id, uint8_t slot){
|
|||||||
nrUE_config->prach_config.num_prach_fd_occasions_list[fd_occasion].prach_root_sequence_index,
|
nrUE_config->prach_config.num_prach_fd_occasions_list[fd_occasion].prach_root_sequence_index,
|
||||||
ue->X_u);
|
ue->X_u);
|
||||||
|
|
||||||
if (slot % (fp->slots_per_subframe / 2) == 0)
|
if (prachStartSymbol == 0) {
|
||||||
sample_offset_slot = (prachStartSymbol==0?0:fp->ofdm_symbol_size*prachStartSymbol+fp->nb_prefix_samples0+fp->nb_prefix_samples*(prachStartSymbol-1));
|
sample_offset_slot = 0;
|
||||||
else
|
} else if (fp->slots_per_subframe == 1) {
|
||||||
sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * prachStartSymbol;
|
if (prachStartSymbol <= 7)
|
||||||
|
sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * (prachStartSymbol - 1) + (fp->ofdm_symbol_size + fp->nb_prefix_samples0);
|
||||||
|
else
|
||||||
|
sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * (prachStartSymbol - 2) + (fp->ofdm_symbol_size + fp->nb_prefix_samples0) * 2;
|
||||||
|
} else {
|
||||||
|
if (slot % (fp->slots_per_subframe / 2) == 0)
|
||||||
|
sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * (prachStartSymbol - 1) + (fp->ofdm_symbol_size + fp->nb_prefix_samples0);
|
||||||
|
else
|
||||||
|
sample_offset_slot = (fp->ofdm_symbol_size + fp->nb_prefix_samples) * prachStartSymbol;
|
||||||
|
}
|
||||||
|
|
||||||
prach_start = fp->get_samples_slot_timestamp(slot, fp, 0) + sample_offset_slot;
|
prach_start = fp->get_samples_slot_timestamp(slot, fp, 0) + sample_offset_slot;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user