summaryrefslogtreecommitdiff
path: root/cesar/ce/rx/bitloading/src/bitloading.c
diff options
context:
space:
mode:
authorJérémy Dufour2011-10-03 18:16:37 +0200
committerJérémy Dufour2012-09-12 16:20:38 +0200
commitcb804b5abc4adcc58fa3217eb8062eb3a1e4fec3 (patch)
tree46dd7e0b6852d4dda51e8ed254f2be421c88fe06 /cesar/ce/rx/bitloading/src/bitloading.c
parent3e1a6ff4703189622217232b0b20e7ef0a2502a1 (diff)
cesar/ce/rx/bl: integrate BER margin update, refs #2376
Diffstat (limited to 'cesar/ce/rx/bitloading/src/bitloading.c')
-rw-r--r--cesar/ce/rx/bitloading/src/bitloading.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/cesar/ce/rx/bitloading/src/bitloading.c b/cesar/ce/rx/bitloading/src/bitloading.c
index 8eacb4f8bd..5000df9d13 100644
--- a/cesar/ce/rx/bitloading/src/bitloading.c
+++ b/cesar/ce/rx/bitloading/src/bitloading.c
@@ -16,6 +16,7 @@
#include "ce_rx_bl_fsm_defs.h"
#include "ce/rx/bitloading/inc/ber.h"
#include "ce/rx/bitloading/inc/bitloading.h"
+#include "ce/rx/bitloading/ber_margin_update.h"
#include "mac/common/tonemap.h"
#include "mac/common/defs.h"
@@ -290,11 +291,14 @@ ce_rx_bl_compute_tone_map_iterative (const u64 bpt_initial[PHY_FEC_RATE_NB],
/* Get initial BER consign from initial bits per tone. */
ber_cur = ce_rx_bl_ber_pt_bpt (fec_rate, tonemask->carrier_nb,
bpt_initial[fec_rate]);
- /* Apply BER target margin. */
+ /* Apply BER target static margin. */
tmp_ber = ber_cur - ce_rx_bl_ber_margin_[fec_rate];
dbg_assert (tmp_ber >= 0);
dbg_assert (tmp_ber < CE_RX_BL_BER_DEFAULT_OVER);
- ber_cur = (u64) tmp_ber;
+
+ /* Apply BER margin update. */
+ ber_cur = ce_rx_bl_bmu_apply_margin (&bl->bmu, tmp_ber, fec_rate);
+
do
{
/* Make the tone map reach the BER consign, no optimization. */
@@ -338,11 +342,13 @@ ce_rx_bl_compute_tone_map_iterative (const u64 bpt_initial[PHY_FEC_RATE_NB],
ber_reached[fec_rate] = 0;
ber_cur = 0;
}
- /* Apply BER target margin. */
+ /* Apply BER target static margin. */
tmp_ber = ber_cur - ce_rx_bl_ber_margin_[fec_rate];
dbg_assert (tmp_ber >= 0);
dbg_assert (tmp_ber < CE_RX_BL_BER_DEFAULT_OVER);
- ber_cur = (u64) tmp_ber;
+
+ /* Apply BER margin update. */
+ ber_cur = ce_rx_bl_bmu_apply_margin (&bl->bmu, tmp_ber, fec_rate);
}
/* Repeat until no modification of the BER consign or until maximum
* number of iterations is reached. */