Skip to content

Struct mpsk_receiver_state_t

ClassList > mpsk_receiver_state_t

M-PSK receiver state. More...

  • #include <mpsk_receiver_core.h>

Public Attributes

Type Name
int auto_handover
carrier_nda_state_t car
int differential
int have_prev_idx
double lock_thresh
int m
fir_state_t * mf
float * mf_taps
int n
unsigned prev_idx
int pulse
double rrc_beta
int rrc_span
size_t sps
size_t sym_count
float complex sym_rot
symsync_state_t sync
int tracking
size_t warmup_syms

Detailed Description

Allocate with mpsk_receiver_create(). Embeds the carrier loop (car) and symbol-timing loop (sync) by value and owns the matched-filter FIR; the carrier NCO and lock metric live in car. Treat all fields as internal (use the getters); they are exposed for the inline sample loop.

Public Attributes Documentation

variable auto_handover

int mpsk_receiver_state_t::auto_handover;

opt-in NDA->decision handover.


variable car

carrier_nda_state_t mpsk_receiver_state_t::car;

carrier loop: wipe NCO + arm I/D + NDA.


variable differential

int mpsk_receiver_state_t::differential;

bits(): differential demap.


variable have_prev_idx

int mpsk_receiver_state_t::have_prev_idx;

differential: prev_idx valid.


variable lock_thresh

double mpsk_receiver_state_t::lock_thresh;

handover lock-metric threshold.


variable m

int mpsk_receiver_state_t::m;

constellation order M (2, 4, 8).


variable mf

fir_state_t* mpsk_receiver_state_t::mf;

matched filter on the de-rotated stream.


variable mf_taps

float* mpsk_receiver_state_t::mf_taps;

owned real MF taps.


variable n

int mpsk_receiver_state_t::n;

arm dumps per symbol.


variable prev_idx

unsigned mpsk_receiver_state_t::prev_idx;

differential: prev sliced index.


variable pulse

int mpsk_receiver_state_t::pulse;

MPSK_RX_PULSE_IANDD / _RRC.


variable rrc_beta

double mpsk_receiver_state_t::rrc_beta;

RRC roll-off (pulse == RRC).


variable rrc_span

int mpsk_receiver_state_t::rrc_span;

RRC one-sided span, symbols.


variable sps

size_t mpsk_receiver_state_t::sps;

samples per symbol.


variable sym_count

size_t mpsk_receiver_state_t::sym_count;

symbols emitted (warmup counter).


variable sym_rot

float complex mpsk_receiver_state_t::sym_rot;

exp(j*phi0): NDA-grid -> slicer.


variable sync

symsync_state_t mpsk_receiver_state_t::sync;

Gardner symbol-timing loop (by value).


variable tracking

int mpsk_receiver_state_t::tracking;

0 = NDA acquire, 1 = decision.


variable warmup_syms

size_t mpsk_receiver_state_t::warmup_syms;

symbols before handover allowed.



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