Skip to content

Struct burst_demod_state_t

ClassList > burst_demod_state_t

BurstDemod state. Allocate with burst_demod_create() .

  • #include <burst_demod_core.h>

Public Attributes

Type Name
uint8_t * acq_code
size_t acq_reps
size_t acq_sf
double carrier_hz
double chip_rate
uint8_t * data_code
size_t data_sf
double est_freq_hz
double est_n0
double est_rate_hz
size_t est_segments
double est_snr_db
double f0_prior
size_t frame_offset
size_t frame_syms
float * llr
double max_rate
size_t n_llr
size_t n_part
size_t n_sym
size_t n_symbols
float _Complex * part
ppe_state_t * ppe
size_t spc
size_t start
float _Complex * sym
int8_t * sync
size_t sync_len

Public Attributes Documentation

variable acq_code

uint8_t* burst_demod_state_t::acq_code;

owned acq preamble code (0/1), length acq_sf.


variable acq_reps

size_t burst_demod_state_t::acq_reps;

acq preamble repetitions.


variable acq_sf

size_t burst_demod_state_t::acq_sf;

acq code length (chips).


variable carrier_hz

double burst_demod_state_t::carrier_hz;

RF carrier (Hz) for code-Doppler; 0 = ignore.


variable chip_rate

double burst_demod_state_t::chip_rate;

chip rate (Hz).


variable data_code

uint8_t* burst_demod_state_t::data_code;

owned data spreading code (0/1), length data_sf.


variable data_sf

size_t burst_demod_state_t::data_sf;

data spreading factor (chips/symbol).


variable est_freq_hz

double burst_demod_state_t::est_freq_hz;

estimated residual Doppler (Hz).


variable est_n0

double burst_demod_state_t::est_n0;

Noise power the LLRs are scaled by, referred to unit symbol amplitude. Published so a caller can undo the scaling, or compare bursts by it.


variable est_rate_hz

double burst_demod_state_t::est_rate_hz;

estimated Doppler rate (Hz/s).


variable est_segments

size_t burst_demod_state_t::est_segments;

partials per acq period for the estimate.


variable est_snr_db

double burst_demod_state_t::est_snr_db;

estimator confidence (dB).


variable f0_prior

double burst_demod_state_t::f0_prior;

coarse Doppler prior (cycles/sample).


variable frame_offset

size_t burst_demod_state_t::frame_offset;

symbol offset of the sync word.


variable frame_syms

size_t burst_demod_state_t::frame_syms;

symbols the frame occupies AFTER the sync word — a number the caller states. What they MEAN is the frame description's business, one layer up.


variable llr

float* burst_demod_state_t::llr;

The frame's soft bits, mpsk_soft_demap's convention: positive means bit 0, so L < 0 is the hard decision demod() returned. Valid until the next demod(); n_llr of them.


variable max_rate

double burst_demod_state_t::max_rate;

chirp-rate search half-span (cycles/sample^2).


variable n_llr

size_t burst_demod_state_t::n_llr;

LLRs the last demod() wrote (the frame's length).


variable n_part

size_t burst_demod_state_t::n_part;

variable n_sym

size_t burst_demod_state_t::n_sym;

Symbols the last demod() wrote (the frame's length).


variable n_symbols

size_t burst_demod_state_t::n_symbols;

despread data symbols produced.


variable part

float _Complex* burst_demod_state_t::part;

preamble partials scratch (acq_reps*est_seg).


variable ppe

ppe_state_t* burst_demod_state_t::ppe;

feedforward (rate x freq) estimator.


variable spc

size_t burst_demod_state_t::spc;

samples per chip.


variable start

size_t burst_demod_state_t::start;

preamble start sample in the burst.


variable sym

float _Complex* burst_demod_state_t::sym;

The frame's DEROTATED, unit-normalised complex symbols the constellation the LLRs are the real part of. Built either way to compute the projection and the noise estimate, and freed unread until doppler#1087: for BPSK a residual phase error and a genuine amplitude loss are indistinguishable in every real-only statistic (a rotation scales Re by cos(phi) without adding noise), so |LLR|, its spread and the BER all agree while only the quadrature separates them. Valid until the next demod(); n_sym of them.


variable sync

int8_t* burst_demod_state_t::sync;

owned sync word as +/-1, length sync_len — the correlation template, and the only thing this object knows about the frame's CONTENT.


variable sync_len

size_t burst_demod_state_t::sync_len;

sync word length (symbols).



The documentation for this class was generated from the following file native/inc/burst_demod/burst_demod_core.h