- •Глава 8. Основы теории кодирования
- •8.2. Согласование источника с каналом по объемам алфавитов. Теоремы кодирования шеннона и потенциальные возможности системы передачи информации
- •8.2.1.Теорема Шеннона для дискретного канала связи без помех
- •8.2.2. Теорема Шеннона для дискретного канала связи с помехами
- •8.2.3. Теорема Шеннона для непрерывного канала связи
- •8.3. Основы экономного кодирования
- •8.3.1 Принципы экономного кодирования. Цель сжатия данных и типы систем сжатия
- •8.3.2. Префиксные коды
- •Избыточность кода Хаффмена
- •8.3.4. Код Шеннона-Фано
- •8.3.5. Неравномерное кодирование для последовательности сообщений
- •8.3.6. Арифметическое кодирование
- •Кодирование
- •Декодирование
- •8.3.7. Словарные методы сжатия
- •Кодирование
- •Декодирование
- •8.4. Основы помехоустойчивого кодирования
- •8.4.1 Принципы обнаружения и исправления ошибок
- •8.4.2. Классификация помехоустойчивых кодов
- •8.4.3. Основные характеристики помехоустойчивых кодов
- •8.4.4. Границы вероятности ошибочного декодирования
- •8.5. Блочные линейные коды
- •8.5.1. Математическое описание процессов кодирования и декодирования
- •8.5.2. Коды с проверкой на четность
- •8.5.3 Коды Хэмминга
- •8.5.4. Коды с постоянным весом
- •8.5.5. Циклические коды
- •1. Способы декодирования с обнаружением ошибок
- •2 Способы декодирования с исправлением ошибок
- •8.6. Непрерывные коды
- •8.6.1 Идея построения непрерывного кода Финка–Хегельбергера
- •8.6.2. Сверточные коды
- •8.6.3. Представление сверточных кодов с помощью многочленов
- •8.6.4. Графическое представление сверточных кодов
- •8.6.5. Методы декодирования сверточных кодов
- •8.6.6. Схемное построение декодера Витерби
- •8.7. Методы борьбы с ошибками
- •8.7.1. Системы с обратной связью
- •8.7.2. Формат кадра протоколов с обнаружением ошибок
- •8.7.3. Методы повторной передачи (arq)
- •8.7.4. Основные характеристики систем с решающей обратной связью
- •8.7.5. Показатели эффективности цифровой системы связи
8.4.4. Границы вероятности ошибочного декодирования
Помехоустойчивость кода можно оценить вероятностью искажения (ошибки) символов дискретных сообщений, которые передаются кодовыми комбинациями. Выше отмечалось, что по мере увеличения избыточности кода его помехоустойчивость улучшается. Однако реальная помехоустойчивость кодов с избыточностью зависит и от конкретного способа приема (регистрации) кодовых комбинаций (символов). Применяется поэлементный прием и прием в целом кодовых комбинаций.
При поэлементном приеме осуществляется регистрация каждого из символов, составляющих кодовую комбинацию. Последовательность поочередно принятых сигналов образует кодовую комбинацию, которая регистрируется декодером и подается на устройство преобразования кодовых комбинаций в символы сообщения.
При приеме в целом производится регистрация кодовых сигналов. Под кодовым сигналом при этом принимается вся последовательность элементарных сигналов, составляющих кодовую комбинацию.
Предположим, что вероятность искажения отдельного сигнала в кодовой комбинации равна . Будем полагать, что искажения различных сигналов в кодовой комбинации статистически независимые (что является справедливым для каналов с постоянными параметрами и флуктуационной помехой). Вероятность того, что при поэлементном приеме комбинация изn элементов содержит равно ошибок по биномиальному закону, равна
, (8.37)
где - вероятность искажения одного элемента кодовой комбинации.
Вероятность правильной регистрации кодовой комбинации из n элементов равна вероятности того, что в ней содержится не более ошибок
. (8.38)
Число ошибок и менее исправляется кодом c .
Тогда вероятность ошибочного декодирования кодовой комбинации
. (8.39)
При оценке эффективности помехоустойчивых кодов используют так называемую эквивалентную вероятность ошибки , определяемую по формуле
, (8.40)
где - количество информационных разрядов.
Эквивалентная вероятность ошибки определяет вероятность ошибки элементарного символа в двоичном симметричном канале без памяти, в котором система с примитивным кодированием обеспечивает при передаче того же количества информации ту же вероятность ошибочного декодирования кодовой комбинации, что и система с избыточным кодом.
8.5. Блочные линейные коды
8.5.1. Математическое описание процессов кодирования и декодирования
Линейным блочным - кодом называется множествопоследовательностей длинынад, называемых кодовыми словами, которое характеризуется тем, что сумма двух кодовых слов является кодовым словом, а произведение любого кодового слова на элемент поля также является кодовым словом.
Поле , состоящее из конечного числа элементовназываетсяконечным полем или полем Галуа. Для любого числа , являющегося степенью простого числа, существует поле, насчитывающееэлементов. Поле не может содержать менее двух элементов. Поле, включающее только 0 и 1, обозначим GF(2). Правила сложения и умножения в поле с двумя элементами представлены в табл. 8.11.
Таблица 8.11. Правила сложения и умножения в поле с двумя элементами
+ |
0 |
1 |
|
х |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 | |
1 |
1 |
0 |
1 |
0 |
1 |
Двоичные кодовые комбинации, являющиеся упорядоченными последовательностями из элементов поля, рассматриваются в теории кодирования как частный случай последовательностей изn элементов поля .
Обычно , где- некоторое целое число. Если, линейные коды называются групповыми, так как кодовые слова образуют математическую структуру, называемую группой. При формировании этого кода линейной операцией является суммирование по mod2.
При задании кода обычно указывают, какие информационные элементы принимают участие в формировании каждого из k проверочных разрядов. Например, для кода с n=5, m=3 и k=2 каждый проверочный разряд определяется суммированием по модулю 2 по правилу
; ,
где - информационные разряды. Комбинация такого кода записывается в видеили в обратном. При задании кода можно указать все разрешенные для этого кода комбинации. Для линейных кодов способ задания можно значительно упростить. Дляm информационных разрядов число всех разрешенных кодовых комбинаций будет равняться .
Пусть (табл.8.12). Так как в каждой кодовой комбинации такого кода три информационных элемента, то число возможных комбинаций кода будет равно.
Проверочные элементы формируются как сумма по модулю два информационных элементов, а именно:
(8.41)
Так для кодовой комбинации №4
в соответствии с правилами суммирования по модулю 2.
Для задания кода нет необходимости записывать в таблицу все используемые комбинации данного кода. Код может быть задан матрицей, которая содержит один из возможных наборов линейно независимых строк. Под линейно независимыми кодовыми комбинациями понимают такие, сумма по модулю 2 которых (в любом сочетании) не равняется нулю. Выберем из всех кодовых комбинаций только линейно независимые. Так для приведенного выше кода линейно независимыми будут группы комбинаций:
1. 1 0 0 1 0 2. 0 1 0 1 1 3. 0 0 1 0 1 |
1. 1 0 0 1 0 4. 1 1 0 0 1 5. 0 1 1 1 0 |
1. 1 0 0 1 0 4. 1 1 0 0 1 7. 1 1 1 0 0 |
|
(1) |
(2) |
(3) |
|
Можно выбрать и другие группы линейно независимых комбинаций этого кода. Путем поэлементного сложения по модулю 2 любого сочетания из приведенных выше в группах комбинаций не удается получить нулевой комбинации. Для первой группы:
1. 1 0 0 1 0 2. 0 1 0 1 1 -------------------- 1 1 0 0 1 |
1. 1 0 0 1 0 3. 0 0 1 0 1 ------------------ 1 0 1 1 1 |
2. 0 1 0 1 1 3. 0 0 1 0 1 -------------------- 0 1 1 1 0 |
1. 1 0 0 1 0 2. 0 1 0 1 1 3. 0 0 1 0 1 ------------- 1 1 1 0 0. |
4. |
5. |
6. |
7. |
Обычно линейно независимые кодовые комбинации записывают в виде матрицы размером , которая называетсяпорождающей и обозначается . Чаще всего порождающие матрицы записывают в так называемойканоничной форме. При этом первые или последние столбцов этой матрицы образуютединичную матрицу.
Таким образом, любая из трех приведенных выше комбинаций может быть порождающей для систематического (5,3) кода с . В общем виде производящую матрицу из строк истолбцов записывают так:
. (8.42)
Здесь первые столбцов являются информационными, а последниестолбцов – проверочными. Производящую матрицуобычно записывают в канонической форме
или . (8.43)
где – число проверочных элементов, - матрица информационных элементов, представляет собой единичную матрицу размерности, т.е. квадратная матрица, у которой единицы находятся только на главной диагонали,- матрица проверочных элементов, размерность которой.
Для рассматриваемого примера – (5,3) кода каноническая форма порождающей матрицы имеет вид
Из данного примера видно, что первые три столбца составляют единичную матрицу; четвертый столбец указывает, что при формировании первого проверочного разряда принимают участие первый и второй информационные разряды. Пятый столбец указывает, что при формировании второго проверочного разряда принимают участие второй и третий информационные разряды.
Для
. (8.44)
Затем выделяется подматрица являющаяся транспонированной матрицей:
если то. (8.45)
Затем полученной матрице справа приписывается единичная матрица и получается проверочная матрицаН.
. (8.46)
Проверочная матрица очень удобна для определения места ошибки в кодовой комбинации, а следовательно и исправления ошибки.
Проверочная матрица однозначно связана с порождающей соотношением
, (8.47)
Где умножение и суммирование соответствующих элементов матриц производится по модулю 2.
Пример.
Для порождающей матрицы, G(5,3) проверочная матрица имеет вид
Тогда
Допустим, что переданная кодовая комбинация записана в виде вектора
(8.48)
Процесс декодирования математически описывают произведением проверочной матрицы и вектора – столбца, отображающего принятую кодовую комбинацию, где- вектор ошибки
, (8.49)
где – результат декодирования (синдром);
- знак транспортирования.
В теории кодирования синдром, который также называют опознавателем ошибки, обозначает совокупность признаков, характерных для определённой ошибки. Для исправления ошибки на стороне приёма необходимо знать не только факт её существования, но и её местонахождение, которое определяется по установленному виду вектора ошибки.
Поскольку связь между порождающей и проверочной матрицами, определяется равенством , то получим
. (8.50)
Если обозначить -й столбец проверочной матрицы, то
.
Вектор ошибки содержит «1» на тех позициях, символы на которых искажены. Пусть эти позиции имеют номера, тогда будет справедливо равенство
. (8.51)
Следовательно, если необходимо обнаружить ошибок, то должно быть выполнено условие
,
при любом сочетании искаженных символов.
Если же необходимо исправить ошибок, то сумма по модулю 2 для любогоконкретных столбцов проверочной матрицы должна быть вполне определенной, которая не совпадает с аналогичной суммой для другихстолбцов. Так, например, при исправлении одиночной ошибки все столбцы проверочной матрицы должны быть разными, то естьпри любыхи;. Если же необходимо исправить одиночную ошибку и обнаружить пакет, состоящий из трех или двух ошибок, то необходимо выполнить следующие условия:
при (для исправления одиночной ошибки);
при любых и(для обнаружения пакета из двух ошибок);
при любых и(для обнаружения пакета из трех ошибок).
Матрицы иможно поменять ролями. Тогда матрицабудет порождающей, а- проверочной.
Коды, взаимосвязанные между собой таким образом, называют дуэльными (двойственными).