Commit 757f6697 authored by Raymond Knopp's avatar Raymond Knopp

addition of TX portion of pucch2a/b

parent d141195e
...@@ -523,29 +523,8 @@ void generate_pucch2x(int32_t **txdataF, ...@@ -523,29 +523,8 @@ void generate_pucch2x(int32_t **txdataF,
pucch2x_modulation(btilde,d,amp); pucch2x_modulation(btilde,d,amp);
// add extra symbol for 2a/2b // add extra symbol for 2a/2b
d[20]=0;
d[21]=0;
if (fmt==pucch_format2a)
d[20] = (B2 == 0) ? amp : -amp;
else if (fmt==pucch_format2b) {
switch (B2) {
case 0:
d[20] = amp;
break;
case 1:
d[21] = -amp;
break;
case 2:
d[21] = amp;
break;
case 3:
d[20] = -amp;
break;
default:
AssertFatal(1==0,"Illegal modulation symbol %d for PUCCH %s\n",B2,pucch_format_string[fmt]);
break;
}
}
#ifdef DEBUG_PUCCH_TX #ifdef DEBUG_PUCCH_TX
...@@ -584,10 +563,47 @@ void generate_pucch2x(int32_t **txdataF, ...@@ -584,10 +563,47 @@ void generate_pucch2x(int32_t **txdataF,
//LOG_I(PHY,"slot %d ofdm# %d ==> d[%d,%d] \n",ns,l,data_ind,n); //LOG_I(PHY,"slot %d ofdm# %d ==> d[%d,%d] \n",ns,l,data_ind,n);
} }
else { else {
if (l==1){
((int16_t *)&zptr[n])[0] = ((int32_t)amp*ref_re>>15);
((int16_t *)&zptr[n])[1] = ((int32_t)amp*ref_im>>15);
}
else if (fmt==pucch_format2a) {
d[20]=amp;
d[21]=amp;
if (B2 == 0) {
((int16_t *)&zptr[n])[0] = ((int32_t)amp*ref_re>>15); ((int16_t *)&zptr[n])[0] = ((int32_t)amp*ref_re>>15);
((int16_t *)&zptr[n])[1] = ((int32_t)amp*ref_im>>15); ((int16_t *)&zptr[n])[1] = ((int32_t)amp*ref_im>>15);
}
else {
((int16_t *)&zptr[n])[0] = -((int32_t)amp*ref_re>>15);
((int16_t *)&zptr[n])[1] = -((int32_t)amp*ref_im>>15);
}
//LOG_I(PHY,"slot %d ofdm# %d ==> dmrs[%d] \n",ns,l,n); //LOG_I(PHY,"slot %d ofdm# %d ==> dmrs[%d] \n",ns,l,n);
} }
else if (fmt==pucch_format2b) {
switch (B2) {
case 0: // 1
((int16_t *)&zptr[n])[0] = ((int32_t)amp*ref_re>>15);
((int16_t *)&zptr[n])[1] = ((int32_t)amp*ref_im>>15);
break;
case 1: // -j
((int16_t *)&zptr[n])[1] = ((int32_t)amp*ref_re>>15);
((int16_t *)&zptr[n])[0] = -((int32_t)amp*ref_im>>15);
break;
case 2: // -1
((int16_t *)&zptr[n])[0] = -((int32_t)amp*ref_re>>15);
((int16_t *)&zptr[n])[1] = -((int32_t)amp*ref_im>>15);
break;
case 3: // j
((int16_t *)&zptr[n])[1] = -((int32_t)amp*ref_re>>15);
((int16_t *)&zptr[n])[0] = ((int32_t)amp*ref_im>>15);
break;
default:
AssertFatal(1==0,"Illegal modulation symbol %d for PUCCH %s\n",B2,pucch_format_string[fmt]);
break;
}
}// fmt==pucch_format2b
}// l==1 || l==5
alpha_ind = (alpha_ind + n_cs)%12; alpha_ind = (alpha_ind + n_cs)%12;
} // n } // n
zptr+=12; zptr+=12;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment