comparison doc/FR1-Rx-DTX @ 250:731c98b67da1

doc/FR1-Rx-DTX: document changes from 1.0.1 to 1.0.2
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 12 May 2023 04:49:09 +0000
parents fcc0887ff0d0
children 4034c2b06ec8
comparison
equal deleted inserted replaced
249:731ca8b5cc42 250:731c98b67da1
157 frame of 260 zero bits, but the official specs disagree: the silence frame given 157 frame of 260 zero bits, but the official specs disagree: the silence frame given
158 in GSM 06.11 (3GPP TS 46.011, at the very end of the spec) is quite different. 158 in GSM 06.11 (3GPP TS 46.011, at the very end of the spec) is quite different.
159 Themyscira libgsmfrp implements the correct silence frame per the spec, and that 159 Themyscira libgsmfrp implements the correct silence frame per the spec, and that
160 datum is also made public. 160 datum is also made public.
161 161
162 libgsmfrp change history: version 1.0.1 to version 1.0.2
163 ========================================================
164
165 There are only two changes, both involving corner cases with invalid SID frames
166 being received:
167
168 1) An invalid SID frame was received immediately following a good speech frame.
169 In this case we start CN generation, but we take the needed LARc and Xmaxc
170 parameters from the last speech frame, instead of the usual procedure of
171 extracting them from a valid SID frame. The change from 1.0.1 to 1.0.2
172 concerns the Xmaxc parameter in this corner case: in 1.0.1 we took Xmaxc
173 from the last subframe and used it for ensuing CN generation, but in 1.0.2
174 we compute a more proper mean Xmaxc from all 4 subframes, by dequantizing,
175 summing and requantizing.
176
177 2) An invalid SID frame was received in the speech muting state. The sequence
178 of inputs would have to be:
179
180 - a good speech frame;
181 - one or more BFIs, but not too many, so that the cached speech frame
182 does not decay fully by Xmaxc reduction;
183 - an invalid SID frame.
184
185 In version 1.0.1 we handled this even more obscure corner case by entering
186 the CN muting state, i.e., the state that is normally entered upon the
187 second lost SID. In version 1.0.2 we ignore invalid SID in the speech
188 muting state and act as if we got BFI, i.e., continue speech muting rather
189 than switch to CN muting.
190
162 libgsmfrp change history: version 1.0.0 to version 1.0.1 191 libgsmfrp change history: version 1.0.0 to version 1.0.1
163 ======================================================== 192 ========================================================
164 193
165 Version 1.0.0 exhibited the following defects, which are fixed in 1.0.1: 194 Version 1.0.0 exhibited the following defects, which are fixed in 1.0.1:
166 195