GNU Radio Manual and C++ API Reference  3.7.13.4
The Free & Open Software Radio Ecosystem
gr::digital Namespace Reference

Classes

class  additive_scrambler_bb
 Scramble an input stream using an LFSR. More...
 
class  binary_slicer_fb
 Slice float binary symbol producing 1 bit output. More...
 
class  burst_shaper_cc
 Burst shaper block for applying burst padding and ramping. More...
 
class  burst_shaper_ff
 Burst shaper block for applying burst padding and ramping. More...
 
class  chunks_to_symbols_bc
 Map a stream of unpacked symbol indexes to stream of float or complex constellation points in D dimensions (D = 1 by default) More...
 
class  chunks_to_symbols_bf
 Map a stream of unpacked symbol indexes to stream of float or complex constellation points in D dimensions (D = 1 by default) More...
 
class  chunks_to_symbols_ic
 Map a stream of unpacked symbol indexes to stream of float or complex constellation points in D dimensions (D = 1 by default) More...
 
class  chunks_to_symbols_if
 Map a stream of unpacked symbol indexes to stream of float or complex constellation points in D dimensions (D = 1 by default) More...
 
class  chunks_to_symbols_sc
 Map a stream of unpacked symbol indexes to stream of float or complex constellation points in D dimensions (D = 1 by default) More...
 
class  chunks_to_symbols_sf
 Map a stream of unpacked symbol indexes to stream of float or complex constellation points in D dimensions (D = 1 by default) More...
 
class  clock_recovery_mm_cc
 Mueller and Müller (M&M) based clock recovery block with complex input, complex output. More...
 
class  clock_recovery_mm_ff
 Mueller and Müller (M&M) based clock recovery block with float input, float output. More...
 
class  cma_equalizer_cc
 Implements constant modulus adaptive filter on complex stream. More...
 
class  constellation
 An abstracted constellation object. More...
 
class  constellation_16qam
 Digital constellation for 16qam. More...
 
class  constellation_8psk
 Digital constellation for 8PSK. More...
 
class  constellation_8psk_natural
 Digital constellation for natually mapped 8PSK. More...
 
class  constellation_bpsk
 Digital constellation for BPSK . More...
 
class  constellation_calcdist
 Calculate Euclidian distance for any constellation. More...
 
class  constellation_decoder_cb
 Constellation Decoder. More...
 
class  constellation_dqpsk
 Digital constellation for DQPSK. More...
 
class  constellation_expl_rect
 Rectangular digital constellation. More...
 
class  constellation_psk
 constellation_pskConstellation space is divided into pie slices sectors. More...
 
class  constellation_qpsk
 Digital constellation for QPSK. More...
 
class  constellation_receiver_cb
 This block makes hard decisions about the received symbols (using a constellation object) and also fine tunes phase synchronization. More...
 
class  constellation_rect
 Rectangular digital constellationOnly implemented for 1-(complex)dimensional constellation. More...
 
class  constellation_sector
 Sectorized digital constellation. More...
 
class  constellation_soft_decoder_cf
 Constellation Decoder. More...
 
class  corr_est_cc
 Correlate stream with a pre-defined sequence and estimate peak. More...
 
class  correlate_access_code_bb
 Examine input for specified access code, one bit at a time. More...
 
class  correlate_access_code_bb_ts
 Examine input for specified access code, one bit at a time. More...
 
class  correlate_access_code_ff_ts
 Examine input for specified access code, one bit at a time. More...
 
class  correlate_access_code_tag_bb
 Examine input for specified access code, one bit at a time. More...
 
class  correlate_access_code_tag_ff
 Examine input for specified access code, one bit at a time. More...
 
class  correlate_and_sync_cc
 Correlate to a preamble and send time/phase sync info. More...
 
class  costas_loop_cc
 A Costas loop carrier recovery module. More...
 
class  cpmmod_bc
 Generic CPM modulator. More...
 
class  crc32_async_bb
 Byte-stream CRC block for async messages. More...
 
class  crc32_bb
 Byte-stream CRC block. More...
 
class  descrambler_bb
 Descramber an input stream using an LFSR. More...
 
class  diff_decoder_bb
 Differential encoder: y[0] = (x[0] - x[-1]) % M. More...
 
class  diff_encoder_bb
 Differential decoder: y[0] = (x[0] + y[-1]) % M. More...
 
class  diff_phasor_cc
 Differential decoding based on phase change. More...
 
class  fll_band_edge_cc
 Frequency Lock Loop using band-edge filters. More...
 
class  framer_sink_1
 Given a stream of bits and access_code flags, assemble packets. More...
 
class  glfsr
 Galois Linear Feedback Shift Register using specified polynomial mask. More...
 
class  glfsr_source_b
 Galois LFSR pseudo-random source. More...
 
class  glfsr_source_f
 Galois LFSR pseudo-random source generating float outputs -1.0 - 1.0. More...
 
class  hdlc_deframer_bp
 HDLC deframer which takes in unpacked bits, and outputs PDU binary blobs. Frames which do not pass CRC are rejected. More...
 
class  hdlc_framer_pb
 HDLC framer which takes in PMT binary blobs and outputs HDLC frames as unpacked bits, with CRC and bit stuffing added. The first sample of the frame is tagged with the tag frame_tag_name and includes a length field for tagged_stream use. More...
 
class  header_buffer
 Helper class for handling payload headers. More...
 
class  header_format_base
 Base header formatter class. More...
 
class  header_format_counter
 Header formatter that adds the payload bits/symbol format and a packet number counter. More...
 
class  header_format_crc
 Header formatter that includes the payload length, packet number, and a CRC check on the header. More...
 
class  header_format_default
 Default header formatter for PDU formatting. More...
 
class  header_format_ofdm
 Header formatter that includes the payload length, packet number, and a CRC check on the header. More...
 
class  header_payload_demux
 Header/Payload demuxer (HPD). More...
 
class  kurtotic_equalizer_cc
 Implements a kurtosis-based adaptive equalizer on complex stream. More...
 
class  lfsr
 Fibonacci Linear Feedback Shift Register using specified polynomial mask. More...
 
class  lms_dd_equalizer_cc
 Least-Mean-Square Decision Directed Equalizer (complex in/out) More...
 
class  map_bb
 output[i] = map[input[i]] More...
 
class  mpsk_receiver_cc
 This block takes care of receiving M-PSK modulated signals through phase, frequency, and symbol synchronization. More...
 
class  mpsk_snr_est
 A parent class for SNR estimators, specifically for M-PSK signals in AWGN channels. More...
 
class  mpsk_snr_est_cc
 A block for computing SNR of a signal. More...
 
class  mpsk_snr_est_m2m4
 SNR Estimator using 2nd and 4th-order moments. More...
 
class  mpsk_snr_est_simple
 SNR Estimator using simple mean/variance estimates. More...
 
class  mpsk_snr_est_skew
 SNR Estimator using skewness correction. More...
 
class  mpsk_snr_est_svr
 Signal-to-Variation Ratio SNR Estimator. More...
 
class  msk_timing_recovery_cc
 MSK/GMSK timing recoveryThis block performs timing synchronization on CPM modulations using a fourth-order nonlinearity feedback method which is non-data-aided. The block does not require prior phase synchronization but is relatively sensitive to frequency offset (keep offset to 0.1x symbol rate). More...
 
class  ofdm_carrier_allocator_cvc
 Create frequency domain OFDM symbols from complex values, add pilots. More...
 
class  ofdm_chanest_vcvc
 Estimate channel and coarse frequency offset for OFDM from preamblesInput: OFDM symbols (in frequency domain). The first one (or two) symbols are expected to be synchronisation symbols, which are used to estimate the coarse freq offset and the initial equalizer taps (these symbols are removed from the stream). The following n_data_symbols are passed through unmodified (the actual equalisation must be done elsewhere). Output: The data symbols, without the synchronisation symbols. The first data symbol passed through has two tags: 'ofdm_sync_carr_offset' (integer), the coarse frequency offset as number of carriers, and 'ofdm_sync_eq_taps' (complex vector). Any tags attached to the synchronisation symbols are attached to the first data symbol. All other tags are propagated as expected. More...
 
class  ofdm_cyclic_prefixer
 Adds a cyclic prefix and performs pulse shaping on OFDM symbols. More...
 
class  ofdm_equalizer_1d_pilots
 
class  ofdm_equalizer_base
 Base class for implementation details of frequency-domain OFDM equalizers. More...
 
class  ofdm_equalizer_simpledfe
 Simple decision feedback equalizer for OFDM. More...
 
class  ofdm_equalizer_static
 Very simple static equalizer for OFDM. More...
 
class  ofdm_frame_acquisition
 take a vector of complex constellation points in from an FFT and performs a correlation and equalization. More...
 
class  ofdm_frame_equalizer_vcvc
 OFDM frame equalizer. More...
 
class  ofdm_frame_sink
 Takes an OFDM symbol in, demaps it into bits of 0's and 1's, packs them into packets, and sends to to a message queue sink. More...
 
class  ofdm_insert_preamble
 insert "pre-modulated" preamble symbols before each payload. More...
 
class  ofdm_mapper_bcv
 take a stream of bytes in and map to a vector of complex constellation points suitable for IFFT input to be used in an ofdm modulator. More...
 
class  ofdm_sampler
 does the rest of the OFDM stuff More...
 
class  ofdm_serializer_vcc
 Serializes complex modulations symbols from OFDM sub-carriers. More...
 
class  ofdm_sync_sc_cfb
 Schmidl & Cox synchronisation for OFDM. More...
 
class  packet_header_default
 Default header formatter for digital packet transmission. More...
 
class  packet_header_ofdm
 Header utility for OFDM signals. More...
 
class  packet_headergenerator_bb
 Generates a header for a tagged, streamed packet. More...
 
class  packet_headerparser_b
 Post header metadata as a PMT. More...
 
class  packet_sink
 process received bits looking for packet sync, header, and process bits into packet More...
 
class  pfb_clock_sync_ccf
 Timing synchronizer using polyphase filterbanks. More...
 
class  pfb_clock_sync_fff
 Timing synchronizer using polyphase filterbanks. More...
 
class  pn_correlator_cc
 PN code sequential search correlator. More...
 
class  probe_density_b
 
class  probe_mpsk_snr_est_c
 A probe for computing SNR of a PSK signal. More...
 
class  protocol_formatter_async
 Uses a header format object to append a header onto a PDU. More...
 
class  protocol_formatter_bb
 Uses a header format object to create a header from a tagged stream packet. More...
 
class  protocol_parser_b
 Block that synchronizes to a header based on a header format object class. Designed to accept hard bits and produce PDUs with packed bytes (pmt::u8vector). More...
 
class  scrambler_bb
 Scramble an input stream using an LFSR. More...
 
class  simple_correlator
 inverse of simple_framer (more or less) More...
 
class  simple_framer
 add sync field, seq number and command field to payload More...
 
class  snr_est_m2m4
 SNR Estimator using 2nd and 4th-order moments. More...
 
class  symbol_sync_cc
 Symbol Synchronizer block with complex input, complex output. More...
 
class  symbol_sync_ff
 Symbol Synchronizer block with float input, float output. More...
 

Enumerations

enum  ir_type { IR_NONE = -1, IR_MMSE_8TAP = 0, IR_PFB_NO_MF = 1, IR_PFB_MF = 2 }
 
enum  trellis_metric_type_t { TRELLIS_EUCLIDEAN = 200, TRELLIS_HARD_SYMBOL, TRELLIS_HARD_BIT }
 
enum  snr_est_type_t { SNR_EST_SIMPLE = 0, SNR_EST_SKEW, SNR_EST_M2M4, SNR_EST_SVR }
 A block for computing SNR of a signal. More...
 
enum  ted_type {
  TED_NONE = -1, TED_MUELLER_AND_MULLER = 0, TED_MOD_MUELLER_AND_MULLER = 1, TED_ZERO_CROSSING = 2,
  TED_GARDNER = 4, TED_EARLY_LATE = 5, TED_DANDREA_AND_MENGALI_GEN_MSK = 6, TED_SIGNAL_TIMES_SLOPE_ML = 7,
  TED_SIGNUM_TIMES_SLOPE_ML = 8, TED_MENGALI_AND_DANDREA_GMSK = 9
}
 

Functions

DIGITAL_API unsigned int update_crc32 (unsigned int crc, const unsigned char *buf, size_t len)
 update running CRC-32 More...
 
DIGITAL_API unsigned int update_crc32 (unsigned int crc, const std::string buf)
 
DIGITAL_API unsigned int crc32 (const unsigned char *buf, size_t len)
 
DIGITAL_API unsigned int crc32 (const std::string buf)
 
DIGITAL_API std::vector< gr_complexmodulate_vector_bc (basic_block_sptr modulator, std::vector< uint8_t > data, std::vector< float > taps)
 Modulate a vector of data and apply a shaping filter. More...
 

Variables

static const unsigned long long GRSF_SYNC = 0xacdda4e2f28c20fcULL
 
static const int GRSF_BITS_PER_BYTE = 8
 
static const int GRSF_SYNC_OVERHEAD = sizeof(GRSF_SYNC)
 
static const int GRSF_PAYLOAD_OVERHEAD = 1
 
static const int GRSF_TAIL_PAD = 1
 
static const int GRSF_OVERHEAD = GRSF_SYNC_OVERHEAD + GRSF_PAYLOAD_OVERHEAD + GRSF_TAIL_PAD
 

Enumeration Type Documentation

Enumerator
IR_NONE 
IR_MMSE_8TAP 
IR_PFB_NO_MF 
IR_PFB_MF 
Enumerator
TED_NONE 
TED_MUELLER_AND_MULLER 
TED_MOD_MUELLER_AND_MULLER 
TED_ZERO_CROSSING 
TED_GARDNER 
TED_EARLY_LATE 
TED_DANDREA_AND_MENGALI_GEN_MSK 
TED_SIGNAL_TIMES_SLOPE_ML 
TED_SIGNUM_TIMES_SLOPE_ML 
TED_MENGALI_AND_DANDREA_GMSK 
Enumerator
TRELLIS_EUCLIDEAN 
TRELLIS_HARD_SYMBOL 
TRELLIS_HARD_BIT 

Function Documentation

DIGITAL_API unsigned int gr::digital::crc32 ( const unsigned char *  buf,
size_t  len 
)
DIGITAL_API unsigned int gr::digital::crc32 ( const std::string  buf)
DIGITAL_API std::vector<gr_complex> gr::digital::modulate_vector_bc ( basic_block_sptr  modulator,
std::vector< uint8_t >  data,
std::vector< float >  taps 
)

Modulate a vector of data and apply a shaping filter.

modulator: Pointer to a byte-to-complex modulator block. data: Vector of bytes to modulate into symbols. taps: Post-modulation symbol shaping filter taps.

This function modulates the input vector and applies a symbol shaping filter. It is intended for use with the corr_est_cc block as the symbol stream to correlate against.

Any differential encoding or other data coding must be performed on the input vector before this modulation operation.

Be aware that the format of the incoming data must match the format the modulator block is expecting. GNURadio modulator blocks are inconsistent in their data type expectations. For instance, cpmmod_bc expects unpacked, signed bytes in (-1, 1), while gmsk_mod expects packed, unsigned bytes in (0, 1). In other words, the output of gmsk_mod given the input vector [0xaa, 0x00] is equivalent to the output of cpmmod_bc given the input vector [1,255,1,255,1,255,1,255,255,255,255,255,255,255,255,255]

Please check the documentation or source of the modulator before using this function.

DIGITAL_API unsigned int gr::digital::update_crc32 ( unsigned int  crc,
const std::string  buf 
)

Variable Documentation

const int gr::digital::GRSF_BITS_PER_BYTE = 8
static
const int gr::digital::GRSF_OVERHEAD = GRSF_SYNC_OVERHEAD + GRSF_PAYLOAD_OVERHEAD + GRSF_TAIL_PAD
static
const int gr::digital::GRSF_PAYLOAD_OVERHEAD = 1
static
const unsigned long long gr::digital::GRSF_SYNC = 0xacdda4e2f28c20fcULL
static

Here are a couple of maximum length sequences (m-sequences) that were generated by the the "mseq" matlab/octave code downloaded from: http://www.mathworks.com/matlabcentral/fileexchange/990

31-bit m-sequence:
 0110100100001010111011000111110
 0x690AEC76 (padded on right with a zero)
63-bit m-sequence:
 101011001101110110100100111000101111001010001100001000001111110
     0xACDDA4E2F28C20FC (padded on right with a zero)
const int gr::digital::GRSF_SYNC_OVERHEAD = sizeof(GRSF_SYNC)
static
const int gr::digital::GRSF_TAIL_PAD = 1
static