- •Общие сведения
- •1.1 Принципы моделирования в Simulink
- •1.2. Запуск Simulink
- •1.3. Обозреватель (браузер) разделов библиотеки Simulink
- •1.4. Открытие окна для новой модели
- •1.4. Перемещение блоков в окно новой модели
- •1.5. Соединение блоков
- •1.6. Установка параметров блоков
- •1.7 Запуск на моделирование
- •2. Использование библиотеки Communications Blockset для моделирования каналов связи с помехами
- •2.1 Модель двоичного канала связи с ошибками
- •2.2 Уменьшение числа ошибок с использованием кода Хемминга
- •2.3 Кодирование и декодирование с использованием сверточных кодов
- •Контрольные вопросы и задачи
2.3 Кодирование и декодирование с использованием сверточных кодов
Еще одним классом корректирующих кодов, широко используемых в системах связи, являются сверточные коды. Отличие сверточных кодов от блочных состоит в том, что при сверточном кодировании результат кодирования очередного входного символа (кадра, блока), зависит не только от него, но и от нескольких предыдущих символов (кадров, блоков). В результате этого закодированная последовательность связывается в непрерывную цепочку символов, зависящих друг от друга. Другим отличием сверточных кодов от блочных является то, что для их декодирования чаще всего используются алгоритмы, основанные на Методе Максимального Правдоподобия (ММП). Наиболее известным из них является алгоритм Витерби.
В библиотеке Communications Blockset пакета Simulink также есть элементы, позволяющие выполнять моделирование процедур кодирования/декодирования с применением сверточных кодов. При декодировании сверточных кодов используется алгоритм Витерби. Схема модели системы связи с кодированием данных сверточным кодом приведена на Рис. 2.6
Рис. 2.6 Модель системы связи с кодированием данных сверточным кодом
Кодирование данных здесь производится с помощью блока Convolutional Encoder ( библиотека Error Detection and Correction, раздел Convolutional)
Декодирование выполняется блоком Viterbi Decoder (библиотека Error Detection and Correction, раздел Convolutional).
Вы знаете, что при декодировании сверточных кодов с использованием алгоритма Витерби, решение о результате декодирования принимается не сразу, а по истечении неоторого времени (с задержкой). Для используемого в модели декодера эта задержка фиксирована и составляет 96 символов. Иными словами, решение о значении первого кодируемого символа будет принято только по приходу 96-го принятого символа, второго – по приходу 97-го и т.д. Поэтому в схему модели включены элементы задержки на 96 символов, тогда выходная декодированная и входная кодируемая последовательности будут отображаться синхронно. Тогда вы сможете визуально сравнить входные данные и данные на выходе декодера и заметить неисправленные ошибки (если они есть).
В диалоговом окне блока Bernoulli Binary Generator уберите птичку из окошка Frame-based outputs, поскольку размер кадра кодируемой последовательности для этого кода составляет 1 бит.
Запустите модель, нажав на кнопку ►.
Зафиксируйте результаты.
Измените вероятность ошибки в канале связи - Error probability (Pош) и повторите моделирование.
Проведите исследование зависимость вероятности ошибки на выходе системы связи (не исправленной в процессе декодирования - Рни) от вероятности ошибки в канале связи - Рош (Error probability) для следующего ряда значений Рош - 0.2, 0.1, 0.05, 0.03, 0.02, 0.01, 0.005. Чтобы получить устойчивый результат при малых величинах Рош увеличьте время моделирования с установленных по умолчанию 10 секунд до 100 или 200 секунд. В противном случае Вы можете не получить ни одной пропущенной декодером ошибки. Постройте график зависимости Рни (Рош), полученной в эксперименте. Графики для (7,4) блочного кода Хемминга и для сверточного кода изобразите в одной системе координат. Объясните плученные результаты. Сделайте вывод об исправляющей способности изученных кодов.
Подготовьте отчет о проделанной работе с изученными моделями, полученными иллюстрациями и выводами.
