- •«Теория кодирования»
- •Первичные коды и эффективное кодирование
- •Префиксные коды
- •Примерами префиксных кодов являются коды Шеннона-Фано и Хаффмана. Код Шеннона-Фано
- •Код Хаффмана
- •Кодирование факсимильных изображений. Коды кдс-1, кдс-2, кдс-3
- •Основные параметры помехоустойчивых кодов
- •Классификация помехоустойчивых кодов
- •Коды: общие сведения, основные свойства
- •Линейные блоковые коды
- •Условия и свойства формирования разрешенных кодовых последовательностей лбк
- •Задание линейных кодов с помощью порождающих и проверочных матриц
- •Кодирование информации линейным блоковым кодом
- •Синдромное декодирование
- •Мажоритарное декодирование
- •Циклические коды: общие сведения, определение
- •Свойства циклических кодов
- •Способ построения кодовых последовательностей с использованием порождающей матрицы
- •Назначение и способы построения проверочной матрицы циклического кода
- •Способ формирования кодовых последовательностей циклического кода с использованием образующего полинома
- •Многотактные фильтры
- •Кодирование информации циклическими кодами
- •Декодирование информации циклическими кодами
- •Синдромный метод декодирования цк
- •I Табличное синдромное декодирование
- •II Схемное синдромное декодирование
- •Многомерные коды: определение, классификация
- •Матричные коды: определение, принцип построения, свойства, параметры, достоинства и недостатки
- •Итеративные коды: определение, принцип построения, основные характеристики
- •Каскадные коды: определение, принцип построения, основные характеристики
- •Сверточные коды: определение, параметры, классификация
- •Задание систематических сверточных кодов
- •I. Задание систематических ск с помощью порождающей матрицы g(х)
- •II. Задание систематических ск с помощью проверочной матрицы h(х)
- •III. Задание систематических ск с помощью разностных треугольников
- •Кодирование информации сверточными кодами
- •Структурная схема кодера
- •Жесткое пороговое декодирование сск
- •Мягкое пороговое декодирование сск
- •Многопороговое декодирование сск
- •Структурная схема декодера
- •Список литературы
Декодирование информации циклическими кодами
Идея обнаружения ошибокв принятом ЦК заключается в том, что при отсутствии ошибок закодированная кодовая комбинация делится без остатка на образующий полином, при этом контрольные символы отбрасываются. Принятая кодовая последовательность может быть представлена какF(x)=F(x)+E(x), где Е(х) – полином ошибок.
Пример: код (7,4); F(x)=1101001; P(x)=1011.
Пусть придет F(x)=1101011. ПоделимF(x)/Р(х).
1101011 | 1011
10111111
1100
1011
1111
1011
1001
1011
010=R(x) – наличие остатка свидетельствует об ошибке.
Идея обнаружения и исправления ошибокосуществляется несколькими вариантами декодирования ЦК:
I.Алгоритм декодирования ЦК с использованием весовой оценки остатка при делении F(x)/Р(х).
1) Вычисляем R(x)= F(x)/Р(х), если R(x)=0, тоF(x)=F(x)
если R(x)≠0 произошла ошибка и следует процедура исправления.
2) Определяем вес R(x).
Если WR(x)≤tиспр, то принятая комбинацияF(x)R(x)=F(x).
Если WR(x)>tиспр, то производится циклический сдвиг на один цикл влево. Полученную комбинацию снова делим на Р(х). Если теперь WR(x)≤tиспр, то циклически сдвинутую кодовую последовательность суммируем по модулю два с R(x) и сдвигаем в обратном направлении на один сдвиг и получаемF(x). А если WR(x)>tиспр, то производим дополнительный сдвиг влево и делим полученную комбинацию на Р(х) и снова проверяем и т.д.
Пример:Q(x)=1001;P(x)=1011; F(x)=1001110;F(x)=1101110;tиспр=1 двоичный символ.
Вычисляем R(x)= F(x)/Р(х)
1101110 | 1011
10111111
1101
1011
1101
1011
1100
1011
111=R(x)
Вес R(x) (количество единиц)> tиспр: WR(x)=3,tиспр=1, WR(x)>tиспр(3>1)
Произведем циклический сдвиг F(x) на один цикл влевоF(x)=F(x)х=1011101
Вычисляем R(x)= F(x) /Р(х)=1011101/1011=101
WR(x)=2>tиспр=1
Произведем циклический сдвиг F(x) на один цикл влевоF(x)=F(x)х2=0111011
Вычисляем R(x)= F(x)/Р(х)= 0111011/1011=001, WR(x)=1=tиспр.
Циклически сдвинутую кодовую последовательность F(x) суммируем по модулю два с R(x)
F(x)R(x)=0111011
. 001
0111010
Осуществляем 1-ый циклический сдвиг вправо: 0011101
2-ой циклический сдвиг вправо: 1001110= F(x).
II.Алгоритм декодирования на основе цикличности кода.
При сдвиге разрешенной кодовой комбинации на любое число разрядов влево или вправо также получается разрешенная кодовая комбинация. Это свойство является основным свойством циклического кода.
Рассмотрим алгоритм на примере:F(x)=1011111,F(x)=1111111, Р(х)=1011
1) Определим остаток от деления соответствующий наличию ошибки в старшем разряде.
Е6(х)=1000000
Е5(х)=0100000
Е4(х)=0010000
Е3(х)=0001000
Е2(х)=0000100
Е1(х)=0000010
Е0(х)=0000001
Если ошибка произошла в k-ом символе, то Еi(х)/Р(х) не зависит от вида переданной информации, а значит от кодовой последовательности и вида передаваемой информации.
R(x)=Е6(х)/Р(х)=1000000 | 1011
10111011
1100
1011
1110
1011
101=R0(х)
2) Определим остаток от деления R1(х)=F(x)/Р(х)
1011111 | 1011
10111000
0001
0000
0011
0000
0111
0000
111=R1(x)
Т.к. R1≠R0сдвигаемF(x) влево на одну позицию, получаемF(x)=0111111
3) Определим остаток от деления R2(х)=F(x)/Р(х)
0111111 | 1011
1011110
1001
1011
0101
0000
101=R2(x)
R2=R0F(x)=F(x)Е(х)=0111111
1000000
1111111