Понедельник, 06.05.2024, 11:41
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта
Категории каталога
Конспект по ОТС [16]
Получение, передача, обработка и хранение информации
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Мой сайт
Главная » Статьи » Конспект по ОТС

Мажоритарное декодирование линейных блочных кодов

Идею мажоритарного декодирования линейных блочных кодов можно продемонстрировать на очень простом примере.

Пусть m – кодируемая информационная последовательность, состоящая всего из одного символа m0  = 0 или 1, а соответствующее ей кодовое слово помехоустойчивого  (избыточного)  кода  имеет вид U  = ( m0 , m0 , m0 ),  то  есть  ( 000 ), если  m0 = 0, или ( 111 ), если  m0 = 1 (код с трехкратным повторением).

Допустим, передано кодовое слово U = (111) и в первом символе произошла одна ошибка, то есть принята последовательность r = ( 011 ).

Вопрос: какая последовательность передавалась, U = ( 000 ) или U = (111)?

Здравый смысл подсказывает, что, скорее всего, передавалось кодовое слово U = ( 111 ), так как в противном случае ошибка должна была бы исказить два символа, чтобы кодовое слово U = ( 000 ) превратилось  в последовательность вида r = ( 011 ).  Может быть, и не отдавая себе отчета в правиле принятия решения (о том, что передавалось), мы приняли решение по большинству – мажоритарно.

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

Рассмотрим более сложный пример – мажоритарное декодирование для (7,4)-кода Хемминга.

Пусть передано кодовое слово (7,4)-кода – U = (U0 ,U1 ,U2 ,U3 ,U4 ,U5 ,U6 ), символы которого сформированы в соответствии с системой проверочных уравнений (правилом кодирования) вида: 

U0  =  m0 ,
U1  =  m1 ,
U2  =  m2 ,
U3  =  m3 ,                                                                
(1.28)
U4  =  m0  + m2  + m3 ,
U5  =  m0  + m1  + m2 ,
U6  =  m1  + m2  + m3 .                                                    

На входе декодера наблюдается принятая последовательность r = (r0 , r1 ,  r2 ,  r3 ,  r4 ,  r5 , r6  ), и  необходимо ее декодировать, то есть определить вид передаваемой информационной последовательности m .

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

Для начала предположим, что ошибок в принятой последовательности r  нет, то есть r = U .

Тогда по принятой последовательности  r  можно легко найти оценку  переданной информационной последовательности m*, причем не единственным способом.

Во-первых, можно сразу записать 

                                                  m0 *1  = r0 ,

                                              m1 *1  = r1  ,                                                                               (1.29)

                                                 m2*1  = r2  ,

                             m3*1  = r3 ,                                                                                                                               

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

Но это не единственный способ.  Учитывая, что для элементов поля GF(2) справедливо условие  mi + mi = 0 ( то есть 1+1 = 0 и 0+0 = 0), можно записать еще несколько систем уравнений для определения mi*:

 

     m0 *2  = r2 + r3 + r4 ,                           m0 *3  = r1 + r2 + r5 ,

m1 *2 = r0 + r2 + r5  ,                      m1 *3 = r2 + r3 + r6  ,

                         m2*2  = r0 + r3 + r4 ,                           m2*3  = r0 + r1 + r5 ,

m3 *2  = r0 + r2 + r4 ;                             m3 *3  = r1 + r2 + r6 ;

                                                                                                                                (1.30)

m0 *4  = r1 + r4 + r6 ,                                              m0 *5  = r3 + r5 + r6 ,

                         m1 *4 = r0 + r4 + r6 ,                      m1 *5 = r3 + r4 + r5 ,

                         m2*4  = r4 + r5 + r6  ,                        m2*5  = r1 + r3 + r6 ,

m3 *4  = r0 + r5 + r6 ;                                 m3 *5  = r1 + r4 + r5 .                   

Таким образом, получилось пять независимых систем уравнений для определения одних и тех же компонент вектора m*, причем, они будут совместными (иметь одинаковые решения) только при отсутствии ошибок в принятой последовательности r,  то есть при  r  = U. В противном случае решения для  mi*, даваемые различными системами, будут разными.

 Однако можно заметить следующее: в выражениях для mi* каждый из элементов принятой последовательности ri  присутствует не более двух раз (то есть не более чем в двух уравнениях из пяти).

Если считать, что в принятой последовательности возможна только одиночная ошибка (а с ошибкой большей кратности этот код не справляется), то ошибочными будут решения не более чем двух уравнений из пяти для каждого из элементов mi*, остальные три уравнения дадут правильное решение. Тогда правильный ответ может быть получен по "большинству голосов", или мажоритарно.

Категория: Конспект по ОТС | Добавил: electronics (17.02.2009)
Просмотров: 5415 | Комментарии: 3 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Сделать бесплатный сайт с uCozCopyright MyCorp © 2024