В описанном выше случае мы предполагали, что все принятые декодером дибиты не содержат ошибок. Рассмотрим далее ситуацию, когда в принятой последовательности дибитов содержатся две ошибки. Пусть вместо правильной последовательности 00 11 10 00 01 10 01 11 11 10 декодер принимает последовательность 00 11 11 00 11 10 01 11 11 10, в которой третий и пятый дебит являются сбойными. Попробуем применить рассмотренный выше алгоритм Витерби, основанный на выборе пути с наименьшей метрикой ошибок, к данной последовательности и выясним, сможем ли мы восстановить в правильном виде исходную последовательность битов, то есть исправить сбойные ошибки.
Вплоть до получения третьего (сбойного) дибита алгоритм вычисления метрики ошибок для всех возможных переходов не отличается от рассмотренного ранее случая. До этого момента наименьшей метрикой накопленных ошибок обладал путь, отмеченный на рис. 21 красным цветом.
Рисунок 21
После получения такого дибита уже не существует пути с метрикой накопленных ошибок, равной 0. Однако при этом возникнут два альтернативных пути с метрикой, равной 1. Поэтому выяснить на данном этапе, какой бит исходной последовательности соответствует полученному дибиту, невозможно.
Аналогичная ситуация возникнет и при получении пятого (также сбойного) дибита (рис. 22).
Рисунок 22
В этом случае будет существовать уже три пути с равной метрикой накопленных ошибок, а установить истинный путь возможно только при получении следующих дибитов.
После получения десятого дибита количество возможных путей с различной метрикой накопленных ошибок станет достаточно большим, однако на приведенной диаграмме (с использованием таблицы, где представлена метрика накопленных ошибок для различных путей) нетрудно выбрать единственный путь с наименьшей метрикой (на рис. 22 этот путь отмечен красным цветом). По данному пути, пользуясь диаграммой состояния треллис-кодера (см. рис. 13), можно однозначно восстановить исходную последовательность бит 0101110010, невзирая на допущенные ошибки при получении дибитов.
Состояния кодера | t=0 | t=1 | t=2 | t=3 | t=4 | t=5 | t=6 | t=7 | t=8 | t=9 | t=10 |
00 | - | 0 | 2 | 3 | 3 | 2 | 3 | 4 | 2 | 4 | 5 |
01 | - | - | 3 | 1 | 2 | 2 | 3 | 2 | 4 | 5 | 2 |
10 | - | 2 | 0 | 2 | 1 | 3 | 3 | 4 | 4 | 2 | 5 |
11 | - | - | 3 | 1 | 2 | 2 | 2 | 3 | 4 | 5 | 4 |
Рассмотренный сверточный кодер Треллиса на три состояния и алгоритм Витерби являются простейшими примерами, иллюстрирующими, однако, основной принцип работы. В реальности используемые кодеры Треллиса (и в гигабитных адаптерах, и в модемах) гораздо более сложные, но именно благодаря их избыточности удается значительно повысить помехоустойчивость протокола передачи данных.
1. ФилимоновА.. Алгоритмы модуляции протоколов XDSL. http://www.protocols.ru/files/Technologies/xDSL.pdf
2. Голуб В. Квадратурные модуляторы и демодуляторы в системах радиосвязи. http://www.electronics.ru/pdf/3_2003/06.pdf
3. Пасковатый А. Модемные протоколы физического уровня. http://www.analytic.ru/ftproot/pub/byb_art/physics.zip
4. Пахомов С. Технология 1000Base-T на физическом уровне. http://www.compress.ru/article.aspx?id=9774&iid=412