make precoding tables local and remove them from common files
This commit is contained in:
@@ -305,113 +305,6 @@ const uint8_t table_5_1_2_1_1_5_time_dom_res_alloc_C_dmrs_typeA_pos3[16][4]={
|
|||||||
{1,0,2,6} // row index 16
|
{1,0,2,6} // row index 16
|
||||||
};
|
};
|
||||||
|
|
||||||
// TS 38.211 - Table 6.3.1.5-1: Precoding matrix W for single-layer transmission using two antenna ports, 'n' = -1 and 'o' = -j
|
|
||||||
const char table_38211_6_3_1_5_1[6][2][1] = {
|
|
||||||
{{'1'}, {'0'}}, // tpmi 0
|
|
||||||
{{'0'}, {'1'}}, // tpmi 1
|
|
||||||
{{'1'}, {'1'}}, // tpmi 2
|
|
||||||
{{'1'}, {'n'}}, // tpmi 3
|
|
||||||
{{'1'}, {'j'}}, // tpmi 4
|
|
||||||
{{'1'}, {'o'}} // tpmi 5
|
|
||||||
};
|
|
||||||
|
|
||||||
// TS 38.211 - Table 6.3.1.5-2: Precoding matrix W for single-layer transmission using four antenna ports with transform precoding enabled, 'n' = -1 and 'o' = -j
|
|
||||||
const char table_38211_6_3_1_5_2[28][4][1] = {
|
|
||||||
{{'1'}, {'0'}, {'0'}, {'0'}}, // tpmi 0
|
|
||||||
{{'0'}, {'1'}, {'0'}, {'0'}}, // tpmi 1
|
|
||||||
{{'0'}, {'0'}, {'1'}, {'0'}}, // tpmi 2
|
|
||||||
{{'0'}, {'0'}, {'0'}, {'1'}}, // tpmi 3
|
|
||||||
{{'1'}, {'0'}, {'1'}, {'0'}}, // tpmi 4
|
|
||||||
{{'1'}, {'0'}, {'n'}, {'0'}}, // tpmi 5
|
|
||||||
{{'1'}, {'0'}, {'j'}, {'0'}}, // tpmi 6
|
|
||||||
{{'1'}, {'0'}, {'o'}, {'0'}}, // tpmi 7
|
|
||||||
{{'0'}, {'1'}, {'0'}, {'1'}}, // tpmi 8
|
|
||||||
{{'0'}, {'1'}, {'0'}, {'n'}}, // tpmi 9
|
|
||||||
{{'0'}, {'1'}, {'0'}, {'j'}}, // tpmi 10
|
|
||||||
{{'0'}, {'1'}, {'0'}, {'o'}}, // tpmi 11
|
|
||||||
{{'1'}, {'1'}, {'1'}, {'n'}}, // tpmi 12
|
|
||||||
{{'1'}, {'1'}, {'j'}, {'j'}}, // tpmi 13
|
|
||||||
{{'1'}, {'1'}, {'n'}, {'1'}}, // tpmi 14
|
|
||||||
{{'1'}, {'1'}, {'o'}, {'o'}}, // tpmi 15
|
|
||||||
{{'1'}, {'j'}, {'1'}, {'j'}}, // tpmi 16
|
|
||||||
{{'1'}, {'j'}, {'j'}, {'1'}}, // tpmi 17
|
|
||||||
{{'1'}, {'j'}, {'n'}, {'o'}}, // tpmi 18
|
|
||||||
{{'1'}, {'j'}, {'o'}, {'n'}}, // tpmi 19
|
|
||||||
{{'1'}, {'n'}, {'1'}, {'1'}}, // tpmi 20
|
|
||||||
{{'1'}, {'n'}, {'j'}, {'o'}}, // tpmi 21
|
|
||||||
{{'1'}, {'n'}, {'n'}, {'n'}}, // tpmi 22
|
|
||||||
{{'1'}, {'n'}, {'o'}, {'j'}}, // tpmi 23
|
|
||||||
{{'1'}, {'o'}, {'1'}, {'o'}}, // tpmi 24
|
|
||||||
{{'1'}, {'o'}, {'j'}, {'n'}}, // tpmi 25
|
|
||||||
{{'1'}, {'o'}, {'n'}, {'j'}}, // tpmi 26
|
|
||||||
{{'1'}, {'o'}, {'o'}, {'1'}} // tpmi 27
|
|
||||||
};
|
|
||||||
|
|
||||||
// TS 38.211 - Table 6.3.1.5-3: Precoding matrix W for single-layer transmission using four antenna ports with transform precoding disabled, 'n' = -1 and 'o' = -j
|
|
||||||
const char table_38211_6_3_1_5_3[28][4][1] = {
|
|
||||||
{{'1'}, {'0'}, {'0'}, {'0'}}, // tpmi 0
|
|
||||||
{{'0'}, {'1'}, {'0'}, {'0'}}, // tpmi 1
|
|
||||||
{{'0'}, {'0'}, {'1'}, {'0'}}, // tpmi 2
|
|
||||||
{{'0'}, {'0'}, {'0'}, {'1'}}, // tpmi 3
|
|
||||||
{{'1'}, {'0'}, {'1'}, {'0'}}, // tpmi 4
|
|
||||||
{{'1'}, {'0'}, {'n'}, {'0'}}, // tpmi 5
|
|
||||||
{{'1'}, {'0'}, {'j'}, {'0'}}, // tpmi 6
|
|
||||||
{{'1'}, {'0'}, {'o'}, {'0'}}, // tpmi 7
|
|
||||||
{{'0'}, {'1'}, {'0'}, {'1'}}, // tpmi 8
|
|
||||||
{{'0'}, {'1'}, {'0'}, {'n'}}, // tpmi 9
|
|
||||||
{{'0'}, {'1'}, {'0'}, {'j'}}, // tpmi 10
|
|
||||||
{{'0'}, {'1'}, {'0'}, {'o'}}, // tpmi 11
|
|
||||||
{{'1'}, {'1'}, {'1'}, {'1'}}, // tpmi 12
|
|
||||||
{{'1'}, {'1'}, {'j'}, {'j'}}, // tpmi 13
|
|
||||||
{{'1'}, {'1'}, {'n'}, {'n'}}, // tpmi 14
|
|
||||||
{{'1'}, {'1'}, {'o'}, {'o'}}, // tpmi 15
|
|
||||||
{{'1'}, {'j'}, {'1'}, {'j'}}, // tpmi 16
|
|
||||||
{{'1'}, {'j'}, {'j'}, {'n'}}, // tpmi 17
|
|
||||||
{{'1'}, {'j'}, {'n'}, {'o'}}, // tpmi 18
|
|
||||||
{{'1'}, {'j'}, {'o'}, {'1'}}, // tpmi 19
|
|
||||||
{{'1'}, {'n'}, {'1'}, {'n'}}, // tpmi 20
|
|
||||||
{{'1'}, {'n'}, {'j'}, {'o'}}, // tpmi 21
|
|
||||||
{{'1'}, {'n'}, {'n'}, {'1'}}, // tpmi 22
|
|
||||||
{{'1'}, {'n'}, {'o'}, {'j'}}, // tpmi 23
|
|
||||||
{{'1'}, {'o'}, {'1'}, {'o'}}, // tpmi 24
|
|
||||||
{{'1'}, {'o'}, {'j'}, {'1'}}, // tpmi 25
|
|
||||||
{{'1'}, {'o'}, {'n'}, {'j'}}, // tpmi 26
|
|
||||||
{{'1'}, {'o'}, {'o'}, {'n'}} // tpmi 27
|
|
||||||
};
|
|
||||||
|
|
||||||
// TS 38.211 - Table 6.3.1.5-4: Precoding matrix W for two-layer transmission using two antenna ports, 'n' = -1 and 'o' = -j
|
|
||||||
const char table_38211_6_3_1_5_4[3][2][2] = {
|
|
||||||
{{'1', '0'}, {'0', '1'}}, // tpmi 0
|
|
||||||
{{'1', '1'}, {'1', 'n'}}, // tpmi 1
|
|
||||||
{{'1', '1'}, {'j', 'o'}} // tpmi 2
|
|
||||||
};
|
|
||||||
|
|
||||||
// TS 38.211 - Table 6.3.1.5-5: Precoding matrix W for two-layer transmission using four antenna ports, 'n' = -1 and 'o' = -j
|
|
||||||
const char table_38211_6_3_1_5_5[22][4][2] = {
|
|
||||||
{{'1', '0'}, {'0', '1'}, {'0', '0'}, {'0', '0'}}, // tpmi 0
|
|
||||||
{{'1', '0'}, {'0', '0'}, {'0', '1'}, {'0', '0'}}, // tpmi 1
|
|
||||||
{{'1', '0'}, {'0', '0'}, {'0', '0'}, {'0', '1'}}, // tpmi 2
|
|
||||||
{{'0', '0'}, {'1', '0'}, {'0', '1'}, {'0', '0'}}, // tpmi 3
|
|
||||||
{{'0', '0'}, {'1', '0'}, {'0', '0'}, {'0', '1'}}, // tpmi 4
|
|
||||||
{{'0', '0'}, {'0', '0'}, {'1', '0'}, {'0', '1'}}, // tpmi 5
|
|
||||||
{{'1', '0'}, {'0', '1'}, {'1', '0'}, {'0', 'o'}}, // tpmi 6
|
|
||||||
{{'1', '0'}, {'0', '1'}, {'1', '0'}, {'0', 'j'}}, // tpmi 7
|
|
||||||
{{'1', '0'}, {'0', '1'}, {'o', '0'}, {'0', '1'}}, // tpmi 8
|
|
||||||
{{'1', '0'}, {'0', '1'}, {'o', '0'}, {'0', 'n'}}, // tpmi 9
|
|
||||||
{{'1', '0'}, {'0', '1'}, {'n', '0'}, {'0', 'o'}}, // tpmi 10
|
|
||||||
{{'1', '0'}, {'0', '1'}, {'n', '0'}, {'0', 'j'}}, // tpmi 11
|
|
||||||
{{'1', '0'}, {'0', '1'}, {'j', '0'}, {'0', '1'}}, // tpmi 12
|
|
||||||
{{'1', '0'}, {'0', '1'}, {'j', '0'}, {'0', 'n'}}, // tpmi 13
|
|
||||||
{{'1', '1'}, {'1', '1'}, {'1', 'n'}, {'1', 'n'}}, // tpmi 14
|
|
||||||
{{'1', '1'}, {'1', '1'}, {'j', 'o'}, {'j', 'o'}}, // tpmi 15
|
|
||||||
{{'1', '1'}, {'j', 'j'}, {'1', 'n'}, {'j', 'o'}}, // tpmi 16
|
|
||||||
{{'1', '1'}, {'j', 'j'}, {'j', 'o'}, {'n', '1'}}, // tpmi 17
|
|
||||||
{{'1', '1'}, {'n', 'n'}, {'1', 'n'}, {'n', '1'}}, // tpmi 18
|
|
||||||
{{'1', '1'}, {'n', 'n'}, {'j', 'o'}, {'o', 'j'}}, // tpmi 19
|
|
||||||
{{'1', '1'}, {'o', 'o'}, {'1', 'n'}, {'o', 'j'}}, // tpmi 20
|
|
||||||
{{'1', '1'}, {'o', 'o'}, {'j', 'o'}, {'1', 'n'}} // tpmi 21
|
|
||||||
};
|
|
||||||
|
|
||||||
// Default PUSCH time domain resource allocation tables from 38.214
|
// Default PUSCH time domain resource allocation tables from 38.214
|
||||||
const uint8_t table_6_1_2_1_1_2[16][4] = {
|
const uint8_t table_6_1_2_1_1_2[16][4] = {
|
||||||
{0, 0, 0, 14}, // row index 1
|
{0, 0, 0, 14}, // row index 1
|
||||||
|
|||||||
@@ -44,9 +44,4 @@ extern uint8_t nfapi_mode;
|
|||||||
extern const uint32_t NR_SHORT_BSR_TABLE[NR_SHORT_BSR_TABLE_SIZE];
|
extern const uint32_t NR_SHORT_BSR_TABLE[NR_SHORT_BSR_TABLE_SIZE];
|
||||||
extern const uint32_t NR_LONG_BSR_TABLE[NR_LONG_BSR_TABLE_SIZE];
|
extern const uint32_t NR_LONG_BSR_TABLE[NR_LONG_BSR_TABLE_SIZE];
|
||||||
|
|
||||||
extern const char table_38211_6_3_1_5_1[6][2][1];
|
|
||||||
extern const char table_38211_6_3_1_5_2[28][4][1];
|
|
||||||
extern const char table_38211_6_3_1_5_3[28][4][1];
|
|
||||||
extern const char table_38211_6_3_1_5_4[3][2][2];
|
|
||||||
extern const char table_38211_6_3_1_5_5[22][4][2];
|
|
||||||
#endif //DEF_H
|
#endif //DEF_H
|
||||||
|
|||||||
@@ -1237,6 +1237,113 @@ static uint8_t get_max_tpmi(const NR_PUSCH_Config_t *pusch_Config,
|
|||||||
return max_tpmi;
|
return max_tpmi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TS 38.211 - Table 6.3.1.5-1: Precoding matrix W for single-layer transmission using two antenna ports, 'n' = -1 and 'o' = -j
|
||||||
|
const char table_38211_6_3_1_5_1[6][2][1] = {
|
||||||
|
{{'1'}, {'0'}}, // tpmi 0
|
||||||
|
{{'0'}, {'1'}}, // tpmi 1
|
||||||
|
{{'1'}, {'1'}}, // tpmi 2
|
||||||
|
{{'1'}, {'n'}}, // tpmi 3
|
||||||
|
{{'1'}, {'j'}}, // tpmi 4
|
||||||
|
{{'1'}, {'o'}} // tpmi 5
|
||||||
|
};
|
||||||
|
|
||||||
|
// TS 38.211 - Table 6.3.1.5-2: Precoding matrix W for single-layer transmission using four antenna ports with transform precoding enabled, 'n' = -1 and 'o' = -j
|
||||||
|
const char table_38211_6_3_1_5_2[28][4][1] = {
|
||||||
|
{{'1'}, {'0'}, {'0'}, {'0'}}, // tpmi 0
|
||||||
|
{{'0'}, {'1'}, {'0'}, {'0'}}, // tpmi 1
|
||||||
|
{{'0'}, {'0'}, {'1'}, {'0'}}, // tpmi 2
|
||||||
|
{{'0'}, {'0'}, {'0'}, {'1'}}, // tpmi 3
|
||||||
|
{{'1'}, {'0'}, {'1'}, {'0'}}, // tpmi 4
|
||||||
|
{{'1'}, {'0'}, {'n'}, {'0'}}, // tpmi 5
|
||||||
|
{{'1'}, {'0'}, {'j'}, {'0'}}, // tpmi 6
|
||||||
|
{{'1'}, {'0'}, {'o'}, {'0'}}, // tpmi 7
|
||||||
|
{{'0'}, {'1'}, {'0'}, {'1'}}, // tpmi 8
|
||||||
|
{{'0'}, {'1'}, {'0'}, {'n'}}, // tpmi 9
|
||||||
|
{{'0'}, {'1'}, {'0'}, {'j'}}, // tpmi 10
|
||||||
|
{{'0'}, {'1'}, {'0'}, {'o'}}, // tpmi 11
|
||||||
|
{{'1'}, {'1'}, {'1'}, {'n'}}, // tpmi 12
|
||||||
|
{{'1'}, {'1'}, {'j'}, {'j'}}, // tpmi 13
|
||||||
|
{{'1'}, {'1'}, {'n'}, {'1'}}, // tpmi 14
|
||||||
|
{{'1'}, {'1'}, {'o'}, {'o'}}, // tpmi 15
|
||||||
|
{{'1'}, {'j'}, {'1'}, {'j'}}, // tpmi 16
|
||||||
|
{{'1'}, {'j'}, {'j'}, {'1'}}, // tpmi 17
|
||||||
|
{{'1'}, {'j'}, {'n'}, {'o'}}, // tpmi 18
|
||||||
|
{{'1'}, {'j'}, {'o'}, {'n'}}, // tpmi 19
|
||||||
|
{{'1'}, {'n'}, {'1'}, {'1'}}, // tpmi 20
|
||||||
|
{{'1'}, {'n'}, {'j'}, {'o'}}, // tpmi 21
|
||||||
|
{{'1'}, {'n'}, {'n'}, {'n'}}, // tpmi 22
|
||||||
|
{{'1'}, {'n'}, {'o'}, {'j'}}, // tpmi 23
|
||||||
|
{{'1'}, {'o'}, {'1'}, {'o'}}, // tpmi 24
|
||||||
|
{{'1'}, {'o'}, {'j'}, {'n'}}, // tpmi 25
|
||||||
|
{{'1'}, {'o'}, {'n'}, {'j'}}, // tpmi 26
|
||||||
|
{{'1'}, {'o'}, {'o'}, {'1'}} // tpmi 27
|
||||||
|
};
|
||||||
|
|
||||||
|
// TS 38.211 - Table 6.3.1.5-3: Precoding matrix W for single-layer transmission using four antenna ports with transform precoding disabled, 'n' = -1 and 'o' = -j
|
||||||
|
const char table_38211_6_3_1_5_3[28][4][1] = {
|
||||||
|
{{'1'}, {'0'}, {'0'}, {'0'}}, // tpmi 0
|
||||||
|
{{'0'}, {'1'}, {'0'}, {'0'}}, // tpmi 1
|
||||||
|
{{'0'}, {'0'}, {'1'}, {'0'}}, // tpmi 2
|
||||||
|
{{'0'}, {'0'}, {'0'}, {'1'}}, // tpmi 3
|
||||||
|
{{'1'}, {'0'}, {'1'}, {'0'}}, // tpmi 4
|
||||||
|
{{'1'}, {'0'}, {'n'}, {'0'}}, // tpmi 5
|
||||||
|
{{'1'}, {'0'}, {'j'}, {'0'}}, // tpmi 6
|
||||||
|
{{'1'}, {'0'}, {'o'}, {'0'}}, // tpmi 7
|
||||||
|
{{'0'}, {'1'}, {'0'}, {'1'}}, // tpmi 8
|
||||||
|
{{'0'}, {'1'}, {'0'}, {'n'}}, // tpmi 9
|
||||||
|
{{'0'}, {'1'}, {'0'}, {'j'}}, // tpmi 10
|
||||||
|
{{'0'}, {'1'}, {'0'}, {'o'}}, // tpmi 11
|
||||||
|
{{'1'}, {'1'}, {'1'}, {'1'}}, // tpmi 12
|
||||||
|
{{'1'}, {'1'}, {'j'}, {'j'}}, // tpmi 13
|
||||||
|
{{'1'}, {'1'}, {'n'}, {'n'}}, // tpmi 14
|
||||||
|
{{'1'}, {'1'}, {'o'}, {'o'}}, // tpmi 15
|
||||||
|
{{'1'}, {'j'}, {'1'}, {'j'}}, // tpmi 16
|
||||||
|
{{'1'}, {'j'}, {'j'}, {'n'}}, // tpmi 17
|
||||||
|
{{'1'}, {'j'}, {'n'}, {'o'}}, // tpmi 18
|
||||||
|
{{'1'}, {'j'}, {'o'}, {'1'}}, // tpmi 19
|
||||||
|
{{'1'}, {'n'}, {'1'}, {'n'}}, // tpmi 20
|
||||||
|
{{'1'}, {'n'}, {'j'}, {'o'}}, // tpmi 21
|
||||||
|
{{'1'}, {'n'}, {'n'}, {'1'}}, // tpmi 22
|
||||||
|
{{'1'}, {'n'}, {'o'}, {'j'}}, // tpmi 23
|
||||||
|
{{'1'}, {'o'}, {'1'}, {'o'}}, // tpmi 24
|
||||||
|
{{'1'}, {'o'}, {'j'}, {'1'}}, // tpmi 25
|
||||||
|
{{'1'}, {'o'}, {'n'}, {'j'}}, // tpmi 26
|
||||||
|
{{'1'}, {'o'}, {'o'}, {'n'}} // tpmi 27
|
||||||
|
};
|
||||||
|
|
||||||
|
// TS 38.211 - Table 6.3.1.5-4: Precoding matrix W for two-layer transmission using two antenna ports, 'n' = -1 and 'o' = -j
|
||||||
|
const char table_38211_6_3_1_5_4[3][2][2] = {
|
||||||
|
{{'1', '0'}, {'0', '1'}}, // tpmi 0
|
||||||
|
{{'1', '1'}, {'1', 'n'}}, // tpmi 1
|
||||||
|
{{'1', '1'}, {'j', 'o'}} // tpmi 2
|
||||||
|
};
|
||||||
|
|
||||||
|
// TS 38.211 - Table 6.3.1.5-5: Precoding matrix W for two-layer transmission using four antenna ports, 'n' = -1 and 'o' = -j
|
||||||
|
const char table_38211_6_3_1_5_5[22][4][2] = {
|
||||||
|
{{'1', '0'}, {'0', '1'}, {'0', '0'}, {'0', '0'}}, // tpmi 0
|
||||||
|
{{'1', '0'}, {'0', '0'}, {'0', '1'}, {'0', '0'}}, // tpmi 1
|
||||||
|
{{'1', '0'}, {'0', '0'}, {'0', '0'}, {'0', '1'}}, // tpmi 2
|
||||||
|
{{'0', '0'}, {'1', '0'}, {'0', '1'}, {'0', '0'}}, // tpmi 3
|
||||||
|
{{'0', '0'}, {'1', '0'}, {'0', '0'}, {'0', '1'}}, // tpmi 4
|
||||||
|
{{'0', '0'}, {'0', '0'}, {'1', '0'}, {'0', '1'}}, // tpmi 5
|
||||||
|
{{'1', '0'}, {'0', '1'}, {'1', '0'}, {'0', 'o'}}, // tpmi 6
|
||||||
|
{{'1', '0'}, {'0', '1'}, {'1', '0'}, {'0', 'j'}}, // tpmi 7
|
||||||
|
{{'1', '0'}, {'0', '1'}, {'o', '0'}, {'0', '1'}}, // tpmi 8
|
||||||
|
{{'1', '0'}, {'0', '1'}, {'o', '0'}, {'0', 'n'}}, // tpmi 9
|
||||||
|
{{'1', '0'}, {'0', '1'}, {'n', '0'}, {'0', 'o'}}, // tpmi 10
|
||||||
|
{{'1', '0'}, {'0', '1'}, {'n', '0'}, {'0', 'j'}}, // tpmi 11
|
||||||
|
{{'1', '0'}, {'0', '1'}, {'j', '0'}, {'0', '1'}}, // tpmi 12
|
||||||
|
{{'1', '0'}, {'0', '1'}, {'j', '0'}, {'0', 'n'}}, // tpmi 13
|
||||||
|
{{'1', '1'}, {'1', '1'}, {'1', 'n'}, {'1', 'n'}}, // tpmi 14
|
||||||
|
{{'1', '1'}, {'1', '1'}, {'j', 'o'}, {'j', 'o'}}, // tpmi 15
|
||||||
|
{{'1', '1'}, {'j', 'j'}, {'1', 'n'}, {'j', 'o'}}, // tpmi 16
|
||||||
|
{{'1', '1'}, {'j', 'j'}, {'j', 'o'}, {'n', '1'}}, // tpmi 17
|
||||||
|
{{'1', '1'}, {'n', 'n'}, {'1', 'n'}, {'n', '1'}}, // tpmi 18
|
||||||
|
{{'1', '1'}, {'n', 'n'}, {'j', 'o'}, {'o', 'j'}}, // tpmi 19
|
||||||
|
{{'1', '1'}, {'o', 'o'}, {'1', 'n'}, {'o', 'j'}}, // tpmi 20
|
||||||
|
{{'1', '1'}, {'o', 'o'}, {'j', 'o'}, {'1', 'n'}} // tpmi 21
|
||||||
|
};
|
||||||
|
|
||||||
static void get_precoder_matrix_coef(char *w,
|
static void get_precoder_matrix_coef(char *w,
|
||||||
const uint8_t ul_ri,
|
const uint8_t ul_ri,
|
||||||
const uint16_t num_ue_srs_ports,
|
const uint16_t num_ue_srs_ports,
|
||||||
|
|||||||
Reference in New Issue
Block a user