few more fixes
This commit is contained in:
@@ -203,7 +203,10 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
|
|||||||
frame_parms,
|
frame_parms,
|
||||||
dlsch0_harq->mimo_mode);
|
dlsch0_harq->mimo_mode);
|
||||||
//#ifdef DEBUG_DLSCH_MOD
|
//#ifdef DEBUG_DLSCH_MOD
|
||||||
printf("dlsch: using pmi %lx, rb_alloc %x, pmi_ext %x\n",pmi2hex_2Ar1(dlsch0_harq->pmi_alloc),*rballoc,*lte_ue_pdsch_vars[eNB_id]->pmi_ext);
|
printf("dlsch: using pmi %lx, rb_alloc %x, pmi_ext ",pmi2hex_2Ar1(dlsch0_harq->pmi_alloc),*rballoc);
|
||||||
|
for (rb=0;rb<nb_rb;rb++)
|
||||||
|
printf("%d",lte_ue_pdsch_vars[eNB_id]->pmi_ext[rb]);
|
||||||
|
printf("\n");
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
if (rx_type==rx_IC_single_stream) {
|
if (rx_type==rx_IC_single_stream) {
|
||||||
@@ -1381,17 +1384,19 @@ void prec2A_TM4_128(int pmi,__m128i *ch0,__m128i *ch1) {
|
|||||||
ch0[0] = _mm_adds_epi16(tmp0,tmp1);
|
ch0[0] = _mm_adds_epi16(tmp0,tmp1);
|
||||||
ch1[0] = _mm_subs_epi16(tmp0,tmp1);
|
ch1[0] = _mm_subs_epi16(tmp0,tmp1);
|
||||||
}
|
}
|
||||||
else {
|
else { //[1 j; 1 -j]
|
||||||
tmp0 = ch0[0];
|
tmp0 = ch0[0];
|
||||||
tmp1 = _mm_sign_epi16(ch1[0],*(__m128i*)&conjugate[0]);
|
tmp1 = ch1[0];
|
||||||
tmp1 = _mm_shufflelo_epi16(tmp1,_MM_SHUFFLE(2,3,0,1));
|
ch0[0] = _mm_adds_epi16(tmp0,tmp1);
|
||||||
tmp1 = _mm_shufflehi_epi16(tmp1,_MM_SHUFFLE(2,3,0,1));
|
|
||||||
ch0[0] = _mm_subs_epi16(tmp0,tmp1);
|
|
||||||
ch1[0] = _mm_subs_epi16(tmp0,tmp1);
|
ch1[0] = _mm_subs_epi16(tmp0,tmp1);
|
||||||
}
|
|
||||||
|
|
||||||
//print_shorts("prec2A_TM4 ch0 (middle):",ch0);
|
//print_shorts("prec2A_TM4 ch0 (middle):",ch0);
|
||||||
//print_shorts("prec2A_TM4 ch1 (middle):",ch1);
|
//print_shorts("prec2A_TM4 ch1 (middle):",ch1);
|
||||||
|
|
||||||
|
ch1[0] = _mm_sign_epi16(ch1[0],*(__m128i*)&conjugate2[0]);
|
||||||
|
ch1[0] = _mm_shufflelo_epi16(ch1[0],_MM_SHUFFLE(2,3,0,1));
|
||||||
|
ch1[0] = _mm_shufflehi_epi16(ch1[0],_MM_SHUFFLE(2,3,0,1));
|
||||||
|
}
|
||||||
|
|
||||||
//ch0[0] = _mm_mulhi_epi16(ch0[0],amp);
|
//ch0[0] = _mm_mulhi_epi16(ch0[0],amp);
|
||||||
//ch0[0] = _mm_slli_epi16(ch0[0],1);
|
//ch0[0] = _mm_slli_epi16(ch0[0],1);
|
||||||
@@ -1902,7 +1907,7 @@ void dlsch_channel_compensation_TM34(LTE_DL_FRAME_PARMS *frame_parms,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (mimo_mode==DUALSTREAM_PUSCH_PRECODING) {
|
else if (mimo_mode==DUALSTREAM_PUSCH_PRECODING) {
|
||||||
prec2A_TM4_128(pmi_ext[rb],&dl_ch0_128[0],&dl_ch1_128[0]);
|
prec2A_TM4_128(pmi_ext[rb],&dl_ch0_128[0],&dl_ch1_128[0]);
|
||||||
prec2A_TM4_128(pmi_ext[rb],&dl_ch0_128[1],&dl_ch1_128[1]);
|
prec2A_TM4_128(pmi_ext[rb],&dl_ch0_128[1],&dl_ch1_128[1]);
|
||||||
|
|
||||||
@@ -4138,11 +4143,13 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF,
|
|||||||
(symbol*(frame_parms->ofdm_symbol_size))];
|
(symbol*(frame_parms->ofdm_symbol_size))];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
if (mimo_mode <= PUSCH_PRECODING1)
|
if (mimo_mode <= PUSCH_PRECODING1)
|
||||||
*pmi_loc = (pmi>>((prb>>2)<<1))&3;
|
*pmi_loc = (pmi>>((prb>>2)<<1))&3;
|
||||||
else
|
else
|
||||||
*pmi_loc=(pmi>>prb)&1;
|
*pmi_loc=(pmi>>prb)&1;
|
||||||
|
*/
|
||||||
|
*pmi_loc = get_pmi(frame_parms->N_RB_DL,mimo_mode,pmi,prb);
|
||||||
pmi_loc++;
|
pmi_loc++;
|
||||||
|
|
||||||
|
|
||||||
@@ -4279,14 +4286,17 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF,
|
|||||||
#ifdef DEBUG_DLSCH_DEMOD
|
#ifdef DEBUG_DLSCH_DEMOD
|
||||||
printf("symbol %d / rb %d: alloc %d skip_half %d (rxF %p, rxF_ext %p) prb_off (%d,%d)\n",symbol,prb,rb_alloc_ind,skip_half,rxF,rxF_ext,prb_off,prb_off2);
|
printf("symbol %d / rb %d: alloc %d skip_half %d (rxF %p, rxF_ext %p) prb_off (%d,%d)\n",symbol,prb,rb_alloc_ind,skip_half,rxF,rxF_ext,prb_off,prb_off2);
|
||||||
#endif
|
#endif
|
||||||
|
/*
|
||||||
if (mimo_mode <= PUSCH_PRECODING1)
|
if (mimo_mode <= PUSCH_PRECODING1)
|
||||||
*pmi_loc = (pmi>>((prb>>2)<<1))&3;
|
*pmi_loc = (pmi>>((prb>>2)<<1))&3;
|
||||||
else
|
else
|
||||||
*pmi_loc=(pmi>>prb)&1;
|
*pmi_loc=(pmi>>prb)&1;
|
||||||
// printf("symbol_mod %d (pilots %d) rb %d, sb %d, pmi %d (pmi_loc %p,rxF %p, ch00 %p, ch01 %p, rxF_ext %p dl_ch0_ext %p dl_ch1_ext %p)\n",symbol_mod,pilots,prb,prb>>2,*pmi_loc,pmi_loc,rxF,dl_ch0, dl_ch1, rxF_ext,dl_ch0_ext,dl_ch1_ext);
|
*/
|
||||||
|
|
||||||
|
*pmi_loc = get_pmi(frame_parms->N_RB_DL,mimo_mode,pmi,prb);
|
||||||
pmi_loc++;
|
pmi_loc++;
|
||||||
|
|
||||||
|
|
||||||
if (prb != (frame_parms->N_RB_DL>>1)) { // This PRB is not around DC
|
if (prb != (frame_parms->N_RB_DL>>1)) { // This PRB is not around DC
|
||||||
if (pilots==0) {
|
if (pilots==0) {
|
||||||
if (skip_half==1) {
|
if (skip_half==1) {
|
||||||
|
|||||||
@@ -1247,12 +1247,12 @@ int allocate_REs_in_RB_MCH(mod_sym_t **txdataF,
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t get_pmi(uint8_t N_RB_DL,LTE_DL_eNB_HARQ_t *dlsch_harq,uint16_t rb)
|
uint8_t get_pmi(uint8_t N_RB_DL,MIMO_mode_t mode, uint32_t pmi_alloc,uint16_t rb)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
|
||||||
MIMO_mode_t mode = dlsch_harq->mimo_mode;
|
MIMO_mode_t mode = dlsch_harq->mimo_mode;
|
||||||
uint32_t pmi_alloc = dlsch_harq->pmi_alloc;
|
uint32_t pmi_alloc = dlsch_harq->pmi_alloc;
|
||||||
|
*/
|
||||||
|
|
||||||
switch (N_RB_DL) {
|
switch (N_RB_DL) {
|
||||||
case 6: // 1 PRB per subband
|
case 6: // 1 PRB per subband
|
||||||
@@ -1268,7 +1268,7 @@ uint8_t get_pmi(uint8_t N_RB_DL,LTE_DL_eNB_HARQ_t *dlsch_harq,uint16_t rb)
|
|||||||
if (mode <= PUSCH_PRECODING1)
|
if (mode <= PUSCH_PRECODING1)
|
||||||
return((pmi_alloc>>((rb>>2)<<1))&3);
|
return((pmi_alloc>>((rb>>2)<<1))&3);
|
||||||
else {
|
else {
|
||||||
printf("Getting pmi for RB %d => %d\n",rb,((pmi_alloc>>(rb>>2))&1));
|
//printf("Getting pmi for RB %d => %d\n",rb,((pmi_alloc>>(rb>>2))&1));
|
||||||
return((pmi_alloc>>(rb>>2))&1);
|
return((pmi_alloc>>(rb>>2))&1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1572,7 +1572,7 @@ int dlsch_modulation(mod_sym_t **txdataF,
|
|||||||
(dlsch1==NULL) ? NULL : dlsch1->harq_processes[harq_pid],
|
(dlsch1==NULL) ? NULL : dlsch1->harq_processes[harq_pid],
|
||||||
pilots,
|
pilots,
|
||||||
((pilots) ? amp_rho_b : amp_rho_a),
|
((pilots) ? amp_rho_b : amp_rho_a),
|
||||||
get_pmi(frame_parms->N_RB_DL,dlsch0->harq_processes[harq_pid],rb),
|
get_pmi(frame_parms->N_RB_DL,dlsch0->harq_processes[harq_pid]->mimo_mode,dlsch0->harq_processes[harq_pid]->pmi_alloc,rb),
|
||||||
qam_table_s0,
|
qam_table_s0,
|
||||||
qam_table_s1,
|
qam_table_s1,
|
||||||
&re_allocated,
|
&re_allocated,
|
||||||
|
|||||||
@@ -1607,11 +1607,12 @@ uint32_t pmi_extend(LTE_DL_FRAME_PARMS *frame_parms,uint8_t wideband_pmi, uint8_
|
|||||||
|
|
||||||
/** \brief This routine extracts a single subband PMI from a bitmap coming from UCI or the pmi_extend function
|
/** \brief This routine extracts a single subband PMI from a bitmap coming from UCI or the pmi_extend function
|
||||||
@param N_RB_DL number of resource blocks
|
@param N_RB_DL number of resource blocks
|
||||||
@param dlsch_harq pointer to dlsch structure (containing mimo_mode and pmi_alloc)
|
@param mimo_mode
|
||||||
|
@param pmi_alloc subband PMI bitmap
|
||||||
@param rb resource block for which to extract PMI
|
@param rb resource block for which to extract PMI
|
||||||
@returns subband PMI
|
@returns subband PMI
|
||||||
*/
|
*/
|
||||||
uint8_t get_pmi(uint8_t N_RB_DL,LTE_DL_eNB_HARQ_t *dlsch_harq,uint16_t rb);
|
uint8_t get_pmi(uint8_t N_RB_DL,MIMO_mode_t mode, uint32_t pmi_alloc,uint16_t rb);
|
||||||
|
|
||||||
|
|
||||||
uint16_t get_nCCE(uint8_t num_pdcch_symbols,LTE_DL_FRAME_PARMS *frame_parms,uint8_t mi);
|
uint16_t get_nCCE(uint8_t num_pdcch_symbols,LTE_DL_FRAME_PARMS *frame_parms,uint8_t mi);
|
||||||
|
|||||||
@@ -736,7 +736,7 @@ int main(int argc, char **argv)
|
|||||||
if (transmission_mode==5) {
|
if (transmission_mode==5) {
|
||||||
n_users = 2;
|
n_users = 2;
|
||||||
//eNB_id_i = PHY_vars_UE->n_connected_eNB;
|
//eNB_id_i = PHY_vars_UE->n_connected_eNB;
|
||||||
eNB_id_i=1;
|
eNB_id_i=1;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -3437,74 +3437,6 @@ n(tikz_fname,"w");
|
|||||||
}
|
}
|
||||||
stop_meas(&PHY_vars_UE->dlsch_llr_stats);
|
stop_meas(&PHY_vars_UE->dlsch_llr_stats);
|
||||||
}
|
}
|
||||||
if (test_perf ==0 ) {
|
|
||||||
if ((n_frames==1) && (Ns==(2+(2*subframe))) && (l==0)) {
|
|
||||||
|
|
||||||
|
|
||||||
write_output("chanF11.m","chF11",eNB2UE[0]->chF[0],12*NB_RB,1,8);
|
|
||||||
write_output("chan11.m","ch11",eNB2UE[0]->ch[0],eNB2UE[0]->channel_length,1,8);
|
|
||||||
if ( PHY_vars_eNB->lte_frame_parms.nb_antennas_rx==2 && PHY_vars_eNB->lte_frame_parms.nb_antennas_tx==1 ){
|
|
||||||
write_output("chan21.m","ch21",eNB2UE[0]->ch[1],eNB2UE[0]->channel_length,1,8);
|
|
||||||
}
|
|
||||||
if (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1){
|
|
||||||
write_output("chan12.m","ch12",eNB2UE[0]->ch[1],eNB2UE[0]->channel_length,1,8);
|
|
||||||
if ( PHY_vars_eNB->lte_frame_parms.nb_antennas_rx>1){
|
|
||||||
write_output("chan21.m","ch21",eNB2UE[0]->ch[2],eNB2UE[0]->channel_length,1,8);
|
|
||||||
write_output("chan22.m","ch22",eNB2UE[0]->ch[3],eNB2UE[0]->channel_length,1,8);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*for (aarx=0;aarx<PHY_vars_UE->lte_frame_parms.nb_antennas_rx; aarx++) {
|
|
||||||
for (aa=0;aa<PHY_vars_UE->lte_frame_parms.nb_antennas_tx; aa++) {
|
|
||||||
sprintf(fname,"ch%d%d.m",(aarx+1), (aa+1));
|
|
||||||
write_output(fname,"ch",eNB2UE[0]->ch[2*aarx+aa],eNB2UE[0]->channel_length,1,8);
|
|
||||||
}
|
|
||||||
} */
|
|
||||||
/*write_output("ch0.m","ch0",eNB2UE[0]->ch[0],eNB2UE[0]->channel_length,1,8);
|
|
||||||
if (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1)
|
|
||||||
write_output("ch1.m","ch1",eNB2UE[0]->ch[PHY_vars_eNB->lte_frame_parms.nb_antennas_rx],eNB2UE[0]->channel_length,1,8);*/
|
|
||||||
|
|
||||||
//common vars
|
|
||||||
write_output("rxsig0.m","rxs0", &PHY_vars_UE->lte_ue_common_vars.rxdata[0][0],10*PHY_vars_UE->lte_frame_parms.samples_per_tti,1,1);
|
|
||||||
write_output("rxsigF0.m","rxsF0", &PHY_vars_UE->lte_ue_common_vars.rxdataF[0][0],PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb,1,1);
|
|
||||||
if (PHY_vars_UE->lte_frame_parms.nb_antennas_rx>1) {
|
|
||||||
write_output("rxsig1.m","rxs1", PHY_vars_UE->lte_ue_common_vars.rxdata[1],PHY_vars_UE->lte_frame_parms.samples_per_tti,1,1);
|
|
||||||
write_output("rxsigF1.m","rxsF1", PHY_vars_UE->lte_ue_common_vars.rxdataF[1],PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb,1,1);
|
|
||||||
}
|
|
||||||
|
|
||||||
write_output("dlsch00_r0.m","dl00_r0",
|
|
||||||
&(PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[eNB_id][0][0]),
|
|
||||||
PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb,1,1);
|
|
||||||
if (PHY_vars_UE->lte_frame_parms.nb_antennas_rx>1)
|
|
||||||
write_output("dlsch01_r0.m","dl01_r0",
|
|
||||||
&(PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[eNB_id][1][0]),
|
|
||||||
PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb,1,1);
|
|
||||||
if (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1)
|
|
||||||
write_output("dlsch10_r0.m","dl10_r0",
|
|
||||||
&(PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[eNB_id][2][0]),
|
|
||||||
PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb,1,1);
|
|
||||||
if ((PHY_vars_UE->lte_frame_parms.nb_antennas_rx>1) && (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1))
|
|
||||||
write_output("dlsch11_r0.m","dl11_r0",
|
|
||||||
&(PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[eNB_id][3][0]),
|
|
||||||
PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb/2,1,1);
|
|
||||||
|
|
||||||
//pdsch_vars
|
|
||||||
dump_dlsch2(PHY_vars_UE,eNB_id,coded_bits_per_codeword,round,PHY_vars_UE->dlsch_ue[0][1]->current_harq_pid );
|
|
||||||
//dump_dlsch2(PHY_vars_UE,eNB_id_i,coded_bits_per_codeword);
|
|
||||||
// write_output("dlsch_e.m","e",PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4);
|
|
||||||
|
|
||||||
|
|
||||||
//pdcch_vars
|
|
||||||
write_output("pdcchF0_ext.m","pdcchF_ext", PHY_vars_UE->lte_ue_pdcch_vars[eNB_id]->rxdataF_ext[0],2*3*PHY_vars_UE->lte_frame_parms.ofdm_symbol_size,1,1);
|
|
||||||
write_output("pdcch00_ch0_ext.m","pdcch00_ch0_ext",PHY_vars_UE->lte_ue_pdcch_vars[eNB_id]->dl_ch_estimates_ext[0],300*3,1,1);
|
|
||||||
|
|
||||||
write_output("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",PHY_vars_UE->lte_ue_pdcch_vars[eNB_id]->rxdataF_comp[0],4*300,1,1);
|
|
||||||
write_output("pdcch_rxF_llr.m","pdcch_llr",PHY_vars_UE->lte_ue_pdcch_vars[eNB_id]->llr,2400,1,4);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3751,6 +3683,8 @@ n(tikz_fname,"w");
|
|||||||
stop_meas(&PHY_vars_UE->phy_proc_rx);
|
stop_meas(&PHY_vars_UE->phy_proc_rx);
|
||||||
|
|
||||||
if (n_frames==1) {
|
if (n_frames==1) {
|
||||||
|
|
||||||
|
//rxsig
|
||||||
sprintf(fname,"rxsig0_r%d.m",round);
|
sprintf(fname,"rxsig0_r%d.m",round);
|
||||||
sprintf(vname,"rxs0_r%d",round);
|
sprintf(vname,"rxs0_r%d",round);
|
||||||
write_output(fname,vname, &PHY_vars_UE->lte_ue_common_vars.rxdata[0][0],10*PHY_vars_UE->lte_frame_parms.samples_per_tti,1,1);
|
write_output(fname,vname, &PHY_vars_UE->lte_ue_common_vars.rxdata[0][0],10*PHY_vars_UE->lte_frame_parms.samples_per_tti,1,1);
|
||||||
@@ -3765,6 +3699,22 @@ n(tikz_fname,"w");
|
|||||||
sprintf(vname,"rxs1F_r%d",round);
|
sprintf(vname,"rxs1F_r%d",round);
|
||||||
write_output(fname,vname, PHY_vars_UE->lte_ue_common_vars.rxdataF[1],2*PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb,2,1);
|
write_output(fname,vname, PHY_vars_UE->lte_ue_common_vars.rxdataF[1],2*PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb,2,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//channel
|
||||||
|
write_output("chanF11.m","chF11",eNB2UE[0]->chF[0],12*NB_RB,1,8);
|
||||||
|
write_output("chan11.m","ch11",eNB2UE[0]->ch[0],eNB2UE[0]->channel_length,1,8);
|
||||||
|
if ( PHY_vars_eNB->lte_frame_parms.nb_antennas_rx==2 && PHY_vars_eNB->lte_frame_parms.nb_antennas_tx==1 ){
|
||||||
|
write_output("chan21.m","ch21",eNB2UE[0]->ch[1],eNB2UE[0]->channel_length,1,8);
|
||||||
|
}
|
||||||
|
if (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1){
|
||||||
|
write_output("chan12.m","ch12",eNB2UE[0]->ch[1],eNB2UE[0]->channel_length,1,8);
|
||||||
|
if ( PHY_vars_eNB->lte_frame_parms.nb_antennas_rx>1){
|
||||||
|
write_output("chan21.m","ch21",eNB2UE[0]->ch[2],eNB2UE[0]->channel_length,1,8);
|
||||||
|
write_output("chan22.m","ch22",eNB2UE[0]->ch[3],eNB2UE[0]->channel_length,1,8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//channel estimates
|
||||||
sprintf(fname,"dlsch00_r%d.m",round);
|
sprintf(fname,"dlsch00_r%d.m",round);
|
||||||
sprintf(vname,"dl00_r%d",round);
|
sprintf(vname,"dl00_r%d",round);
|
||||||
write_output(fname,vname,
|
write_output(fname,vname,
|
||||||
@@ -3775,21 +3725,21 @@ n(tikz_fname,"w");
|
|||||||
sprintf(vname,"dl01_r%d",round);
|
sprintf(vname,"dl01_r%d",round);
|
||||||
write_output(fname,vname,
|
write_output(fname,vname,
|
||||||
&(PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[eNB_id][1][0]),
|
&(PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[eNB_id][1][0]),
|
||||||
PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb/2,1,1);
|
PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb,1,1);
|
||||||
}
|
}
|
||||||
if (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1) {
|
if (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1) {
|
||||||
sprintf(fname,"dlsch10_r%d.m",round);
|
sprintf(fname,"dlsch10_r%d.m",round);
|
||||||
sprintf(vname,"dl10_r%d",round);
|
sprintf(vname,"dl10_r%d",round);
|
||||||
write_output(fname,vname,
|
write_output(fname,vname,
|
||||||
&(PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[eNB_id][2][0]),
|
&(PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[eNB_id][2][0]),
|
||||||
PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb/2,1,1);
|
PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb,1,1);
|
||||||
}
|
}
|
||||||
if ((PHY_vars_UE->lte_frame_parms.nb_antennas_rx>1) && (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1)) {
|
if ((PHY_vars_UE->lte_frame_parms.nb_antennas_rx>1) && (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1)) {
|
||||||
sprintf(fname,"dlsch11_r%d.m",round);
|
sprintf(fname,"dlsch11_r%d.m",round);
|
||||||
sprintf(vname,"dl11_r%d",round);
|
sprintf(vname,"dl11_r%d",round);
|
||||||
write_output(fname,vname,
|
write_output(fname,vname,
|
||||||
&(PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[eNB_id][3][0]),
|
&(PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[eNB_id][3][0]),
|
||||||
PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb/2,1,1);
|
PHY_vars_UE->lte_frame_parms.ofdm_symbol_size*nsymb,1,1);
|
||||||
}
|
}
|
||||||
//pdsch_vars
|
//pdsch_vars
|
||||||
dump_dlsch2(PHY_vars_UE,eNB_id,coded_bits_per_codeword,round,PHY_vars_UE->dlsch_ue[0][0]->current_harq_pid);
|
dump_dlsch2(PHY_vars_UE,eNB_id,coded_bits_per_codeword,round,PHY_vars_UE->dlsch_ue[0][0]->current_harq_pid);
|
||||||
@@ -3800,6 +3750,14 @@ n(tikz_fname,"w");
|
|||||||
write_output("dlsch_UE_w.m","w",PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->w[0],3*(tbs+64),1,0);
|
write_output("dlsch_UE_w.m","w",PHY_vars_UE->dlsch_ue[0][0]->harq_processes[0]->w[0],3*(tbs+64),1,0);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
//pdcch_vars
|
||||||
|
write_output("pdcchF0_ext.m","pdcchF_ext", PHY_vars_UE->lte_ue_pdcch_vars[eNB_id]->rxdataF_ext[0],2*3*PHY_vars_UE->lte_frame_parms.ofdm_symbol_size,1,1);
|
||||||
|
write_output("pdcch00_ch0_ext.m","pdcch00_ch0_ext",PHY_vars_UE->lte_ue_pdcch_vars[eNB_id]->dl_ch_estimates_ext[0],300*3,1,1);
|
||||||
|
|
||||||
|
write_output("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",PHY_vars_UE->lte_ue_pdcch_vars[eNB_id]->rxdataF_comp[0],4*300,1,1);
|
||||||
|
write_output("pdcch_rxF_llr.m","pdcch_llr",PHY_vars_UE->lte_ue_pdcch_vars[eNB_id]->llr,2400,1,4);
|
||||||
|
|
||||||
|
|
||||||
if (round == 3) exit(-1);
|
if (round == 3) exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user