Лекция
Сразу хочу сказать, что здесь никакой воды про кодирование, и только нужная информация. Для того чтобы лучше понимать что такое кодирование, декодирование в цк , настоятельно рекомендую прочитать все из категории Теория информации и кодирования.
кодирование и декодирование в цк .
Для кодирования и декодирования используется регистр сдвига. Рассмотрим устройство, позволяющее автоматически кодировать и декодировать слова.
Построения кодера для кода Хэмминга (15.11): t=1, g(x)=x4+x+1.
Данная схема представляет собой устройство перемножения двух многочленов, один их которых g(x) реализован в виде связей в данном регистре сдвига. i(x) — информационное слово, которое поразрядно проталкивается на вход схемы. В данном кодере информационное слово i(x) 11-разрядное и к нему к младшим разрядам приписывается 4 “0”. За 15 тактов сдвига на выходе схемы появляется слово C(x), являющееся кодом слова i(x) и представляющее собой произведение i(x)*g(x). Достоинства: простота. Недостатки: несистематический код C(x).
Рассмотрим кодер систематического кода. g(x)=x4+x+1.
C(x)=i(x)*xr+R[(i(x)*xr)/g(x)]
Информационное слово i(x) одновременно поступает и в нижний регистр сдвига и в верхнее делительное устройство. За 15 тактов слово i проходит через нижний регистр и попадает на выходной канал старшими разрядами вперед. В это же время в делительном устройстве получается остаток от деления произведения (i(x)*xr)/g(x). После 15 тактов ключ в делителе размыкается, а выходной сигнал подключается к выходу делителя. Еще 4 такта и остаток из делительного устройства продвигается в выходной канал. Т.о., общий период времени кодирования 19 тактов.
Декодер в ЦК.
Декодирование в ЦК осуществляется на основе остатка от деления принятого слова на порождающий многочлен. На декодер попадает V(x)=C(x)+e(x), e(x) — вектор ошибки. Поделим на g(x): V(x)/g(x)=C(x)/g(x)+e(x)/g(x). R[V(x)/g(x)]=R[C(x)/g(x)+e(x)/g(x)]=R[C(x)/g(x)+]+R[e(x)/g(x)]=R[e(x)/g(x)] - Это выражение говорит о том, что остаток от деления на порождающий многочлен зависит только от многочлена ошибки e(x) и не зависит от кодового слова.
g(x)=x4+x+1
Структурная схема ДЕКОДЕРА (15.11)
Информационное слово V(x) поступает на вход регистра сдвига 2, где за 15 тактов полностью
его заполняет. Одновременно верхняя часть схемы, представляющая собой делитель на порождающий многочлен кода (15.11), осуществляет деление, и после 15 тактов в нем остается остаток. Этот остаток в качестве адреса поступает в ПЗУ, в котором по каждому адресу записано слово ошибки e(x), соответствующее данному остатку. Это слово выбирается из ПЗУ и записывается в регистр сдвига 1. В течении следующих 15 тактов регистры 1 и 2 сдвигают содержимое. На элементе суммирование осуществляется V(x)=C(x)+e(x), V(x)+e(x)=С(х)+e(x)+e(x)=C(x). Одновременно C(x) поступает на 2 делительное устройство, на выходе которого получается 11 разрядное информационное слово i(x). Основной минус данной схемы — является предварительное составление таблицы для записи в ПЗУ.
Декодер Меггита
Для больших длин кодов с высокой корректирующей способностью это достаточно сложно. В реальных декодерах используют декодер Меггита. Теоретической основой построения декодера Меггита является теорема Меггита, в которой говорится о том, что если принятое слово V(x) имеет остаток от деления R[V(x)/g(x)]=S, то если вычислить остаток от деления R[(x*V(x))/g(x)]=x*S(mod xn-1).
Пример: Код Хемминга (15, 11), g(x)=x4+x+1, e(x)=x14 — ошибка тока в старшем разряде.
Если e(x)=x14/ x4+x+1… R14=1001
После 15 сдвигов в регистре сдвига заполняется V(x), а в делителе получается остаток, соответствующий ошибочному слову e(x). Об этом говорит сайт https://intellect.icu . Если ошибка в старшем разряде, то остаток будет иметь вид 1001 и на выходе схемы i сформируется 1.Тогда 15 разряд, суммируясь с этой 1 на 16 такте, будет инвертирован, т.е. исправлен. Следующие 14 тактов просто продвинув слово из регистра сдвига, поскольку с выхода ячейки i будет идти 0. Если ошибка не в 15, а в 14 разряде, то комбинация 1 и 0 в остатке не будет 1001; на 16 сдвиге 15 разряд просуммируется с 0, на 17 сдвиге — остаток в делителе сдвинется и примет значение 1001. На выходе схемы появится 1, которая просуммируется с 14 разрядов слова V(x), а оставшиеся 13 разрядов просто сдвинут на выход.
e(x)=001000000000000
№ |
Д1 |
Д2 |
Д3 |
Д4 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
0 |
3 |
1 |
0 |
0 |
0 |
4 |
0 |
1 |
0 |
0 |
5 |
0 |
0 |
1 |
0 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
1 |
0 |
0 |
8 |
0 |
1 |
1 |
0 |
9 |
0 |
0 |
1 |
1 |
10 |
1 |
1 |
0 |
1 |
11 |
1 |
0 |
1 |
0 |
12 |
0 |
1 |
0 |
1 |
13 |
1 |
1 |
1 |
0 |
14 |
0 |
1 |
1 |
1 |
15 |
1 |
1 |
1 |
1 |
16 |
1 |
0 |
1 |
1 |
17 |
1 |
0 |
0 |
1 |
|e(x)=000000000000100
e(x)=x12/ x4+x+1… R12= x3+x2+x+1(1111)
Примеры:
Код (7,4), g(x)=x3+x+1.
e(x)=1000000=x6/ x3+x+1…R7(x)=101
e(x)=0001000 — слово ошибки
№ |
Д1 |
Д2 |
Д3 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
3 |
0 |
0 |
0 |
4 |
1 |
0 |
0 |
5 |
0 |
1 |
0 |
6 |
0 |
0 |
1 |
7 |
1 |
1 |
0 |
8 |
0 |
1 |
1 |
9 |
1 |
1 |
1 |
10 |
1 |
0 |
1 |
|e(x)=0001000
Пожалуйста, пиши комментарии, если ты обнаружил что-то неправильное или если ты желаешь поделиться дополнительной информацией про кодирование Надеюсь, что теперь ты понял что такое кодирование, декодирование в цк и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Теория информации и кодирования
Из статьи мы узнали кратко, но содержательно про кодирование
Комментарии
Оставить комментарий
Теория информации и кодирования
Термины: Теория информации и кодирования