Линейные корректирующие коды

Надежность передачи сообщений по каналу связи при наличии помех зависит от вида выбранного кода. Под кодом будем понимать множество разрешенных (передаваемых) кодовых слов, которые выбираются из множества входных канальных последовательностей (кодовых слов). Разрешенные кодовые слова (код) следует выбрать таким образом, чтобы вероятность ошибки была минимальной. Вероятность ошибки в данном случае является критерием, т.е. количественной характеристикой качества функционирования системы связи. Она показывает, как часто ошибается приемник (код) в заданной помеховой обстановке и позволяет выбрать наилучший. Приемник (код), обеспечивающий минимум вероятности ошибки, называется оптимальным в заданной помеховой обстановке. Этот критерий был предложен академиком Котельниковым, а соответствующий оптимальный приемник был назван им «идеальным наблюдателем».

С целью уменьшения вероятности ошибки, разрешенные кодовые слова следует выбирать так, чтобы они как можно меньше были похожи друг на друга, что повышает надежность их различения на фоне помех.

В качестве меры различия кодовых слов выбирается расстояние Хемминга, т.е. количество разрядов, в которых кодовые слова различаются. Поэтому корректирующую способность кода можно характеризовать минимальным расстоянием d между разрешенными кодовыми словами, которое называется минимальным кодовым расстоянием.

Декодирование осуществляется по минимуму расстояния Хемминга между принятым кодовым словом и разрешенными кодовыми словами, которые хранятся в памяти приёмника, т.е. решение принимается в пользу разрешенного кодового слова, наиближайшего к принятому. В этом случае ошибки кратности

t ≤ d – 1 обнаружимы, а кратности t < Линейные корректирующие коды - student2.ru или 2t + 1 ≤ d исправимы. Кратность ошибки – это количество единиц в векторе Линейные корректирующие коды - student2.ru .

При большой длине кодовых слов такой способ декодирования не удается реализовать в реальном масштабе времени из-за большого объема вычислений и, кроме этого, требуется большой объем памяти для хранения кодовых слов.

Преодолеть указанные трудности, в частности, позволяет использование линейных корректирующих кодов. В этом случае вместо запоминания всех разрешенных кодовых слов запоминается только система линейных уравнений, решениями которой являются разрешенные кодовые слова.

Основной задачей построения линейных корректирующих кодов является выбор системы линейных уравнений, которая записывается в виде:

Линейные корректирующие коды - student2.ru

………………………………

Линейные корректирующие коды - student2.ru

или в матричном виде H Линейные корректирующие коды - student2.ru = 0, где Линейные корректирующие коды - student2.ru Линейные корректирующие коды - student2.ru - проверочная матрица, а кодовое слово размера n – Линейные корректирующие коды - student2.ru = (x1, … , xn ). Элементы матрицы и кодового слова принимают значения только 0 или 1, при этом суммирование производится по модулю два ( Линейные корректирующие коды - student2.ru ). В этой системе уравнений количество строк m выбирается меньше количества столбцов для того, чтобы система уравнений имела не единственное решение, каждое из которых является разрешенным кодовым словом. Каждое из уравнений уменьшает количество независимых переменных xi на единицу. Поэтому количество независимых переменных, значения которых и место расположения можно выбирать произвольно, равно Линейные корректирующие коды - student2.ru . Если в качестве независимых переменных выбираются первые k символов x1,…,xk, то код называется систематическим. Эти символы называются информационными в отличие от защитных xk+1,…,xn, причем защитные символы линейно выражаются через информационные. Таким образом, количество разрешенных кодовых слов равно 2k, а общее количество входных канальных кодовых слов равно 2n.

В случае линейных корректирующих кодов сумма двух разрешенных кодовых слов является разрешенным кодовым словом. Это основное свойство, которое можно использовать в качестве определения линейного корректирующего кода, следует из равенства

Линейные корректирующие коды - student2.ru ,

где Линейные корректирующие коды - student2.ru и Линейные корректирующие коды - student2.ru по определению разрешенного кодового слова.

Рассмотрим декодирование по синдрому, использующее согласно выбранной модели канала связи принятое кодовое слово Линейные корректирующие коды - student2.ru , где Линейные корректирующие коды - student2.ru - разрешенное кодовое слово, Линейные корректирующие коды - student2.ru - вектор ошибок.

Если Линейные корректирующие коды - student2.ru совпадает с разрешенным кодовым словом ( Линейные корректирующие коды - student2.ru или Линейные корректирующие коды - student2.ru - случай необнаружимой ошибки), то правая часть системы уравнений равна нулю: Линейные корректирующие коды - student2.ru , Линейные корректирующие коды - student2.ru , и отлична от нуля, когда Линейные корректирующие коды - student2.ru - запрещенное кодовое слово: Линейные корректирующие коды - student2.ru . В общем случае Линейные корректирующие коды - student2.ru , где вектор-столбец Линейные корректирующие коды - student2.ru называется синдромом.

Поскольку система уравнений линейна (Н – линейный оператор), то справедливы следующие преобразования:

Линейные корректирующие коды - student2.ru

отсюда Линейные корректирующие коды - student2.ru , т.к. Линейные корректирующие коды - student2.ru по определению разрешенного кодового слова Линейные корректирующие коды - student2.ru .

Равенство Линейные корректирующие коды - student2.ru устанавливает связь между синдромом Линейные корректирующие коды - student2.ru и вектором ошибок Линейные корректирующие коды - student2.ru , но, к сожалению, неоднозначную, поскольку не существует матрицы, обратной к Н.

Каждому значению синдрома, количество которых равно 2m, априори до приема кодового слова Линейные корректирующие коды - student2.ru , соответствует некоторое подмножество векторов Линейные корректирующие коды - student2.ru , из которого при декодировании выбирается наиболее вероятный вектор Линейные корректирующие коды - student2.ru с минимальным весом. (Одно из значений синдрома равно нулю, когда вектор Линейные корректирующие коды - student2.ru совпадает с разрешенным кодовым словом, что соответствует случаю необна-ружимой ошибки).

Решение принимается в пользу кодового слова Линейные корректирующие коды - student2.ru , которое является разрешенным.

Таким образом, при декодировании по принятому вектору Линейные корректирующие коды - student2.ru вычисляется синдром, который используется при вычислении Линейные корректирующие коды - student2.ru Линейные корректирующие коды - student2.ru и Линейные корректирующие коды - student2.ru .

Декодирование по минимуму расстояния, по синдрому и по максимуму апостериорной вероятности Линейные корректирующие коды - student2.ru эквивалентны.

Эквивалентность декодирования по минимуму расстояния и по синдрому следует из равенства Линейные корректирующие коды - student2.ru , которое показывает, что расстояние между Линейные корректирующие коды - student2.ru и Линейные корректирующие коды - student2.ru измеряется весом (количеством единиц) вектора Линейные корректирующие коды - student2.ru .

Вектор Линейные корректирующие коды - student2.ru является оценкой максимального правдоподобия, поскольку вектор ошибок с минимальным весом Линейные корректирующие коды - student2.ru , однозначно определяющий Линейные корректирующие коды - student2.ru , имеет максимальную вероятность при малых вероятностях ошибок в отдельном разряде вектора Линейные корректирующие коды - student2.ru ( ~10-2 – 10-3 ).

Рассмотрим некоторые свойства линейных кодов. Количество векторов Линейные корректирующие коды - student2.ru в каждом из подмножеств, соответствующих различным значениям синдрома, равно количеству разрешенных кодовых слов 2k. Для любых двух векторов Линейные корректирующие коды - student2.ru и Линейные корректирующие коды - student2.ru , принадлежащих одному и тому же подмножеству, справедливы равенства Линейные корректирующие коды - student2.ru и Линейные корректирующие коды - student2.ru . Складывая эти равенства и преобразуя суммы с учетом линейности системы уравнений (линейности оператора H) получим

Линейные корректирующие коды - student2.ru , Линейные корректирующие коды - student2.ru

Отсюда следует, что сумма Линейные корректирующие коды - student2.ru является разрешенным кодовым словом по его определению, т.е. все векторы подмножества различаются между собой только на разрешенные кодовые слова.

Таким образом, если один из векторов подмножества выбрать в качестве исходного (порождающего), то все остальные можно получить в результате его сложения последовательно с каждым разрешенным кодовым словом, количество которых равно 2k.

Минимальное кодовое расстояние в случае линейных кодов совпадает с минимальным весом разрешенных кодовых слов.

Действительно, расстояние между двумя кодовыми словами измеряется весом их суммы. Для линейного кода эта сумма совпадает с одним из разрешенных кодовых слов, вес которого определяет расстояние между двумя выбранными разрешенными кодовыми словами.

Рассмотрим свойства матрицы H, которые гарантируют заданное значение минимального кодового расстояния. Для каждого кодового слова уравнение Линейные корректирующие коды - student2.ru означает, что сумма некоторого подмножества столбцов матрицы Н равна 0. Приумножении матрицы Н на вектор-столбец Линейные корректирующие коды - student2.ru из матрицы выбираются столбцы, которым соответствуют единицы в векторе Линейные корректирующие коды - student2.ru . Поскольку минимальное кодовое расстояние равно минимальному весу кодовых слов, то должно существовать, по крайней мере, одно подмножество, состоящее из d столбцов матрицы H, сумма которых равна 0. С другой стороны, не может существовать ни одного подмножества из d-1 или менее столбцов, сумма которых равна 0. Если рассматривать столбцы матрицы Н как векторы, то можно сказать, что для кода с кодовым расстоянием, равным d, все подмножества из d-1 столбцов должны быть линейно независимыми. Это утверждение составляет одну из фундаментальных теорем о групповых кодах. Оно позволяет находить кодовое расстояние d группового кода, заданного матрицей Н, а также строить матрицы Н, гарантирующие заданное минимальное кодовое расстояние.

Декодированию по синдрому можно дать следующую физическую интерпретацию: вектор Линейные корректирующие коды - student2.ru подается на вход линейного дискретного фильтра, который описывается линейным оператором H, а на выходе фильтра наблюдается вектор Линейные корректирующие коды - student2.ru . Фильтр не пропускает на выход разрешенные кодовые слова Линейные корректирующие коды - student2.ru , а помеха Линейные корректирующие коды - student2.ru , искаженная фильтром наблюдается на его выходе в виде синдрома Линейные корректирующие коды - student2.ru .

По синдрому с некоторой точностью восстанавливается (оценивается) вид вектора ошибок на входе фильтра. Оценка Линейные корректирующие коды - student2.ru этого вектора используется для компенсации вектора ошибок Линейные корректирующие коды - student2.ru , действующего в канале. Механизм компенсации можно пояснить с помощью равенства:

Линейные корректирующие коды - student2.ru .

При декодировании ошибка отсутствует, когда Линейные корректирующие коды - student2.ru .

Наши рекомендации