pdsch_{ue,enodeb}: add -Q switch to enable use of standard LTE rates

this is useful for RF equipment that doesn't support the shorter symbol
size we use by default, e.g. the N310
This commit is contained in:
Andre Puschmann 2020-11-23 22:02:31 +01:00
parent 755325fc3e
commit 382f56fbea
2 changed files with 17 additions and 3 deletions

View File

@ -75,7 +75,8 @@ static char* rf_args = "";
static char* rf_dev = "";
static float rf_amp = 0.8, rf_gain = 60.0, rf_freq = 2400000000;
static bool enable_256qam = false;
static float output_file_snr = +INFINITY;
static float output_file_snr = +INFINITY;
static bool use_standard_lte_rate = false;
static bool null_file_sink = false;
static srslte_filesink_t fsink;
@ -140,6 +141,7 @@ static void usage(char* prog)
printf("\t-v [set srslte_verbose to debug, default none]\n");
printf("\t-s output file SNR [Default %f]\n", output_file_snr);
printf("\t-q Enable/Disable 256QAM modulation (default %s)\n", enable_256qam ? "enabled" : "disabled");
printf("\t-Q Use standard LTE sample rates (default %s)\n", use_standard_lte_rate ? "enabled" : "disabled");
printf("\n");
printf("\t*: See 3GPP 36.212 Table 5.3.3.1.5-4 for more information\n");
}
@ -147,7 +149,7 @@ static void usage(char* prog)
static void parse_args(int argc, char** argv)
{
int opt;
while ((opt = getopt(argc, argv, "IadglfmoncpqvutxbwMsB")) != -1) {
while ((opt = getopt(argc, argv, "IadglfmoncpqvutxbwMsBQ")) != -1) {
switch (opt) {
case 'I':
@ -207,6 +209,9 @@ static void parse_args(int argc, char** argv)
case 'q':
enable_256qam ^= true;
break;
case 'Q':
use_standard_lte_rate ^= true;
break;
default:
usage(argv[0]);
exit(-1);
@ -708,6 +713,8 @@ int main(int argc, char** argv)
parse_args(argc, argv);
srslte_use_standard_symbol_size(use_standard_lte_rate);
uint8_t mch_table[10];
bzero(&mch_table[0], sizeof(uint8_t) * 10);
if (mbsfn_area_id > -1) {

View File

@ -109,6 +109,7 @@ typedef struct {
int sf_config;
int verbose;
bool enable_256qam;
bool use_standard_lte_rate;
} prog_args_t;
void args_default(prog_args_t* args)
@ -195,6 +196,7 @@ void usage(prog_args_t* args, char* prog)
printf("\t-M MBSFN area id [Default %d]\n", args->mbsfn_area_id);
printf("\t-N Non-MBSFN region [Default %d]\n", args->non_mbsfn_region);
printf("\t-q Enable/Disable 256QAM modulation (default %s)\n", args->enable_256qam ? "enabled" : "disabled");
printf("\t-Q Use standard LTE sample rates (default %s)\n", args->use_standard_lte_rate ? "enabled" : "disabled");
printf("\t-v [set srslte_verbose to debug, default none]\n");
}
@ -203,7 +205,7 @@ void parse_args(prog_args_t* args, int argc, char** argv)
int opt;
args_default(args);
while ((opt = getopt(argc, argv, "adAogliIpPcOCtdDFRqnvrfuUsSZyWMNBTG")) != -1) {
while ((opt = getopt(argc, argv, "adAogliIpPcOCtdDFRqnvrfuUsSZyWMNBTGQ")) != -1) {
switch (opt) {
case 'i':
args->input_file_name = argv[optind];
@ -308,6 +310,9 @@ void parse_args(prog_args_t* args, int argc, char** argv)
case 'q':
args->enable_256qam ^= true;
break;
case 'Q':
args->use_standard_lte_rate ^= true;
break;
default:
usage(args, argv[0]);
exit(-1);
@ -396,6 +401,8 @@ int main(int argc, char** argv)
parse_args(&prog_args, argc, argv);
srslte_use_standard_symbol_size(prog_args.use_standard_lte_rate);
#ifdef ENABLE_GUI
if (prog_args.mbsfn_area_id > -1) {
enable_mbsfn_plot = true;