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
master
Andre Puschmann 4 years ago
parent 755325fc3e
commit 382f56fbea

@ -76,6 +76,7 @@ static char* rf_dev = "";
static float rf_amp = 0.8, rf_gain = 60.0, rf_freq = 2400000000; static float rf_amp = 0.8, rf_gain = 60.0, rf_freq = 2400000000;
static bool enable_256qam = false; 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 bool null_file_sink = false;
static srslte_filesink_t fsink; 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-v [set srslte_verbose to debug, default none]\n");
printf("\t-s output file SNR [Default %f]\n", output_file_snr); 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 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("\n");
printf("\t*: See 3GPP 36.212 Table 5.3.3.1.5-4 for more information\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) static void parse_args(int argc, char** argv)
{ {
int opt; int opt;
while ((opt = getopt(argc, argv, "IadglfmoncpqvutxbwMsB")) != -1) { while ((opt = getopt(argc, argv, "IadglfmoncpqvutxbwMsBQ")) != -1) {
switch (opt) { switch (opt) {
case 'I': case 'I':
@ -207,6 +209,9 @@ static void parse_args(int argc, char** argv)
case 'q': case 'q':
enable_256qam ^= true; enable_256qam ^= true;
break; break;
case 'Q':
use_standard_lte_rate ^= true;
break;
default: default:
usage(argv[0]); usage(argv[0]);
exit(-1); exit(-1);
@ -708,6 +713,8 @@ int main(int argc, char** argv)
parse_args(argc, argv); parse_args(argc, argv);
srslte_use_standard_symbol_size(use_standard_lte_rate);
uint8_t mch_table[10]; uint8_t mch_table[10];
bzero(&mch_table[0], sizeof(uint8_t) * 10); bzero(&mch_table[0], sizeof(uint8_t) * 10);
if (mbsfn_area_id > -1) { if (mbsfn_area_id > -1) {

@ -109,6 +109,7 @@ typedef struct {
int sf_config; int sf_config;
int verbose; int verbose;
bool enable_256qam; bool enable_256qam;
bool use_standard_lte_rate;
} prog_args_t; } prog_args_t;
void args_default(prog_args_t* args) 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-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-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 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"); 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; int opt;
args_default(args); args_default(args);
while ((opt = getopt(argc, argv, "adAogliIpPcOCtdDFRqnvrfuUsSZyWMNBTG")) != -1) { while ((opt = getopt(argc, argv, "adAogliIpPcOCtdDFRqnvrfuUsSZyWMNBTGQ")) != -1) {
switch (opt) { switch (opt) {
case 'i': case 'i':
args->input_file_name = argv[optind]; args->input_file_name = argv[optind];
@ -308,6 +310,9 @@ void parse_args(prog_args_t* args, int argc, char** argv)
case 'q': case 'q':
args->enable_256qam ^= true; args->enable_256qam ^= true;
break; break;
case 'Q':
args->use_standard_lte_rate ^= true;
break;
default: default:
usage(args, argv[0]); usage(args, argv[0]);
exit(-1); exit(-1);
@ -396,6 +401,8 @@ int main(int argc, char** argv)
parse_args(&prog_args, argc, argv); parse_args(&prog_args, argc, argv);
srslte_use_standard_symbol_size(prog_args.use_standard_lte_rate);
#ifdef ENABLE_GUI #ifdef ENABLE_GUI
if (prog_args.mbsfn_area_id > -1) { if (prog_args.mbsfn_area_id > -1) {
enable_mbsfn_plot = true; enable_mbsfn_plot = true;

Loading…
Cancel
Save