Пример #1
0
// print usage/help message
void usage()
{
    printf("packetizer_example [options]\n");
    printf("  u/h   : print usage\n");
    printf("  n     : input data size (number of uncoded bytes): 8 default\n");
    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();
}
Пример #2
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");
}
Пример #3
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");
}
Пример #4
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");
}
Пример #6
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");
}
Пример #7
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();
}
Пример #8
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";
    }
}