Skip to content

Struct ppe_state_t

ClassList > ppe_state_t

PolynomialPhaseEstimator state (FFT plan + rate grid + scratch). More...

  • #include <ppe_core.h>

Public Attributes

Type Name
float _Complex * buf
double drate
fft_state_t * fft
float * mag
size_t max_len
double max_rate
size_t n_rate
size_t nfft
double * rowfrq
double * rowpk
float _Complex * spec
float * win

Detailed Description

Allocate with ppe_create().

Public Attributes Documentation

variable buf

float _Complex* ppe_state_t::buf;

windowed, dechirped, zero-padded input, nfft.


variable drate

double ppe_state_t::drate;

chirp-rate grid step.


variable fft

fft_state_t* ppe_state_t::fft;

forward plan, size nfft.


variable mag

float* ppe_state_t::mag;

dB magnitude scratch, nfft.


variable max_len

size_t ppe_state_t::max_len;

max input length (sizes the plan/scratch).


variable max_rate

double ppe_state_t::max_rate;

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


variable n_rate

size_t ppe_state_t::n_rate;

number of chirp-rate hypotheses (1 if max_rate=0).


variable nfft

size_t ppe_state_t::nfft;

zero-padded transform length: 4 * next_pow2 (max_len). The 4x is deliberate a finer frequency grid before the parabolic peak refinement, which matters because the input is often short (preamble partials, symbol streams). It also sizes buf, spec and mag, so the footprint is 4x what a bare next-pow2 would suggest.


variable rowfrq

double* ppe_state_t::rowfrq;

per-rate winning frequency, n_rate.


variable rowpk

double* ppe_state_t::rowpk;

per-rate winning peak dB, n_rate.


variable spec

float _Complex* ppe_state_t::spec;

FFT output, nfft.


variable win

float* ppe_state_t::win;

window scratch, max_len.



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