Математические принципы кодирования и декодирования
Для того, чтобы закодировать слово, нужно составить матрицу НТ, состоящую из двух матриц, расположенных одну над другой: R размерности kx(n-k) и In-k размерности (n-k)x(n-k). Затем производится умножение информационного блока на эту матрицу. Получить ее можно посредством деления Xn-1, Xn-2,…Xn-k на порождающий многочлен. При этом, при делении первых k членов мы получим k проверочных блоков, образующих матрицу R, а при последующем делении получим единичную матрицу In-k. Вместе эти матрицы образуют матрицу HT.
Например, произведем деление первого члена X20 на порождающий многочлен: x20 x7 + x4 +x3+x2+x+1 x20 + x17 + x16 + x15 + x14+x13 x13 + x10 + x9 + x8 + x6 + x5 + x4 + 1 x17 + x16 + x15 + x14+x13 x17 + x14 +x13 + x12 + x11+x10 x16 + x15 +x12 + x11 + x10 x16 + x13 +x12 + x11 + x10+x9 x15 + x13+x9 x15 + x12 +x11 + x10 + x9+x8 x13 + x12 +x11 + x10 + x8 x13 + x10 +x19 + x8 + x7+x6 x12 + x11 + x9 + x7+x6 x12 + x9 +x8 + x7 + x6+x5 x11 + x8 + x5 x11 + x8 +x7 + x6 + x5+x4 x7 + x6 + x4 x7+x4+x3+x2+x+1 x6+x3+x2+x+1 Остаток от деления записан формально в виде многочлена. Представим его следующим образом, записав коэффициенты при членах как 0 и 1:
Поделим остальные члены ряда Xn-1, Xn-2,…Xn-k на порождающий многочлен, и в результате получим матрицу HT:
Эта матрица представляет собой записанные в байтовую ячейку проверочные символы и единичную матрицу. Так как проверочные символы занимают (n-k) =7 разрядов, то младший разряд данной байтовой ячейки обнуляется. Для получения проверочного блока нужно умножить информационный блок на матрицу R: X – информационный блок, Y – проверочный блок.
Для декодирования нужно умножить кодовое слово (с ошибками) на всю матрицу HT, причем кодовое слово можно представить в виде суммы по модулю 2 истинного кодового слова и вектора ошибок: r – кодовое слово с ошибками, v – истинное кодовое слово, e – вектор ошибок. Вектор е представляет собой вектор длины n, в котором 1 находятся там, где допущена ошибка в кодовом слове. При этом произведение v* HT=0 (нулевой вектор). После перемножения r* HT получаем синдром s, который зависит только от вектора ошибок (v* HT=0 ) и представляет собой строку матрицы HT (если ошибка одна) или сумму по модулю 2 строк этой матрицы. С помощью синдрома можно определить нужный вектор ошибок (все они загружены в память), затем прибавить его к слову r: Таким образом, получаем кодовое слово v с исправленными ошибками, а затем просто отделяем от него младшие 8 разрядов и получаем информационный блок.
рис. 9 Структурная схема микроконтроллера M68HC11
Код программы cpu 6811 org $00ee ;вектор прерывания jmp $d100 ;скачок на подпрограмму прерывания org $d000 ;основная программа ldx #$d200 ;ячейка для использования индексной ;адресации x ldd #%10011110 std 0,x ldd #%11010000 std 1,x ldd #%01101000 std 2,x ldd #%00110100 std 3,x ldd #%00011010 std 4,x ldd #%10010010 std 5,x ldd #%11010110 std 6,x ldd #%11110100 std 7,x ldd #%00111010 std 8,x ldd #%10100010 std 9,x ldd #%11001110 std 10,x ldd #%11111000 std 11,x ldd #%01111110 std 12,x ldd #%00111110 std 13,x
ldd #$0080 ;Единичная матрица std 14,x ; ldd #$0040 ; std 15,x ; ldd #$0020 ; std 16,x ; ldd #$0010 ; std 17,x ; ldd #$0008 ; std 18,x ; ldd #$0004 ; std 19,x ; ldd #$0002 std 20,x ;
Популярное: Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (437)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |