Transmisja głosu w sieci GSM
Transmisja głosu w sieci GSM odbywa się na przyznanych na czas rozmowy (przez Kontroler Stacji Bazowych) częstotliwości i szczelinie czasowej (ang. time slot). W zależności od zastosowanych metod kodowania (Half Rate, Full Rate, Enhanced Full Rate lub Adaptive Multi Rate mode) telefon może do nadawania danych zająć całą lub pół szczeliny czasowej (dwa razy więcej rozmów na jednej częstotliwości kosztem pogorszenia jakości). To, które z rozwiązań wybierze, zależy od Kontrolera Stacji Bazowych, który podejmie decyzję na podstawie zajętości sieci w komórce (ang. cell) w której znajduje się abonent.
Szczegóły związane z transmisją
[edytuj | edytuj kod]Przesyłanie głosu jest wykonywane przez telefon komórkowy w następujących etapach:
- Konwersja z postaci analogowej do postaci cyfrowej
- Segmentacja i kodowanie mowy
- Kodowanie kanałowe
- Przeplot
- Ciphering/Encryption
- Formatowanie ramek
- Modulacja i transmisja
Poszczególne etapy przedstawione są poniżej dla transmisji w trybie Full Rate Mode.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Transmisja_Glosu_GSM_General.svg/500px-Transmisja_Glosu_GSM_General.svg.png)
Konwersja z postaci analogowej do postaci cyfrowej
[edytuj | edytuj kod]Jedna z podstawowych funkcji telefonu pracującego w standardzie GSM jest konwersja sygnału analogowego do postaci cyfrowej.
Próbkowanie
[edytuj | edytuj kod]Za pomocą próbkowania telefon komórkowy mierzy wartości analogowego sygnału z częstotliwością 8 kHz.
Kwantowanie
[edytuj | edytuj kod]W procesie kwantowania każdej próbce przyporządkowana jest wartość liczbowa. W tym celu amplituda sygnału mierzonego w czasie próbkowania jest dzielona na 8192 odcinki, i każda próbka znajdując się w jednym z nich jest związana z odpowiadającą mu liczbą (0-8191).
Kodowanie
[edytuj | edytuj kod]W tym etapie, liczby otrzymane na podstawie kwantowania są kodowane jako 13 bitowe (2^13 = 8192) liczby w zapisie zero jedynkowym.
Segmentacja i kodowanie mowy
[edytuj | edytuj kod]Gdyby zebrane za pomocą próbkowania i segmentacji dane przesyłać bezpośrednio z komórki do stacji bazowej, trzeba by to robić z szybkością 13 [bit] * 8000 [1/s] = 104 Kb /s
Jest to wartość nie do zaakceptowania, stosuje się więc pewne uproszczenie. Ludzki organ mowy składający się z krtani, strun głosowych, zębów, języka i nosa można opisać pewnymi parametrami. Okazuje się, że w ciągu 20 ms zmieniają się one niewiele. Na potrzeby przesyłania głosu w GSM założono bez większej straty dla jakości przekazu, że się nie zmieniają w ogóle.
Próbkowany i skwantowany sygnał dzieli się na odcinki o długości 20 ms, a następnie takie odcinki kompresuje się zamieniając zakodowany w tym czasie sygnał na 260 bitów opisujących wydawanie dźwięku przez człowieka.
To daje 260 [bit] * 50 [1/s] = 13 Kb/s
Kodowanie kanałowe
[edytuj | edytuj kod]Kodowanie kanałowe jest procedurą, która przetwarza segment bitów z zakodowaną rozmową, dodając redundantną informację i bity służące do korekcji błędów. Dzięki temu zmniejsza się współczynnik błędu (BER).
W GSM, segment 260 bitów (odpowiadający 20 ms zakodowanej rozmowy) jest przetwarzany za pomocą następującego algorytmu:
- Segment 260 bitów jest dzielony na trzy bloki: 50 najważniejszych bitów, 132 ważnych bitów, 78 mniej znaczących bitów
- W pierwszym bloku do 50 bitów dodawane są 3 bity parzystości, które posłużą do korekcji błędów. Blok ten ma teraz 53 bity.
- 53 bity pierwszego bloku są dodawane do 132 bitów drugiego bloku (razem 185 bitów).
- Przed kolejnym krokiem dodawane są 4 bity uzupełnienia (ciąg zer) w celu wyczyszczenia rejestru kodera (razem 189 bitów).
- Powstały 189-bitowy blok jest kodowany przy użyciu kodera splotowego o sprawności R = 1/2. Wynikowy blok ma 189*(1/R) = 189*2 = 378 bitów.
- Na końcu dodaje się mniej znaczące bity. W sumie 260-bitowy segment danych zamienia się w 456-bitowy.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/18/GSM_channel_coding.svg/560px-GSM_channel_coding.svg.png)
Dzięki redundancji i bitom parzystości będzie umożliwiona korekcja błędów po otrzymaniu tego segmentu danych.
Przeplot
[edytuj | edytuj kod]Gdy jakiś fragment transmitowanych danych zaginie podczas transmisji, rozmowa odpowiadająca temu fragmentowi w ogóle nie dotrze do adresata. Aby temu zapobiec, bity z zakodowaną rozmową zostają przemieszane tak, aby utrata fragmentu transmisji, spowodowała utratę bitów należących do różnych fragmentów rozmowy i w konsekwencji co najwyżej pogorszenie jej jakości, co może być jeszcze naprawione za pomocą korekcji błędów.
Pierwszy etap (przeplot bitowy)
[edytuj | edytuj kod]456 bitów (które są zakodowane za pomocą procedury Channel Coding) odpowiadające 20 ms rozmowy, są dzielone na 8 bloków po 57 bitów i przemieszane tak jak na rysunku poniżej.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c7/GSM_interleaving.svg/500px-GSM_interleaving.svg.png)
W normalnej ramce wysyłanej w jednej szczelinie czasowej mieszczą się dwa takie bloki. W takiej sytuacji jeśli cala ramka jest zagubiona podczas transmisji, BER=25% (2/8).
Drugi etap (przeplot blokowy)
[edytuj | edytuj kod]Aby dodatkowo zmniejszyć współczynnik błędu zamiast wysyłania w jednej ramce dwóch kolejnych 57-bitowych bloków, wysyła się w niej dwa bloki z różnych segmentów danych odpowiadających innym 20 ms fragmentom rozmowy. Wiąże się to z opóźnieniem w Systemie, ale w zamian zmniejsza się współczynnik błędu. Jeśli podczas transmisji zaginie ramka, tylko jeden blok z 20 ms zostanie utracony, więc BER=12.5% (1/8).
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4f/Idea_interleaving_podczas_transmisji_glosu_w_GSM_Etap_2.svg/300px-Idea_interleaving_podczas_transmisji_glosu_w_GSM_Etap_2.svg.png)
Ciphering/Encryption
[edytuj | edytuj kod]Ten etap jest związany z zakodowaniem ramki w taki sposób, aby była ona możliwa do odkodowania tylko przez uprawnionego odbiorcę informacji. W GSM do tego celu jest używany algorytm A5, nie dodaje on dodatkowych bitów do ramki.
Formatowanie ramek
[edytuj | edytuj kod]Tak jak zostało to przedstawione powyżej jedna ramka danych zawiera dwa 57 bitowe bloki, razem 114 bitów. Dodatkowo do ramki dołączone jest 26 bitów (tzw. sekwencja treningowa), dwa bity flagi i 6 bitów dopełnienia. Tak uformowana ramka zawiera 148 bitów.
Modulacja i transmisja
[edytuj | edytuj kod]Uformowana ramka może być przesłana w jednej szczelinie czasowej (ang. time slot) na przyznanej przez Kontroler Stacji Bazowych częstotliwości. Odstęp pomiędzy częstotliwościami wynosi 200 KHz i w tym paśmie musi zmieścić się transmisja. Jedna ramka to 148 bitów, szczelina czasowa ma długość odpowiadającą czasowi przesyłania 156,25 bita. Ten dodatkowy czas przesłania 8.25 bita jest nazywany guard period i jest zabezpieczeniem, przed "nadpisaniem" rozmowy w sąsiedniej szczelinie czasowej. Każda szczelina czasowa to 0.577 ms. W ośmiu kolejnych szczelinach czasowych jest 8 różnych rozmów, więc w tym czasie (8*0.577 ms) telefon prześle 33.8 Kb/s (156.25 [bit]/ (0.577[ms]*8)).
Ponieważ na jednej częstotliwości kodowanych jest 8 rozmów, daje to transfer 270,9 Kb/s (8*33.8 Kb/s). Aby zmieścić tę ilość bitów w 200 KHz paśmie stosowana jest modulacja GMSK (ze współczynnikiem BT = 0.3).