Algorytm Viterbiego
Z Wikipedii
Algorytm Viterbiego - algorytm dekodujący opracowany przez Andrew Viterbiego i opublikowany przez niego w 1967 roku w IEEE Transactions on Information Theory, IT-13 w artykule Error bounds for convolutional codes and an asymptotically optimum decoding algorithm (str. 260-269).
Jego pierwszym zastosowaniem było, i nadal jest, dekodowanie kodów splotowych. Jednak stosowany jest również w innych zaawansowanych technologiach telekomunikacyjnych, np. jako odbiornik nieliniowy dla kanału z interferencją międzysymbolową.
Działanie tego algorytmu oparte jest o kryterium maksymalnej wiarygodności, a jego ideą jest to, że optymalna ścieżka dojścia przez dekoder do aktualnego stanu składa się ze ścieżki o najmniejszej metryce dojścia do któregoś ze stanów poprzednich oraz przejścia do aktualnego stanu. Jak widać proces ten jest procesem iteracyjnym.
Im dłuższy czas obserwacji i działania tego algorytmu, tym bardziej wiarygodny wynik otrzymujemy. Można jednak zauważyć, że już po mniej więcej 3L do 5L krokach (gdzie L jest długością wymuszenia kodu) otrzymujemy na wykresie kratowym, wspólną ścieżke, tzw. pień, dla kolejnych stanów. Możemy więc ograniczyć opóźnienie dekodowania właśnie do tego okresu i przyjąć wynik za wystarczająco dokładny.
Algorytm Viterbiego sprawdza się zarówno w przypadku dekodowania twardo-, jak również miękkodecyzyjnego (przy użyciu algorytmu SOVA - Soft Output Viterbi Algorithm).
Nie jest on oczywiście jedynym algorytmem dekodowania kodów splotowych, aczkolwiek na pewno najbardziej popularnym ze względu na łatwość jego realizacji sprzętowej.