// print usage/help message
void usage()
{
    printf("sandbox/modem_demodulate_arb_gentab [options]\n");
    printf("  u/h   : print usage\n");
    printf("  m     : input modulation scheme (arb64vt default)\n");
    printf("  r     : reference modulation scheme (qam16 default)\n");
    liquid_print_modulation_schemes();
    printf("  a     : alpha (reference scheme gain), default: 1.0\n");
}
Esempio n. 2
0
// print usage/help message
void usage()
{
    printf("modem.genplot [options]\n");
    printf("  u/h   : print usage\n");
    printf("  g     : specify gnuplot version\n");
    printf("  t     : specify gnuplot terminal (e.g. pdf, jpg, eps)\n");
    printf("  d     : input data filename\n");
    printf("  f     : output gnuplot filename\n");
    printf("  m     : modulation scheme (psk default)\n");
    liquid_print_modulation_schemes();
}
Esempio n. 3
0
void usage()
{
    printf("ofdm_ber_test [options]\n");
    printf("  h     : print usage\n");
    printf("  s     : signal-to-noise ratio [dB], default: 6.5\n");
    printf("  M     : number of subcarriers (must be even), default: 64\n");
    printf("  C     : cyclic prefix length, default: 16\n");
    printf("  m     : modulation scheme (bpsk default)\n");
    liquid_print_modulation_schemes();
    printf("  n     : number of OFDM symbols, default: 40\n");
    printf("  c     : number of channel taps, default: 1\n");
}
Esempio n. 4
0
// print usage/help message
void usage()
{
    printf("nco_pll_modem_example [options]\n");
    printf("  u/h   : print usage\n");
    printf("  s     : signal-to-noise ratio, default: 30dB\n");
    printf("  b     : pll bandwidth, default: 1e-3\n");
    printf("  n     : number of symbols, default: 256\n");
    printf("  P     : phase offset (radians), default: pi/10 ~ 0.3146\n");
    printf("  F     : frequency offset (radians), default: 0.001\n");
    printf("  m     : modulation scheme, default: qpsk\n");
    liquid_print_modulation_schemes();
}
Esempio n. 5
0
// print usage/help message
void usage()
{
    printf("simulate_per_test options:\n");
    printf("  u/h   : print usage\n");
    printf("  n     : number of decoded bytes, default: 1024\n");
    printf("  m     : modulation scheme, default: psk\n");
    liquid_print_modulation_schemes();
    printf("  c     : coding scheme (inner), default: h74\n");
    printf("  k     : coding scheme (outer), default: none\n");
    liquid_print_fec_schemes();
    printf("  S/H   : soft/hard decoding: default: hard\n");
}
Esempio n. 6
0
// print usage/help message
void usage()
{
    printf("Usage: modem_phase_error [OPTION]\n");
    printf("\n");
    printf("  u/h   : print usage\n");
    printf("  v/q   : verbose/quiet, default: verbose\n");
    printf("  n     : number of phase steps, default: 21\n");
    printf("  t     : number of trials, default: 1000\n");
    printf("  s     : SNR [dB], default: 12\n");
    printf("  P     : absolute phase offset [radians], default: pi/4\n");
    printf("  m     : modulation scheme, default: psk\n");
    liquid_print_modulation_schemes();
    printf("  o     : output filename, default: 'figures.gen/modem_phase_error[modscheme].dat'\n");
}
// print usage/help message
void usage()
{
    printf("Usage: eqlms_cccf_decisiondirected_example [OPTION]\n");
    printf("  h     : print help\n");
    printf("  n     : number of symbols, default: 500\n");
    printf("  s     : SNR [dB], default: 30\n");
    printf("  c     : number of channel filter taps (minimum: 1), default: 5\n");
    printf("  k     : samples/symbol, default: 2\n");
    printf("  m     : filter semi-length (symbols), default: 4\n");
    printf("  b     : filter excess bandwidth factor, default: 0.3\n");
    printf("  p     : equalizer semi-length (symbols), default: 3\n");
    printf("  u     : equalizer learning rate, default; 0.05\n");
    printf("  M     : modulation scheme (qpsk default)\n");
    liquid_print_modulation_schemes();
}
Esempio n. 8
0
void usage()
{
    printf("flexframesync_example [options]\n");
    printf("  u/h   : print usage\n");
    printf("  s     : signal-to-noise ratio [dB], default: 20\n");
    printf("  F     : carrier frequency offset, default: 0.01\n");
    printf("  n     : payload length [bytes], default: 120\n");
    printf("  m     : modulation scheme (qpsk default)\n");
    liquid_print_modulation_schemes();
    printf("  v     : data integrity check: crc32 default\n");
    liquid_print_crc_schemes();
    printf("  c     : coding scheme (inner): h74 default\n");
    printf("  k     : coding scheme (outer): none default\n");
    liquid_print_fec_schemes();
    printf("  d     : enable debugging\n");
}
Esempio n. 9
0
// print usage/help message
void usage()
{
    printf("generate_per_data options:\n");
    printf("  u/h   : print usage\n");
    printf("  v|q   : verbose|quiet, default: verbose\n");
    printf("  B|P   : simulate for BER|PER, default: PER\n");
    printf("  s|e   : estimate SNR|Eb/N0, default: SNR\n");
    printf("  S|H   : soft/hard decoding, default: hard\n");
    printf("  E     : target error rate, default: 0.05\n");
    printf("  n     : frame length [bytes], default: 1024\n");
    //printf("  m         : minimum number of errors\n");
    //printf("  t         : minimum number of trials\n");
    printf("  x     : maximum number of trials, default: 10,000 (BER) or 100 (PER)\n");
    printf("  c     : coding scheme: h74 default\n");
    liquid_print_fec_schemes();
    printf("  m     : modulation scheme (qpsk default)\n");
    liquid_print_modulation_schemes();
}
void usage()
{
    printf("ofdmflexframesync_example [options]\n");
    printf(" -h        : print usage\n");
    printf(" -s  <snr> : signal-to-noise ratio [dB], default: 20\n");
    printf(" -F <freq> : carrier frequency offset, default: 0.002\n");
    printf(" -M  <num> : number of subcarriers (must be even), default: 64\n");
    printf(" -C  <len> : cyclic prefix length, default: 16\n");
    printf(" -n  <len> : payload length [bytes], default: 120\n");
    printf(" -m  <mod> : modulation scheme (qpsk default)\n");
    liquid_print_modulation_schemes();
    printf(" -v  <crc> : data integrity check: crc32 default\n");
    liquid_print_crc_schemes();
    printf(" -c  <fec> : coding scheme (inner): h74 default\n");
    printf(" -k  <fec> : coding scheme (outer): none default\n");
    liquid_print_fec_schemes();
    printf(" -d       : enable debugging\n");
}
Esempio n. 11
0
void usage()
{
    printf("ofdmflexframesync_example [options]\n");
    printf("  u/h   : print usage\n");
    printf("  s     : signal-to-noise ratio [dB], default: 30\n");
    printf("  F     : carrier frequency offset, default: 0.002\n");
    printf("  M     : number of subcarriers (must be even), default: 64\n");
    printf("  C     : cyclic prefix length, default: 16\n");
    printf("  n     : payload length [bytes], default: 120\n");
    printf("  m     : modulation scheme (qpsk default)\n");
    liquid_print_modulation_schemes();
    printf("  v     : data integrity check: crc32 default\n");
    liquid_print_crc_schemes();
    printf("  c     : coding scheme (inner): h74 default\n");
    printf("  k     : coding scheme (outer): none default\n");
    liquid_print_fec_schemes();
    printf("  d     : enable debugging\n");
}
Esempio n. 12
0
void usage()
{
    printf("flexframesync_sim\n");
    printf("  Simulates the flexframesync object and observes the\n");
    printf("  probability of properly receiving a packet based on\n");
    printf("  the encoding scheme vs. SNR.\n");
    printf("options:\n");
    printf("  u/h   : print usage/help\n");
    printf("  o     : output filename\n");
    printf("  s     : SNR start [dB], -9\n");
    printf("  d     : SNR step [dB], 1.0\n");
    printf("  x     : SNR max [dB], 10\n");
    printf("  n     : number of trials, 800\n");
    printf("  f     : frame bytes (packet len), 16\n");
    printf("  m     : mod scheme, default: qpsk\n");
    liquid_print_modulation_schemes();
    printf("  c     : fec coding scheme (inner), default: none\n");
    printf("  k     : fec coding scheme (outer), default: none\n");
    liquid_print_fec_schemes();
}
Esempio n. 13
0
void usage()
{
    printf("ofdmflexframesync_sim\n");
    printf("  Simulates the ofdmflexframesync object and observes the\n");
    printf("  probability of properly receiving a packet based on\n");
    printf("  the encoding scheme vs. SNR.\n");
    printf("options:\n");
    printf("  u/h   : print usage/help\n");
    printf("  o     : output filename\n");
    printf("  s     : SNR start [dB], -5\n");
    printf("  d     : SNR step [dB], 1.0\n");
    printf("  x     : SNR max [dB], 10\n");
    printf("  n     : number of trials, 1000\n");
    printf("  f     : frame bytes (packet len), 256\n");
    printf("  M     : number of subcarriers (must be even), default: 64\n");
    printf("  C     : cyclic prefix length, default: 16\n");
    printf("  m     : mod scheme, default: qpsk\n");
    liquid_print_modulation_schemes();
    printf("  c     : fec coding scheme (inner), default: h128\n");
    printf("  k     : fec coding scheme (outer), default: none\n");
    liquid_print_fec_schemes();
}
void LiquidOfdmModComponent::initialize()
{
    // print capabilities of liquid
    if (debug_x) {
        liquid_print_modulation_schemes();
        liquid_print_fec_schemes();
        liquid_print_crc_schemes();
    }

    // initialize subcarrier allocation
    unsigned char p[noSubcarriers_x];
    ofdmframe_init_default_sctype(noSubcarriers_x, p);

    // create frame generator properties object and initialize to default
    ofdmflexframegenprops_s fgProps;
    ofdmflexframegenprops_init_default(&fgProps);
    modulation_scheme ms = liquid_getopt_str2mod(modulationScheme_x.c_str());
    fec_scheme fec0 = liquid_getopt_str2fec(fecZero_x.c_str());
    fec_scheme fec1 = liquid_getopt_str2fec(fecOne_x.c_str());
    crc_scheme check = liquid_getopt_str2crc(crcScheme_x.c_str());

    fgProps.mod_scheme = ms;
    fgProps.fec0 = fec0;
    fgProps.fec1 = fec1;
    fgProps.check = check;

    gain_factor_  = powf(10.0f, gain_x/20.0f);

    // create frame generator object
    try {
        frameGenerator_ = ofdmflexframegen_create(noSubcarriers_x, cyclicPrefixLength_x, taperLength_x, p, &fgProps);
        ofdmflexframegen_print(frameGenerator_);
    }
    catch(...)
    {
        LOG(LERROR) << "Unexpected exception caught during frame generator generation";
    }
}