6 Functions on the receive (RX) side

06.223GPPComfort Noise Aspects for Half Rate Speech Traffic ChannelsTS

The situations in which comfort noise shall be generated on the RX side are defined in GSM 06.41 [3] and may be started or updated whenever a valid SID frame is received.

6.1 Averaging of the GS parameters

When speech frames are received by the decoder, the GS parameters of the last seven speech frames shall be kept in memory. As soon as a SID frame is received, these stored GS parameters shall be averaged. The averaged GS value will be frozen and used for the actual comfort noise insertion period.

The averaging procedure works as follows:

– when a speech frame is received, the GSP0 indices are decoded and the decoded GS parts of these parameters are stored in memory;

– when the first SID frame is received, the stored GS values are averaged in the same way as in the speech encoder as follows (see also clause 5.1):

7 4

mean (GS[j]) = 1/28 SUM ( SUM GS[j-n](i) );

n=1 i=1;

where:

GS[j](i) is the quantized energy tweak parameter in subframe i of the current frame j;

GS[j-n](i) is the quantized energy tweak parameter in subframe i of one of the last frames;

n is the averaging period index n=1,2,…,7;

i is the subframe index i=1,2,3,4;

j is the frame index;

– then mean(GS[j]) is quantized, using the GS component of the GSP0 vector quantization codebook for the unvoiced speech encoding mode as quantization table. The resulting index of this quantization is used for one complete comfort noise insertion period as GSP0 codeword. The P0 parameter is not averaged. For this parameter, the value is used which is associated with the quantized mean(GS[j]) value in the GSP0 codebook of the unvoiced speech encoding mode.

6.2 Comfort noise generation and updating

The comfort noise generation procedure uses the GSM half rate speech decoder algorithm defined in GSM 06.20 [2].

When comfort noise is to be generated, then the various encoded parameters are set as in table 2.

Table 2: Comfort noise encoded parameters

Parameter

Value

MODE

0

R0

interpolation of the values received in the last two valid SID frames

LPC1

LPC2

LPC3

interpolation of the values received in the last two valid SID frames

INT_LPC

1

CODE1_1

CODE1_2

CODE1_3

CODE1_4

CODE2_1

CODE2_2

CODE2_3

CODE2_4

pseudo random numbers uniformly distributed in [0,127] (7 bit numbers)

GSP0_1

GSP0_2

GSP0_3

GSP0_4

index of the averaged GS parameter

(calculated at the beginning of each comfort noise insertion period and frozen for the rest of the period)

With these parameters, the speech decoder now performs the standard operations described in GSM 06.20 [2] and thereby synthesizes comfort noise.

Updating of the comfort noise parameters (frame energy and LPC coefficients) occurs each time a valid SID frame is received, as described in GSM 06.41 [3].

NOTE: The GSP0 codewords are not updated, they are frozen during each comfort noise insertion period.

When updating the comfort noise parameters (frame energy and LPC coefficients), these parameters shall be interpolated over the SID update period to obtain smooth transitions.