6 Example solutions

3GPP46.021Half rate speechRelease 17Substitution and muting of lost frames for half rate speech traffic channelsTS

The C code of the following example solutions are given in GSM 06.06 [5].

6.1 Example solution for error detection in case of unreliable frames

With the parameter R0, the average signal energy is transmitted. Except at the beginning or the end of a talk spurt, this parameter shows a smooth behaviour from frame to frame. For error detection purposes, the difference of the R0‑value between the actual and the last good frame is computed. If this difference exceeds a level dependent threshold and the frame is marked as unreliable, it is declared unusable by setting the BFI flag equal to "1".

6.2 Example solution for output signal concealment in case of unreliable frames

In the speech decoder, the output signal is created by processing an excitation sequence through an LPC synthesis filter. The output signal energy of each subframe is calculated and compared to the output signal energy of the previous subframes. If the difference exceeds a level dependent threshold, the excitation sequence is attenuated such that the output signal energy corresponds to the output signal energy of the previous subframes.

6.3 Example solution for substitution and muting of lost speech frames

For the half rate speech decoder, a possible substitution and muting strategy is based on an 8‑state machine.

The state, with the exception of states 6 and 7, indicates how many consecutive frames were lost. For example, state 5 indicates that 5 consecutive frames (including the current frame) were lost. State 7 is the initial state of the system, so that if the first decoded frame is lost, the frame is muted. Usually, the system will operate in state 0. The state machine remains in this state unless a frame is lost. On each successive lost speech frame, the state machine moves to the next higher numbered state. As soon as a frame is not declared lost, the machine returns to state 0 (unless it is in state 6). The machine remains in state 6 in the case of additional lost speech frames. If the machine is in state 6, a single frame without detected errors moves the machine to state 7 (i.e., two successive frames with no detected errors are needed to return to state 0 from state 6). This provides additional protection during prolonged intervals of very poor channel conditions which might cause false indications of valid speech data. If the machine is in state 7 and a lost speech frame is received, the machine returns to state 6.

In each state, the following occurs:

State 0: No error is detected. The received decoded speech data is output. The current frame parameters are stored.

State 1: An error has been detected in the frame. If the last speech frame in state 0 is in the unvoiced mode, then the parameters R0, INT_LPC and the LPC coefficients in the current frame are replaced with the corresponding values from the last good frame. All GSP0 parameters are replaced with the GSP0_4 parameter from the last good frame. If the MODE bits for the current frame indicate unvoiced, the current frame of codevectors is used. If not, the codevectors from the last good frame are used. The frame’s remaining decoded bits are passed to the speech decoder without modification.

Alternatively, if the last speech frame in state 0 was in the voiced mode, the long term predictor lag from the last good frame is used for all subframes in the current frame. The parameters MODE, R0, INT_LPC and the LPC coefficients are replaced with those from the last good frame. All GSP0 parameters are replaced with the GSP0_4 parameter from the last good frame. If the MODE bits for the current frame indicate voiced (MODE = 1, 2 or 3), the current frame of codevectors is used. If not, the codevectors from the last good frame are used. The frame’s remaining decoded bits are passed to the speech decoder without modification.

State 2: Same action as in state 1.

State 3: As in state 1 and 2, a frame repetition is performed, but the frame energy R0 (coded on the interval from 0 to 31) is decreased by a value of 2.

State 4: Same action as in state 3.

State 5: Same action as in state 3.

State 6: Again a frame repetition is performed. The output speech signal is muted by setting R0 to zero.

State 7: The speech signal remains muted, R0 remains zero.

6.4 Example solution for substitution and muting of lost SID frames

The first and second lost SID frame is replaced by the last good SID frame.

For subsequent lost SID frames the last good SID frame is repeated, but the frame energy R0 (coded on the interval from 0 to 31) is decreased with a constant value of 2 in each frame down to R0 = 0. This value is maintained if additional lost SID frames occur.

Annex A (informative):
Change history

Change history

SMG No.

TDoc. No.

CR. No.

Clause affected

New version

Subject/Comments

SMG#15

4.0.2

ETSI Publication

SMG#20

5.0.1

Release 1996 version

SMG#27

6.0.0

Release 1997 version

SMG#29

7.0.0

Release 1998 version

SMG#31

8.0.0

Release 1999 version

8.0.1

Update to Version 8.0.1 for Publication

Change history

Date

TSG #

TSG Doc.

CR

Rev

Subject/Comment

Old

New

03-2001

11

Version for Release 4

4.0.0

06-2002

16

Version for Release 5

4.0.0

5.0.0

12-2004

26

Version for Release 6

5.0.0

6.0.0

06-2007

36

Version for Release 7

6.0.0

7.0.0

12-2008

42

Version for Release 8

7.0.0

8.0.0

12-2009

46

Version for Release 9

8.0.0

9.0.0

03-2011

51

Version for Release 10

9.0.0

10.0.0

09-2012

57

Version for Release 11

10.0.0

11.0.0

09-2014

65

Version for Release 12

11.0.0

12.0.0

12-2015

70

Version for Release 13

12.0.0

13.0.0

Change history

Date

Meeting

TDoc

CR

Rev

Cat

Subject/Comment

New version

03-2017

SA#75

Version for Release 14

14.0.0

06-2018

SA#80

Version for Release 15

15.0.0

2020-07

Update to Rel-16 version (MCC)

16.0.0

2022-04

Update to Rel-17 version (MCC)

17.0.0