• Nie Znaleziono Wyników

KODY SPLOTOWE

N/A
N/A
Protected

Academic year: 2021

Share "KODY SPLOTOWE"

Copied!
28
0
0

Pełen tekst

(1)

KODY SPLOTOWE

- Koder splotowy jest automatem generującym ciąg wyjściowy w zależności od ciągu wejściowego oraz zawartości komórek pamięci:

- działanie kodera przypomina operację splotu.

- Kodowanie splotowe połączone z dekodowaniem według algorytmu Viterbiego to przez wiele lat najważniejsza z metod kodowania korekcyjnego:

- prosty układ kodera,

- duże możliwości korekcyjne kodów splotowych, - stosunkowo prosty algorytm dekodowania.

- Metody opisu kodów splotowych:

- schemat kodera, - diagram stanu,

- wykres kratowy (trellis).

(2)

SCHEMAT KODERA SPLOTOWEGO (1)

- Każdy koder splotowy to rejestr przesuwny z układami dodawania modulo-2.

- Podstawowe parametry kodera splotowego pozwalają narysować schemat kodera:

- długość rejestru kodera (długość wymuszona) L,

- współczynnik kodu R = k/n daje informację o liczbie bitów wyjściowych z kodera (w praktyce k = 1),

- metoda generowania bitów zakodowanych zapisana jest w postaci tzw. wielomianów generacyjnych lub generatorów.

(3)

SCHEMAT KODERA SPLOTOWEGO (2)

- Etapy rysowania schematu kodera:

1. Narysuj rejestr przesuwny o L komórkach.

2. Narysuj n układów dodawania modulo-2.

3. Podaj wyjścia z komórek rejestru na sumatory zgodnie z wielomianami generacyjnymi („1” - pobieramy bit z komórki).

Przykłady:

R = 1/2, L = 3, g1 = 101, g2 = 111

R = 1/2, L = 7, g1 = 1338 = 1011011, g2 = 1718 = 1111001

(4)

KODER SPLOTOWY – RYSOWANIE KODERÓW

R = 1/2, L = 3, g1 = 101, g2 = 111

R = 1/2, L = 7, g1 = 1011011, g2 = 1111001

+

+

y1

y2 ciąg

informacyjny

ciąg kodowy

y1

y2 +

+

(5)

KODER SPLOTOWY – PRZYKŁAD KODOWANIA

dane: 1101 …

ciąg zakodowany: 11 10 10 00 ….

UWAGA! Przed rozpoczęciem kodowania należy wyzerować rejestr kodera.

Dla pierwszego bitu danych b1 = 1 zawartość rejestru: 100 i na wyjściu mamy 11, dla bitu drugiego b2 = 1 mamy w rejestrze: 110 i na wyjściu: 10,

dla bitu trzeciego b3 = 0, mamy w rejestrze: 011 i na wyjściu: 10, dla czwartego b4 = 1 mamy w rejestrze: 101 i na wyjściu: 00.

+

+

y1

y2 1 0 0

+

+

y1

y2 1 1 0

+

+

y1

y2 0 1 1

(6)

DIAGRAM STANU

- W koderze splotowym stan kodera reprezentuje zawartość pamięci rejestru czyli mamy 2L-1 stanów.

- W celu narysowania diagramu stanu musimy utworzyć tablicę przejść/wyjść:

aktualny stan bit wejściowy następny stan ciąg wyjściowy

S0 0 S0 00

{00} 1 S2 11

S1 0 S0 11

{01} 1 S2 00

S2 0 S1 01

{10} 1 S3 10

S3 0 S1 10

{11} 1 S3 01

(7)

DIAGRAM (GRAF) STANÓW

10 1010

11

01 00

1/11 1/10

0/10 0/11

0/01 1/00

0/00 1/01

(8)

WYKRES KRATOWY (TRELLIS)

- Na wykresie kratowym można pokazać upływ czasu (wyróżnić kolejne nadawane bity).

- Zależność wykresu kratowego i diagramu stanu:

- kolumny - kolejne nadawane dane, - węzły - stany kodera,

- gałęzie - przejścia pomiędzy stanami,

- etykiety ponad gałęziami - ciągi wyjściowe z kodera, - ścieżki - zakodowane ciągi wyjściowe.

- Do realizacji dekodera według algorytmu Viterbiego potrzebujemy znać wyłącznie strukturę wykresu kratowego.

(9)

WYKRES KRATOWY

bit danych = 0 bit danych = 1

00 00 00 00

11 11 11 11

01 01 01

10 10 10

01 01

11 11

00 00

10 10

S0

S2

S1

S3

(10)

DEKODER OPTYMALNY

- Dekoder optymalny to dekoder, który minimalizuje prawdopodobieństwo błędu (maximum likelihood ML).

- Dekoder ML wybiera, spośród wszystkich możliwych do nadania, takie słowo kodowe, które spełnia nierówność:

P(Y/Xk) > P(Y/Xj) dla j ≠ k,

gdzie Y - odebrane słowo kodowe, {X} - zbiór wszystkich możliwych do nadania słów kodowych.

- Dla kodów splotowych, dekoder realizujący algorytm Viterbiego, stanowi dekoder o maksymalnej wiarygodności ML.

(11)

ALGORYTM VITERBIEGO (1)

- Algorytm Viterbiego polega na znalezieniu (na podstawie odebranego ciągu) najbardziej prawdopodobnej ścieżki (jaką poruszał się koder) na wykresie kratowym.

- Metryka gałęzi - odległość Hamminga pomiędzy bitami odebranymi, a zapisanymi ponad gałęzią na wykresie kratowym

- dekoder „miękko-decyzyjny” liczy odległość Euklidesową pomiędzy sygnałami.

- Metryka stanu - długość ścieżki prowadzącej do danego stanu czyli suma metryk gałęzi tworzących ścieżkę.

- Dekoder podejmuje decyzję po odebraniu wszystkich bitów - wybiera stan, do którego prowadzi najkrótsza ścieżka.

(12)

ALGORYTM VITERBIEGO (2)

- Algorytm Viterbiego polega na znalezieniu (na podstawie odebranego ciągu) najbardziej prawdopodobnej ścieżki (jaką poruszał się koder) na wykresie kratowym.

Etapy AV:

1. Ponad gałęziami wpisz odległości (liczbę różnych pozycji) pomiędzy odebranym blokiem a etykietą gałęzi.

2. Dla każdego stanu (węzła):

a. policz sumaryczną długość ścieżek wiodących do węzła, b. wybierz ścieżkę o najmniejszej długości,

c. zapamiętaj wybraną ścieżkę wraz z jej długością.

3. Po odebraniu całego ciągu - wybierz stan do którego dochodzi najkrótsza ścieżka i zdekoduj ciąg nadany.

(13)

PRAKTYCZNE INFORMACJE

- Zysk kodowy w systemie koder splotowy i dekoder Viterbiego zależy od:

- możliwości korekcyjnych kodu splotowego - tym lepsze im dłuższy rejestr kodera,

- realizacji AV.

- Ze względu na wzrost czasu pracy dekodera Viterbiego wraz ze wzrostem liczby stanów (długości L) nie stosuje się kodów o L > 10.

- Najdłuższy koder splotowy został zastosowany w sondzie kosmicznej „Pathfinder” wysłanej na Marsa, kod miał R = 1/6, a liczba stanów wynosiła 16384, dekoder realizujący AV dla tego kodu został nazwany „Big Viterbi Decoder”.

(14)

KODY SPLOTOWE Z WYKLUCZANIEM BITÓW (PUNCTURED CONVOLUTIONAL CODES)

- Operacja wykluczania bitów polega na usuwania bitów z wyjścia kodera splotowego (zgodnie z pewnym wzorem zwanym macierzą wykluczania):

- wykorzystując jeden koder bazowy możemy stworzyć rodzinę kodów splotowych o różnych współczynnikach kodu R czyli różnych możliwościach korekcyjnych,

- w odbiorniku usunięte bity zostają zastąpione przez tzw.

symbole „null” - wartości dokładnie pomiędzy „0” i „1”, - do odbioru wystarczy jeden wspólny dekoder Viterbiego.

- Kody z wykluczaniem bitów znalazły szerokie zastosowanie w systemach radiowych (komórkowych), w których użytkownicy mają kanały o różnych poziomach błędów.

(15)

SYSTEMY HARQ

- Kody splotowe z wykluczaniem bitów są wykorzystywane w systemach HARQ (systemy komórkowe HSPA, LTE):

1. Wysyłamy dane zakodowane za pomocą kodu splotowego połączonego z pewnym wzorem wykluczania.

2. Danych nie udało się prawidłowo skorygować i na wyjściu dekodera mamy błędy (wykazał to dekoder kodu cyklicznego).

3. Po odebraniu informacji od dekodera, nadajnik wysyła te same dane, ale tym razem są one zakodowane za pomocą kodu splotowego połączonego z innym wzorem (poprzednio usunięte bity są wysyłane, a usuwa się inne bity).

4. Po stronie odbiorczej dekoder może złożyć z dwóch odebranych bloków jeden blok zawierający wszystkie bity – szansa na zdekodowanie jest większa.

- Czemu od razu nie wysłać całego bloku bez wykluczeń?

Okazuje się, że wersja HARQ daje lepszą efektywność – większość bloków udaje się skorygować już za pierwszym razem i tylko nieliczne bloki muszą być powtarzane. Musimy przesyłać mniej bitów czyli obsługa jednego abonenta trwa krócej czyli możemy obsłużyć więcej abonentów.

(16)

KODOWANIE SYGNAŁU MOWY W GSM

- Pobieramy 20 ms mowy i zamieniamy ją na 260 bitów (szybkość kodera - 13 kbit/s) podzielonych na 3 klasy: 50 + 132 + 78.

- Najważniejsze 50 bitów zabezpieczamy kodem CRC-3 o wielomianie g(x) = x3 + x + 1.

- Otrzymane 53 bity wraz z kolejną grupą 132 bitów przepuszczamy przez koder splotowy: R = 1/2, L = 5, g1 = 10011(238), g2 = 11011(338)

- przed kodowaniem dodajemy ciąg „0000” - czyścimy rejestr kodera.

- Zakodowany ciąg 378 bitów wraz z pozostałymi 78 bitami tworzy blok 456 bitów (szybkość w kanale - 22.8 kbit/s).

- Cały blok zostaje poddany przeplotowi, tak aby zapełnić 4 kolejne ramki zawierające po 2 * 57 bitów.

(17)

KODOWANIE DANYCH W GPRS

- Można stosować 4 schematy kodowania (w zależności od jakości kanału).

CS-1: koder splotowy stosowany w GSM + CRC-40 (8 kbit/s)

CS-2, CS-3: koder splotowy z GSM zastosowany wraz z operacją wykluczania bitów + CRC-16 (12 kbit/s i 14.4 kbit/s)

- operacja wykluczania polega na usuwaniu zgodnie z określoną regułą niektórych zakodowanych bitów

CS-4: tylko CRC-16 bez kodowania splotowego (20 kbit/s)

(18)

MODULACJE KODOWANE KRATOWO TCM (TRELLIS CODED MODULATION)

- Kodowanie splotowe wiąże się ze znacznym wydłużeniem czasu transmisji albo poszerzeniem pasma (zwiększamy szybkość transmisji).

- W 1982 G. Ungerboeck zaproponował nowe podejście do operacji kodowania i modulacji i potraktowania ich łącznie.

- Jeżeli bez kodowania stosowaliśmy modulację M-wartościową, to można uzyskać zysk kodowy bez poszerzenia pasma, jeżeli zwiększymy wartościowość modulacji na 2M i dodamy koder splotowy.

- to podejście można zastosować dla modulacji ASK, PSK i QAM.

(19)

TCM - ZYSK KODOWY

- Nadmiar kodowy zostaje zamieniony na większą liczbę przesyłanych sygnałów.

- Zysk kodowy w TCM jest mierzony jako różnica pomiędzy SNR dla systemu bez kodowania i z modulatorem M-wartościowym oraz SNR dla systemu z kodowaniem i konstelacją 2M.

- na przykład - porównamy niezakodowane QPSK (1 sygnał - 2 bity) z zakodowanym 8PSK (1 sygnał - 2 bity informacyjne + 1 bit nadmiarowy).

(20)

TCM – NA CZYM TO POLEGA?

Modulator

QPSK 500 sygnałów/s 500 Hz

Modulator QPSK

Modulator 16 PSK !!

Koder splotowy R = 1/2

Koder splotowy R = 1/2

Koder splotowy R = 1/2

kodujący co drugi bit

Modulator 8 PSK

1000 bit/s

1000 bit/s

1000 bit/s

1000 bit/s 1000 bit/s

2000 bit/s

2000 bit/s 500 sygnałów/s 1000 sygnałów/s 1000 Hz !!

500 Hz

500 Hz

500 sygnałów/s 1500 bit/s

System bez kodowania

A.

C.

B.

(21)

KONSTRUOWANIE KODERA TCM

1. Wartościowość modulacji zwiększamy 2 razy.

2. Poszczególnym sygnałom na wyjściu modulatora przyporządkowujemy słowa kodowe zgodnie z metodą zwaną

„odwzorowanie przez podział zbioru” (mapping by set partitioning).

3. Wybieramy koder splotowy - możemy zastosować kodery o współczynnikach R = k/(k+1), np. R = 1/2.

4. Część bitów informacyjnych pozostaje niezakodowana.

(22)

ODWZOROWANIE PRZEZ PODZIAŁ ZBIORU

- Metoda polegająca na podziale zbioru wszystkich sygnałów generowanych przez modulator na podzbiory o tej samej liczności.

- Na każdym etapie podzbiór uzyskany z poprzedniego podziału jest dzielony na dwie równe części.

- Reguła Ungerboecka - minimalna odległość Euklidesa pomiędzy sygnałami musi się zwiększać na każdym etapie podziału.

(23)

PODZIAŁ MODULACJI 8PSK

d0

d1

d2

r

d2 d1

d0

0 1

0 1 0 1

000 001 010 011 100 101 110 111

0 1 0 1 0 1 0 1

B1 B0

A

C0 C 2 C1 C3

(24)

PRZYKŁAD KODERA TCM DLA 8PSK

+

+

y1

y2

y3

Wybór jednego z czterech podzbiorów:

C0, C1, C2 i C3

Wybór jednego z dwóch punktów podzbioru

dane R/S sygnał wyjściowy

(25)

ODWZOROWANIE PRZEZ PODZIAŁ ZBIORU DLA MODULACJI 8PSK

110

101

000 110

y1 y2 y3 = 010

111 001

100

011

(26)

WYKRES KRATOWY DLA TCM

- Wykres kratowy ma identyczną strukturę, jak dla kodera splotowego, ale ze względu na istnienie bitów niezakodowanych pojawią się przejścia równoległe pomiędzy stanami.

- Dekodowanie przebiega podobnie, jak w przypadku kodów splotowych, ale jest uzupełnione o dodatkowy etap wstępny mający na celu wyeliminowanie przejść równoległych:

- spośród sygnałów odpowiadających równoległym przejściom pomiędzy dwoma stanami wybierz sygnał najbardziej prawdopodobny (najbliższy odebranemu),

- wybrany sygnał posłuży do wyliczenia metryki gałęzi.

(27)

ZASTOSOWANIE KODÓW NADMIAROWYCH

- Kody cykliczne - we wszystkich protokołach ARQ (HARQ) w celu sprawdzenia poprawności odebranego bloku.

- Kody Reeda-Solomona - systemy DVB-T, WiMAX.

- Kody splotowe (oraz splotowe z wykluczaniem) - systemy telefonii komórkowej GSM (GPRS, EDGE), UMTS i LTE, modemy ADSL, systemy dostępu bezprzewodowego do Internetu WLAN (standardy 802.11a, 802.11n, 802.11ac), systemy satelitarne.

- Turbo-kody splotowe – systemy komórkowe UMTS, HSPA, LTE.

- Kody LDPC (Low Density Parity Check) - kody blokowe systematyczne o dużych wartościach parametrów k i n (tysiące bitów):

- jako kody opcjonalne pojawiły się w wielu standardach, - zatwierdzono je do stosowania w 5G do kodowania danych.

- Kody polarne (kody blokowe) - wynalezione w 2009, mają być stosowane w 5G do ochrony wiadomości sterujących i kontrolnych.

(28)

PRZYKŁAD TURBO-KODERA SPLOTOWEGO

permutation - przeplot

Cytaty

Powiązane dokumenty

Angielski filozof – jak wynika z pierwszego zdania zamieszczonego cytatu – przypisywał absolutne stawanie się zdarzeniom, ponieważ obawiał się, że przy- pisywanie

łaniom ruchu trójwymiarowego, a w szczególności może ulegać obrotowi wokół wszystkich trzech osi, natomiast przedmiot znajduje się w ruchu jednostajnym i jest

ne funkcji względem argumentów, dzięki czemu możliwe jest zastosowanie metod gradientowych. W pracy [^43 parametry przemieszczeń otrzymuje się jako wynik minimalizacji pewnej

Perspektywa, którą Autorka przyjęła w pracy analizując polskie społeczeństwo, sprawia, że udało się jej pokazać tylko jeden z wymiarów, w jakim to

Można obliczyć odległość rzeczywistą (przestrzenną) pomiędzy dowolnymi punktami bryły (wewnątrz lub na powierzchni bryły), podając współrzędne (rysunkowe

Po zapoznaniu uczniów z pojęciami funkcji oraz nabyciu umiejętności rozwiązywania równania można przystąpić do samodzielnego projektowania nowego zadania. Polega to

Zadanie 6. Wszyscy uczniowie jednego z gimnazjów wzięli udział w ankiecie na temat: „Twoja ulubiona dyscyplina sportowa”. Każdy mógł wpisać tylko jedną dyscyplinę.

- Algorytm Viterbiego polega na znalezieniu (na podstawie odebranego ciągu) najbardziej prawdopodobnej ścieżki (jaką poruszał się koder) na wykresie kratowym.