Bug #4984
closedAMR Rate Adaptation uses BER instead of C/I thresholds
100%
Description
For some non-obvious reason, trx_loop_amr_input()
uses the BER for switching AMR modes, rather than the C/I which is specified in 3GPP TS 45.009. This should be changed to use C/I and be spec compliant. Note that this only applioes to osmo-bts-trx. The other osmo-bts back-ends have the PHY/DSP handle this, and we assume those implementations are correct.
There also is no C/I normalization as per Annex A of the same specification.
Related issues
Updated by fixeria over 2 years ago
- Status changed from New to Feedback
For some non-obvious reason, trx_loop_amr_input() uses the BER for switching AMR modes, rather than the C/I
Most likely because C/I was not available before we introduced TRXDv1.
which is specified in 3GPP TS 45.009. This should be changed to use C/I and be spec compliant.
But as stated in section 3.3.1: "Codec mode adaptation is based on a normalized, one-dimensional measure of the channel quality, called the Quality Indicator." ... "The Quality Indicator may be derived from an estimate of the current carrier to interferer ratio, C/Iest , or an estimate of the current raw bit error rate (BERest).".
So AFAIU, in the current implementation we derive the Quality Indicator from BER. laforge does this make sense to you?
Updated by fixeria about 2 years ago
- Status changed from Feedback to In Progress
- Assignee set to fixeria
Updated by fixeria about 2 years ago
- % Done changed from 0 to 80
Redmine does not seem to pick changes containing both SYS and OS ticket numbers, so posting manually:
I improved the VTY commands and changed hard-coded default values in osmo-bsc:
https://gerrit.osmocom.org/c/osmo-bsc/+/27743 VTY: clarify help for the Adaptive Multi Rate settings [NEW]
https://gerrit.osmocom.org/c/osmo-bsc/+/27744 bts: gsm_bts_alloc(): rework default multi-rate configuration [NEW]
https://gerrit.osmocom.org/c/osmo-bsc/+/27745 bts: gsm_bts_alloc(): use reasonable multi-rate config defaults [NEW]
Misc improvements for osmo-bts[-trx]:
https://gerrit.osmocom.org/c/osmo-bts/+/27750 osmo-bts-trx: rename 'loops.[ch]' to 'amr_loop.[ch]' [NEW]
https://gerrit.osmocom.org/c/osmo-bts/+/27751 osmo-bts-trx: use '#pragma once' in amr_loop.h [NEW]
https://gerrit.osmocom.org/c/osmo-bts/+/27752 osmo-bts-trx: amr_loop: remove unneeded #includes [NEW]
https://gerrit.osmocom.org/c/osmo-bts/+/27753 rsl: de-duplicate parsing of MultiRate configuration IE [NEW]
https://gerrit.osmocom.org/c/osmo-bts/+/27754 rsl: rsl_rx_chan_{activ,modif}: do not sent an Error Report [NEW]
https://gerrit.osmocom.org/c/osmo-bts/+/27755 rsl: parse_multirate_config(): check if AMR codec is used [NEW]
https://gerrit.osmocom.org/c/osmo-bts/+/27756 amr: check-in default multi-rate config from osmo-bsc [NEW]
https://gerrit.osmocom.org/c/osmo-bts/+/27757 rsl: use hard-coded defaults if the MultiRate conf IE is absent [NEW]
Bug fixes for osmo-bts:
https://gerrit.osmocom.org/c/osmo-bts/+/27760 tests/amr/Makefile.am: use proper binary name prefix 'amr_test_' [NEW]
https://gerrit.osmocom.org/c/osmo-bts/+/27761 tests/amr: add a unit test for amr_parse_mr_conf() [NEW]
https://gerrit.osmocom.org/c/osmo-bts/+/27762 amr: fix parsing of threshold and hysteresis in amr_parse_mr_conf() [NEW]
The actual patch switching AMR loop from BER to C/I:
https://gerrit.osmocom.org/c/osmo-bts/+/27758 osmo-bts-trx: use C/I in the AMR link adaptation loop [WIP]
Updated by fixeria almost 2 years ago
- Related to Bug #5570: coding: decode in-band data in AMR's special DTX frames (SID_FIRST, SID_UPDATE, SID_ONSET) added
Updated by fixeria almost 2 years ago
- Status changed from In Progress to Stalled
Updated by fixeria over 1 year ago
- Status changed from Stalled to Resolved
- % Done changed from 80 to 100
All patches have been merged. One of our customers have successfully tested C/I based link adaptation.