Project

General

Profile

Actions

Bug #4984

closed

AMR Rate Adaptation uses BER instead of C/I thresholds

Added by laforge about 3 years ago. Updated over 1 year ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
osmo-bts-trx
Target version:
-
Start date:
01/28/2021
Due date:
% Done:

100%

Spec Reference:
TS 45.009

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

Related to libosmocore - Bug #5570: coding: decode in-band data in AMR's special DTX frames (SID_FIRST, SID_UPDATE, SID_ONSET)Newfixeria05/21/2022

Actions
Has duplicate OsmoBTS - Bug #1618: AMR adaption loop doesn't use C/I thresholds, only BERRejected02/23/2016

Actions
Actions #1

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?

Actions #2

Updated by fixeria almost 2 years ago

  • Status changed from Feedback to In Progress
  • Assignee set to fixeria
Actions #3

Updated by fixeria almost 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]

Actions #4

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
Actions #5

Updated by fixeria over 1 year ago

  • Status changed from In Progress to Stalled
Actions #6

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.

Actions #7

Updated by fixeria 5 months ago

  • Has duplicate Bug #1618: AMR adaption loop doesn't use C/I thresholds, only BER added
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)