Моделирование и исследование блоков корректирующего кода в среде MicroCap 9

№ 5’2014
PDF версия
В статье приводится разработка схем кодера и декодера блочного корректирующего кода в среде MicroCap 9. Рассмотрена работа схем кодера и декодера линейного (7,4)-кода при безошибочном приеме кодовой комбинации, а также в режиме обнаружения и исправления ошибок в принятом коде.

Блочные корректирующие коды широко применяются в различных радиоэлектронных устройствах [1, 2]. При этом отсутствует описание синтеза этих устройств в известной программе моделирования MicroCap 9 [3]. Почти все блочные коды относятся к разделимым, или систематическим, то есть их комбинации состоят из двух частей: информационной и проверочной. Информационные и проверочные разряды занимают одни и те же определенные позиции.

Разделимые коды обозначают в виде (n,k)-кодов (n — «значность» кода; k — число информационных разрядов), r = nk — число проверочных разрядов.

Наиболее часто применяются линейные систематические коды. Для систематического (n,k)-кода любая кодовая комбинация записывается в виде:

X = (x1, …, xi, …, xk; z1, …, zj, …, zr),

где x1, …, xi, …, xk — информационная комбинация; z1, …, zj, …, zr — проверочные символы.

Линейные коды полностью определяются k линейно-независимыми кодовыми комбинациями. Совокупность этих k‑комбинаций, называемых базисными, образует порождающую матрицу кода. Часто используется каноническая форма порождающей матрицы:

Формула

Порождающая матрица полностью задает код, так как все кодовые комбинации (за исключением нулевой) могут быть получены путем посимвольного сложения по модулю двух входящих в порождающую матрицу первой, второй, …, k‑ой базисных комбинаций. Образование кодовых комбинаций происходит при линейном сложении различного числа базисных комбинаций, что и определяет название линейных кодов. Для того чтобы каноническая порождающая матрица определяла код с кодовым расстоянием dmin, необходимо и достаточно, чтобы сумма любых l строк избыточной матрицы образовывала r‑символьную комбинацию, вес которой (количество отличных от нуля символов):

w dminl.

Это неравенство позволяет определить значение избыточных символов порождающей матрицы.

Рассмотрим линейный (7,4)-код с кодовым расстоянием dmin = 3. Порождающая матрица для этого кода может быть записана в виде:

Формула

Легко убедиться, что сумма любых l‑строк (l = 1, 2, …, k) избыточной подматрицы дает комбинацию, вес которой не менее 3–l, то есть порождает код с dmin = 3. Матрица содержит четыре из 15 ненулевых комбинаций кода. Остальные 11 комбинаций могут быть получены сложением базисных комбинаций. Например, кодовая комбинация, соответствующая информационной (1011), получается посимвольным сложением 1‑й, 3‑й и 4‑й строк и имеет вид (1011100).

Достоинством систематических кодов является их сравнительно простая техническая реализация. На структурной схеме (рис. 1) представлено кодирующее устройство (7,4)-кода, состоящее из 7‑разрядного регистра сдвига и трех сумматоров по модулю 2.

Структурная схема кодера

Рис. 1. Структурная схема кодера

Регистр содержит две части: информационную (четыре ячейки) и проверочную (три ячейки). Каждый сумматор служит для формирования проверочного символа, находящегося на определенной позиции. Подключение информационных ячеек регистра к соответствующим сумматорам выполнено по правилам построения корректирующего (7,4)-кода:

R1 = i1i2i3,

R2 = i2i3i4,

R3 = i1i2i4.

Рассмотрим принцип работы кодера. Первичная кодовая комбинация записывается параллельно в четыре информационные ячейки регистра. Одновременно с этим в трех сумматорах по модулю 2 формируются три проверочных символа, которые записываются в три проверочные ячейки регистра. Полученная кодовая комбинация выводится из регистра с помощью подачи тактовых импульсов от генератора тактовых импульсов. После семи тактовых импульсов кодовая комбинация будет выведена из регистра. Далее регистр подготавливается к записи и формированию следующей кодовой комбинации. Сформированные комбинации поступают к модулятору передатчика.

На рис. 2 приведена схема кодера, синтезированная в среде MicroCap 9. С целью упрощенного получения в схеме информационных символов регистр, содержащий четыре информационные ячейки, заменен на четыре цифровых переключателя i1i4. Проверочные ячейки R1R3 выполнены на двухвходовых сумматорах по модулю 2. На схеме индикаторы красного цвета показывают логическую единицу информационных и проверочных символов. Индикаторы черного цвета соответствуют логическому нулю.

Схема кодера корректирующего (7,4)-кода

Рис. 2. Схема кодера корректирующего (7,4)-кода

Генератор тактовых импульсов ввиду отсутствия сдвигающего регистра заменен на семь импульсных генераторов V1–V7, формирующих импульсы длительностью 10 мкс и задержанных друг относительно друга на 10 мкс.

Буферные блоки B1–B7 предназначены для согласования аналоговой части схемы с цифровой схемой, которая содержит двухвходовые элементы И, а также элемент ИЛИ с девятью входами. В нем используются семь входов по числу символов корректирующего (7,4)-кода.

На рис. 3 приведены осциллограммы на выходах импульсных генераторов V1–V7, выходе элемента ИЛИ и выходе фазового манипулятора PSK.

Осциллограммы на выходах импульсных генераторов V1–V7 (семь сверху), на выходе элемента ИЛИ (вторая снизу) и на выходе фазового манипулятора (первая снизу)

Рис. 3. Осциллограммы на выходах импульсных генераторов V1–V7 (семь сверху), на выходе элемента ИЛИ (вторая снизу) и на выходе фазового манипулятора (первая снизу)

Рассмотрим работу декодера (7,4)-кода (рис. 4). Декодер (7,4)-кода состоит из семи триггерных ячеек, трех сумматоров по модулю 2, анализатора ошибок и корректора ошибок. По фронту стробирующего импульса последовательность символов принятой от демодулятора кодовой комбинации записывается в семь ячеек регистра, и с помощью сумматоров проводится проверка на четность для информационных и проверочных символов по следующим правилам:

S1 = R1i1i3i4,

S2 = R2i1i2i3,

S3 = R3i1i2i4.

Структурная схема декодера

Рис. 4. Структурная схема декодера

Если в принятой кодовой комбинации ошибок нет, то на выходах трех сумматоров формируется синдром последовательности вида (0,0,0). В этом можно убедиться, рассмотрев все 15 кодовых комбинаций (7,4)-кода, полученных из порождающей матрицы. Если в принятой комбинации имеются ошибочные символы, то на выходе некоторых сумматоров формируется синдром последовательности, содержащий в некоторых позициях логическую единицу, поскольку условия проверки на четность в этих сумматорах оказались невыполненными. В этом случае на выходе анализатора ошибок формируется флаг ошибки. Код (7,4) позволяет скорректировать одиночную ошибку.

На рис. 5а приведены схема блока ввода ошибок в информационные и проверочные символы и схема анализатора ошибок в среде MicroCap 9.

Схемы блока ввода ошибок в информационные и проверочные символы

Рис. 5. Схемы блока ввода ошибок в информационные и проверочные символы:
а) анализатора ошибок;
б) анализатора и корректора ошибок

На рис. 5а показана безошибочная передача символов (7,4)-кода: 1010 001. Безошибочная передача символов подтверждается отсутствием ввода ошибок в блоке (нулевое положение цифровых ключей i1i4, R1R3), индикацией принятых символов, совпадающих с переданными, нулевым синдромом «000», индикатором «ошибки нет».

На рис. 5б представлена передача символов (7,4)-кода с введенной ошибкой в символе i1. В блоке ввода ошибок пунктиром показан цифровой ключ i1 в единичном положении. Это означает ввод ошибки в символ i1, что и характеризует принятый символ i1 (выделен пунктиром). В результате формируется синдром вида (1,1,1) и формируется логическая единица на выходе i1 анализатора ошибок.

Для коррекции ошибки бит с выхода i1 анализатора ошибок передается на соответствующий вход корректора ошибок, представляющий собой блок из семи сумматоров по модулю 2. Алгоритм коррекции основан на том, что каждому ненулевому синдрому соответствует определенная конфигурация ошибок, приведенная в таблице.

Таблица. Конфигурация ошибок

Синдром

001

010

011

100

Конфигурация ошибок

01000000

00100000

00010000

00001000

Ошибочный символ

R3

R2

i2

R1

Синдром

101

110

111

000

Конфигурация ошибок

00000100

00000010

00000001

10000000

Ошибочный символ

i4

i3

i1

Нет ошибок

На рис. 6 приведен другой пример одиночной ошибки в проверочном символе R2.

Схема коррекции ошибки в проверочном символе R2

Рис. 6. Схема коррекции ошибки в проверочном символе R2

В переданном коде 0011 011 цифровым ключом R2 в блоке ввода ошибок введена ошибка в символ R2: 0011 001. Она зафиксирована в принятых символах, в синдроме вида (0,1,0) и при формировании логической единицы на выходе R2 анализатора ошибок. В результате корректирующий (7,4)-код на выходе корректора исправляет ошибку в символе R2.

Таким образом, в соответствии с текущей конфигурацией ошибок блок коррекции формирует управляющий сигнал, задающий инверсию для бита в позиции, соответствующей ошибочному символу. Выполнен блок коррекции ошибок по числу символов блочного корректирующего (7,4)-кода на семи сумматорах по модулю 2.

В случае одиночной ошибки на выходе корректора декодера формируется верная кодовая последовательность, а на выходе анализатора ошибок формируется логическая единица, которая обозначает в данном случае ошибочный символ. На рис. 7 представлена схема кодера и декодера блочного корректирующего (7,4)-кода в среде MicroCap 9.

На рис. 7 в блоке ввода ошибок цифровой ключ i3 показан в единичном положении. Это означает в данном случае ввод ошибки в символ i3, что и характеризует ошибочный принятый символ i3. В результате формируется синдром вида (1,1,0) и формируется логическая единица на выходе i3 анализатора ошибок. Корректор исправляет эту ошибку.

Схема кодера и декодера корректирующего (7,4)-кода

Рис. 7. Схема кодера и декодера корректирующего (7,4)-кода

В правом верхнем углу на рис. 7 пунктиром выделен и в увеличенном виде показан блок PSK — фазовый манипулятор несущей частоты 400 кГц по закону блочного корректирующего (7,4)-кода для данной кодовой комбинации 0110 101. Осциллограммы кодовой комбинации 0110 101 и соответствующая ей фазовая манипуляция несущего колебания приведены на рис. 8.

Осциллограммы кодовой комбинации 0110 101 (сверху) и фазовой манипуляции несущего колебания (снизу)

Рис. 8. Осциллограммы кодовой комбинации 0110 101 (сверху) и фазовой манипуляции несущего колебания (снизу)

Представленный в работе метод реализации (7,4)-кода можно использовать для синтеза других типов корректирующих (n,k)-кодов. Разработанная модель дает возможность проводить широкий круг исследований кодера и декодера корректирующего (7,4)-кода, устройств блочных корректирующих (n,k)-кодов. Синтезированная модель корректирующего (7,4)-кода в среде MicroCap 9 актуальна для разработчиков соответствующей аппаратуры и может быть использована при обучении студентов радиотехнических специальностей.

Литература
  1. Соколов О. Л., Войцеховский А. Б. Радио-технические системы передачи информации: письменные лекции. СПб.: Изд-во СЗТУ, 2005.
  2. Васин В. А., Калмыков В. В., Себекин Ю. Н. и др. Радиосистемы передачи информации: учебное пособие для вузов. М.: Горячая линия – Телеком, 2005.
  3. Амелина М. А. Компьютерный анализ и синтез электронных устройств: конспект лекций. Ч. 1. Смоленск: МЭИ (ТУ), 2005.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *