Commit f53df352 authored by Raymond Knopp's avatar Raymond Knopp

added 23.04 Ms/s sampling option to lte-softmodem (under test)

parent 7f53f84c
...@@ -235,6 +235,7 @@ static int time_offset[4] = {0,0,0,0}; ...@@ -235,6 +235,7 @@ static int time_offset[4] = {0,0,0,0};
static char UE_flag=0; static char UE_flag=0;
//static uint8_t eNB_id=0,UE_id=0; //static uint8_t eNB_id=0,UE_id=0;
static char threequarter_fs=0;
uint32_t downlink_frequency[MAX_NUM_CCs][4]; uint32_t downlink_frequency[MAX_NUM_CCs][4];
int32_t uplink_frequency_offset[MAX_NUM_CCs][4]; int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
...@@ -909,13 +910,13 @@ void do_OFDM_mod_rt(int subframe,PHY_VARS_eNB *phy_vars_eNB) ...@@ -909,13 +910,13 @@ void do_OFDM_mod_rt(int subframe,PHY_VARS_eNB *phy_vars_eNB)
if (phy_vars_eNB->lte_frame_parms.Ncp == EXTENDED) { if (phy_vars_eNB->lte_frame_parms.Ncp == EXTENDED) {
PHY_ofdm_mod(&phy_vars_eNB->lte_eNB_common_vars.txdataF[0][aa][slot_offset_F], PHY_ofdm_mod(&phy_vars_eNB->lte_eNB_common_vars.txdataF[0][aa][slot_offset_F],
dummy_tx_b, dummy_tx_b,
phy_vars_eNB->lte_frame_parms.log2_symbol_size, phy_vars_eNB->lte_frame_parms.ofdm_symbol_size,
6, 6,
phy_vars_eNB->lte_frame_parms.nb_prefix_samples, phy_vars_eNB->lte_frame_parms.nb_prefix_samples,
CYCLIC_PREFIX); CYCLIC_PREFIX);
PHY_ofdm_mod(&phy_vars_eNB->lte_eNB_common_vars.txdataF[0][aa][slot_offset_F+slot_sizeF], PHY_ofdm_mod(&phy_vars_eNB->lte_eNB_common_vars.txdataF[0][aa][slot_offset_F+slot_sizeF],
dummy_tx_b+(phy_vars_eNB->lte_frame_parms.samples_per_tti>>1), dummy_tx_b+(phy_vars_eNB->lte_frame_parms.samples_per_tti>>1),
phy_vars_eNB->lte_frame_parms.log2_symbol_size, phy_vars_eNB->lte_frame_parms.ofdm_symbol_size,
6, 6,
phy_vars_eNB->lte_frame_parms.nb_prefix_samples, phy_vars_eNB->lte_frame_parms.nb_prefix_samples,
CYCLIC_PREFIX); CYCLIC_PREFIX);
...@@ -2060,7 +2061,7 @@ static void get_options (int argc, char **argv) ...@@ -2060,7 +2061,7 @@ static void get_options (int argc, char **argv)
{NULL, 0, NULL, 0} {NULL, 0, NULL, 0}
}; };
while ((c = getopt_long (argc, argv, "A:a:C:dK:g:F:G:hqO:m:SUVRM:r:P:Ws:t:Tx:",long_options,NULL)) != -1) { while ((c = getopt_long (argc, argv, "A:a:C:dEK:g:F:G:hqO:m:SUVRM:r:P:Ws:t:Tx:",long_options,NULL)) != -1) {
switch (c) { switch (c) {
case LONG_OPTION_MAXPOWER: case LONG_OPTION_MAXPOWER:
tx_max_power[0]=atoi(optarg); tx_max_power[0]=atoi(optarg);
...@@ -2162,6 +2163,10 @@ static void get_options (int argc, char **argv) ...@@ -2162,6 +2163,10 @@ static void get_options (int argc, char **argv)
printf("Running with XFORMS!\n"); printf("Running with XFORMS!\n");
#endif #endif
break; break;
case 'E':
threequarter_fs=1;
break;
case 'K': case 'K':
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
...@@ -2671,6 +2676,7 @@ int main( int argc, char **argv ) ...@@ -2671,6 +2676,7 @@ int main( int argc, char **argv )
frame_parms[CC_id]->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = 0; frame_parms[CC_id]->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = 0;
frame_parms[CC_id]->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = 0; frame_parms[CC_id]->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = 0;
frame_parms[CC_id]->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = 0; frame_parms[CC_id]->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = 0;
frame_parms[CC_id]->threequarter_fs = threequarter_fs;
init_ul_hopping(frame_parms[CC_id]); init_ul_hopping(frame_parms[CC_id]);
init_frame_parms(frame_parms[CC_id],1); init_frame_parms(frame_parms[CC_id],1);
// phy_init_top(frame_parms[CC_id]); // phy_init_top(frame_parms[CC_id]);
...@@ -2876,10 +2882,18 @@ int main( int argc, char **argv ) ...@@ -2876,10 +2882,18 @@ int main( int argc, char **argv )
for (card=0; card<MAX_CARDS; card++) { for (card=0; card<MAX_CARDS; card++) {
if(frame_parms[0]->N_RB_DL == 100) { if(frame_parms[0]->N_RB_DL == 100) {
openair0_cfg[card].sample_rate=30.72e6; if (frame_parms[0]->threequarter_fs) {
openair0_cfg[card].samples_per_frame = 307200; openair0_cfg[card].sample_rate=23.04e6;
openair0_cfg[card].tx_bw = 10e6; openair0_cfg[card].samples_per_frame = 230400;
openair0_cfg[card].rx_bw = 10e6; openair0_cfg[card].tx_bw = 10e6;
openair0_cfg[card].rx_bw = 10e6;
}
else {
openair0_cfg[card].sample_rate=30.72e6;
openair0_cfg[card].samples_per_frame = 307200;
openair0_cfg[card].tx_bw = 10e6;
openair0_cfg[card].rx_bw = 10e6;
}
} else if(frame_parms[0]->N_RB_DL == 50) { } else if(frame_parms[0]->N_RB_DL == 50) {
openair0_cfg[card].sample_rate=15.36e6; openair0_cfg[card].sample_rate=15.36e6;
openair0_cfg[card].samples_per_frame = 153600; openair0_cfg[card].samples_per_frame = 153600;
......
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