21#ifndef __OSMO_GMR1_SDR_PI4CXPSK_H__
22#define __OSMO_GMR1_SDR_PI4CXPSK_H__
34#include <osmocom/core/bits.h>
38#define GMR1_MAX_SYM_EBITS 2
39#define GMR1_MAX_SYNC 4
40#define GMR1_MAX_SYNC_SYMS 32
103 struct osmo_cxvec *burst_in,
int sps,
float freq_shift,
105 int *sync_id_p,
float *toa_p,
float *freq_err_p);
109 struct osmo_cxvec *burst_in,
int sps,
float freq_shift,
110 int *bt_id_p,
int *sync_id_p,
float *toa_p);
117 ubit_t *ebits,
int sync_id,
struct osmo_cxvec *burst_out);
int gmr1_pi4cxpsk_detect(struct gmr1_pi4cxpsk_burst **burst_types, float e_toa, struct osmo_cxvec *burst_in, int sps, float freq_shift, int *bt_id_p, int *sync_id_p, float *toa_p)
Try to identify burst type by matching training sequences.
Definition: pi4cxpsk.c:618
struct gmr1_pi4cxpsk_modulation gmr1_pi2cbpsk
pi2-CBPSK modulation description
Definition: pi4cxpsk.c:77
int gmr1_pi4cxpsk_demod(struct gmr1_pi4cxpsk_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, sbit_t *ebits, int *sync_id_p, float *toa_p, float *freq_err_p)
All-in-one pi4-CxPSK demodulation method.
Definition: pi4cxpsk.c:521
#define GMR1_MAX_SYM_EBITS
Max e bits in a symbol.
Definition: pi4cxpsk.h:38
int gmr1_pi4cxpsk_mod(struct gmr1_pi4cxpsk_burst *burst_type, ubit_t *ebits, int sync_id, struct osmo_cxvec *burst_out)
Modulates (currently at 1 sps)
Definition: pi4cxpsk.c:742
struct gmr1_pi4cxpsk_modulation gmr1_pi4cqpsk
pi4-CQPSK modulation description
Definition: pi4cxpsk.c:110
#define GMR1_MAX_SYNC
Max diff. sync seqs
Definition: pi4cxpsk.h:39
int gmr1_pi4cxpsk_mod_order(struct osmo_cxvec *burst_in, int sps, float freq_shift)
Estimates modulation order by comparing power of x^2 vs x^4.
Definition: pi4cxpsk.c:694
#define GMR1_MAX_SYNC_SYMS
Max sym in a sync seq
Definition: pi4cxpsk.h:40
struct gmr1_pi4cxpsk_modulation gmr1_pi4cbpsk
pi4-CBPSK modulation description
Definition: pi4cxpsk.c:85
pi4-CxPSK Burst format description
Definition: pi4cxpsk.h:80
int guard_pre
Beginning guard period.
Definition: pi4cxpsk.h:85
int guard_post
End guard period
Definition: pi4cxpsk.h:87
struct gmr1_pi4cxpsk_sync * sync[GMR1_MAX_SYNC]
Sync sequences.
Definition: pi4cxpsk.h:95
struct gmr1_pi4cxpsk_data * data
Data chunks.
Definition: pi4cxpsk.h:97
int ebits
Number of encoded bits.
Definition: pi4cxpsk.h:92
struct gmr1_pi4cxpsk_modulation * mod
Modulation scheme
Definition: pi4cxpsk.h:82
int len
Total len with guard.
Definition: pi4cxpsk.h:90
pi4-CxPSK Data segment description
Definition: pi4cxpsk.h:74
int len
Data chunk length
Definition: pi4cxpsk.h:76
int pos
Data chunk position
Definition: pi4cxpsk.h:75
pi4-CxPSK modulation description
Definition: pi4cxpsk.h:52
struct gmr1_pi4cxpsk_symbol * bits
Symbols (bit order)
Definition: pi4cxpsk.h:56
float rotation
rotation per symbol
Definition: pi4cxpsk.h:53
int nbits
ebits/sym
Definition: pi4cxpsk.h:54
struct gmr1_pi4cxpsk_symbol * syms
Symbols (sym order)
Definition: pi4cxpsk.h:55
pi4-CxPSK symbol description
Definition: pi4cxpsk.h:44
ubit_t data[GMR1_MAX_SYM_EBITS]
Encoded data bits
Definition: pi4cxpsk.h:46
float complex mod_val
e^(1j*mod_phase)
Definition: pi4cxpsk.h:48
short idx
Symbol number
Definition: pi4cxpsk.h:45
float mod_phase
Phase used during mod.
Definition: pi4cxpsk.h:47
pi4-CxPSK Synchronization sequence segment description
Definition: pi4cxpsk.h:66
struct osmo_cxvec * _ref
Ref signal
Definition: pi4cxpsk.h:70
int len
Sync Length
Definition: pi4cxpsk.h:68
uint8_t syms[GMR1_MAX_SYNC_SYMS]
Sync Symbols
Definition: pi4cxpsk.h:69
int pos
Sync Position
Definition: pi4cxpsk.h:67