Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Декодирование линейных кодов.



 

Пусть V – линейный -код, h – нулевой вектор и h2, h3, …, hqk– остальные кодовые векторы. Тогда таблица декодирования можно составить следующим образом. Кодовые векторы располагаются в виде строки с нулевым вектором слева. Затем один из наборов, не содержащийся в этой строке и имеющий разрядность n, например gi помещается под вектором h. Далее строка заполняется так, чтобы под каждым кодовым вектором hi помещался вектор . Аналогично в первый столбец очередной строки помещается вектор g2 и строка заполняется таким же способом. Процесс продолжается до тех пор, пока каждый возможный набор длины n не появится где-нибудь в таблице. Данная таблица называется стандартным расположением и совпадает с таблицей смежных классов.

 

Теорема 3. Если стандартное расположение используется как таблица декодирования для блокового кода, то по полученному вектору u будет правильно декодирован переданный вектор v тогда и только тогда, когда набор ошибок является образующим смежного класса.

Доказательство: Если , где gi – образующий i-го смежного класса, то вектор должен находиться в стандартом расположении в i-м смежном классе под кодовым словом u и поэтому будет правильно декодирован. Если же вектор не является образующим смежного класса, то вектор v должен находиться в некотором классе j с образующим gj. Тогда вектор v расположен в j-й строке, но не под вектором u, потому что .

 

Пример:

*0000 *1011 *0101 *1110

1000 0011 1101 0110

0100 1111 0001 1010

0010 1001 0111 1100

а) 1011 ® 1001 ® 1001 (+) 0010 = 1011.

б) 0101 ® 0100 ® 0100 (+) 0100 = 0000 – неверно.

 

Другим важным случаем декодирования линейных кодов является синдромное декодирование.

 

Синдромное декодирование.

 

Предположим, что линейный код является нулевым пространством матрицы H размерности ( )*n. Для любого любого полученного на выходе вектора v вектор с компонентами называется синдромом. Поскольку рассматриваемый код – это нулевое пространство матрицы H, то некоторый вектор является словом тогда и только тогда, когда его синдром равен нулю.

 

Теорема 4. Два вектора v1 и v2 принадлежат одному и тому же смежному классу тогда и только тогда, когда их синдромы равны.

Доказательство: Два элемента группы v1 и v2 принадлежат одному и тому же смежному классу тогда и только тогда, когда есть элемент подгруппы, которой в данном случае является кодовое векторное пространство. Если кодовое пространство – это нулевое пространство матрицы H, то вектор принадлежит кодовому пространству тогда и только тогда, когда

 

.

 

Поскольку для умножения матриц справедлив дистрибутивный закон, то

 

.

 

Таким образом, вектор является кодовым вектором тогда и только тогда, когда синдромы векторов v1 и v2 равны.

Процесс декодирования может быть значительно упрощен за счет использования модифицированной таблицы декодирования. Таблица строится так, что в ней приводятся образующие смежных классов и синдромы для каждого из 2n-k смежных классов. После того как получен вектор, вычисляется его синдром. Затем то таблице отыскивается образующий смежного класса, являющийся предполагаемым набором ошибок и вычитается из полученного вектора. В результате образуется предположительно исходный кодовый вектор.

 

Пример:

 

(0000) 1011 0101 1110 (00)

(1000) 0011 1101 0110 (11)

(0100) 1111 0001 1010 (01)

(0010) 1001 0111 1100 (10)

 

0101®1101®1101 (+) 1000 = 0101

 

Синдромное декодирование позволяет сократить объем памяти при декодировании. Так, для кода (100, 80) необходимо в случае декодировании по лидеру смежного класса 2100 входов, а в случае синдромного декодирования 220 входов.

 

Коды Хэмминга.

 

Двоичный код Хэмминга удобнее всего задавать при помощи его проверочной матрицы. Проверочной матрицей кода Хэмминга является матрица, столбцами которой являются все ненулевые наборы разрядности m.

Пример:

Поскольку сумма любых двух столбцов этой матрицы не равна нулю и поскольку единственным отличным от нуля скаляром поля GF(2) является «1», то не существует ни одной нулевой линейной комбинации из двух столбцов матрицы H. Следовательно, нулевое пространство этой матрицы имеет минимальный вес равный 3, и является кодом, исправляющим все одиночные ошибки. Другие важные параметры кода Хэмминга:

- длина кодового вектора: 2m-1;

- число проверочных символов: m;

- число информационных символов: /

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

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

Можно построить код Хэмминга любой длины n, Если выбрать матрицу H для наименьшего значения m, удовлетворяющего условию , а затем отбросить все лишние столбцы, оставив n столбцов. При этом можно выбрать столбцы таким образом, чтобы получился квазисовершенный код.

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

Пример:

.

Декодирование такого кода осуществляется следующим образом:

  1. Если синдром равен 0, то предполагается, что ошибок не было.
  2. Если проверка по всем символам, соответствующая последней строке матрицы H дает «1» (проверка на четность), то предполагается, что произошла одна ошибка и слово можно исправить.

Если проверка на четность дает «0», а хотя бы один из остальных проверочных символов равен «1», то обнаружена неисправимая ошибка.

 

Коды Рида-Маллера.

 

Достоинства: можно получить большое Хэммингово расстояние и легко поддаются декодированию.

Для любых m и r< m существует код Рида-Маллера, для которого:

– разрядность кодового вектора,

– число информационных бит,

– число проверочных бит,

– минимальный вес кодового слова.

 

Рассмотрим следующую совокупность векторов над полем из двух элементов (0 и 1).

Пусть V0 – вектор длины 2m, все компоненты которого равны 1, V1, V2, …, Vm – строки матрицы, столбцами которой являются все возможные двоичные наборы длины m. Определим следующим образом векторное произведение двух векторов:

 

,

.

 

Рассмотрим совокупность векторов, образованную произведениями векторов vi, взятых по два, три, четыре и т.д. вплоть до m.

 

v0 = ( 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 )

 

v4 = ( 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 )

v3 = ( 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 )

v2 = ( 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 )

v1 = ( 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 )

 

v4v3 = ( 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 )

v4v2 = ( 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 )

v4v1 = ( 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 )

v3v2 = ( 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 )

v3v1 = ( 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 )

v2v1 = ( 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 )

v4v3v2= …

v4v3v1= …

v4v2v1= …

v3v2v1= …

v4v3v2v1= …

 

Код Рида-Маллера порядка r определяется как код, базисом которого являются вектор v0, v1, …, vm и все векторные произведения из r или меньшего числа этих векторов. Очевидно, что скалярное произведение двух векторов равно 0, если число единиц в векторном произведении четно и равно 1, если оно нечетно.

Для любого вектора v v2=v. Единственным произведением, содержащим нечетное число единиц, является произведение всех векторов v1, …, vm. Векторное произведение любого вектора из базиса кода порядка r на любой вектор из базиса кода порядка m-r-1 является вектором из базиса кода порядка m-1 и в нем содержится четное число единиц. Таким образом, любой вектор, принадлежащий коду порядка r, ортогонален любому базисному вектору, являющемуся произведением m-r-1 или меньшего числа векторов v1, …, vm. Из этого также следует, что код Рида-Маллера порядка r является нулевым пространством матрицы, образованной векторами v0, v1, …, vm и всеми векторными произведениями этих векторов в количестве не более чем m-r-1, взятыми в качестве ее строк.

Важнейшая особенность кодов Рида-Маллера состоит в том, что декодирование для них может быть проведено достаточно простым способом.

 

Пример:

m=4, r=2, (16, 11)

Информационные символы этого кода кодируются следующим вектором:

 

Задача состоит в том, чтобы определить значения a по полученному вектору, несмотря на возможные ошибки. Очевидно, что сумма первых четырех компонент как элементов поля из двух элементов (0 и 1) равна нулю для всех базисных векторов, за исключением v2v1. Таким образом, если ошибок не было, то:

 

 

В общем случае можно записать независимых соотношений. Ошибки могут сделать некоторые из этих соотношений несправедливыми, но каждая ошибка влияет только на одно из соотношений. Следовательно, если выбрать a21 равным величине, появляющейся наиболее часто в выражениях, то при любой комбинации из или меньшего числа ошибок значение a21 будет декодировано правильно. Аналогичным образом определяются a31, a32, a41, a43. После того как они определены, выражение

 

 

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

 

,

 

так, что следующая совокупность коэффициентов может быть определена аналогичным путём:

 

Идентичные уравнения можно записать для a2, a3, a4. Если предположить, что ошибок не было, то

 

.

 

Этот вектор должен быть нулевым, если a0=0 и единичным, если a0=1, поэтому a0 нужно выбирать равным тому из этих элементов, который появляется в векторе чаще.

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

Схему для определения того, суммы каких именно символов полученного вектора должны быть равны заданному информационному символу, можно описать следующим образом. Расположим символы в каждом из первоначальных векторов v1, …, vm, и назовем компоненту, соответствующую j-ому нулю в векторе vi, и компоненту, соответствующую j-ой единице в векторе vi, парными компонентами вектора vi. Тогда 2(m-1) сумм парных компонент vi используются для определения ai. Далее, каждая из 2(m-2) сумм четырех компонент, используемых для определения aij, образуется некоторыми двумя парными компонентами вектора vi и парными для этих уже выбранных компонент компонентами вектора vj. Аналогично каждое соотношение, определяющее aijk, представляет собой сумму некоторых парных компонент вектора vi плюс сумму компонент вектора vj, парных к этим компонентам, и сумму компонент вектора vk, парных к уже выбранным компонентам, так, что в каждой сумме получается всего 8 слагаемых. Этот процесс можно продолжить аналогичным образом.

Пример:

a3:

v3=(0000111100001111)

 

a3=(b1+b5)=(b2+b6)=(b3+b7)=(b4+b8)=(b9+b13)=(b10+b14)=(b11+b15)=(b12+b16).

 

v3=(0000111100001111)

v1=(0101010101010101)

 

 


Поделиться:



Популярное:

  1. Вопрос 2 Численные методы решения линейных и нелинейных уравнений
  2. Гетероскедастичные и автокоррелированные остатки в линейных регрессионных моделях.
  3. Графические методы расчета параллельных нелинейных электрических цепей методом двух узлов.
  4. Декодирование (понимание) значений предложения
  5. Для уменьшения не линейных искажении и повышения КПД
  6. Индекс корреляции, теоретическое корреляционное отношение. Коэффициент детерминации для нелинейных моделей. Применение МНК для нелинейных моделей.
  7. Исследование системы линейных уравнений. Теорема Кронекера-Капелли.
  8. Классификация штриховых кодов.
  9. Лекция 7. Резонансные явления в линейных электрических цепях. Частотные характеристики пассивных двухполюсников. Практическое значение резонанса в электрических цепях. Явление взаимной индукции
  10. Метод Ньютона решения систем нелинейных уравнений.
  11. Методы анализа процессов в линейных цепях (системах)


Последнее изменение этой страницы: 2016-07-13; Просмотров: 2002; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.049 с.)
Главная | Случайная страница | Обратная связь