- •6 Охрана труда и окружающей среды 79 Введение
- •1 Постановка задачи
- •2 Анализ предметной области
- •2.2 Передача информации по каналам связи
- •2.3 Помехоустойчивые коды
- •2.3.1 Способы борьбы с ошибками
- •2.3.2 Коды обнаружения и исправления ошибок
- •2.4 Классификация конечных абстрактных автоматов
- •2.4.1 Автомат Мили
- •2.4.2 Автомат Мура
- •2.5 Сверточное кодирование
- •2.5.1 Представление сверточного кодера
- •2.5.2 Представление связи
- •2.5.3 Реакция кодера на импульсное возмущение
- •2.5.4 Полиномиальное представление
- •2.5.5 Представление состояния и диаграмма состояний
- •2.5.6 Древовидные диаграммы
- •2.5.7 Решетчатая диаграмма
- •2.6 Декодирование по методу максимального правдоподобия
- •2.6.1 Алгоритм сверточного декодирования Витерби
- •2.6.2 Пример сверточного декодирования Витерби
- •2.6.4 Память путей и синхронизация
- •3 Разработка программного обеспечения системы кодирования сверточным кодом
- •3.1 Описание программы
- •3.2 Описание блок схем алгоритмов программы
- •3.3 Обоснование выбора языка программирования
- •3.4 Тестирование программы
- •3.5 Быстродействие программы
- •5. Оценка экономической эффективности разработки и внедрения программного продукта
- •1 Расчет трудоемкости разработки пп
- •6 Охрана труда и окружающей среды
- •6 Канал (длинноволновый инфракрасный или тепловой):
- •7 Канал (средний, или коротковолновый инфракрасный):
- •8 Канал (панхроматический — 4,3,2):
- •Библиографический список
- •Приложение б (информационное)
- •Приложение в (справочное)
- •Эффективности разработки и внедрения программного продукта»
2.5.1 Представление сверточного кодера
Чтобы иметь возможность описывать сверточный код, необходимо определить кодирующую функцию так, чтобы по данной входной последовательности m можно было быстро вычислить выходную последовательность U. Для реализации сверточного кодирования используется несколько методов; наиболее распространенными из них являются графическая связь, векторы, полиномы связи, диаграмма состояния, древовидная и решетчатая диаграммы. Все они рассматриваются ниже.
2.5.2 Представление связи
При рассмотрении сверточных кодеров в качестве модели будем использовать сверточный кодер, показанный на рисунке 2.6. На этом рисунке изображен сверточный кодер (2, 1) с длиной кодового ограничения K = 3. В нем имеется n = 2 сумматора по модулю 2; следовательно, степень кодирования кода k/n равна 1/2. При каждом поступлении бит помещается в крайний левый разряд, а биты регистра смещаются на одну позицию вправо. Затем коммутатор на выходе дискретизирует выходы всех сумматоров по модулю 2 (т.е. сначала верхний сумматор, затем нижний), в результате чего формируются пары кодовых символов, образующих кодовое слово, связанное с только что поступившим битом. Это выполняется для каждого входного бита. Выбор связи между сумматорами и разрядами регистра влияет на характеристики кода. Всякое изменение в выборе связей приводит в результате к различным кодам.
В отличие от блочных кодов, имеющих фиксированную длину слова n, в сверточных кодах нет определенного размера блока. Однако с помощью периодического отбрасывания сверточным кодам часто принудительно придают блочную структуру. Это требует некоторого количества нулевых разрядов, присоединенных к концу входной последовательности данных, которые служат для очистки (или “промывки”) регистра сдвига от бит данных. Поскольку добавленные нули не несут дополнительной информации, эффективная степень кодирования будет ниже k/n. Чтобы степень кодирования оставалась близкой к k/n, период отбрасывания чаще всего делают настолько большим, насколько это возможно.
Рисунок 2.6 - Сверточный кодер (степень кодирования 1/2, K - 3)
Один из способов реализации кодера заключается в определении n векторов связи, по одному на каждый из n сумматоров по модулю 2. Каждый вектор имеет размерность K и описывает связь регистра сдвига кодера с соответствующим сумматором по модулю 2. Единица на i-Й позиции вектора указывает на то, что соответствующий разряд в регистре сдвига связан с сумматором по модулю 2, а нуль в данной позиции указывает, что связи между разрядом и сумматором по модулю 2 не существует. Для кодера на рисунке 2.6 можно записать вектор связи для верхних связей, a — для нижних.
При скоростях R = k/n, где k >1, как правило, в схеме кодера используют k регистров сдвига. Типичным является пример, показанный на рис. 1 для кода с R = 2/3. В кодер одновременно вводятся два символа (один для входной последовательности A1(X), другой – для A2(X)) и сумматоры, по модулю 2 вычисляют три символа для выходных последовательностей B1(X), B2(X), B3(X).
Рисунок 2.7 - Сверточный кодер (степень кодирования 2/3)
Предположим теперь, что вектор сообщения m = 1 0 1 закодирован с использованием сверточного кода и кодера, показанного на рисунке 2.6. Введены три бита сообщения, по одному в момент времени , и , как показано на рисунке 2.7. Затем для очистки регистра в моменты времени t4 и t5 введены (К - 1) = 2 нуля, что в результате приводит к смещению конечного участка на всю длину регистра. Последовательность на выходе выглядит следующим образом: 1 1 1 0 0 0 1 0 1 1, где крайний левый символ представляет первую передачу. Для декодирования сообщения нужна полная последовательность на выходе (включающая кодовые символы). Для удаления сообщения из кодера требуется на единицу меньше нулей, чем имеется разрядов в регистре, или К - 1 очищенных бит. В момент времени t6 показан нулевой выход, это должно дать читателю возможность убедиться в том, что в момент времени t5 регистр устанавливается в исходное состояние. Таким образом, в момент времени t6 уже можно передавать новое сообщение.
Рисунок 2.7 - Сверточное кодирование последовательности сообщения со степенью кодирования 1/2 кодером с К = 3.