Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
Московский технический университет связи и информатики
___________________________________________________________________
Факультет
«Радио и телевидение»
Кафедра
«Радиотехнических систем (РТС)»
Лабораторная работа №4 по дисциплине «Основы помехоустойчивого кодирования»
«Исследование свёрточных кодов»
Выполнил |
|
|
Студент группы БРВ2201 |
_________________________ |
Велит А.И. |
Проверила |
|
|
Старший преподаватель |
_________________________ |
Минаева О.Н. |
Москва 2025
1. Цель работы
Целями лабораторной работы являются: изучение алгоритмов функционирования нерекурсивного несистематического свёрточного кодера на умножителях. Построение схем указанных кодеров; изучение принципа работы нерекурсивного свёрточного кодера на компьютерных имитационных моделях; формирование диаграммы состояний и решетчатой диаграммы нерекурсивного свёрточного кодера; анализ свёрточного кода по решетчатой диаграмме; изучение алгоритма декодирования Витерби нерекурсивного свёрточного кода; исправление ошибок в заданных (принятых) кодовых словах нерекурсивного свёрточного кода.
2. Расчётная часть
2.1. Исходные данные
g1_8 13 |
g1_2 [1 1 0 1] |
– первый порождающий полином; |
|
g2_8 17 |
g2_2 [1 1 1 1] |
– второй порождающий полином; |
|
ac [1 0 1 1 1] |
– последовательность на входе кодера; |
||
ad [11 01 00 11 01 10 10 01 00 00] |
– последовательность с |
||
|
|
|
ошибкой на входе декодера; |
Код является нерекурсивным свёрточным несистематическим.
2.2. Построение схемы кодера свёрточного кода
Схема строится по следующему принципу (похожему на умножение по схеме Фибоначчи):
1.Количество регистров соответствует максимальной степени полинома (его длине минус 1): d=3 ;
2.Построение осуществляется от младшей плюс один степени к старшей;
3.Элементы XOR ставятся там, где в порождающем полиноме имеется единица, при этом сами элементы ставятся после соответствующего регистра.
Полученная схема кодера представлена ниже, на рисунке 2.2.1.
Рисунок 2.2.1 – Схема кодера нерекурсивного свёрточного несистематического кода
2.3. Расчёт выходных битов кодера по входным битам
Расчёт выходных битов осуществлялся математически, с помощью самописного кодера. Алгоритм кодера построен на принципе, по которому строится круговая диаграмма состояний.
Таблица с состояниями каждого регистра и выходов представлены ниже, в таблице 2.3.1.
Таблица 2.3.1 – Результаты работы кодера
2.4. Построение круговой диаграммы состояний
Далее необходимо составить круговую диаграмму состояний по таблице 2.3.1. При её составлении недостающие решения были добавлены так, чтобы получилась полная диаграмма состояний.
Сама диаграмма представлена на рисунке 2.4.1.
Рисунок 2.4.1 – Полная круговая диаграмма состояний
2.5. Построение решётчатой диаграммы состояний
По диаграмме состояний из пункта 2.4 необходимо построить диаграмму решётчатую диаграмму состояний.
Принцип построения следующий: по вертикали откладываются все состояния (состояния внутри окружностей), а по горизонтали – путь из одного состояния в другой под действиям различных входных воздействий.
Решётчатая диаграмма представлена ниже, на рисунке 2.5.1.
Рисунок 2.5.1 – Полная решётчатая диаграмма
2.6. Построение схемы кодера в программе «Спектр-2»
Необходимо построить схему кодера из пункта 2.2 в программе «Спектр-2» и проверить правильность построения кодера (сравнить значения в таблице 2.3.1 со значениями из консоли программы «Спектр-2».
Рисунок 2.6.1 – Схема кодера в программе «Спектр-2»
Ниже представлены результаты работы кодера математического (таблица 2.3.1) и кодера в программе «Спектр-2».
Рисунок 2.6.2 – Сравнение результатов работы кодеров
Как видно из рисунка 2.6.2, оба кодера завершили работу с одинаковым результатом.
2.7. Проверка результатов кодирования программой «Lab4_PK»
Необходимо проверить правильность работы кодера с помощью программы «Lab4_PK». Для этого необходимо ввести порождающие полиномы, кодируемую последовательность ac=[1 0 1 1 1] и пять
строк выходов кодера из таблицы 2.3.1 (10 бит).
Рисунок 2.7.1 – Результаты работы программы «Lab4_PK»
Как видно из рисунка 2.7.1, программа не сообщила об ошибке кодирования, следовательно кодер работает верно.
2.7. Декодирование с помощью алгоритма Витерби
Необходимо с помощью алгоритма Витерби произвести декодирование заданной последовательности ad=[11 1 0 11 1 10 10 1 0 0] .
Шаги решения по алгоритму Витерби представлены ниже, на рисунках (2.7.1) – (2.7.9).
Рисунок 2.7.1 – Решётчатая диаграмма кодера до момента повторения
Рисунок 2.7.2 – Первый шаг алгоритма декодирования Витерби
Рисунок 2.7.3 – Второй шаг алгоритма декодирования Витерби
Рисунок 2.7.4 – Третий шаг алгоритма декодирования Витерби
Рисунок 2.7.5 – Четвёртый шаг алгоритма декодирования Витерби
Рисунок 2.7.6 – Пятый шаг алгоритма декодирования Витерби
Рисунок 2.7.7 – Шестой шаг алгоритма декодирования Витерби
Рисунок 2.7.8 – Седьмой шаг алгоритма декодирования Витерби
