diff --git a/openair1/PHY/NR_TRANSPORT/nr_pss.c b/openair1/PHY/NR_TRANSPORT/nr_pss.c index a98687f1a2911b008622fc5c6fd54a3d22449df0..3b96e06866899c8139fd6f71ffeb33d9631d583e 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_pss.c +++ b/openair1/PHY/NR_TRANSPORT/nr_pss.c @@ -49,11 +49,11 @@ int nr_generate_pss( int16_t *d_pss, for (i=0; i < NR_PSS_LENGTH; i++) { m = (i + 43*Nid2)%(NR_PSS_LENGTH); - d_pss[i] = (1 - 2*x[m]) * 768; + d_pss[i] = (1 - 2*x[m]) * 32767; } #ifdef NR_PSS_DEBUG - write_output("d_pss.m", "d_pss", (void*)d_pss, NR_PSS_LENGTH, 1, 3); + write_output("d_pss.m", "d_pss", (void*)d_pss, NR_PSS_LENGTH, 1, 1); #endif /// Resource mapping @@ -78,7 +78,7 @@ int nr_generate_pss( int16_t *d_pss, } #ifdef NR_PSS_DEBUG - write_output("pss_0.m", "pss_0", (void*)txdataF[0][2*l*frame_parms->ofdm_symbol_size], frame_parms->ofdm_symbol_size, 1, 3); + write_output("pss_0.m", "pss_0", (void*)txdataF[0][2*l*frame_parms->ofdm_symbol_size], frame_parms->ofdm_symbol_size, 1, 1); #endif return (0); diff --git a/openair1/PHY/NR_TRANSPORT/nr_sss.c b/openair1/PHY/NR_TRANSPORT/nr_sss.c index d58a8f6c3cb05049c399a94d02d285c3611dad7b..96325556d177215fe1a4ac866734cc58d58521ee 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_sss.c +++ b/openair1/PHY/NR_TRANSPORT/nr_sss.c @@ -59,11 +59,11 @@ int nr_generate_sss( int16_t *d_sss, m1 = Nid1 % 112; for (i = 0; i < NR_SSS_LENGTH ; i++) { - d_sss[i] = (1 - 2*x0[(i + m0) % NR_SSS_LENGTH] ) * (1 - 2*x1[(i + m1) % NR_SSS_LENGTH] ) * 768; + d_sss[i] = (1 - 2*x0[(i + m0) % NR_SSS_LENGTH] ) * (1 - 2*x1[(i + m1) % NR_SSS_LENGTH] ) * 32767; } #ifdef NR_SSS_DEBUG - write_output("d_sss.m", "d_sss", (void*)d_sss, NR_SSS_LENGTH, 1, 3); + write_output("d_sss.m", "d_sss", (void*)d_sss, NR_SSS_LENGTH, 1, 1); #endif /// Resource mapping @@ -87,7 +87,7 @@ int nr_generate_sss( int16_t *d_sss, } } #ifdef NR_SSS_DEBUG - write_output("sss_0.m", "sss_0", (void*)txdataF[0][2*l*frame_parms->ofdm_symbol_size], frame_parms->ofdm_symbol_size, 1, 3); + write_output("sss_0.m", "sss_0", (void*)txdataF[0][2*l*frame_parms->ofdm_symbol_size], frame_parms->ofdm_symbol_size, 1, 1); #endif return (0); diff --git a/openair1/SCHED_NR/defs.h b/openair1/SCHED_NR/defs.h index 336c3cfff4af3d5a15e9b1fbc929bbb7f64236a1..17df26cac2d8f8e22edd2e8a58917423326a3dad 100644 --- a/openair1/SCHED_NR/defs.h +++ b/openair1/SCHED_NR/defs.h @@ -33,5 +33,17 @@ #include "SCHED/defs.h" lte_subframe_t nr_subframe_select (nfapi_config_request_t *cfg, unsigned char subframe); +int nr_generate_pss( int16_t *d_pss, + int32_t **txdataF, + int16_t amp, + uint8_t ssb_start_symbol, + nfapi_config_request_t* config, + NR_DL_FRAME_PARMS *frame_parms); +int nr_generate_sss( int16_t *d_sss, + int32_t **txdataF, + int16_t amp, + uint8_t ssb_start_symbol, + nfapi_config_request_t* config, + NR_DL_FRAME_PARMS *frame_parms); #endif diff --git a/openair1/SCHED_NR/nr_ru_procedures.c b/openair1/SCHED_NR/nr_ru_procedures.c index b9fe29b4e89aa59dc962c0587431d958eea749a6..ee8df641c5782d17cd4c695d08ea43736a2de419 100644 --- a/openair1/SCHED_NR/nr_ru_procedures.c +++ b/openair1/SCHED_NR/nr_ru_procedures.c @@ -98,6 +98,12 @@ void nr_feptx_ofdm_2thread(RU_t *ru) { if (nr_subframe_select(fp,subframe) == SF_UL) return; + // this copy should be done in the precoding thread (currently inactive) + for (int aa=0;aa<ru->nb_tx;aa++) + memcpy((void*)ru->common.txdataF_BF[aa], + (void*)&ru->gNB_list[0]->common_vars.txdataF[aa][subframe*fp->samples_per_subframe_wCP], + fp->samples_per_subframe_wCP*sizeof(int32_t)); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM , 1 ); if (nr_subframe_select(fp,subframe)==SF_DL) { diff --git a/openair1/SCHED_NR/phy_procedures_nr_gNB.c b/openair1/SCHED_NR/phy_procedures_nr_gNB.c index f277089c33cc361940c37ed0ae15fee71b1bc1bc..609b845cc1c50cec78995ec1b6e809c3faa82574 100644 --- a/openair1/SCHED_NR/phy_procedures_nr_gNB.c +++ b/openair1/SCHED_NR/phy_procedures_nr_gNB.c @@ -55,7 +55,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int subframe) { if (subframe == ss_subframe) { - LOG_I(PHY,"SS TX: frame %d, subframe %d\n",frame,subframe); + LOG_I(PHY,"SS TX: frame %d, subframe %d, start_symbol %d\n",frame,subframe, ssb_start_symbol); nr_generate_pss(gNB->d_pss, txdataF, AMP, ssb_start_symbol, cfg, fp); nr_generate_sss(gNB->d_sss, txdataF, AMP_OVER_2, ssb_start_symbol, cfg, fp); } @@ -88,5 +88,7 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB, if (nfapi_mode == 0 || nfapi_mode == 1) { nr_common_signal_procedures(gNB,frame, subframe); + //if (frame == 9) + //write_output("txdataF.m","txdataF",gNB->common_vars.txdataF[aa],fp->samples_per_frame_wCP, 1, 1); } } diff --git a/targets/RT/USER/nr-ru.c b/targets/RT/USER/nr-ru.c index 697f0ec8ede67fef63c7ea2422eb6c28bf2a73c3..5b078b2c1701c0e8724dc638c627620a87be7f77 100644 --- a/targets/RT/USER/nr-ru.c +++ b/targets/RT/USER/nr-ru.c @@ -814,6 +814,8 @@ void tx_rf(RU_t *ru) { for (i=0; i<ru->nb_tx; i++) txp[i] = (void*)&ru->common.txdata[i][(proc->subframe_tx*fp->samples_per_subframe)-sf_extension]; + //if (proc->subframe_tx == 9) + //write_output("txdata_frame.m","txdata_frame",gNB->common_vars.txdata[i],fp->samples_per_frame, 1, 1); VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TRX_TST, (proc->timestamp_tx-ru->openair0_cfg.tx_sample_advance)&0xffffffff ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE, 1 );