Detekcja i korekcja błędów w transmisji cyfrowej

Podobne dokumenty
Detekcja i korekcja błędów w transmisji cyfrowej

W11 Kody nadmiarowe, zastosowania w transmisji danych

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

Laboratorium ochrony danych

0 + 0 = 0, = 1, = 1, = 0.

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Kody splotowe. Zastosowanie

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Systemy bezpieczne i FTC (Niezawodne Systemy Cyfrowe)

Matematyka dyskretna

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Kody blokowe Wykład 2, 10 III 2011

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

Kod U2 Opracował: Andrzej Nowak

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Sieci Komputerowe Mechanizmy kontroli błędów w sieciach

Podstawy Informatyki: Kody. Korekcja błędów.

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Wstęp do Informatyki

Podstawy Informatyki

Arytmetyka liczb binarnych

Zapis liczb binarnych ze znakiem

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Systemy zapisu liczb.

Arytmetyka. Arytmetyka. Magdalena Lemańska. Magdalena Lemańska,

Polska-Brazylia 5:0, czyli o poprawianiu błędów w przekazywanych informacjach

Kody splotowe (konwolucyjne)

Algorytmy i struktury danych. Wykład 4

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Podstawy Informatyki

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Cyfrowy zapis informacji

Teoretyczne Podstawy Informatyki

Kodowanie informacji. Kody liczbowe

Luty 2001 Algorytmy (7) 2000/2001

Arytmetyka stałopozycyjna

Architektura komputerów

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Arytmetyka komputera

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Temat 7. Dekodery, enkodery

DZIESIĘTNY SYSTEM LICZBOWY

1 WPROWADZENIE 1. Agata Pilitowska. parzysta. 3. Znaleźć odległość kodu kontroli parzystości nad ciałem GF (q).

1.1. Pozycyjne systemy liczbowe

Pracownia Komputerowa wykład IV

Kodowanie liczb całkowitych w systemach komputerowych

Modulacja i Kodowanie. Labolatorium. Kodowanie Kanałowe Kody Hamminga

Technologie Informacyjne

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

1259 (10) = 1 * * * * 100 = 1 * * * *1

KODOWANIE KANAŁOWE (NADMIAROWE) ERROR CONTROL CODING

Pracownia Komputerowa wykład V

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Techniki multimedialne

Tranzystor JFET i MOSFET zas. działania

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Kody blokowe Wykład 1, 3 III 2011

Operacje arytmetyczne

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A

B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

1. Operacje logiczne A B A OR B

System Liczbowe. Szesnastkowy ( heksadecymalny)

Teoria informacji i kodowania

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

LICZBY ZMIENNOPRZECINKOWE

Wprowadzanie nadmiaru informacyjnego dla transmitowanych szeregowo danych w kompaktowych sterownikach PLC firmy Mitsubishi Electric

WSTĘP DO ELEKTRONIKI

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Naturalny kod binarny (NKB)

Pracownia Komputerowa wyk ad IV

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

Wstęp do informatyki- wykład 1 Systemy liczbowe

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

Stan wysoki (H) i stan niski (L)

Pracownia Komputerowa wyk ad V

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Mikrooperacje. Mikrooperacje arytmetyczne

Pracownia Komputerowa wykład VI

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Kodowe zabezpieczenie przed błędami oraz kanał telekomunikacyjny i jego właściwości

Architektura komputerów

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Operacje arytmetyczne w systemie dwójkowym

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Architektura komputerów

4. Systemy algebraiczne i wielomiany nad ciałami zastosowania Rodzaje systemów algebraicznych ciała, grupy, pierścienie

Technika Cyfrowa 1 wykład 1: kody. Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej

Transkrypt:

Detekcja i korekcja błędów w transmisji cyfrowej

Błędy w transmisji cyfrowej pojedyncze wielokrotne. całkowita niepewność względem miejsca zakłóconych bitów oraz czy w ogóle występują paczkowe (grupowe) (burst error) długość paczki błędów wymazanie danych (erasure) całkowita niepewność względem wartości zakłóconych bitów, ale miejsca tych bitów są znane

CRC (Cyclic Redundancy Check) metoda najbardziej popularna i skuteczna

Przykład CRC w systemie dziesiętnym Liczba (informacja) nadawana 745 wybieramy dzielnik np. 7 przesuwamy liczbę w lewo 745 dzielimy przez 7 otrzymujemy resztę 2. Należałoby tę resztę odjąć od 745, aby uzyskać liczbę podzielną przez 7, ale wtedy zmieniłaby się liczba informacyjna Można dodać dopełnienie do 7, czyli dodać 5 Ostatecznie liczba 745 zostaje zakodowana do postaci 7455, która dzieli się przez 7. Jeżeli odebrana liczba będzie zawierać jeden błąd np. 7465 7555 7355 nie dzielą się bez reszty przez 7 błąd można wykryć 8455 6455 8555 8456 dzieli się przez 7!! Zmieniona liczba różni się o od oryginału, a jest podzielne przez 7.

Słowa i liczby binarne są reprezentowane przez wielomiany zmiennej Każda potęga w tym wielomianie reprezentuje odpowiednią pozycję cyfry binarnej 2 4 5 7 2 3 4 5 6 7 ma wartość nieoznaczoną, dlatego nie można obliczać wartości tego wielomianu W systemie dwójkowym

Arytmetyka wielomianów Dodawanie modulo 2 bez przeniesień z uwzględnieniem właściwych potęg zmiennej ( 7 6 ) ( 6 5 ) 7 ( ) 6 5 ( ) 7 5 Odejmowanie to dodawanie elementu przeciwnego element przeciwny Element przeciwny do a taki, że a + (-a) =, b a b ( a) W arytmetyce mod 2 + = i + = W arytmetyce modulo 2 odejmowanie jest równoważne dodawaniu!

Mnożenie ( )( 2 ) 3 2 2 3 ( ) 2 ( ) 3 Dzielenie iloraz : dzielnik reszta 3 + 2 + 6 + 5 : 3 + + 6 + 4 + 3 5 + 4 + 3 5 + 3 + 2 4 + 2 4 + 2 + reszta

Metoda CRC polega na dodawaniu bitów będących resztą z dzielenia wielomian generujący Traktując bity reszty jako najmniej znaczące, należy bity wiadomości przesunąć odpowiednio w lewo, czyli zwiększyć ich wagę n-k razy, aby zrobić miejsce dla bitów reszty n - k = liczba bitów reszty = liczba bitów dodatkowych

Procedura CRC ) przyjmujemy wielomian generujący g() stopnia g = n k; 2) słowo wiadomości (binarne) przedstawiamy w postaci wielomianu m(); 3) wielomian m() przesuwamy w lewo o g pozycji, tj. zwiększamy wagę jego wszystkich wyrazów g razy, a puste miejsca w wielomianie uzupełniamy zerami; 4) otrzymujemy wielomian m() g ; 5) wielomian ten dzielimy przez g(); 6) resztę z dzielenia dopisujemy do wielomianu m() g, 7) otrzymujemy wielomian m() g + r(); 8) zamieniamy go na liczbę binarną otrzymujemy końcowe słowo kodowe. m( ) nk m()

Po stronie odbiorczej odbieramy całe słowo łącznie z bitami reszty i dzielimy je przez ten sam wielomian generujący Dlaczego? słowo powinno podzielić się bez reszty! Jak można zapisać wielomian całego słowa kodowego? nk c( ) m( ) r( ) gdzie n = długość słowa kodowego, k = długość wiadomości m( ) nk m()

) ( ) ( ) ( ) ( r q g m k n ) ( ) ( ) ( r m c k n ale podstawiając ) ( ) ( ) ( ) ( ) ( r r q g c k n m ) (... w stosowanej arytmetyce Prawidłowe słowo kodowe dzieli się bez reszty przez wielomian generujący... i to jest sprawdzane po stronie odbiorczej bo w ten sposób została wyznaczona r()

słowo kodowe poprawne c() słowo niepoprawne (błędne) c () przy czym c' ( ) c( ) e( ) dodawanie mod 2! e() = wektor błędów - słowo zawierające i ; jedynka oznacza, że na danym miejscu wystąpił błąd np. e() = - na 5. bicie wystąpił błąd e() = - błąd paczkowy o długości 6 bitów sprawdzana jest podzielność c () przez g() c' ( ) g( ) q( ) e( ) to jest na pewno podzielne czy to jest podzielne przez g()?

Wybór wielomianu g() e() nie powinno być podzielne przez g() w przeciwnym razie nie wykryje się błędu! Dla błędów pojedynczych e() =... albo... albo 2... albo 3... albo 4... itd.. Dlatego Wielomian generujący g() nie powinien mieć postaci m - nie może być jednomianem m[, n-]

Wybór wielomianu g() Dla błędów podwójnych e() = +... albo 2 +... albo 3 +... albo 2 +... albo 3 +... itd.. ogólnie e() = i + j = i (+ j-i ) j, i numery = < i < j < n- błędnych bitów Wiadomo już, że g() nie dzieli bez reszty i czy może podzielić bez reszty (+ j-i )?

Wybór wielomianu g() Jeżeli g() jest primitive (nierozkładalny) to nie dzieli dwumianu ( + j-i ) dla j - i < 2 n - k - n - k = stopień wielomianu g() Przykład n = 7 k = 3 wielomian g() = 3 + + nie dzieli (+ n ) dla n < 5 n taki błąd podwójny oraz krótsze będą wykryte

Wybór wielomianu g() niektóre stosowane wielomiany generujące CRC-8 8 + 2 + + reszta 8-bitowa nagłówek ATM CRC- + 9 + 5 + 4 + 2 + reszta -bitowa ATM AAL CRC-2 2 + + 3 + + itd. CRC-6 6 + 5 + 2 + IBM Bisync ITU-6 6 + 2 + 5 + HDLC, XMODEM, V.4 CCITT-32 ITU-32 32 + 26 + 23 + 22 + 6 + 2 + + + + 8 + 7 + 5 + 4 + 2 + + LAN, IEEE 82, V.42 Przykładowo, wielomian CRC-2 wykrywa wszystkie błędy paczkowe o długości 2 b, 99,95% błędów o długości 3 b i 99,976% jeszcze dłuższych!

Najlepsze wielomiany generujące wg S. Jackowskiego (Telekomunikacja - Pol. Radomska) n = 3 n = 7 n = 5 n = 3 n = 63 n = 27 n = 255 2 + + 3 + + 4 + + 5 + 3 + 6 + + 7 + 3 + 8 + 4 + 3 + 2 + długość całego słowa

Dotychczas było tylko wykrywanie błędów lepiej błędy wykrywać i korygować do tego celu potrzebny jest znaczny nadmiar informacji kodowanie nadmiarowe - - przekształcanie k-pozycyjnych binarnych ciągów informacyjnych w n-pozycyjne ciągi kodowe, gdzie n > k

Rodzaje kodów korekcyjnych (protekcyjnych)

Kodowanie blokowe - proces kodowania w i-tym takcie nie zależy od przebiegu kodowania w poprzednich taktach. oznaczenie kodu nadmiarowego kod (n,k) bity informacyjne bity nadmiarowe bity informacyjne wydzielone od bitów nadmiarowych kod systematyczny bity informacyjne i bity nadmiarowe pomieszane kod niesystematyczny

Zdolność korekcyjna kodu zależy od odległości Hamminga między słowami kodowymi Odległość Hamminga - liczba pozycji bitów, na których dwa słowa kodowe się różnią d H inaczej miara niepodobieństwa słów kodowych Minimalna odległość Hamminga dla kodu - najmniejsza odległość dla dowolnej pary słów z danej przestrzeni kodowej 2 3 2 d Hmin

Detekcja błędów Największa krotność błędów wykrywanych przez blokowy kod nadmiarowy (n,k) o odległości d Hmin wynosi d H min Korekcja błędów Szukamy takiego słowa kodowego, które jest najbardziej podobne do znanych słów kodowych (ma najmniejszą odległość H. od słowa odebranego). Ilość błędów korygowalnych d E H min 2 część całkowita

Błąd typu wymazanie danych (erasure) całkowita niepewność względem zakłóconych bitów, ale miejsca tych bitów są znane liczba korygowalnych błędów wymazania d H min liczba korygowalnych zwykłych błędów d E H min 2 korekcja błędów wymazania jest łatwiejsza!

Przykład z jednowymiarową przestrzenią kodową d H = d H = 2 d H = 3 d H = 4 d H = 5 poprawne słowo kodowe niepoprawne słowo kodowe skutek zakłócenia

Formalne przedstawienie kodowania nadmiarowego Słowo informacyjne m m 2 m 3 m 4 m 5 m 6 m 7 m 8 m(, k) Macierz generująca G (k n) Słowo kodowe c c 2 c 3 c 4 c 5 c 6 c 7 c 8 c 9 c c c 2 c(, n)

słowo informacyjne macierz generująca = słowo kodowe m G = c m [m m 2 m 3 m 4 ] G = [m m 2 m 3 m 4 m m 2 m 4 m m 3 m 4 m 2 m 3 m 4 ] = c Macierz G zawiera podmacierz jednostkową stopnia k oraz podmacierz zadającą kod (do obliczania bitów dodatkowych). Wiersze i kolumny G można przestawić wtedy otrzyma się kod niesystematyczny.

Po stronie odbiorczej Kod odebrany c c 2 c 3 c 4 c 5 c 6 c 7 c 8 c 9 c c c 2 Macierz kontroli parzystości H syndrom s s s 2 s 3 s 4 odbiór bez błędów syndrom = macierz odbiór błędny - syndrom wskazuje pozycję błędu

Dokładniejsza postać macierzy G i H Na pewno istnieje ścisły związek między macierzami G i H c = m G oraz s = c H uwaga tradycyjnie przyjmuje się, że przy kontroli parzystości korzysta się z macierzy transponowanej, tzn. s = c H T i tak będzie to stosowane postulat: c H T = dla słowa poprawnego ale c = m G m G H T = dla dowolnego słowa informacyjnego G H T G H T = związek między macierzami

Dokładniejsza postać macierzy G i H W przypadku słowa błędnego ma być s c H T dla słowa błędnego, ale c = c + e (c + e) H T = c H T + e H T = s = e H T Dla odpowiednio skonstruowanej macierzy H wartość syndromu nie zależy od słowa informacyjnego, a tylko od rozkładu błędów. G H T =

Dokładniejsza postać macierzy G i H G = [ P ] podmacierz jednostkowa n k podmacierz zadająca kod aby G H T =, macierz H T powinna być postaci przy mnożeniu macierzy każdy składnik będzie postaci p r,m p r,m, a to jest zawsze =.

Dokładniejsza postać macierzy G i H zatem nietransponowana macierz H będzie równa n H = [ P T ] n-k

Liczba m bitów korekcyjnych niezbędnych do skorygowania t błędnych bitów. liczba ta musi spełniać nierówność 2 m t i k i m wzór uniwersalny, niezależny od zastosowanego kodu korekcyjnego a b a! b!( a b)!

Kodowanie za pomocą wielomianu generującego wyznaczane są bity reszty z dzielenia i one stanowią bity nadmiarowe; jeżeli będzie ich dostatecznie dużo można skorygować błędy Kodery wielomianowe są proste do realizacji sprzętowej

Układowa realizacja kodowania wielomianowego dane wej przerzutniki MS

Układowa realizacja kodowania wielomianowego dane wej. po pierwszym takcie zegara najpierw bity bardziej znaczące

Układowa realizacja kodowania wielomianowego dane wej. słowo informacyjne najpierw bity bardziej znaczące + + + + + + koder koder2 bity reszty

Przykład kodera IBM Bisync (z systemu IBM36) g()= 6 + 5 + 2 +

Kody cykliczne największe zastosowanie praktyczne (prosta realizacja układowa) specyficzne kody wielomianowe cykliczność = wektory kodowe po przesunięciu symboli ( w kółko ) też należą do prawidłowych słów kodowych c c 2 c 3 c 4 c 5 c 6... to są słowa kodowe (łącznie z bitami nadmiarowymi)!

Kodowanie Reeda-Solomona szczególnie do korekcji błędów paczkowych Podstawowa jednostka w kodzie RS = grupa bitów (symbol), a nie bit Aby skorygować t symboli potrzeba 2t symboli dodatkowych (np. bajtów) symbol s-bitowy (np. s = 8) wtedy maksymalna długość całego słowa n = 2 s

Przykład kodowania korekcyjnego dotyczącego grup bitów, np. bajtów A B C X Y 5 5 34 54 27 A+B+C A+2B+3C Jeżeli odebrano 5 5 3 54 27 (jeden bajt błędny) A B C X Y Oblicza się A+B+C = 5; wartość błędu = X-(A+B+C) = 54-5 = 4 Ale gdzie ten błąd wystąpił? Oblicza się A+2B+3C = 5; (Y 5) / 4 = 3 Miejsce błędu = Y X Y X miejsce błędu Kod koryguje jeden bajt kosztem 2 bajtów dodatkowych

Kody splotowe (P. Elias 955) dane wejściowe kodowane są na bieżąco (jak dochodzą do wejścia) nie ma potrzeby zapamiętywania bloków danych w celu ich zakodowania dane wejściowe dane zakodowane przykład prostego kodera splotowego elementy pamięciowe multiplekser na każdy bit wejściowy przypada aż 3 bity wyjściowe! sprawność kodera =/3 bit informacji i 2 nadmiarowe

poz. funkcja przejścia = poz.2 funkcja przejścia = + D 2 poz.3 funkcja przejścia = + D + D 2 D = operator opóźnienia D = opóźnienie o takt D 2 = opóźnienie o 2 takty, itd. odpowiedź impulsowa kodera = przy pobudzeniu impulsem, tzn. wejściowy ciąg bitów = na. wyjściu + na 2. wyjściu + na 3. wyjściu

poz. funkcja przejścia = poz.2 funkcja przejścia = + D 2 poz.3 funkcja przejścia = + D + D 2 D = operator opóźnienia D = opóźnienie o takt D 2 = opóźnienie o 2 takty, itd. odpowiedź impulsowa kodera = przy pobudzeniu impulsem, tzn. wejściowy ciąg bitów = na. wyjściu + na 2. wyjściu + na 3. wyjściu odpowiedź impulsowa kodera =

poz. funkcja przejścia = poz.2 funkcja przejścia = + D 2 poz.3 funkcja przejścia = + D + D 2 D = operator opóźnienia D = opóźnienie o takt D 2 = opóźnienie o 2 takty, itd. odpowiedź impulsowa kodera = przy pobudzeniu impulsem, tzn. wejściowy ciąg bitów = na. wyjściu + na 2. wyjściu + na 3. wyjściu odpowiedź impulsowa kodera =

poz. funkcja przejścia = poz.2 funkcja przejścia = + D 2 poz.3 funkcja przejścia = + D + D 2 D = operator opóźnienia D = opóźnienie o takt D 2 = opóźnienie o 2 takty, itd. odpowiedź impulsowa kodera = przy pobudzeniu impulsem, tzn. wejściowy ciąg bitów = na. wyjściu + na 2. wyjściu + na 3. wyjściu odpowiedź impulsowa kodera =

poz. funkcja przejścia = poz.2 funkcja przejścia = + D 2 poz.3 funkcja przejścia = + D + D 2 D = operator opóźnienia D = opóźnienie o takt D 2 = opóźnienie o 2 takty, itd. odpowiedź impulsowa kodera = przy pobudzeniu impulsem, tzn. wejściowy ciąg bitów = na. wyjściu + na 2. wyjściu + na 3. wyjściu odpowiedź impulsowa kodera =

poz. funkcja przejścia = poz.2 funkcja przejścia = + D 2 poz.3 funkcja przejścia = + D + D 2 D = operator opóźnienia D = opóźnienie o takt D 2 = opóźnienie o 2 takty, itd. odpowiedź impulsowa kodera = przy pobudzeniu impulsem, tzn. wejściowy ciąg bitów = na. wyjściu + na 2. wyjściu + na 3. wyjściu odpowiedź impulsowa kodera =...

krata (trellis) stany kodera wyrażone przez stany przerzutników generowane stany na wyjściu pewne przejścia są niedozwolone!

stany kodera przy danej sekwencji bitów wejściowych dla kodów splotowych nie można określić odległości Hamminga, bo słowa kodowe jako takie nie isstnieją!

dekodowanie kodów splotowych algorytm Viterbiego przykład A. Viterbi poszukiwanie takiego ciągu bitów, aby był on najmniej odległy (np. w sensie Hamminga) od ciągu odebranego współczesne dekodery Viterbiego specjalizowane układy scalone GSM, DVB, UMTS, WLAN

koder splotowy z systemu radiofonii DAB