From 382f56fbeabd0b3d4569d8f716f9686016a2c1e1 Mon Sep 17 00:00:00 2001 From: Andre Puschmann Date: Mon, 23 Nov 2020 22:02:31 +0100 Subject: [PATCH] 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 --- lib/examples/pdsch_enodeb.c | 11 +++++++++-- lib/examples/pdsch_ue.c | 9 ++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/examples/pdsch_enodeb.c b/lib/examples/pdsch_enodeb.c index 6146c4438..191ca8078 100644 --- a/lib/examples/pdsch_enodeb.c +++ b/lib/examples/pdsch_enodeb.c @@ -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) { diff --git a/lib/examples/pdsch_ue.c b/lib/examples/pdsch_ue.c index 4e8819365..1025c8d13 100644 --- a/lib/examples/pdsch_ue.c +++ b/lib/examples/pdsch_ue.c @@ -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;