Praktika_5
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра РС
отчет
по лабораторной работе №5
по дисциплине «Основы построения инфокоммуникационных систем»
Тема: СВЕРТОЧНЫЕ КОДЫ
Студент гр. 0182 |
|
Матросов Р.М. |
Преподаватель |
|
Маркелов О.А. |
Санкт-Петербург
2023
Цель работы: Ознакомление со сверточным кодированием и декодированием по методу Витерби.
Теоретические материалы:
Сверточные коды относятся к классу непрерывных или древовидных кодов.
Сверточными кодами являются непрерывные коды, которые обладают дополнительными свойствами линейности и постоянства во времени.
Термин "сверточные коды" объясняется тем, что кодовое слово можно рассматривать как отклик (свертку) линейной системы (кодера) при подаче на вход информационной последовательности. Поэтому сверточные коды являются линейными, у которых проверочные символы связаны с информационными линейными соотношениями.
В следствии того, что проверочный символ зависит от информационных из m элементарных блоков, для сверточных кодов не требуется увеличивать длину блока. Это определяет основное отличие сверточных кодов от блоковых и их достоинства. Так, кодеры и декодеры сверточных кодов, исправляющих однократные ошибки и пакеты ошибок, имеют меньшую сложность реализации.
В общем случае при кодировании информационное слово разбивают на небольшие блоки длины ko, которые называют кадрами информационных символов. Каждый информационный кадр кодируется в кадр кодового слова длины no, причем, как уже отмечалось, кодовые кадры непосредственно связаны между собой.
Скорость R этого сверточного кода определяется по формуле:
R = ko /no.
Величина n = mno называется длиной кодового ограничения, которая показывает число позиций между информационным символом и максимально удаленным зависимым от него проверочным символом.
Как и блоковые, сверточные коды делят на систематические и несистематические.
Систематическим сверточным кодом называется код, в котором каждый кадр информационных символов составляет первые ko символов первого из тех кадров кодовой последовательности, на которые влияет данный кадр информационных символов.
Иначе говоря в систематическом коде известны позиции с информационными и проверочными символами.
В теории кодирования n-символьные комбинации рассматриваются как векторы в n-мерном пространстве. В этом векторном пространстве определено расстояние или расходимость между векторами. Под расстоянием между комбинациями, еще его называют расстоянием Хемминга, понимается количество символов, в которых одна комбинация отличается от другой.
Декодирование сверточных кодов
Для сверточных кодов разработаны алгебраические и вероятностные методы декодирования. К алгебраическим методам относится пороговое декодирование, к вероятностным - декодирование по максимуму правдоподобия и последовательное декодирование.
В основе алгебраических методов лежат те же принципы, что и для блоковых кодов. Предположим, что принята бесконечная последовательность Y, состоящая из кодового слова и вектора ошибки: Y = S + E.
Точно так же, как и в случае блоковых кодов, можно вычислить синдром:
,
где H - проверочная матрица сверточного кода. В отличие от блоковых кодов, в этом случае синдром имеет бесконечную длину. Декодер не просматривает весь синдром однократно, а вычисляет компоненты S по мере их поступления, исправляя ошибки, и сбрасывая те компоненты S, которые вычислены давно. Декодер содержит таблицу сегментов синдромов и сегментов конфигураций шума, которые приводят к данным конфигурациям ошибок. Когда декодер находит в таблице полученный сегмент синдрома, он исправляет начальный сегмент кодового слова.
Декодер Витерби итеративно обрабатывает кадр за кадром, двигаясь по решетке, аналогичной используемой кодером, и пытаясь повторить путь кодера. В любой момент времени декодер не знает, в каком узле находится кодер и поэтому не пытается декодировать этот узел. Вместо этого декодер по принятой последовательности определяет наиболее правдоподобный путь к каждому узлу и расстояние между каждым таким путем и принятой последовательностью. Это расстояние называется мерой расходимости пути. Если все пути в множестве наиболее правдоподобных путей начинаются одинаково, то декодер, как правило, знает начало пути, пройденного кодером.
В следующем кадре декодер определяет наиболее правдоподобный путь к каждому из новых узлов этого кадра. Но путь в каждый новый узел должен пройти через один из старых узлов. Возможные пути к новому узлу можно получить, продолжая к этому узлу те старые пути, которые можно к нему продолжить. Наиболее правдоподобный путь находится прибавлением приращения меры расходимости на продолжениях старых путей к мере расходимости путей, ведущих в старый узел. Путь с наименьшей мерой расходимости является наиболее правдоподобным путем к новому узлу. Этот процесс повторяется для каждого из новых узлов. В конце итерации декодер знает наиболее правдоподобный путь к каждому из узлов в новом кадре.
Свёрточное кодирование
Необходимо промаркировать рёбра кодовой решётки. Затем необходимо получить кодовое слово из десяти символов
Рис.1 – кодовая решётка и полученная кодовая комбинация
Информационные символы: 11110
Кодовая комбинация: 1101101001
2. Декодирование по алгоритму Виттерби
Необходимо декодировать несколько символов из четырёх принятых последовательностей с различными конфигурациями ошибок. Для этого придётся выполнить некоторые функции декодера: расчёт расходимостей; удаление ненужных путей; вычисление информационных символов.
1 комбинация
Рис.2 – принятие последовательности
Рис.3 – расчёт расстояния по Хеммингу
Рис.4 – удаление ненужных рёбер
Затем принимаем ещё одну часть последовательности, для которой аналогично выполняем расчёт расстояния по Хэммингу и удаляем ненужные рёбра. В дальнейшем расчёт происходит автоматически. В результате получено 6 символов:
Рис.5 – результат декодирования
Принятая кодовая комбинация не содержала ошибок, поэтому при декодировании не было неопределённостей и полученное информационное сообщение совпало с переданным.
2 комбинация
В результате действий, описанных для 1 комбинации, получили итог декодирования, представленный на рис. 6.
Рис.6 – результат декодирования
При декодировании принятой комбинации конфигурация путей в окне декодирования была более запутанной. Это связано с наличием ошибок в принятом сообщении. Тем не менее декодер успешно справился с этой задачей, так как ошибка была малой кратности. Поэтому при определении переданных информационных символов не возникло неопределенностей и декодированное сообщение совпало с переданным.
3 комбинация
В результате действий, описанных для 1 комбинации, получили итог декодирования, представленный на рис. 7.
Рис. 7 – результат декодирования
В данном задании при декодировании возникли неопределенности при декодировании информационной комбинации. Это связано с большей кратностью ошибок, случившихся в процессе передачи кодового сообщения. Данный декодер не смог выделить наиболее вероятный путь и поэтому пришлось случайным образом определять переданный символ. Поэтому переданное информационное сообщение могло не совпасть с полученным, но в данном случае оно совпало.
4 комбинация
Необходимо придумать вектор ошибки, длиной 32 символа, не обнаруживаемый декодером: 10001000000000000000000000000000
В результате действий, описанных в 1 комбинации, мы получаем итог декодирования, представленный на рис. 8.
Рис. 8 – результат декодирования
Вывод
В ходе данной практической работы рассматривалось сверточное кодирование и декодирование по методу Витерби. Декодирование было произведено для различных кратностей ошибок. Для последовательности 2 – декодер исправил ошибку, для 3 последовательности – обнаружил, смог исправить из-за того, что случайным образом выбрал правильно переданный символ. Для последней последовательности был создан вектор ошибки, которую декодер не смог бы обнаружить. В итоге проблем с декодированием не произошло, и полученная последовательность совпала с исходной, но благодаря тому, что декодер случайно правильно выбрал правильно переданный символ.
