Teoria informacji i kodowania Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Katedra Systemów i Sieci Radiokomunikacyjnych dr inż. Małgorzata Gajewska e-mail: malgorzata.gajewska@eti.pg.gda.pl telefon: (0-58) 347 13 50 1
LITERATURA 1. Cower T.M., Element of information theory, Wiley, 2006 2. Haykin S., Communication systems, Wiley, Third Edition, 1994 3. Sobczak W., Elementy teorii informacji, Wiedza Powszechna, Warszawa 1973 4. Marczak A.: Analiza efektywności kodowania kanałowego w systemie UMTS, praca doktorska, Politechnika Gdańska, 2005 2
KRYTERIA ZALICZENIA PRZEDMIOTU Egzamin- do zaliczenia jest wymagane uzyskanie minimum 50% punktów 3
TEORIA INFORMACJI Każda wiadomość, która dociera do odbiorcy, na podstawie której on opiera swoje działanie, nazywamy informacją. Istnieją dwa podstawowe punkty widzenia informacji obiektywny - jest to podejście matematyczne, które opiera się na pojęciu entropii. W tym przypadku informacja oznacza pewną własność fizyczną lub strukturalną obiektów subiektywny - informacja ma charakter względny i jest tym co umysł jest w stanie przetworzyć i wykorzystać do własnych celów. 4
Definicja obiektywna informacji polega na przyjęciu określonych modeli źródeł informacji oraz ustaleniu obliczeniowej miary jej ilości. Teoria informacji to teoria, w której stosuje się rachunek prawdopodobieństwa oraz ogólnie matematykę do badania sposobów przekazywania, gromadzenia i manipulowania informacjami. 5
a) Źródło informacji Nadajnik Kanał fizyczny Odbiornik Obiekt przeznaczenia informacji b) Źródło informacji Nadajnik Kanał fizyczny Odbiornik Obiekt przeznaczenia informacji Odbiornik źródła informacji Kanał sprzężenia zwrotnego Nadajnik obiektu przeznaczenia informacji Rys. 1. Schemat transmisji informacji 6
a) U b) 1 U 2 U 1 U 2 Węzeł centralny U 3 U 4 U 3 U 4 U 5 U 5 c) U 1 U 2 Węzeł centralny U 3 U 4 U 5 Rys. 2. Przykłady struktury sieci. 7
Źródło informacji Koder źródłowy Koder kanałowy Modulator Filtr i wzmacniacz wielkiej częstotliwości Generator sygnału nośnej o częstotliwości f 0 K a n a ł Szum, zakłócenia, zaniki Filtr i wzmacniacz wielkiej częstotliwości Demodulator Dekoder kanałowy Dekoder źródłowy Obiekt przeznaczenia informacji Oscylator lokalny o częstotliwości f 0 Rys. 3. Schemat blokowy systemu transmisji informacji 8
KOMUTACJA PAKIETÓW I KANAŁÓW Sieci radiokomunikacyjne są zbiorami terminali (ruchomych lub nieruchomych) połączonych podsiecią komunikacyjną utworzoną poprzez węzły komunikacyjne i kanały radiowe. Węzły komunikacyjne sieci radiokomunikacyjnej sterują przesyłaniem informacji w kanałach radiowych między komunikującymi się terminalami. 9
Def. Funkcjami komutacyjnymi sieci telekomunikacyjnej (radiokomunikacyjnej) nazywamy sposoby zestawiania połączeń fizycznych bądź logicznych między komunikującymi się terminalami. W cyfrowych sieciach radiokomunikacyjnych informacje są przesyłane w formie pakietów. 10
Def. Pakietem nazywamy blok informacji cyfrowych zawierający ciąg informacyjny o ograniczonej długości uzupełniony ciągiem synchronizującym oraz sterująco-kontrolnym, który jest przekazywany w sieci jako pewna całość. Cyfrowe sieci radiokomunikacyjne umożliwiają realizację dwóch podstawowych metod komutacji: - komutację kanałów - komutację pakietów. 11
Komutacja kanałów: - zestawienie połączenia, - przesyłanie informacji - rozłączanie połączenia. Cechą charakterystyczną komutacji kanałów jest wyłączność użytkowania zestawionego połączenia przez parę komunikujących się terminali. 12
MODEL ON-OFF SYGNAŁÓW MOWY Źródło: D. Rutkowski, R. Sobczak, Usługi w systemie UMTS, Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne, Nr.11-12 2002 Usługa przesyłania sygnałów mowy jest modelowana w makroskali poprzez proces zgłoszeń opisany rozkładem Poissona i rozkład wykładniczy czasu trwania rozmów. 13
P off-on 1-P off-on State off State off State on State off 1-P on-off P on-off Rys.5. Model on-off sygnałów mowy P on-off - prawdopodobieństwo przejścia źródła ze stanu aktywnego do stanu nieaktywnego P off-on - prawdopodobieństwo przejścia źródła ze stanu nieaktywnego do stanu aktywnego 14
Jeżeli więc przyjmiemy graf dwustanowy pokazany na rysunku jako model źródła sygnałów mowy to liczbę bloków generowanych dla jednego segmentu opisuje rozkład geometryczny o postaci gdzie: l l P 1 1 on P P L off onoff 1 Pon off - prawdopodobieństwo pozostania źródła w stanie aktywnym. Wartość średnia dla rozkładu geometrycznego jest równa odwrotności P on-off 15
Czas przerwy w aktywności źródła sygnałów mowy (pozostania w stanie off) może być również modelowany rozkładem geometrycznym liczby 20-milisekundowych przedziałów czasu, tj. prawdopodobieństwo, że liczba takich przedziałów wynosi n, jest dane wzorem n n P 1 1 off P P N on przy czym średni czas trwania przerwy wynosi: E N 1 P on off off on 16
Możemy teraz określić prawdopodobieństwo P a, że źródło jest w stanie aktywnym i prawdopodobieństwo P n, że źródło jest w stanie nieaktywnym off on Pa : Poff on Ponoff P n P P P off on onoff P onoff 17
Entropia H(X) dla dyskretnej zmiennej X jest zdefiniowana wzorem H( X ) n i1 p i log 2 p i Entropia w teorii informacji jest definiowana jako średnia ilość informacji, przypadająca na znak symbolizujący zajście zdarzenia z pewnego zbioru. Zdarzenia w tym zbiorze mają przypisane prawdopodobieństwa wystąpienia. 18
H(p) 1 0,5 0 0,5 Właściwości entropii: jest nieujemna, 1 p jest maksymalna, gdy prawdopodobieństwa zajść zdarzeń są takie same, jest równa 0, gdy stan systemu może przyjmować wartości tylko 0 albo tylko 1 Interpretacja: Dowolna zmiana prawdopodobieństw mająca na celu ich zrównanie pociąga za sobą wzrost wartości entropii bezwzględnej. Z rysunku wynika, że entropia osiąga wartość maksymalną wtedy, gdy prawdopodobieństwa wystąpienia określonych zdarzeń są jednakowe. Przy braku nieokreśloności, entropia jest równa zeru. Wzrost poziomu nieokreśloności zdarzeń pociąga za sobą wzrost entropii. 19
20 Def. Entropia łączna H(X,Y) pary dyskretnych zmiennych (X, Y) o wspólnym prawdopodobieństwie p(x, y) jest zdefiniowana jako X x Y y y x p y x p Y X H ), ( )log, ( ), ( co może zostać wyrażone również wzorem ), ( log ), ( Y X p E Y X H
21 Def. Jeżeli (X, Y) p(x, y), to entropię warunkową H(Y X) można zdefiniować jako X x Y y X x y x p y x p x X H Y x p X Y H ), ( )log, ( ) ( ) ( Możliwe są również pewne przekształcenia ) ( ) ( ), ( X Y H X H Y X H ), ( ) ( ), ( Z X Y H X Z H Y Z X H
KODOWANIE KANAŁOWE Kodowanie kanałowe to celowe przekształceniem stosowane w nadajniku polegające ogólnie na wprowadzaniu pewnej nadmiarowości informacyjnej (redundancji) do ciągów informacyjnych podawanych do kodera kanałowego oraz jej wykorzystaniu w dekoderze kanałowym odbiornika do możliwie wiernego ich odtwarzania. 22
Fundamentalne prawo teorii informacji zwane twierdzeniem o kodowaniu sformułował i udowodnił C.E.Shannon. Twierdzenie: Przepustowość informacyjna kanału ciągłego o pasmie przenoszenia B [Hz], w którym występuje addytywny szum W gaussowski o średniej mocy N 0 jest określona wzorem Hz C S Blog21 N0B b s gdzie S[W] jest średnią mocą sygnału odbieranego. 23
Wniosek: Przez kanał o pasmie B można przesyłać sygnały o średniej mocy S b z dowolną prędkością R C s i dowolnie małym prawdopodobieństwem błędu, jeśli zastosujemy dostatecznie złożone kodowanie. Twierdzenia Shannona określa granicę na szybkość transmisji informacji w kanale, lecz nie określa granicy na prawdopodobieństwo błędu. 24
Z twierdzenia o kodowaniu wynika, że istnieje granica na stosunek E b, poniżej której nie jest osiągalne dowolnie małe N 0 prawdopodobieństwo błędu, przy żadnej szybkości transmisji. Możemy znaleźć tę granicę i wynosi ona. E b 1,59dB N!!!!!!!!! Otrzymana wartość nazywa się granicą Shannona. 0 25
Kod to reguła, wg. której k-wymiarowym informacjom (wiadomościom) cyfrowym nazywanymi ciągami informacyjnymi przyporządkowane są n-wymiarowe ciągi kodowe czyli sygnały złożone z n sygnałów elementarnych, przy czym n>k. Kodowanie kanałowe jest więc takim celowym przekształceniem wiadomości cyfrowych, aby uzyskać ciągi kodowe odporne w większym lub mniejszym stopniu na szum i zakłócenia w kanałach. 26
Klasyfikacja kodów nadmiarowych: kody blokowe - czyli takie, w których ciąg kodowy kodu blokowego określany jest po nadejściu do kodera całego ciągu informacyjnego kody splotowe - czyli takie, w których ciąg kodowy kodu splotowego tworzony jest sukcesywnie, tzn. najczęściej w praktyce po nadejściu każdej informacji elementarnej ciągu informacyjnego określany jest kolejny segment ciągu kodowego 27
Dla danego kodu stosunek r k liczby k informacji n elementarnych ciągu informacyjnego do liczby n sygnałów elementarnych ciągu kodowego nazywa się względną szybkością kodowania, a stosunek n k nazywa się redundancją kodu. k Ciągi kodowe liniowych kodów blokowych charakteryzują się następującymi własnościami: wektor złożony z samych zer jest ciągiem kodowym suma (modulo 2) dwóch dowolnych ciągów kodowych jest również ciągiem kodowym. 28
Metoda obliczania sumy modulo 2 p q p suma modulo 2 q 0 0 0 0 1 1 1 0 1 1 1 0 29
Blokowe kody liniowe są powszechnie wykorzystywane w praktyce, przy czym najczęściej są one stosowane w formie kodów systematycznych, w których pozycje ciągu kodowego dzielą się na informacyjne i kontrolne. W pozycje informacyjne wpisujemy kolejne wartości binarne ciągu informacyjnego o długości k. Pozycje kontrolne o długości n-k i pozycje informacyjne należą do tzw. zespołów kontrolnych, przy czym najwygodniej jest przyporządkować jedną pozycję kontrolną dla każdego zespołu kontrolnego i wpisać w nią taką wartość binarną 0 lub 1, aby suma modulo 2 informacji elementarnych objętych danym zespołem była równa zero (liczba jedynek była parzysta). 30
Umownie kod blokowy systematyczny zapisujemy w formie (n,k). n k pozycji informacyjnych n - k pozycji kontrolnych Rys.6. Format ciągu kodowego kodu systematycznego 31
Systematyczny liniowy kod blokowy (n,k) jest odwzorowaniem k-wymiarowego ciągu informacyjnego w n-wymiarowy ciąg kodowy w taki sposób, że część ciągu kodowego stanowi ciąg informacyjny (rys. 6). Pozostałe (n-k) sygnały elementarne reprezentują tzw. ciąg kontrolny (zwany potocznie bitami parzystości), z których każdy jest odpowiednio powiązany z określonymi informacjami elementarnymi warunkiem uzyskania parzystej liczby jedynek, przez co umożliwia uzyskanie zdolności detekcji i/lub korekcji błędów. 32
Kod umożliwiający wykrycie nieparzystej liczby błędów elementarnych Niech długość ciągu kodowego n k 1, gdzie k jest długością ciągu informacyjnego, a więc długość ciągu kontrolnego n - k=1. Jeśli na pierwsze k pozycji ciągu kodowego wpiszemy kolejne bity ciągu informacyjnego, to w ostatnią n-tą pozycję ciągu kodowego powinno się wpiszać taką cyfrę binarną, która zsumowana modulo 2 z cyframi binarnymi znajdującymi się na k pozycjach poprzedzających da wynik 0. Dzięki temu po stronie odbiorczej dekoder może wykryć obecność niektórych błędów przez przeprowadzenie testowania polegającego na 33
sprawdzeniu, czy suma modulo 2 sygnałów elementarnych ciągu odebranego y jest parzysta. Jeśli tak nie jest, to ciąg odebrany zawiera błąd (błędy). Odbiornik może wówczas podjąć decyzję, że ciągu kodowego nie da się odtworzyć i może zażądać retransmisji. Wówczas elementów wynosi prawdopodobieństwo j błędów w bloku o długości n P n j j j, n p 1 p Zatem prawdopodobieństwo P wd błędnego odtwarzania wiadomości na podstawie odebranego bloku y o długości n wyraża się wzorem n j 34
35 nieparzystego) (dla lub parzystego) (dla 1 2 2 2 n-1 2 n 1 2 n n j j n j wd p p j n P Prawdopodobieństwo błędnego odtwarzania wiadomości bez zabezpieczenia kodowego wynosi j k j k j w p p j k P 1 1
Założenia: Kod umożliwiający korekcję pojedynczego błędu w stablicowanym ciągu informacyjnym - wiadomość jest złożona z L bitów; - tworzymy tablicę zawierającą W wierszy i K kolumn, gdzie L=W*K Następnie wprowadzamy 1 bit kontrolny do każdej kolumny oraz 1 bit kontrolny do każdego wiersza, tzn. powiększamy wymiar tablicy do (W+1)(K+1). 36
Ciąg bitów kontrolnych dla wszystkich wierszy, który tworzy kolumnę, jest najczęściej zapisywany na końcu bloku i jest zwany znakiem kontrolnym bloku. Dowolny pojedynczy błąd w bloku z takim zabezpieczeniem kodowym będzie wywoływał 2 błędy parzystości, przy czym jeden w wierszu, a drugi w kolumnie, które przecinają się na pozycji, w której ten błąd występuje, a więc korekcja błędu w dekoderze będzie łatwo realizowalna. 37
38 Jakość tego zabezpieczenia przez obliczenie prawdopodobieństwa błędnego odtwarzania wiadomości. Jeśli t oznacza liczbę błędów, które może korygować dany kod, to prawdopodobieństwo błędnego odtwarzania wiadomości możemy obliczyć ze wzoru n 1 1 t j j n j wk p p j n P
Macierz generująca Odwzorowanie k-bitowych ciągów informacyjnych w n-bitowe ciągi kodowe można zrealizować w różny sposób. Najprościej odwzorowanie to może być przeprowadzone za pomocą tablicy kodowej, w której poszczególnym ciągom informacyjnym są przyporządkowane ciągi kodowe. Wtedy korzysta się z tzw. macierzy generującej. 39
40 kn k k n n k g g g g g g g g g g g g G,,,,,,,,, 2 1 2 22 21 1 12 11 2 1 (22) Jeśli ciągi kodowe i ciągi informacyjne będziemy zapisywali jako wektory wierszowe, to dla wiadomości ik i i i x x x x,, 2, 1 ciąg kodowy x i s otrzymamy jako iloczyn G x x s i i (23)
Zysk kodowania Wprowadzenie nadmiarowości do ciągu informacyjnego w celu zabezpieczenia całego ciągu kodowego przed błędami ma tylko wtedy sens, gdy: - zwiększone wskutek kodowania prawdopodobieństwo błędu elementarnego, spowodowane zmniejszoną energią sygnału użytecznego przypadającą na sygnał elementarny ciągu kodowego, jest skompensowane dzięki zabezpieczeniu kodowemu, - zabezpieczenie to zapewnia zmniejszenie prawdopodobieństwa błędnego odtwarzania wiadomości w porównaniu z sytuacją, gdy zabezpieczenie kodowe nie jest stosowane. 41
Zysk kodowania jest zdefiniowany jako wielkość redukcji wymaganej wartości E b wyrażonej w decybelach, która jest N0 niezbędna do uzyskania tego samego średniego prawdopodobieństwa elementarnego błędu dekodowania jak prawdopodobieństwo błędu elementarnego bez zabezpieczenia kodowego, przy tym samym rodzaju modulacji. G[ db] E N b o pokodowaniu E b db db N o bez kodowania 42
Zdolność korekcyjna i detekcyjna kodów O zdolności detekcyjnej i/lub korekcyjnej kodu decyduje minimalna odległość Hamminga między ciągami kodowymi. s 1,s 2 Def. Odległością Hamminga d między dwoma ciągami kodowymi s 1 i s 2 nazywamy liczbę pozycji binarnych, na których oba ciągi się różnią. Def. Minimalna odległość Hamminga kodu (n,k) jest dana wzorem d min min i, k ik d s, s : s, s S, i, k 1,2,, L i k i k 43
Wyznaczenie minimalnej odległości Hamminga kodu wymaga parą ciągów kodowych. d min dla danego określenia odległości Hamminga między każdą O zdolności detekcyjnej i/lub korekcyjnej kodu decyduje minimalna odległość Hamminga d min. Z właściwości kodów liniowych wynika, że suma dwóch ciągów kodowych jest również ciągiem kodowym, a więc odległość między dwoma ciągami kodowymi jest równa ich odległości od ciągu kodowego s 1 złożonego z samych zer. Zatem określenie liczby jedynek 44
w każdym ciągu kodowym umożliwia znalezienie d min, które będzie równe najmniejszej liczbie jedynek zawartych w określonym ciągu kodowym (ciągach kodowych) danego kodu, bowiem ta liczba jedynek będzie równocześnie wyznaczać odległość od ciągu s 1. Zdolność detekcyjna kodu jest określona wzorem e d min 1 Zdolność korekcyjna t kodu jest zdefiniowana jako maksymalna liczba korygowalnych błędów w ciągu kodowym: t d min 1 2 45
Kody cykliczne Ważną w praktyce podklasą kodów liniowych są kody ilorazowe, w których istnieje możliwość powiązania ciągów informacyjnych i ciągów kodowych z wielomianami odpowiednich stopni o współczynnikach binarnych, a kodowanie oraz dekodowanie można opisywać algebraicznie jako mnożenie i dzielenie wielomianów w oparciu o operacje modulo 2, natomiast techniczne wykonywanie mnożenia i dzielenia można zrealizować przy zastosowaniu rejestrów przesuwnych ze sprzężeniem zwrotnym. Do szczególnie rozpowszechnionych w praktyce kodów ilorazowych należą kody cykliczne, w których zakłada się, że ciąg powstały przez 46
cykliczne przesunięcie ciągu kodowego s o i pozycji w prawo, i=1,2,,n-1, jest również ciągiem kodowym. Jeżeli więc ciągowi s s, s 2,, przyporządkujemy wielomian 1 s n u 2 1 s s u n s u s u n s 1 2 3 to cykliczna właściwość kodu ujawnia się w tym, że reszta s i u z ilorazu u i u i u s s f u n n u 1 u 1 jest również wielomianem ciągu kodowego, przy czym f u jest częścią całkowitą ilorazu. 47
Kodowanie w formie systematycznej wymaga wyznaczenia ciągu kontrolnego tzn. obliczenia wyrażenia u nk xu modulo g(u), a więc podzielenia wielomianu reprezentującego wiadomość przesuniętą o (nk) pozycji w prawo przez wielomian generujący g(u). Ciąg kontrolny jest resztą z dzielenia zawartą w rejestrze przesuwnym. 48
Kodowanie splotowe Kodowanie splotowe charakteryzuje się tym, że może być dokonywane w sposób ciągły, bez konieczności dzielenia ciągu informacji elementarnych na bloki, jak to miało miejsce w przypadku kodów blokowych. Kodowanie splotowe można realizować za pomocą prostych układów i przy niewielkiej liczbie elementarnych operacji przetwarzania. Niestety, proces dekodowania ciągów odebranych kodu splotowego wymaga znacznie większego nakładu przetwarzania niż proces kodowania splotowego. 49
Kod splotowy jest zdefiniowany przez 3 liczby (n,k,k), gdzie n jest długością segmentu ciągu kodowego generowanego oddzielnie dla każdego zespołu k kolejnych bitów ciągu informacyjnego, a K jest tzw. stałą ograniczającą. W naszych rozważaniach ograniczymy się tylko do binarnych kodów splotowych, dla których k=1. W tym przypadku n jest długością segmentu ciągu kodowego, a K jest wówczas liczbą stopni rejestru przesuwnego ze sprzężeniem zwrotnym stosowanego do kodowania. 50
Ciąg inform acy jny (wiadom ość) Sumator 1 Sumator 2 + + Pierwszy element s 1 segmentu ciągu kodowego Drugi element s 2 segmentu ciągu kodowego Ciąg kodowy Rys. Schemat kodera kodu splotowego (2,1,3). Aby zdekodować ciąg kodowy, niezbędny jest cały ciąg włącznie z zakodowanymi bitami uzupełniającymi o wartości logicznej 0 dołączonymi do ciągu wejściowego i koniecznymi do opróżnienia zawartości rejestru kodera. 51
Uwagi ciąg kodowy kodu splotowego nie ma wyraźnie określonej długości, jak miało to miejsce w przypadku kodu blokowego, tzn, może być dowolnie długi. Możemy oczywiście stosować kodowanie splotowe do bloków wiadomości o zadanych długościach, musimy jednak zawsze dołączyć (K-1) binarnych zer na końcu każdego bloku, aby opróżnić każdorazowo zawartość rejestru kodera, po to by nie utracić pełnej informacji o ciągu kodowym 52
względna szybkość kodowania (sprawność kodowania) jest nieco mniejsza niż r k, wskutek konieczności dołączania n binarnych zer do opróżniania zawartości rejestru kod splotowy wprowadza powiązania statystyczne między elementami ciągu kodowego, gdyż każdy segment ciągu kodowego jest funkcją nie tylko wartości danego bitu wejściowego, lecz również K 1 wartości poprzedzających go bitów wejściowych. 53
W analizie i zastosowaniach ogromną rolę odgrywa opis kodu splotowego za pomocą grafu kratownicowego (zwanego niekiedy kratowym), który przedstawia możliwe w czasie zmiany stanów kodera i pozwala w prosty sposób określić w grafie tzw. ścieżkę, określającą generowany ciąg kodowy dla każdego ciągu wejściowego. Każdy generowany segment ciągu kodowego jest zawsze funkcją stanu kodera i wartości bitu podawanego na wejście przy czym przez stan kodera rozumie się tu stan ostatnich K 1 stopni rejestru 54
10 01 Stan d 11 01 Stan b 10 11 10 00 Stan a 00 Stan c 01 11 segmenty ciągu kodowego Linia ciągła: x i =0 Linia przery wana: x i =1 00 Rys. Graf stanów kodu splotowego (2,1,3) 55
W procesie kodowania kolejnym dyskretnym chwilom t i, i 1,2, podawania kolejnych bitów informacyjnych o znanych wartościach binarnych można przyporządkować nowe stany kodera w momentach t i1 dla zadanych stanów w momentach t i i otrzymać odpowiednią ścieżkę w grafie, reprezentującą generowany ciąg kodowy, jak pokazano to na rys. Graf kratownicowy dzięki wykorzystaniu powtarzalnych operacji w procesie kodowania pozwala badać ten proces dynamicznie (w czasie) i umożliwia łatwą jego konstrukcję oraz określanie ciągu kodowego dla dowolnie długiego ciągu informacyjnego. 56
Stan a 00 t 1 t 2 t 3 00 00 t 4 00 00 11 11 11 11 t 5 00 11 t 6 Linia ciągła: x i = 0 Linia przerywana: x i = 1 Stan b 10 Stan c 01 10 10 10 01 01 01 11 11 00 00 01 11 10 00 Scieżka ciągu kodowego s dla wiadomości x 10100 1110001011 Stan d 11 01 01 10 10 01 10 podciąg wyzerowujący stan kodera Rys. Graf kratownicowy dla omawianego kodu 57
Proces dekodowania, czyli poszukiwania najbardziej prawdopodobnego ciągu nadanego realizujemy stopniowo w wielu etapach, przez poszukiwanie w każdym etapie bardziej prawdopodobnych gałęzi i odrzucanie innych gałęzi oraz wyznaczanie ścieżek bardziej prawdopodobnych (wyselekcjonowanych), wśród których nietrudno już ustalić ścieżkę najbardziej prawdopodobną, nazywamy algorytmem Viterbiego. 58