- •Федеральное агенство по образованию
- •Помехоустойчивые коды в радиотехнике и связи
- •Введение
- •Глава 1. Помехоустойчивые коды
- •1.2. Коды, обнаруживающие ошибки
- •1.2.1. Двоичный безызбыточный код
- •1.2.2. Код с защитой по паритету (четности, нечетности)
- •1.2.3. Код с простым повторением
- •1.2.4. Код с повторением и инверсией
- •1.2.5. Код на одно сочетание
- •1.3. Коды, исправляющие ошибки
- •1.3.1. Общие правила построения блочных кодов
- •1.3.2. Правила построения кода Хэмминга
- •1.3.3. Правила построения кода Рида-Маллера
- •1.3.4. Основные понятия о свойствах многочленов и полях Галуа
- •1.3.5. Правила построения примитивных кодов бчх
- •1.3.6. Правила построения кода Голея
- •1.3.7. Правила построения кода Рида-Соломона
- •1.3.8. Правила построения кода Вайнера-Эша
- •1.3.9. Правила построение кода Ивадаре
- •1.4. Кодирование и декодирование кодов
- •1.4.1. Методы кодирования и декодирования циклических кодов
- •1.4.2. Методы кодирования и декодирования линейных кодов
- •1.4.3. Методы кодирования и декодирования свёрточных кодов
- •1.5. Описание инструментальной системы для построения помехоустойчивых кодов
- •1.5.1. Установка инструментальной среды на пэвм
- •1.5.2. Интерфейс инструментальной среды
- •1.6. Методика построения кодов в инструментальной среде «Помехоустойчивые коды»
- •1.6.1. Код Хэмминга
- •1.6.2. Код Рида-Маллера
- •1.6.3. Код бчх
- •1.6.4. Код Голея
- •1.6.5. Код Рида-Соломона
- •1.6.6. Код Вайнера-Эша
- •1.6.7. Код Ивадаре
- •1.7. Вычисление характеристик кодов
- •1.7.1. Вычисление энергетической эффективности кода
- •1.7.2. Вычисление корреляционных функций кода
- •1.8. Построение кодирующих и декодирующих схем
- •1.9. Задание к лабораторной работе «Построение и расчет параметров помехоустойчивых кодов»
- •1.10. Контрольные вопросы к главе 1
- •Глава 2. Коды для линий связи
- •2.1. Особенности линейных кодов
- •2.2. Параметры и характеристики линейных кодов
- •Правила построения линейных
- •Биполярный код с замещением трех нулей (в3zs)
- •2.3.6. Парноизбирательный троичный код (пит, pst)
- •2.3.7. Код с инверсией токовых посылок (cmi)
- •2.3.12. Код dmi
- •2.3.13. Код h
- •2.3.14. Код isdn
- •2.3.15. Квазитроичный разностный код (prkk)
- •2.4. Правила построения линейных алфавитных кодов
- •2.4.1. Код 4b3t
- •2.4.2. Код fomot
- •2.4.3. Код ms43
- •2.5. Правила построения многоуровневых кодов (мур)
- •2.6. Описание программы Code
- •2.7. Задание к лабораторной работе «Построение и расчет параметров кодов для линий связи»
- •2.8. Контрольные вопросы к главе 2
- •Глава 3. Псевдослучайные последовательности
- •3.1. М-последовательности
- •3.2. Задание к лабораторной работе «Построение и расчет характеристик псевдослучайных сигналов»
- •3.3. Контрольные вопросы к главе 3
- •Библиографический список
- •Помехоустойчивые коды в радиотехнике и связи
- •Помехоустойчивые коды в радиотехнике и связи
1.3.2. Правила построения кода Хэмминга
Коды Хэмминга являются линейными блочными кодами. При определенном построении они могут быть систематическими. Некоторые коды Хэмминга (не расширенные) являются циклическими.
Параметры кодов Хэмминга при m проверочных символах следующие:
- длина слова ;
- длина информационной части ;
- длина проверочной части ;
- минимальное кодовое расстояние .
Коды Хэмминга представляют собой один из немногих примеров совершенных кодов, для которых полностью известен спектр [4].
Код Хэмминга строится на основе задания проверочной матрицы. Проверочная матрица содержит m строк и (2m-1) столбцов. Столбцы матрицы представляют собой набор двоичных чисел, записанных в возрастающем порядке. При этом столбцы, содержащие в наборе только одну единицу, являются проверочными, а столбцы, имеющие более одной единицы, - информационными.
Пример. Пусть , тогда длина слова, длина информационной части. Проверочная матрица кода Хэмминга (7,4) с тремя проверочными символами имеет вид:
. |
(1.17) |
Если переставить местами третий и четвертый столбцы, то проверочная матрица приобретет каноническую форму и код становится систематическим. Для построения порождающей матрицы, выполнения операции кодирования и вычисления синдрома можно воспользоваться правилами, описанными в п.1.3.1.
Код Хемминга с кодовым расстоянием позволяет исправить одну и обнаружить две ошибки. Если в кодовой комбинации произошла одна ошибка, то по виду синдрома легко можно определить, в какой позиции кодовой комбинации она произошла. Например, если ошибочно принят первый символ в кодовой комбинации, то это будет соответствовать синдрому 001, второй символ – синдрому 010, третий – синдрому 011 и т.д. Но в коде Хемминга с кодовым расстояниемимеется недостаток - по виду синдрома нельзя определить, одна или две ошибки имеются в кодовом слове. Чтобы избавиться от этого недостатка, необходимо увеличить кодовое расстояние.
Коды Хемминга можно превратить в коды с расстоянием 4, добавив дополнительную общую проверку на четность (т.е. добавив в кодовое слово символ, равный сумме по модулю 2 всех остальных кодовых символов). При этом код потеряет свойство цикличности, но по виду синдрома можно определить, сколько ошибок произошло в кодовом слове – одна или две.
1.3.3. Правила построения кода Рида-Маллера
Коды Рида-Маллера являются линейными двоичными блочными кодами. При определенном построении они могут быть систематическими. В общем случае коды Рида-Маллера не являются циклическими.
Коды Рида-Маллера задаются следующими параметрами для любых значений и, называемого порядком кода, меньшего, чем:
длина кодового слова ;
длина информационной части
длина проверочной части
минимальное кодовое расстояние .
Коды Рида-Маллера существуют в широкой области значений скоростей передачи и минимальных расстояний. Важным достоинством кодов Рида-Маллера является то, что они могут быть декодированы сравнительно простыми методами порогового декодирования.
Код Рида-Маллера определяется при помощи порождающей матрицы, состоящей из базисных векторов. Правило построения следующее:
пусть - вектор, все компоненты которого равны 1;
пусть - строки матрицы, столбцами которой являются все двоичные наборы длины. Код Рида-Маллера-го порядка содержит в качестве базиса векторыи все покомпонентные произведенияили меньшего числа этих векторов.
Покомпонентное произведение любых двух векторов изадается следующим образом:
. |
(1.18) |
Пример. Для m = 4 и соответственно n = 24 = 16 запишем базисные векторы кода Рида-Маллера:
Сформированная из базисных векторов порождающая матрица может быть использована для кодирования. Чтобы получить из данной матрицы проверочную, необходимо провести ее преобразование к систематическому виду. Это обеспечивается путем сложения по модулю 2 первой строки со всеми остальными строками матрицы. Такая операция не изменяет характеристик кода. Получив проверочную и порождающую матрицы, можно проводить с кодом все операции, описанные в п. 1.3.1. Следует отметить, что при декодировании методом порогового декодирования строить проверочную матрицу нет необходимости.