Loading...
Searching...
No Matches
gr::digital::packet_header_ofdm Class Reference
GNU Radio C++ Signal Processing Blocks » OFDM Blocks

Header utility for OFDM signals. More...

`#include <gnuradio/digital/packet_header_ofdm.h>`

## Public Types

typedef std::shared_ptr< packet_header_ofdm > | sptr
Public Types inherited from gr::digital::packet_header_default
typedef std::shared_ptr< packet_header_default > | sptr

## Public Member Functions

| packet_header_ofdm (const std::vector< std::vector< int > > &occupied_carriers, int n_syms, const std::string &len_tag_key, const std::string &frame_len_tag_key, const std::string &num_tag_key, int bits_per_header_sym, int bits_per_payload_sym, bool scramble_header)
| ~packet_header_ofdm () override
bool | header_formatter (long packet_len, unsigned char *out, const std::vector< tag_t > &tags) override
| Header formatter.
bool | header_parser (const unsigned char *header, std::vector< tag_t > &tags) override
| Inverse function to header_formatter().
Public Member Functions inherited from gr::digital::packet_header_default
| packet_header_default (long header_len, const std::string &len_tag_key="packet_len", const std::string &num_tag_key="packet_num", int bits_per_byte=1)
virtual | ~packet_header_default ()
sptr | base ()
sptr | formatter ()
void | set_header_num (unsigned header_num)
long | header_len ()
pmt::pmt_t | len_tag_key ()

## Static Public Member Functions

static sptr | make (const std::vector< std::vector< int > > &occupied_carriers, int n_syms, const std::string &len_tag_key="packet_len", const std::string &frame_len_tag_key="frame_len", const std::string &num_tag_key="packet_num", int bits_per_header_sym=1, int bits_per_payload_sym=1, bool scramble_header=false)
Static Public Member Functions inherited from gr::digital::packet_header_default
static sptr | make (long header_len, const std::string &len_tag_key="packet_len", const std::string &num_tag_key="packet_num", int bits_per_byte=1)

## Protected Attributes

pmt::pmt_t | d_frame_len_tag_key
| Tag key of the additional frame length tag.
const std::vector< std::vector< int > > | d_occupied_carriers
| Which carriers/symbols carry data.
int | d_bits_per_payload_sym
std::vector< unsigned char > | d_scramble_mask
| Bits are xor'd with this before tx'ing.
Protected Attributes inherited from gr::digital::packet_header_default
long | d_header_len
pmt::pmt_t | d_len_tag_key
pmt::pmt_t | d_num_tag_key
int | d_bits_per_byte
unsigned | d_header_number
unsigned | d_mask
crc | d_crc_impl

## Detailed Description

Header utility for OFDM signals.

## Member Typedef Documentation

## sptr

typedef std::shared_ptr<packet_header_ofdm> gr::digital::packet_header_ofdm::sptr

## Constructor & Destructor Documentation

## packet_header_ofdm()

gr::digital::packet_header_ofdm::packet_header_ofdm | ( | const std::vector< std::vector< int > > & | occupied_carriers,
|  | int | n_syms,
|  | const std::string & | len_tag_key,
|  | const std::string & | frame_len_tag_key,
|  | const std::string & | num_tag_key,
|  | int | bits_per_header_sym,
|  | int | bits_per_payload_sym,
|  | bool | scramble_header )

References gr::digital::packet_header_default::len_tag_key().

## ~packet_header_ofdm()

gr::digital::packet_header_ofdm::~packet_header_ofdm | ( |  | ) |

override

## Member Function Documentation

## header_formatter()

bool gr::digital::packet_header_ofdm::header_formatter | ( | long | packet_len,
|  | unsigned char * | out,
|  | const std::vector< tag_t > & | tags )

override virtual

Header formatter.

Does the same as packet_header_default::header_formatter(), but optionally scrambles the bits (this is more important for OFDM to avoid PAPR spikes).

Reimplemented from gr::digital::packet_header_default.

## header_parser()

bool gr::digital::packet_header_ofdm::header_parser | ( | const unsigned char * | header,
|  | std::vector< tag_t > & | tags )

override virtual

Inverse function to header_formatter().

Does the same as packet_header_default::header_parser(), but adds another tag that stores the number of OFDM symbols in the packet. Note that there is usually no linear connection between the number of OFDM symbols and the packet length because a packet might finish mid-OFDM-symbol.

Reimplemented from gr::digital::packet_header_default.

## make()

sptr gr::digital::packet_header_ofdm::make | ( | const std::vector< std::vector< int > > & | occupied_carriers,
|  | int | n_syms,
|  | const std::string & | len_tag_key = "packet_len",
|  | const std::string & | frame_len_tag_key = "frame_len",
|  | const std::string & | num_tag_key = "packet_num",
|  | int | bits_per_header_sym = 1,
|  | int | bits_per_payload_sym = 1,
|  | bool | scramble_header = false )

static

Parameters

  occupied_carriers | See carrier allocator
  n_syms | The number of OFDM symbols the header should be (usually 1)
  len_tag_key | The tag key used for the packet length (number of bytes)
  frame_len_tag_key | The tag key used for the frame length (number of OFDM symbols, this is the tag key required for the frame equalizer etc.)
  num_tag_key | The tag key used for packet numbering.
  bits_per_header_sym | Bits per complex symbol in the header, e.g. 1 if the header is BPSK modulated, 2 if it's QPSK modulated etc.
  bits_per_payload_sym | Bits per complex symbol in the payload. This is required to figure out how many OFDM symbols are necessary to encode the given number of bytes.
  scramble_header | Set this to true to scramble the bits. This is highly recommended, as it reduces PAPR spikes.

References gr::digital::packet_header_default::len_tag_key().

## Member Data Documentation

## d_bits_per_payload_sym

int gr::digital::packet_header_ofdm::d_bits_per_payload_sym

protected

## d_frame_len_tag_key

pmt::pmt_t gr::digital::packet_header_ofdm::d_frame_len_tag_key

protected

Tag key of the additional frame length tag.

## d_occupied_carriers

const std::vector<std::vector<int> > gr::digital::packet_header_ofdm::d_occupied_carriers

protected

Which carriers/symbols carry data.

## d_scramble_mask

std::vector<unsigned char> gr::digital::packet_header_ofdm::d_scramble_mask

protected

Bits are xor'd with this before tx'ing.

The documentation for this class was generated from the following file:

- packet_header_ofdm.h