rtl433  UNKNOWN
RTL-433 utility
baseband.h
Go to the documentation of this file.
1 
13 #ifndef INCLUDE_BASEBAND_H_
14 #define INCLUDE_BASEBAND_H_
15 
16 #include <stdint.h>
17 
25 void envelope_detect(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len);
26 
27 // for evaluation
28 void envelope_detect_nolut(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len);
29 void magnitude_est_cu8(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len);
30 void magnitude_true_cu8(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len);
31 void magnitude_est_cs16(int16_t const *iq_buf, uint16_t *y_buf, uint32_t len);
32 void magnitude_true_cs16(int16_t const *iq_buf, uint16_t *y_buf, uint32_t len);
33 
34 #define FILTER_ORDER 1
35 
37 typedef struct filter_state {
38  int16_t y[FILTER_ORDER];
39  int16_t x[FILTER_ORDER];
41 
43 typedef struct demodfm_state {
44  int32_t br, bi; // Last I/Q sample
45  int32_t xlp, ylp; // Low-pass filter state
47 
56 void baseband_low_pass_filter(uint16_t const *x_buf, int16_t *y_buf, uint32_t len, filter_state_t *state);
57 
66 void baseband_demod_FM(uint8_t const *x_buf, int16_t *y_buf, unsigned long num_samples, demodfm_state_t *state);
67 
69 void baseband_demod_FM_cs16(int16_t const *x_buf, int16_t *y_buf, unsigned long num_samples, demodfm_state_t *state);
70 
74 void baseband_init(void);
75 
76 #endif /* INCLUDE_BASEBAND_H_ */
void magnitude_true_cs16(int16_t const *iq_buf, uint16_t *y_buf, uint32_t len)
True Magnitude for CS16 (sqrt can SIMD but float is slow).
Definition: baseband.c:98
FM_Demod state buffer.
Definition: baseband.h:43
int16_t y[FILTER_ORDER]
Definition: baseband.h:38
void magnitude_est_cs16(int16_t const *iq_buf, uint16_t *y_buf, uint32_t len)
122/128, 51/128 Magnitude Estimator for CS16 (SIMD has min/max).
Definition: baseband.c:84
short int16_t
Definition: mongoose.h:270
void baseband_demod_FM(uint8_t const *x_buf, int16_t *y_buf, unsigned long num_samples, demodfm_state_t *state)
FM demodulator.
Definition: baseband.c:178
void baseband_init(void)
Initialize tables and constants.
Definition: baseband.c:292
void envelope_detect(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len)
This will give a noisy envelope of OOK/ASK signals.
Definition: baseband.c:34
unsigned short uint16_t
Definition: mongoose.h:271
void envelope_detect_nolut(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len)
This will give a noisy envelope of OOK/ASK signals.
Definition: baseband.c:46
void magnitude_true_cu8(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len)
True Magnitude for CU8 (sqrt can SIMD but float is slow).
Definition: baseband.c:73
void baseband_demod_FM_cs16(int16_t const *x_buf, int16_t *y_buf, unsigned long num_samples, demodfm_state_t *state)
For evaluation.
Definition: baseband.c:249
unsigned int uint32_t
Definition: mongoose.h:269
struct filter_state filter_state_t
Filter state buffer.
struct demodfm_state demodfm_state_t
FM_Demod state buffer.
void baseband_low_pass_filter(uint16_t const *x_buf, int16_t *y_buf, uint32_t len, filter_state_t *state)
Lowpass filter.
Definition: baseband.c:123
int32_t br
Definition: baseband.h:44
int int32_t
Definition: mongoose.h:268
int32_t ylp
Definition: baseband.h:45
unsigned char uint8_t
Definition: mongoose.h:267
void magnitude_est_cu8(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len)
122/128, 51/128 Magnitude Estimator for CU8 (SIMD has min/max).
Definition: baseband.c:59
int16_t x[FILTER_ORDER]
Definition: baseband.h:39
Filter state buffer.
Definition: baseband.h:37