Om de logische kanalen te beschermen tegen transmissiefouten die door het radiopad worden geïntroduceerd, worden veel verschillende coderingsschema’s gebruikt. Het onderstaande diagram illustreert het coderingsproces voor spraak-, besturings- en datakanalen; de volgorde is erg complex.
De coderings- en interleavingschema’s zijn afhankelijk van het type logisch kanaal dat moet worden gecodeerd. Alle logische kanalen vereisen een vorm van convolutionele codering, maar aangezien de beveiligingsbehoeften verschillend zijn, kunnen de codesnelheden ook verschillen.
Drie coderingsbeveiligingsschema’s:
Spraakkanaalcodering
De spraakinformatie voor één spraakblok van 20 ms wordt verdeeld over acht GSM-bursts. Dit zorgt ervoor dat als bursts verloren gaan als gevolg van interferentie via de luchtinterface, de spraak nog steeds nauwkeurig kan worden gereproduceerd.
Gemeenschappelijke besturingskanaalcodering
20 ms aan informatie via de ether zal vier uitbarstingen van besturingsinformatie bevatten, bijvoorbeeld BCCH. Hierdoor kunnen de bursts in één TDMA-multiframe worden ingevoegd.
Codering van gegevenskanalen
De data-informatie wordt verspreid over 22 bursts. Dit komt omdat elk stukje data-informatie erg belangrijk is. Wanneer de gegevens bij de ontvanger worden gereconstrueerd, zal dus, als een burst verloren gaat, slechts een zeer klein deel van het gegevensblok van 20 ms verloren gaan. De foutcoderingsmechanismen moeten het vervolgens mogelijk maken dat de ontbrekende gegevens worden gereconstrueerd.
Laten we ze allemaal in detail begrijpen.
Spraakkanaalcodering
Het BTS ontvangt getranscodeerde spraak via de A-bis-interface van de BSC. Op dit punt wordt de spraak door het BTS in zijn individuele logische kanalen georganiseerd. Deze logische informatiekanalen worden vervolgens kanaalgecodeerd voordat ze via de etherinterface worden verzonden.
De getranscodeerde spraakinformatie wordt ontvangen in frames, die elk 260 bits bevatten. De spraakbits zijn gegroepeerd in drie klassen van gevoeligheid voor fouten, afhankelijk van hun belang voor de verstaanbaarheid van spraak.
- Klasse 1a
Van de 50 klasse 1a-bits worden drie pariteitsbits afgeleid. Transmissiefouten binnen deze bits zijn catastrofaal voor de spraakverstaanbaarheid. Daarom is de spraakdecoder in staat om niet-corrigeerbare fouten binnen de klasse la bits te detecteren. Als er bitfouten van klasse 1a zijn, wordt meestal het hele blok genegeerd.
- Klasse 1b
De 132 klasse 1b-bits worden niet op pariteit gecontroleerd, maar worden samen met de klasse 1a- en pariteitsbits naar een convolutionele encoder gevoerd. Er worden vier staartbits toegevoegd die de registers in de ontvanger in een bekende staat zetten voor decoderingsdoeleinden.
- Klasse 2
De 78 minst gevoelige bits zijn helemaal niet beschermd. Het resulterende blok van 456 bits wordt vervolgens verweven voordat het via de etherinterface wordt verzonden.
Controlekanaalcodering
Het onderstaande diagram toont het principe van de foutbeveiliging voor de stuurkanalen. Dit schema wordt gebruikt voor alle logische signaleringskanalen, het synchronisatiekanaal (SCH) en de willekeurige toegangsburst (RACH). Het diagram geldt voor SCH en RACH, maar met verschillende nummers.
Wanneer besturingsinformatie door het BTS wordt ontvangen, wordt deze ontvangen als een blok van 184 bits. Deze bits worden eerst beschermd met een cyclische blokcode van een klasse die bekend staat als Fire Code. Deze is bijzonder geschikt voor de detectie en correctie van burst-fouten, omdat deze 40 pariteitsbits gebruikt. Vóór de convolutionele codering worden vier staartbits toegevoegd die de registers in de ontvanger in een bekende staat zetten voor decoderingsdoeleinden.
De uitvoer van het coderingsproces voor elk blok van 184 bits aan signaalgegevens is 456 bits, precies hetzelfde als voor spraak. Het resulterende blok van 456 bits wordt vervolgens verweven voordat het via de etherinterface wordt verzonden.
Codering van gegevenskanalen
Het onderstaande diagram toont het principe van de foutbeveiliging voor het 9,6 kbit/s datakanaal. De andere datakanalen met snelheden van 4,8 kbit/s en 2,4 kbit/s zijn iets anders gecodeerd, maar het principe is hetzelfde.
Datakanalen worden uitsluitend gecodeerd met behulp van een convolutionele code. Bij de gegevens van 9,6 kbit/s moeten enkele gecodeerde bits worden verwijderd (gepunctueerd) vóór het interleaven, zodat ze, net als de spraak- en besturingskanalen, elke 20 ms 456 bits bevatten.
De dataverkeerkanalen vereisen een hogere nettosnelheid(‘nettosnelheid’ betekent de bitsnelheid voordat codeerbits zijn toegevoegd) dan hun werkelijke transmissiesnelheid. Voor de 9,6 kbit/s-dienst is bijvoorbeeld 12 kbit/s nodig, omdat ook statussignalen (zoals de RS-232 DTR (Data Terminal Ready)) moeten worden verzonden.
De output van het coderingsproces voor elk blok van 240 bits dataverkeer is 456 bits, precies hetzelfde als voor spraak en besturing. Het resulterende blok van 456 bits wordt vervolgens verweven voordat het via de etherinterface wordt verzonden.