fixing bugs for dmrssync
This commit is contained in:
@@ -477,13 +477,20 @@ LOG_M_END
|
||||
int ru_sync_time_init(RU_t *ru) // LTE_UE_COMMON *common_vars
|
||||
{
|
||||
|
||||
/*
|
||||
int16_t dmrs[2048];
|
||||
int16_t *dmrsp[2] = {dmrs,NULL};
|
||||
*/
|
||||
|
||||
int32_t dmrs[ru->frame_parms.ofdm_symbol_size*14] __attribute__((aligned(32)));
|
||||
int32_t *dmrsp[2] = {&dmrs[(3-ru->frame_parms.Ncp)*ru->frame_parms.ofdm_symbol_size],NULL};
|
||||
|
||||
generate_ul_ref_sigs();
|
||||
|
||||
ru->dmrssync = (int16_t*)malloc16_clear(ru->frame_parms.N_RB_DL*2*sizeof(int16_t));
|
||||
generate_drs_pusch(NULL,NULL,
|
||||
&ru->frame_parms,
|
||||
(int32_t**)dmrsp,
|
||||
dmrsp,/*(int32_t**)dmrsp,*/
|
||||
0,
|
||||
AMP,
|
||||
0,
|
||||
@@ -503,7 +510,7 @@ int ru_sync_time_init(RU_t *ru) // LTE_UE_COMMON *common_vars
|
||||
1);
|
||||
break;
|
||||
case 50:
|
||||
idft1024(dmrs,
|
||||
idft1024((int16_t*)dmrsp,/*dmrs,*/
|
||||
ru->dmrssync, /// complex output
|
||||
1);
|
||||
break;
|
||||
|
||||
@@ -215,7 +215,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
|
||||
} else if (packet_type >= IF4p5_PRACH &&
|
||||
packet_type <= IF4p5_PRACH+4) {
|
||||
// FIX: hard coded prach samples length
|
||||
LOG_D(PHY,"IF4p5_PRACH: frame %d, subframe %d,packet type %x\n",frame,subframe,packet_type);
|
||||
if (frame < 10) LOG_I(PHY,"IF4p5_PRACH: frame %d, subframe %d,packet type %x\n",frame,subframe,packet_type);
|
||||
db_fulllength = PRACH_NUM_SAMPLES;
|
||||
|
||||
if (eth->flags == ETH_RAW_IF4p5_MODE) {
|
||||
@@ -249,6 +249,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
|
||||
(void *)rxF,
|
||||
PRACH_BLOCK_SIZE_BYTES);
|
||||
}
|
||||
if (frame == 0) LOG_I(PHY,"signal energy prach %d\n",dB_fixed(signal_energy(rxF,839)));
|
||||
}
|
||||
if (ru->idx<=1) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0+ru->idx, 1 );
|
||||
if ((ru->ifdevice.trx_write_func(&ru->ifdevice,
|
||||
|
||||
@@ -97,27 +97,44 @@ void feptx0(RU_t *ru,int slot) {
|
||||
fp->nb_prefix_samples,
|
||||
CYCLIC_PREFIX);
|
||||
else {
|
||||
AssertFatal(ru->generate_dmrs_sync==1 && (fp->frame_type != TDD || ru->is_slave == 1),
|
||||
/* AssertFatal(ru->generate_dmrs_sync==1 && (fp->frame_type != TDD || ru->is_slave == 1),
|
||||
"ru->generate_dmrs_sync should not be set, frame_type %d, is_slave %d\n",
|
||||
fp->frame_type,ru->is_slave);
|
||||
|
||||
*/
|
||||
if (ru->generate_dmrs_sync == 1 && slot == 0 && subframe == 1 && aa==0) {
|
||||
int32_t dmrs[ru->frame_parms.ofdm_symbol_size*14] __attribute__((aligned(32)));
|
||||
int32_t *dmrsp[2] = {&dmrs[(3-ru->frame_parms.Ncp)*ru->frame_parms.ofdm_symbol_size],NULL};
|
||||
|
||||
generate_ul_ref_sigs();
|
||||
|
||||
ru->dmrssync = (int16_t*)malloc16_clear(ru->frame_parms.ofdm_symbol_size*2*sizeof(int16_t));
|
||||
generate_drs_pusch((PHY_VARS_UE *)NULL,
|
||||
(UE_rxtx_proc_t*)NULL,
|
||||
fp,
|
||||
ru->common.txdataF_BF,
|
||||
dmrsp,//ru->common.txdataF_BF,
|
||||
0,
|
||||
AMP,
|
||||
1,
|
||||
0,
|
||||
fp->N_RB_DL,
|
||||
aa);
|
||||
}
|
||||
|
||||
idft1024((int16_t*)dmrsp[0],
|
||||
(int16_t*)&ru->common.txdata[aa][slot_offset],
|
||||
1);
|
||||
|
||||
/*normal_prefix_mod((int16_t*)dmrsp[0],
|
||||
(int*)&ru->common.txdata[aa][slot_offset],
|
||||
1,
|
||||
fp);
|
||||
*/
|
||||
} else {
|
||||
normal_prefix_mod(&ru->common.txdataF_BF[aa][slot*slot_sizeF],
|
||||
(int*)&ru->common.txdata[aa][slot_offset],
|
||||
7,
|
||||
fp);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
len = fp->samples_per_tti>>1;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user