Wykład 11: Kody i metody korekcji błędów

Slides:



Advertisements
Podobne prezentacje
Excel Narzędzia do analizy regresji
Advertisements

DVB-S Tomasz Bartkowiak Maciej Januszewski Paweł Kryszkiewicz
Automaty asynchroniczne
Wykład 11: Kody i metody korekcji błędów
ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH
Wykład 5: Dyskretna Transformata Fouriera, FFT i Algorytm Goertzela
Wykład 6: Dyskretna Transformata Fouriera, FFT i Algorytm Goertzela
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
DYSKRETYZACJA SYGNAŁU
Metoda simpleks Simpleks jest uniwersalną metodą rozwiązywania zadań programowania liniowego. Jest to metoda iteracyjnego poprawiania wstępnego rozwiązania.
dr A Kwiatkowska Instytut Informatyki
Badania operacyjne. Wykład 2
Michał Łasiński Paweł Witkowski
PRZERZUTNIKI W aktualnie produkowanych przerzutnikach scalonych TTL wyróżnia się dwa podstawowe rodzaje wejść informacyjnych: - wejścia asynchroniczne,
Metody numeryczne Wykład no 1.
Wykład 3: Zasady Działania Protokołów Telekomunikacyjnych
DVB-S Tomasz Barkowiak Maciej Januszewski Paweł Krzyszkiewicz
Magistrala & mostki PN/PD
Metoda simpleks opracowanie na podstawie „Metody wspomagające podejmowanie decyzji w zarządzaniu” D. Witkowska, Menadżer Łódź Simpleks jest uniwersalną.
Sieci Hopfielda.
Dr Anna Kwiatkowska Instytut Informatyki
Zapis informacji Dr Anna Kwiatkowska.
Kody Liniowe Systemy cyfrowe.
Transmisja modemowa Xmodem, Ymodem, Zmodem.
Schemat Hornera Mgr inż. Michał Szucki.
Temat 3: Co to znaczy, że komputer ma pamięć? Czy można ją zmierzyć?
Matematyka.
Elektronika cyfrowa i mikroprocesory
Kod Graya.
Układy sekwencyjne pojęcia podstawowe.
Technika Mikroprocesorowa 1
Układy kombinacyjne cz.2
Cele i rodzaje modulacji
Cyfrowe układy logiczne
A. Sumionka. Starodawna gra marynarska; Gra dwu i wieloosobowa; Gracze wykonują ruchy naprzemian; Złożona ze stosów, w których znajduje się pewna ilość
Uczenie w Sieciach Rekurencyjnych
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
Systemy wspomagania decyzji
Liczby całkowite dodatnie BCN
Sterowanie – metody alokacji biegunów II
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Spis treści W świecie algortmów -Budowa algorytmu
Pudełko Urządzenia Techniki Komputerowej
Złożone układy kombinacyjne
KARTY DŹWIĘKOWE.
Wyszukiwanie maksimum funkcji za pomocą mrówki Pachycondyla Apicalis.
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
Diagram aktywności (czynności)
Metody matematyczne w Inżynierii Chemicznej
Przerzutniki bistabilne
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
METODY REPREZENTOWANIA IFORMACJI
Model warstwowy ISO-OSI
Detekcja i korekcja błędów w transmisji cyfrowej.
Treść dzisiejszego wykładu l Szeregi stacjonarne, l Zintegrowanie szeregu, l Kointegracja szeregów.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
URZĄDZENIA TECHNIKI KOMPUTEROWEJ Zapis liczb binarnych ze znakiem.
Rozpatrzmy następujące zadanie programowania liniowego:
Elementy cyfrowe i układy logiczne
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Podstawy Informatyki.
Technika Mikroprocesorowa 1
Metody matematyczne w Inżynierii Chemicznej
Wstęp do Informatyki - Wykład 6
Podstawy Automatyki Człowiek- najlepsza inwestycja
ALGORYTMY I STRUKTURY DANYCH
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
SHA1 – Secure Hash Algorithm
Zapis prezentacji:

Wykład 11: Kody i metody korekcji błędów PG – Katedra Systemów Mikroelektronicznych ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH Marek Wroński Wykład 11: Kody i metody korekcji błędów

Kodowanie żródła 1948 C.E. Shannon A Math. Theory of Communication sformuł. podstaw.Tw. Torii informacji. Uzyskanie informacji oznacza ograniczenie niepewności dotyczącej pewnego warunku (zmiennej o skończonej liczbie wartości reprezentowanych skończonym zestawem symboli), np.miejsce urodzenia 10-ciu Skandynawów 1 z 310=59049 lub Europejczyków 1 z 3410=2.06*1015 przed odebraniem komunikatu przy każdym odebranym symbolu redukowana o czynnik 3 lub 34. Komunikat m.b. zakodowany różnymi pojedyńczymi symbolami lub, np.cyframi binarnymi wtedy potrzeba log2(3)=1.56 t.j. 2 lub log2(34)=5.09 t.j. 6 znaków na symbol. Nie jest istotny wybór znaków. Mniejszy zestaw znaków daje tylko dłuższe komunikaty (np.mężczyz(ma)/kobieta(fe) zawiera informację redundancyjną wynikającą z zależności m. znakami). Usuwanie redundancji jest głównym zadaniem kompresji danych. Informacja wzajemna (sym. o A znając B) między zdarzeniami (np. danymi wysłanymi i odebranymi): gdy A i B niezależne I(A,B)=0 gdy A i B całkowicie zależne (max) I(A,A)= -log(P(A)) Dla K zdarzeń (jako Ai, gdy X=xi ) m. wyznaczyć entropię (średnią inf. dla wszystkich zdarzeń): dla Skandynawów 1.56 bitów na osobę dla Europejczyków 5.09 bitów na osobę Jest to (autoinformacja czyli inf. w X) minimalna ilość (wolna od redundancji) inf., jaką trzeba utrzymać, aby móc bezbłędnie odtworzyć zachowanie X, tj. jaką powinien przekazać idealny alg. kompresji danych. Aby móc odtworzyć inf. bez błędów szybkość przepływu inf. R>=H bitów/s.

Kodowanie kanału. Modele kanału i przepustowości Jednak błędy transmisji (z prawdopodobieństwem p) Średnia informacja wzajemna: gdzie H(x) jest entropią lub „informacją wejściową” a entropię H(X|Y) m. traktować jako „niepewność” spowodowaną kanałem.Dla BSC (binary symmetric channel) dla bin.sygn.wejśc. jednakowo prawdopodob. H(X)=1 bit na symbol (max) dla kanału doskonałego (p=0) I(X,Y)=1, a dla p=0.1 -> 0.531 bit na symbol. W ostatnim przypadku uzyskujemy tylko 0.531 bita informacji o X, jeśli odbieramy sygnały Y. Niepewność w kanale „rozcieńcza” inf. o wej.X. Wreszcie gdy p=0.5 (średnio przez połowe czasu pojawiają się błędy) I(X|Y)=0, żadna inf.nie przeszła kanałem Dla kanału AWGN (additive white Gaussian noise) przepustowość ( dla W=4 kHz, SNR=45 dB C=60 kbit/s}. Dla BSC Bezbłędność: C>=R (szybkości przepływu)

Korekcja błędów w (blokowym) kodzie powtórzeniowym(3,1,3)

Przesyłanie prostego repetycyjnego kodu 3-bitowego dowa: Prawidłowa transmisja dla (a), (b), (e) i (f). W innych przyp. dekoder kryterium większościowego popełnia błędy. Występuje to gdy jest więcej niż t=1 błędów bit np..101 i 001 bł.1b

Odległość Hamminga Jeśli jest d bł. bitów to przekazywane słowo będzie zamienione na inne i błąd nie może być wykryty Czasem dla słabych sygnałów stosuje się 3-ci symbol „wymazywania”, tj. nieokreślony zastępowany najbardziej prawdopodobnymi brakującymi bitami (p=d-1 bitów w miejsce wymazywanych) Przy klasyfikacji kodu stosuje się triplet z łożony z długości słowa kodowego n, liczby bitów informacyjnych k iminimalnej odległości Hamminga d. Taki triplet oznacza się jako (n,k,d). Nasz kod powtórzeniowy zapiszemy jako (3, 1, 3). Liczba bitów parzystości (nadmiarowych) =n-k. Według odl. Hamminga możemy stwierdzić ile błędnych bitów t (na słowo kodowe) może obsłużyć dany kod. Jeśli w słowie kodowym jest więcej niż t błędnych bitów, to wyżej opisane kodowanie może nawet zwiększyć liczbę bitów i pogorszyć sytuację. W takim przypadku trzeba zastosować lepszy kod, lub nawet może być korzystna rezygnacja Z zastosowania jakiegokolwiek kodu korekcji błędów.

Liniowe kody (blokowe) korekcji błędów, np. LC(6,3,3) To takie kody w których suma składowych (binarna tj. modulo2) dwóch słów kodowych xi i xj musi też tworzyć słowo kodowe. Mają właściwość, że sąsiedztwo wszystkich słów kodowych w n-miernej „przestrzeni kodowej” wygląda tak samo (0). Więc do dekod.wszystk. słów jeden alg. Kodowanie polega na mnożeniu słowa informacji u=[0 1 0] przez macierz generującą kodu G=[I:P] (mac. I (k*k) rozszerzona o macierz P (k*n-k) określającą bity parzystości (nadmiar) x=[u1u2 u3 p1 p2 p3 ], np. p1= u1+u2 ; p2 = u2+u3; p3 = u1+u2+u3; Przesyłane słowo kodowe: x=u*G=u*[I:P]=[0 1 0]* =[0 1 0 1 1 1] Macierz parzystości: H=[PT:I] W dekoderze najpierw obliczamy syndrom błędu jako: (gdy brak błędów y=x) s=y*HT= [0 1 0 1 1 1]* =[0 0 0]=0; Jeżeli powstanie błąd, np.e=[0 0 1 0 0 0] tj. odebrano y=x+e=[0 1 0 1 1 1]+[0 0 1 0 0 0]=[0 1 1 1 1 1] wtedy m.b. obliczony syndrom (używamy go jako indeks do dekodowania błędów): Wyodrębnienie inform. z odebranego słowa: s=y*HT= [0 1 1 1 1 1] =[0 1 1] <>0 u=x*[I:0]= [0 1 0 1 1 1]* =[0 1 0];

Tablica dekodowania Zawiera ona wektory błędów, które mogą generować specyficzny wektor syndromu błędu. Syndrom użyjemy jako indeks w tablicy dekodowania stosując zasadę maksymalnej wiarygodności (najbardziej prawdopodobny błąd 1 bitu) dlatego z 1kol odczytujemy: e=[0 0 1 0 0 0] więc: skorygowane słowo kodowe x=y+e=[0 1 1 1 1 1]+[0 0 1 0 0 0]=[0 1 0 1 1 1] stąd przesłana inf. u=x*[I:0]=[0 1 0] (odl.Hamminga=3->wykryje (3-1) bł. koryguje [(3-1)/2] błędów Nie skoryguje np. podwójnego błędu e=[0 1 0 1 0 0]+x=[0 0 1 0 1 1]=[0 1 1 1 1 1]=y bitów dla u=[001] i x=[001011] po „skorygowaniu” (jak wyżej) u’=[010]<>u

Kody cykliczne, np. CC(7,4,3) Oprócz liniowości cechują się również przesunięciem cyklicznym („rotacja” też daje inne słowo kodowe, np.. 111001 i 110011) Dla nich używa się zapisu wielomianowego (algebraicznego z par. formalnym x): c(x)=c0+ c1*x + c2*x2+.. + cn-1*xn-1; dla słowa kodowego c=[c0 c1 c2 ...cn-1] m-bit rotacja (cykliczne przesunięcie m-krokowe): xm *c(x) modulo(xn-1). Kodowanie to mnożenie przez wielomian generujący g(x): c(x)=q(x)*g(x) lub przesuwanie wielom.inf. i dzielenie wyniku przez g(x) -> c(x)= xn-ku(x)-r(x); (lub *wiel.parzystości: h(x)= ( xn-1)/g(x)) bo: xn-ku(x)/g(x)=q(x)+r(x)/g(x) Przy dekodowaniu odebran. słowa: v(x)=c(x)+e(x)=q(x)*g(x)+ e(x); [e(x)=(Q(x)-q(x)) g(x)+s(x)] obl. wielomian syndromu (do detekcji bł.) jako reszta v(x)/g(x)=Q(x)+s(x)/g(x) jest on jednocześnie resztą z dzielenia e(x) przez g(x), dlatego m.b. użyty do identyfik.wiel. bł.e(x) (zależy tylko od błędu) Np. g(x)= 1+x+x3; informacja: 0010, tj.u(x)=x2; wielomian kodu: c(x)=u(x)*g(x)= x2+ x3+ x5; tzn. Tab. dekodow: przesyłana sekwencja bitów: 0011010 przy braku bł. e(x)=0 c(x)/g(x)= x2+ 0/g(x), tj. s(x)=0 więc brak bł.i inf.u= x2 gdy jest bł. e(x)= x5, więc: v(x)=c(x)+e(x)= x2+ x3; !! XOR dlatego: v(x)/g(x)=1+(x2+x+1)/g(x) stąd zakładając c(x)=0 (bo jednakowe „sąsiedztwo”) obl. lub znajdujemy e(x)= x5 Korekcja błędu daje: v(x)+e(x)= x2+ x3+ x5; skąd u(x)= v(x)/g(x)= x2

Implementacja DSP algorytmu Do implementacji mnożenie i dzielenie wielomianów zamieniamy filtracją (rej.przesuw.+logika) sekw. bitów danych,bo współcz. Ci m. uzyskać jako splot wsp. wielom. inf. i wsp. wielom. gener. C(z)=U(z)*G(z)= u0g0+(u1g0+ u0g1)z+ (u2g0+u1g1+ u0g2)z2+.. gdy: g0=1 i gn-k=1 tj. G(z)=1+G’(z) SOI G’(z) w pętli „-”sprz.da NOI: „Filtracja” sekwencji bitów danych ui przy użyciu binarnego filtru SOI z wagami gj wykona operację mnożenia wielomianowego (kodowania). A w dekoderze wprowadzając v(x) do układu z rejestrem w pętli „-” sprz.zwr. Uzyskujemy w rezultacie dzielenie wielomianowe ( wagi G’(z) to g(x) lecz g0=1). Podczas pierwszych n przesunięć na wyjściu uzyskujemy q(x), a po nich s(x), m.b. odczytany równolegle (po 7 krokach) i użyty jako indeks w przeglądowej tabl.syndromu (do korekcji błędu)

Częściej stosowane kody CRC (Redundancy Check Codes), BCH, RS i splotowe. CRC-4: g(x)=1+x+x4 CRC-5: g(x)=1+x2+x4+x5 CRC-6: g(x)=1+x+x6 CRC-12: g(x)=1+x+x2+x3+x11+x12 CRC-16: g(x)=1+x2 +x15+x16 CRC-CCITT: g(x)=1+x5 +x12+x16 BCH: n=2m-1; k>=n-mt; d>=2t+1; m=3,4,5..(Bose, Chaudhuri, Hocquenghem dla tel.komórkow.) Kody Reeda-Solomona (RS) to kody BCH działające z grupą bitów (z m-narnymi symbolami). Mają one największą możliwą minimalną odległość Hamminga przy danej liczbie bitów kontrolnych I danej długości bloku. Stosuje się je w systemach kombinacyjnych. Zaletą kodów splotowych jest brak potrzeby przesyłania sekwencji synchronizującej koder i dekoder. Stosowane np.. w tel.komórkowej w celu przeciwdziałania interferencji międzysymbolowej (ISI). Jet PropulisionLab (NASA do Voyagera na Marsa) kod splotowy (2,1,6) g(1)=(1,1,0,1,1,0,1) g(2)=(1,1,0,1,1,0,1) Linkabit kod splotowy (3,1,6) g(1)=(1,1,0,1,1,0,1) g(2)=(1,0,0,1,1,1,1) g(3)=(1,0,1,0,1,1,1)

Kody splotowe , np. (2,1,2) – kodowanie Działają na zasadzie ciągłego „strumienia” wtrącając bity parzystości między bity informacyjne zgodnie z pewnymi regułami. Kodowanie to n binarnych filtrów SOI, mających wspólną linię opóźniającą (o dł.m). Każdy filtr j ma swą własną binarną odpowiedź impulsową gi(J),dlatego na wyjściu j-filtru: gdzie u1, u2,... uL bity informacyjne, gi(J) j-ty generator Bity przesyłanego słowa kodowego: c=(c1(1), c1(2),... c1(n), c1( 1), c2(2),... c2(n), cL+m(1), cL+m(2),... cL+m(n)) Na początku wszystkie m elementów w linii opóźniającej jest zerowanych. Potem wprowadzamy po kolei symbole informacyjne i obl. syg. wy. wszystkich filtrów i przesyłamy do wyjścia i tak do uL.W dalszych m krokach wchodzą zera (końcówka kodu tail). Np. g(1)=(1,0,1) i g(2)=(1,1,1) sekw. informac. ul=(0,1,0,1) daje cl(j)=(00,11,01,00,01,11) Sprawność kodowania: R=L/((L+m)*n), a wymuszona długość kodu (liczba bitów na które wpływa 1 bit inf.) (m+1)*n

Dekodowanie Viterbiego – wykres przejść całych sekwencji symboli inf. i symboli parzystości na raz (c1 c2 ... cL+m ) maksymalizuje wiarygodn. odebrania sekwencji bitów c jako sumy min.odległości Hamminga dla bloków (m.odebraną a przes) Dla kanału BSH log. z prawdopodobieństwa warunkowego odebrania bloku vi ,gdy przesłany bl. ci L(vi | ci )=Sum(log(P (vi(j) | ci(j) )|j=1do n=dH(vi | ci )log(p)+(n- dH(vi | ci )) log(1-p)= dH(vi | ci )log(p/(1-p)+nlog(1-p)~- dH(vi | ci ) L(v | c )=Sum(log(P (v | c )|i=1do L+n= - Sum(dH(vi | ci )|i=1 do L+n Nie znamy przesyłanej ale z wiedzy o działaniu kodera tworzymy estymatę spodziewanych danych. tzw. wykres przejść między stanami w koderze lub kratowy wykres kodu możliwych przejść (zaczynając od stanu początkowego 00 i kończąc po L+m krokach tworzących końcówkę na 00) Wykres przejść między stanami zaczynając od stanu 00 (wszystkie elementy pamięc. 0). Cyfry w węzłach są nr. stanów, czyli zawartościami elementów pamięciowych, a cyfry nad gałęziami są symbolami informacji wejściowej ul (w nawiasach) i bitami kodu wyjściowego cl(1) i cl(2) .

Wykres kratowy kodu (code trellis). Rysujemy go na podstawie przejść między stanami. Pokazuje on wszelkie możliwe przejścia (stany na osi y) w funkcji nr.kroku l (oś x). Zaczynając od stanu 00 wachlarzowo rozwija się aż do wszystkich możliwych 4 stanów i na koniec zbiega się do 00 po L+m krokach. Liczby pisane kursywą są są skumulowanymi ujemnymi odległościami Hamminga, liczby w nawiasach są estymowanymi symbolami inf., liczby przy gałęziach są spodziewanymi blokami kodu. Dla wej..ul=(0,1,0,1) brak bł.cl(j)=(00,11,01,00,01,11) bł. e=(01,10,00,10,11)v=(01,01,01,10,01,11) W 1-kr.(od 00) odbierany blok (słowo) v1=(0,1). Były 2 możliw: ul=(1) przejść do 10 wyg. c1=(1,1) (ale odebraliśmy v1=(0,1)więc obl. odl. Hamm. –1) lub pozostać w 00 i wygenerować c1=(0,0). W 2-kr.odebr.v2=(0,1) obl.skumul.odl.Hamminga dla wszystkich możliw.przejść itd..Np.. Zakładając Stan 10 i przejście do11, to u2=1 i c2=(1,0) odl.H=-2 więc skumulowany koszt-3 (dla osiągnięcia stanu11) Rozpoczynając 3ci blok widzimy 2 ścieżki do osiągn. tych stanów – wybieramy „najtańszą” i skreślamy „kosztowniejszą”(np.. dojście do stanu 01 –albo od Stanu 10(koszt –3) albo od 11 (koszt –5)). Wybieramy „najtańszą”. Po osiągnięciu końcowego Węzła Śledząc wstecznie uzysk.estymow. (zdekod) inf. u (dół). Tylko 1 ścieżka o najmn. koszcie

Przeplot <= t korygowanych Przeplot stosuje się, np. w kanałach radiowych, tam gdzie błędy pojawiają się w paczkach (seryjne) Jest to metoda rozproszenia błędów bitowych w serii na większą liczbę bloków kodowych tak aby liczba błędów bitowych na blok (dł. n mający k bitów inf.) mb.skorygowana przez dość krótki kod. Przychodzące symb.inf. są kodowane i zapamiętywane wiersz po wierszu (l wierszy=głębok.przepl) Po zgromadzeniu l słów matryca jest pełna. ui(j) bit inf. i w słowie j, pm(j) bit parzystości m w słowie j Wyjściem kanału jest nl bitów, lecz tym razem kolumna po kolumnie u1(1) ,u1(2) ,.. u1(l) ... P(n-m)(l) Po stronie dekodera działanie odwrotne – rozplot bity są rejestrowane, kolumna po kolumnie i potem odczytywane do dekodera wiersz po wierszu Rozproszenie serii N kolejnych błędnych bitów na L słów kodowych. Każde słowo kodowe zawiera <= t korygowanych

Kodowanie w modemie V.32 z 32(.) modulacją kratową (Trellis mod.) Dane wejściowe są dzielone w grupy 4-bitowe. Pierwsze dwa bity każdej grupy są kodowane różnicowo, później następuje kodowanie złożone tak, aby uzyskać zestaw 3 bitów. Pozostałe dwa bity nie są kodowane, a jedynie przesyłane dalej. W wyniku takiego działania każda grupa zawiera pięć bitów. Następnie te pięć bitów jest mapowane na rozkładzie 32-punktowym. Po stronie odbiornika dane są dekodowane algorytmem największego prawdopodobieństwa (Viterbi) w celu oszacowania otrzymanych danych.

Koder c.d Kodowanie 2-etapowe: koder różnicowy + koder splotowy. Koder różnicowy zabezpiecza przed 180o niejednoznacznością.Tylko 2 z 4 bitów jest kodowanych Koder splotowy wprowadza ograniczenia -nie pozwala na sąsiedztwo kolejnych wyjść (dla zadanych stanów (S0,S1,S2), np.(0,0,1) dop. 4 z 8 dróg (Y0,Y1,Y2):000,010,100,110) Funkcjonalnie to 3-bit.rejestr przesuwny połączony układami logiki AND i XOR. Stanem opóźnienia nazywane są trzy bity pamięci kodera (S0, S1, S2), a bity wyjścia (Y0, Y1, Y2) nazywane są stanem ścieżki. Dając określony stan opóźnienia (S0, S1, S2) nie wszystkie stany ścieżki są możliwe w tym czasie. Np. mając stan opóźnienia (0, 0, 1) możemy w następnym interwale czasu otrzymać tylko 4 ścieżki stanu (0, 0, 0), (0, 1, 0), (1, 0, 0) i (1, 1, 0). W ten sposób otrzymujemy strukturę siatki. Koder jest maszyną o skończonej odpowiedzi, a więc można go przedstawić za pomocą schematu o skończonej odpowiedzi. Koder ma osiem możliwym stanów opóźnienia. W dowolnym czasie koder może przyjąć tylko jeden stan opóźnienia (S0, S1, S2). W następnej iteracji koder może przyjąć już tylko cztery stany opóźnienia.

Differential Encoder Lookup Table

State Iable For Convolutional Encoder and Trellis Diagram W każdym momencie każdemu elementowi opóźniającemu zostaje przypisana wartość 1 lub 0.Istnieje 8 możliwych kombinacji stanów tych 3 elementów opóźn. W tabeli stanów mamy wypisanych 8 możliwych stanów. Dodatkowo Tabela pokazuje, że dla 2-bitowego wejścia kodera elementy opóźniające przechodzą w nowe stany a także generują wyjścia. Każdy węzeł wykresu kratowego reprezentuje stani jest oznaczony 3-bitową Wartością.Liniami oznaczone są przejściaze stanu w jednym oknie czasowymdo kolejnego.Dla każdego 2-bitowego wejścia pokazane są niektóre drogi oznaczone 3-bitowym wyjściem, które zostały wygenerowane gdy elementy opóźniające przeszły do następnego stanu.Np..wynikiem wejścia 01 jest zmiana elem.opóźn. 000 na 011 z wyjściem101(linia 000 do 001 oznaczona 101).

Wykres kratowy (V.32 Modem Trellis Diagram) Ukazuje on zależność pomiędzy stanami opóżnionymi i bieżącymi (delay and path states). Zauważ, że nie wszystkie stany mogą być osiągnięte ze stanów poprzednich. Wybór właściwej drogi (w czasie) zależy od bieżącego stanu (path state) i od historii stanów wraz z ich rzetel- nością (tzw.miękka decyzja wg.funkcji kosztu: sum.Euclides.odległości zamiast odległości Hamminga bo dla szumu białego czym odleglejszy (.) na konstelacji tym jest on mniej prawdopodobny )

V.32 konstelacja Modulacja 32-punktowa charakteryzuje się większym bit-error rate (BER) w porównaniu do rozkładu 16-bit. Dzieje się tak dlatego, że minimalna odl. Euklidesowa między dowolnymi dwoma punktami na 32-punktowym rozkładzie jest bardzo mała, co zmniejsza margines szumu. Jednakże kodowanie splotowe nie pozwala dwóm następu- jącym po sobie symbolach być w ośmiu sąsiednich pozycjach od siebie. Dzięki temu minimalny dystans miedzy dwoma punktami jest zwiększony i uzyskujemy wzrost wzmocnienia o 3 dB.

Dekodowania Viterbi’ego Z 4 możliwych dróg (path states) ta która ma min.koszt jest wybierana (reszta jest dezaktywowana) Określony stan (delay state) m.b. osiągnięty tylko z 4 stanów poprzednich. Dekoder wybiera tylko jeden tak aby uzyskać połączenie pomiędzy poprzednim i bieżącym odcinkiem czasowym. To połączenie jest identyfikowane jako path state.Każda droga (path state) związana z 3 bit z 5-ciu Dlatego1 droga identyfikuje 4(.) na konstelacji symetrycznie umieszczone i jednakowo max.odległe

Implementacja dekodowania Viterbi’ego w modemie V.32 Na początku każdego interwału czasowego wybiera najbliższy(.) na konstel.i selekcjonuje 8 dróg. Jest to rozwinięcie wykresu kratowego (x czas, y 8 możliw.) Koder m. osiągać tylko 1, ale dekoder zapamiętuje wszystkie 8 aż do zdecydowania który. Funkcje kosztu są uaktualniane jako sumy odległości dla drogi i wybierana z min.kosztem. Wybrana droga prześledzona z powrotem daje poszukiwany stan (Y0,Y1,Y2). Ten 3-bit. rezultat nie identyfik. jednoznacznie 5-bit. wy.sygn. 4 (.) na konstelacji odpowiadaj tym 3 bitom są porównywane z korespondującymi w danym czasie i wybierana 5-bit. wartość najbliższa (ciągnie całą historię z 16 interwałów czasowych) Im więcej okien czasowych upłynie tym, tym decyzja jest lepsza. Istnieje zatem możliwość wyboru pomiędzy dokładnością a czsem Optymalna dł.(5-6)dł.kodera splotowego, stąd 16 interwałów czas.