6 Functions on the receive (RX) side
3GPP46.022Comfort noise aspects for the half rate speech traffic channelsHalf rate speechRelease 17TS
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 subclause 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.