File burst_demod_core.h¶
File List > burst_demod > burst_demod_core.h
Go to the documentation of this file
#ifndef BURST_DEMOD_CORE_H
#define BURST_DEMOD_CORE_H
#include "clib_common.h"
#include "jm_perf.h"
#include "ppe/ppe_core.h"
#include "fft/fft_core.h"
#include "spectral/spectral_core.h"
#include <complex.h>
#ifdef __cplusplus
extern "C"
{
#endif
typedef struct
{
/* ── configuration ── */
uint8_t *data_code;
size_t data_sf;
uint8_t *acq_code;
size_t acq_sf;
size_t acq_reps;
int8_t *sync;
size_t sync_len;
size_t spc;
double chip_rate;
double carrier_hz;
double max_rate;
size_t payload_len;
size_t est_segments;
double f0_prior;
size_t start;
/* ── engine ── */
ppe_state_t *ppe;
float complex *part;
size_t n_part;
/* ── read-backs (after demod) ── */
int frame_valid;
size_t frame_offset;
size_t n_symbols;
double est_freq_hz;
double est_rate_hz;
double est_snr_db;
} burst_demod_state_t;
burst_demod_state_t *burst_demod_create (const uint8_t *data_code,
size_t data_code_len, size_t spc,
double chip_rate, double carrier_hz,
double max_rate, size_t payload_len,
size_t est_segments);
void burst_demod_destroy (burst_demod_state_t *state);
void burst_demod_reset (burst_demod_state_t *state);
void burst_demod_set_preamble (burst_demod_state_t *state,
const uint8_t *acq_code, size_t acq_code_len,
size_t reps);
void burst_demod_set_sync (burst_demod_state_t *state, const uint8_t *sync,
size_t sync_len);
void burst_demod_set_prior (burst_demod_state_t *state, double f0_coarse,
size_t start);
size_t burst_demod_demod_max_out (burst_demod_state_t *state);
size_t burst_demod_demod (burst_demod_state_t *state, const float complex *x,
size_t x_len, uint8_t *out, size_t max_out);
#ifdef __cplusplus
}
#endif
#endif /* BURST_DEMOD_CORE_H */