rx: make receiver more robust
This commit is contained in:
parent
934b18e382
commit
9817896914
|
@ -13,7 +13,7 @@
|
||||||
#define HEADER_SIZE_BYTES 4
|
#define HEADER_SIZE_BYTES 4
|
||||||
#define FREQ_EST_L 8
|
#define FREQ_EST_L 8
|
||||||
|
|
||||||
#define AGC_BW_ACQUISITION 2e-2
|
#define AGC_BW_ACQUISITION 5e-2
|
||||||
#define AGC_BW_TRACKING 1e-4
|
#define AGC_BW_TRACKING 1e-4
|
||||||
|
|
||||||
#define SHOW_DEBUG_LOG 0
|
#define SHOW_DEBUG_LOG 0
|
||||||
|
@ -42,7 +42,7 @@ static bool acquire_preamble(layer1_rx_t *rx, const float complex sample)
|
||||||
// preamble search
|
// preamble search
|
||||||
float complex corr_out = correlator_step(&rx->preamble_correlator, sample);
|
float complex corr_out = correlator_step(&rx->preamble_correlator, sample);
|
||||||
|
|
||||||
if(cabsf(corr_out) > 0.5f * preamble_get_symbol_count()) {
|
if(cabsf(corr_out) > 0.9f * preamble_get_symbol_count()) {
|
||||||
// Preamble found!
|
// Preamble found!
|
||||||
DEBUG_LOG("Preamble found: %.3f > %.3f\n", cabsf(corr_out), 0.5f * preamble_get_symbol_count());
|
DEBUG_LOG("Preamble found: %.3f > %.3f\n", cabsf(corr_out), 0.5f * preamble_get_symbol_count());
|
||||||
|
|
||||||
|
@ -128,6 +128,7 @@ result_t layer1_rx_process(layer1_rx_t *rx, const float complex *samples, size_t
|
||||||
// Preamble found and frequency corrected!
|
// Preamble found and frequency corrected!
|
||||||
rx->callback(RX_EVT_PREAMBLE_FOUND, NULL, 0);
|
rx->callback(RX_EVT_PREAMBLE_FOUND, NULL, 0);
|
||||||
|
|
||||||
|
// switch AGC to tracking mode
|
||||||
agc_crcf_set_bandwidth(rx->agc, AGC_BW_TRACKING);
|
agc_crcf_set_bandwidth(rx->agc, AGC_BW_TRACKING);
|
||||||
|
|
||||||
// go on with decoding the header
|
// go on with decoding the header
|
||||||
|
@ -168,6 +169,7 @@ result_t layer1_rx_process(layer1_rx_t *rx, const float complex *samples, size_t
|
||||||
|
|
||||||
// check the received information
|
// check the received information
|
||||||
if(!MODCOD_IS_VALID(rx->modcod)) {
|
if(!MODCOD_IS_VALID(rx->modcod)) {
|
||||||
|
DEBUG_LOG("Decoded MODCOD %d is invalid!\n", rx->modcod);
|
||||||
rx->state = RX_STATE_ACQUISITION;
|
rx->state = RX_STATE_ACQUISITION;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue