Skip to content

Struct dp_psd_kernel_t

ClassList > dp_psd_kernel_t

PSD's per-frame kernel: one frame of n samples in, nfft DC-centred power bins out, and their reading against the full-scale reference. More...

  • #include <psd_core.h>

Public Attributes

Type Name
double cg
double enbw
dp_fft_state_t * fft
float _Complex * frame
double full_scale
size_t n
size_t nfft
float * pwr
double s2
float _Complex * spec
float * w

Detailed Description

The one place a frame becomes a spectrum. It is held BY VALUE by every object that turns frames into spectra PSD, which folds each into its average, and the Spectrogram, which emits each one so neither owns a copy of the window, the transform or the dBFS reference, and neither carries the other's machinery. Fill it with dp_psd_kernel_init() and release it with dp_psd_kernel_free(); the frame calls below use its scratch, so one kernel serves one thread at a time.

Public Attributes Documentation

variable cg

double dp_psd_kernel_t::cg;

Window coherent gain, sum(w).


variable enbw

double dp_psd_kernel_t::enbw;

Equivalent noise bandwidth, bins: n * s2 / cg^2 (1.5 for Hann).


variable fft

dp_fft_state_t* dp_psd_kernel_t::fft;

Forward cf32 plan, size nfft.


variable frame

float _Complex* dp_psd_kernel_t::frame;

Windowed + zero-padded, length nfft.


variable full_scale

double dp_psd_kernel_t::full_scale;

Amplitude that reads 0 dBFS.


variable n

size_t dp_psd_kernel_t::n;

Window / frame length (samples).


variable nfft

size_t dp_psd_kernel_t::nfft;

Zero-padded transform length.


variable pwr

float* dp_psd_kernel_t::pwr;

DC-centred power scratch, length nfft.


variable s2

double dp_psd_kernel_t::s2;

Window power, sum(w^2).


variable spec

float _Complex* dp_psd_kernel_t::spec;

FFT output scratch, length nfft.


variable w

float* dp_psd_kernel_t::w;

Window, length n.



The documentation for this class was generated from the following file native/inc/doppler/psd/psd_core.h