DTXu half-blocks » History » Version 1
falconia, 07/20/2024 02:00 PM
1 | 1 | falconia | h1. BTS receiving DTXu half-blocks |
---|---|---|---|
2 | |||
3 | Most GSM MS implement DTXu in a straightforward manner: the 05.03 channel encoder runs continuously, channel-encoding a new SID frame from the speech encoder in every traffic frame position with block diagonal interleaving, mapping onto bursts happens normally as if there were no DTX, and only at the very last step the physical transmission of certain radio bursts is suppressed. What does the resulting radio UL look like to the BTS receiver? At the end of a talkspurt, just before radio Tx is cut off, there will be a SID frame, transmitted in full over 8 bursts, following block diagonal interleaving. This SID frame will be the last full block of 456 bits (GSM 05.03 terminology) transmitted by the MS. However, as an artifact of block diagonal interleaving, the last 4 bursts will carry in their even-numbered bits a parasitic "half-block": half of the bits of the next SID frame emitted by the speech encoder. |
||
4 | |||
5 | During prolonged speech pauses in DTXu, when the mandatory SID position occurs, the MS will transmit a total of 8 bursts. The intended SID frame for the mandatory SID position will be transmitted with block diagonal interleaving as required, but there will also be two parasitic half-blocks: the first 4 bursts will carry half of the preceding (not intended to be transmitted) SID frame in their odd-numbered bits, and the last 4 bursts will carry half of the following SID frame (also not intended for transmission) in their even-numbered bits. Thus the BTS receiver will see one proper diagonal-interleaved block of 456 bits, plus two half-blocks in the preceding and following traffic frame positions. |
||
6 | |||
7 | The experiment to be performed on an E1 BTS is to see what it puts out on Abis (TRAU-UL frames) in those traffic frame positions where a half-block was received - frame positions for which only 4 out of 8 bursts were received. It is my (@falconia) hope that these received half-blocks are marked with BFI=1 in TRAU-UL output, causing the TRAU to treat them as invalid rather than valid SID - but it needs to be tested. |
||
8 | |||
9 | h2. Suspected incorrect behavior in sysmoBTS PHY |
||
10 | |||
11 | Unlike E1 BTS, the PHY in sysmoBTS has no BFI flag in its TCH UL output: it emits either an implicitly-deemed-good FR/EFR codec frame, or a zero-length payload to indicate BFI with no bits delivered. |
||
12 | |||
13 | The behavior observed on sysmoBTS is that when DTXu is enabled and the MS goes into speech pauses, the PHY returns implicitly-deemed-good traffic frames not only in the intended SID position, but also in half-block Rx positions - and the latter masquerade as valid SID frames! It appears that the channel decoder in the DSP reconstructs all class 1 bits from the available half of coded bits (228 instead of 456), CRC-3 (plus CRC-8 with EFR) passes as a result, the SID codeword is likewise contained in class 1, but of course those class 2 bits that fall in the missing half will be garbage. |
||
14 | |||
15 | This TCH Rx behavior in sysmoBTS seems very wrong to me: frames from not-intended-for-Tx positions are presented as valid SID to the Rx DTX handler, even though some of the bits carrying comfort noise parameters (those that fall in class 2, missing half of the block) are garbage. However, before jumping to conclusions and looking into possible workarounds, we need to see what proper classic BTSes with TRAU-UL output do in this regard. Do they set BFI=1, causing the Rx DTX handler to see either invalid-SID or no-Tx in these frame positions? Or do they do something else? |