summaryrefslogtreecommitdiff
path: root/cesar/ce/rx/bitloading/src/bitloading.c
diff options
context:
space:
mode:
authordufour2010-05-05 14:42:31 +0000
committerdufour2010-05-05 14:42:31 +0000
commitf80ddf2fc12f662ce12d7969d916b52f0f4ff645 (patch)
tree205653399fdb5189beef25c34221ade48144bbf6 /cesar/ce/rx/bitloading/src/bitloading.c
parentc646a2c09d3fa0dde6b2bac6b89b74c454f12f9e (diff)
cesar/{ce/rx,mac/common}: use BER target reached by the tone map, closes #1531
Rename BER stored in the tone map to prevent any confusions. git-svn-id: svn+ssh://pessac/svn/cesar/trunk@6974 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar/ce/rx/bitloading/src/bitloading.c')
-rw-r--r--cesar/ce/rx/bitloading/src/bitloading.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/cesar/ce/rx/bitloading/src/bitloading.c b/cesar/ce/rx/bitloading/src/bitloading.c
index 4136f31d9e..141633f587 100644
--- a/cesar/ce/rx/bitloading/src/bitloading.c
+++ b/cesar/ce/rx/bitloading/src/bitloading.c
@@ -209,7 +209,7 @@ ce_rx_bl_compute_tone_map_iterative (const u64 bpt_initial[PHY_FEC_RATE_NB],
dbg_assert (iteration_max);
dbg_assert (bl);
- u64 ber_prev[PHY_FEC_RATE_NB], ber_cur;
+ u64 ber_prev[PHY_FEC_RATE_NB], ber_reached[PHY_FEC_RATE_NB], ber_cur;
uint it_count;
/* Dynamic table size is not possible (because of compiler bug on stack).
* For the moment being we use a define (even if table is too big). */
@@ -252,6 +252,9 @@ ce_rx_bl_compute_tone_map_iterative (const u64 bpt_initial[PHY_FEC_RATE_NB],
tone_en);
/* Store previous BER consign. */
ber_prev[fec_rate] = ber_cur;
+ /* Store BER target reached. */
+ ber_reached[fec_rate] = ber_weighted_sum
+ / tm[fec_rate]->bits_per_symbol;
/* Get new BER consign. */
ber_cur = ce_rx_bl_ber_pt_bpt
(fec_rate, (tm[fec_rate]->bits_per_symbol *
@@ -291,7 +294,9 @@ ce_rx_bl_compute_tone_map_iterative (const u64 bpt_initial[PHY_FEC_RATE_NB],
/* Update pre-computed parameters. */
tonemap_update (tm[good], TONEMAP_P_PBERROR_DEFAULT_UF32);
/* Store BER consign of this tone map. */
- tm[good]->ber = ber_prev[good];
+ tm[good]->ber_target = ber_prev[good];
+ /* Store BER reached by this tone map. */
+ tm[good]->ber_target_reached = ber_reached[good];
/* Return best tone map. */
return tm[good];
}