- •Теорема дискретизации
- •Дискретизация двумерных сигналов (изображений)
- •Квантование сообщений. Ошибки квантования
- •Периодические сигналы
- •Лекция 3. Модуляция и управление информационными параметрами сигналов.
- •Энтропия источника дискретных сообщений
- •Тема. Основы экономного кодирования Лекция 7. Системы сжатия данных для кодирования источника информации
- •Алгоритм Хаффмена
- •Коды с памятью
- •Арифметическое кодирование
- •А. Кодирование
- •Декодирование
- •Пример распаковки данных с помощью алгоритма lz78
- •Кодирование длин повторений
- •Дифференциальное кодирование
- •Методы сжатия с потерей информации
- •Стандарт сжатия jpeg
- •Рекурсивный (волновой) алгоритм
- •Методы сжатия подвижных изображений (видео)
- •Методы сжатия речевых сигналов
- •Итеративный код
- •Лекция 12. Алгоритмы помехоустойчивого кодирования и синдромное декодирование линейных блочных кодов Порождающая матрица линейного блочного кода
- •Проверочная матрица
- •Синдром и обнаружение ошибок
- •Синдромное декодирование линейных блочных кодов
- •Лекция 13. Применение корректирующего кодирования в системах связи
- •Каскадные коды
- •Кодирование с чередованием (перемежением)
- •Лекция 14. Элементы теории приема и обработки информации
- •Оказывается, что значение p (Uk / X)принимает максимальное значение в том случае, когда минимальна величина
- •Лекция 15. Принципы многоканальной передачи информации и понятие о разделении сигналов
- •Пропускная способность многоканальных систем передачи информации
- •Множественный доступ с частотным разделением в спутниковых системах
Синдромное декодирование линейных блочных кодов
Покажем, как можно использовать синдром принятого вектора не только для обнаружения, но и для исправления ошибок.
Пусть U = ( U0 , U1 , …, Un-1 ), e = ( е0 , е1, …, еn-1 ) и r = ( r0 , r1, r2 , …, rn-1) являются передаваемым кодовым словом, вектором-ошибкой и принятым вектором соответственно. Тогда
r = U + e (1.25)
и синдром
S = rHT = (U + e ) HT = U HT + e HT = 0 + e HT = e HT ,(1.26)
поскольку для любого кодового слова U HT = 0.
Таким образом, синдром принятой последовательности r зависит только от ошибки, имеющей место в этой последовательности, и совершенно не зависит от переданного кодового слова. Задача декодера, используя эту зависимость, определить элементы (координаты) вектора ошибок. Найдя вектор ошибки можно восстановить кодовое слово как
U* = r + e .(1.27)
На примере одиночных ошибок при кодировании с использованием линейного блочного (7,4)-кода покажем, как вектор ошибки связан с синдромом, и как, имея синдром, локализовать и устранить ошибки при передаче.
Найдем значения синдрома для всех возможных одиночных ошибок в последовательности из семи символов:
e_ = ( 0000000 ),
|
1011100 |
T |
e_ HT = ( 0000000 ) |
1110010 |
= (000); |
|
0111001 |
|
e0 = ( 1000000 ),
|
1011100 |
T |
e0 HT = ( 1000000 ) |
1110010 |
= (110); |
|
0111001 |
|
e1 = ( 0100000 ),
|
1011100 |
T |
e1 HT = ( 0100000 ) |
1110010 |
= (011); |
|
0111001 |
|
e2 = ( 0010000 ),
|
1011100 |
T |
e2 HT = ( 0010000 ) |
1110010 |
= (111); |
|
0111001 |
|
e3 = ( 0001000 ),
|
1011100 |
T |
e3 HT = ( 0001000 ) |
1110010 |
= (101); |
|
0111001 |
|
e4 = ( 0000100 ),
|
1011100 |
T |
e4 HT = ( 0000100 ) |
1110010 |
= (100); |
|
0111001 |
|
e5 = ( 0000010 ),
|
1011100 |
T |
e5 HT = ( 0000010 ) |
1110010 |
= (010); |
|
0111001 |
|
e6 = ( 0000001 ),
|
1011100 |
T |
e6 HT = ( 0000001 ) |
1110010 |
= (001). |
|
0111001 |
|
Все возможные для (7,4)-кода одиночные ошибки и соответствующие им векторы синдрома приведены в табл. 2.
Таблица 2
Вектор ошибки |
Синдром ошибки |
1000000 |
110 |
0100000 |
011 |
0010000 |
111 |
0001000 |
101 |
0000100 |
100 |
0000010 |
010 |
0000001 |
001 |
Из этой таблицы видно, что существует однозначное соответствие между сочетанием ошибок (при одиночной ошибке) и его синдромом, то есть, зная синдром, можно совершенно однозначно определить позицию кода, в которой произошла ошибка.
Например, если синдром, вычисленный по принятому вектору, равен ( 111 ), это значит, что произошла одиночная ошибка в третьем символе, если S = ( 001 ) – то в последнем, и т.д.
Если место ошибки определено, то устранить ее не представляет труда.
Пусть теперь в принятой последовательности будет не одна, а, например, две ошибки, возникшие во второй и шестой позициях e = ( 0100010 ). Соответствующий синдром определится как
S = ( 0100010 ) = (001).
Однако синдром S = ( 001 ) соответствует также и одиночной ошибке в седьмой позиции ( e6 ). Следовательно, наш декодер не только не исправит ошибок в позициях, в которых они произошли, но и внесет ошибку в ту позицию, где ее не было. Таким образом, видно, что (7,4)-код не обеспечивает исправления двойных ошибок, а также ошибок большей кратности.
Это обусловлено свойствами самого кода.