![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Образование систематического кода
Обычно для построения кодов необходимо знать длину кодовой комбинации 1. все исходные комбинации должны быть различны, 2. нулевая комбинация не должна входить в число исходных комбинаций, 3. исходные кодовые комбинации должны быть линейно независимыми, 4. каждая кодовая комбинация должна иметь вес не менее 5. кодовое расстояние между любой парой исходных кодовых комбинаций должно быть не менее Подобранные определённым образом и удовлетворяющие приведённым условиям кодовые комбинации образуют матрицу, состоящую из Если имеется кодовая комбинация, состоящая из Запишем производящую матрицу
Как видно, матрица
которая называется канонической формой порождающей матрицы. Три исходных требования к порождающей матрице - число единиц в каждой строке не менее - кодовое расстояние между строками подматрицы Таким образом, удовлетворяются все требования, выдвинутые к матрице Обычно бывает известно количество передаваемых сообщений или количество информационных разрядов Определим матрицу
элементы которой использованы в выражении (5.8), считая, что каноническая форма матрицы Определение проверочной части кода
Полученные символы Обнаружение и исправление одиночной ошибки. Проверка на наличие или отсутствие ошибки и исправление ошибки основана на свойстве систематического кода, а именно – любая линейная комбинация кодов, входящих в производящую матрицу даёт также систематический код, Следовательно, достаточно построить алгоритм проверки для кодов производящей матрицы. Используем каноническое представление
элементы которой Применим правило: произведение любой разрешённой неискажённой кодовой комбинации на проверочную матрицу Следовательно, произведение канонической формы производящей матрицы на проверочную матрицу равно нулевой матрице: =
Составим систему линейных уравнений для проверки наличия ошибки в принятой реализации. Положим, Произведение зарегистрированной кодовой комбинация
Получили систему линейных уравнений для исправления однократной ошибки. Если в принятой кодовой комбинации нет однократных ошибок, то вектор ошибок Код однократной ошибки равен «1» в каком либо разряде и «0» во всех остальных
Из приведённой записи искажённых кодовых комбинаций ясно, что каждой ошибочной кодовой комбинации соответствует свой вектор ошибки. По этому признаку в приёмнике инвертируется определённый разряд в принятой кодовой комбинации. Существует другой способ исправления однократных ошибок. Для каждой разрешённой кодовой комбинации записываются множество кодов с однократной ошибкой. Если произошла однократная ошибка, принятая кодовая комбинация принадлежит одному из множеств, соответствующей одной разрешённой кодовой комбинации. По этому множеству определяется истинное значение кодовой комбинации. Однако этот метод требует большого объёма памяти. Пример 5.2. Положим необходимо произвести кодирование пятиразрядных двоичных кодов с исправлением однократной ошибки, ( 1. Из неравенства (5.6) определим необходимое число разрядов
2. Из неравенства (5.3) определяется минимальное кодовое расстояние
3. Определяются требования к проверочной подматрице 3.1 Число единиц в кодовых последовательностях, входящих в подматрицу 3.2 Кодовое расстояние между любыми двумя кодовыми последовательностями, входящими в подматрицу 4. Выпишем все четырёхразрядные коды, удовлетворяющие условиям 3.1 и 3.2: 0011, 0101, 0110, 0111, 1001, 1010, 1011, 1100, 1101, 1110, 1111. 5. Информационная часть производящей матрицы – единичная матрица размерности [5 5]. Выберем произвольно пять кодов из пункта 4 и образуем каноническую форму
8. На основе проверочной матрицы X и принятой кодовой комбинации
Если принятая кодовая комбинация не содержит одиночной ошибки, то синдром S равен нулю. Определим синдромы ошибок для каждого символа кодовой комбинации. Например, синдром ошибки для символа
и выполнив сложение по модулю 2, получим код 0111, который соответствует синдрому
Положим, принятая кодовая комбинация равна 9. Введём однократную ошибку
Как известно, значение синдрома, не равное нулю, однозначно определяет номер разряда в кодовой комбинации. В приведённом примере пятый разряд в векторе Число синдромов, не равных нулю, равно числу разрядов принятой кодовой комбинации. Синдромы для символов кодовой комбинации Указанные синдромы сохраняются для любых кодовых комбинаций, полученных по построенной производящей матрице. Например, для кода система проверочных уравнений примет вид 0 Å 1 Å 0 Å 1 = 0, 0 Å 1 Å 0 Å 1 = 0, 0 Å 0 Å 1 Å 0 Å 1 = 0, 0 Å 1 Å 0 Å 0 Å 1 = 0.
Если произошла ошибка, скажем, в первом разряде, получим код
0 Å 1 Å 0 Å 1 = 0, 1 Å 1 Å 0 Å 1 = 1, 1 Å 0 Å 1 Å 0 Å 1 = 1, 1 Å 1 Å 0 Å 0 Å 1 = 1. Синдром
|