diff options
author | jaseg <git-bigdata-wsl-arch@jaseg.de> | 2021-04-09 18:38:02 +0200 |
---|---|---|
committer | jaseg <git-bigdata-wsl-arch@jaseg.de> | 2021-04-09 18:38:57 +0200 |
commit | 50998fcfb916ae251309bd4b464f2c122e8cb30d (patch) | |
tree | 4ecf7a7443b75ab51c4dc0c0fc9289342dc7d6a0 /controller/fw/src/dsss_demod.h | |
parent | 312fee491cfab436d52db4b6265107e20f3e1293 (diff) | |
download | master-thesis-50998fcfb916ae251309bd4b464f2c122e8cb30d.tar.gz master-thesis-50998fcfb916ae251309bd4b464f2c122e8cb30d.tar.bz2 master-thesis-50998fcfb916ae251309bd4b464f2c122e8cb30d.zip |
Repo re-org
Diffstat (limited to 'controller/fw/src/dsss_demod.h')
-rw-r--r-- | controller/fw/src/dsss_demod.h | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/controller/fw/src/dsss_demod.h b/controller/fw/src/dsss_demod.h deleted file mode 100644 index b865d83..0000000 --- a/controller/fw/src/dsss_demod.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef __DSSS_DEMOD_H__ -#define __DSSS_DEMOD_H__ - -#include <stdint.h> -#include <unistd.h> - -#define DSSS_GOLD_CODE_LENGTH ((1<<DSSS_GOLD_CODE_NBITS) - 1) -#define DSSS_GOLD_CODE_COUNT ((1<<DSSS_GOLD_CODE_NBITS) + 1) -#define DSSS_CORRELATION_LENGTH (DSSS_GOLD_CODE_LENGTH * DSSS_DECIMATION) - -/* FIXME: move to makefile */ -#define DSSS_MATCHER_CACHE_SIZE 8 - -#if DSSS_GOLD_CODE_NBITS < 8 -typedef uint8_t symbol_t; -#else -typedef uint16_t symbol_t; -#endif - -struct iir_biquad { - float a[2]; - float b[3]; -}; - -struct iir_biquad_state { - float reg[2]; -}; - -struct cwt_iir_filter_state { - struct iir_biquad_state st[3]; -}; - -struct group { - int len; /* length of group in samples */ - float max; /* signed value of largest peak in group on any channel */ - uint64_t max_ts; /* absolute position of above peak */ - int max_ch; /* channel (gold sequence index) of above peak */ -}; - -struct matcher_state { - int last_phase; /* 0 .. DSSS_CORRELATION_LENGTH */ - int candidate_phase; - - float last_score; - float candidate_score; - - int last_skips; - int candidate_skips; - - symbol_t data[TRANSMISSION_SYMBOLS]; - int data_pos; - symbol_t candidate_data; -}; - -struct dsss_demod_state { - float signal[DSSS_CORRELATION_LENGTH]; - size_t signal_wpos; - - float correlation[DSSS_GOLD_CODE_COUNT][DSSS_WAVELET_LUT_SIZE]; - size_t correlation_wpos; - - struct cwt_iir_filter_state cwt_filter; - - struct group group; - - struct matcher_state matcher_cache[DSSS_MATCHER_CACHE_SIZE]; -}; - - -extern void handle_dsss_received(symbol_t data[static TRANSMISSION_SYMBOLS]); - -void dsss_demod_init(struct dsss_demod_state *st); -void dsss_demod_step(struct dsss_demod_state *st, float new_value, uint64_t ts); - -#endif /* __DSSS_DEMOD_H__ */ |