
- •190000, Санкт-Петербург, ул. Б. Морская, 67
- •1. Методические указания по подготовке к лабораторной работе
- •1. 1. Структурная схема цифровой системы связи
- •1.6. Методы синхронизации и фазирования в цифровых системах связи
- •2. Порядок выполнения лабораторной работы
- •2.3. После набора контрольного слова необходимо нажать клавишу
- •16. Решить предыдущую задачу 15 при следующих условиях:
- •1. Методические указания по подготовке к лабораторной работе
- •1.1 Информация, сообщение, кодирование, сигнал
- •1.2. Информационные характеристики системы передачи сообщений
- •1.3. Эффективное кодирование дискретных сообщений
- •2. Порядок выполнения лабораторной работы
- •3. Порядок оформления и содержание отчета
- •4. Контрольные вопросы и задачи
- •3. Поясните определение "энтропия". Перечислите свойства энтропии.
- •1. Методические указания по подготовке к лабораторной работе
- •1.1. Принципы помехоустойчивого кодирования
- •1.4. Корректирующие коды Хемминга
- •3. Контрольные вопросы и задачи
- •1. Методические указания по подготовке к лабораторной работе
- •1.1. Классификация корректирующих кодов
- •1.3. Порождающие полиномы циклических кодов
- •1.4. Принципы формирования и обработки разрешенных кодовых комбинаций циклических кодов
- •1.5. Построение порождающих и проверочных матриц циклических кодов
- •1.6. Укороченные циклические коды
- •1.7. Циклические коды Боуза –Чоудхури –Хоквингема
- •1.8. Структурный состав линейных переключательных схем
- •1.10. Деление полиномов на базе лпс
- •1.11. Кодирующее и декодирующее устройства для кода Хемминга (7,4)
- •1.12. Принципы построения декодирующих устройств для циклических кодов с исправлением ошибок
- •2. Порядок выполнения лабораторной работы
- •3. Контрольные вопросы и задания
- •5. Харкевич а. А. Борьба с помехами. М.: Физматиздат, 1963. 276 с.
1.4. Корректирующие коды Хемминга
Построение кодов Хемминга базируется на принципе проверки на четность веса W (числа единичных символов) в информационной груп- пе кодового блока.
Поясним идею проверки на четность на примере простейшего кор- ректирующего кода, который так и называется кодом с проверкой на четность или кодом с проверкой по паритету (равенству).
В таком коде к кодовым комбинациям безызбыточного первичного двоичного k-разрядного кода добавляется один дополнительный разряд (символ проверки на четность, называемый проверочным, или конт- рольным). Если число символов 1 исходной кодовой комбинации чет- ное, то в дополнительном разряде формируют контрольный символ 0, а если число символов 1 нечетное, то в дополнительном разряде форми- руют символ 1. В результате общее число символов 1 в любой переда- ваемой кодовой комбинации всегда будет четным.
Таким образом, правило формирования проверочного символа сво- дится к следующему:
r1 = i1 i2 ... ik ,
где i – соответствующий информационный символ (0 или 1); k – общее их число а под операцией "" здесь и далее понимается сложение по mod 2. Очевидно, что добавление дополнительного разряда увеличива- ет общее число возможных комбинаций вдвое по сравнению с числом комбинаций исходного первичного кода, а условие четности разделяет все комбинации на разрешенные и неразрешенные. Код с проверкой на четность позволяет обнаруживать одиночную ошибку при приеме кодо- вой комбинации, так как такая ошибка нарушает условие четности, пе- реводя разрешенную комбинацию в запрещенную.
Критерием правильности принятой комбинации является равенство нулю результата S суммирования по mod 2 всех n символов кода, вклю-
чая проверочный символ r1. При наличии одиночной ошибки S прини- мает значение 1:
S = r1 i1 i2 ... ik = 0 – ошибки нет,
, ,
n
= 1 – однократная ошибка.
Этот код является (k +1, k)-кодом, или (n, n–1)-кодом. Минимальное расстояние кода равно двум (dmin = 2), и, следовательно, никакие ошиб- ки не могут быть исправлены. Простой код с проверкой на четность
может использоваться только для обнаружения (но не исправления) од- нократных ошибок.
Увеличивая число дополнительных проверочных разрядов и форми- руя по определенным правилам проверочные символы r, равные 0 или
1, можно усилить корректирующие свойства кода так, чтобы он позво- лял не только обнаруживать, но и исправлять ошибки. На этом и осно- вано построение кодов Хемминга.
Коды Хемминга позволяют исправлять одиночную ошибку, с помощью непосредственного описания. Для каждого числа проверочных символов r = 3, 4, 5… существует классический код Хемминга с маркировкой
(n, k) = (2r–1, 2r–1 – r) , (3.20)
т. е. (7,4), (15,11), (31,26) …
При других значениях числа информационных символов k полу- чаются так называемые усеченные (укороченные) коды Хемминга. Так, для Международного телеграфного кода МТК-2 , имеющего
5 информационных символов, потребуется использование коррек- тирующего кода (9,5), являющегося усеченным от классического кода Хемминга (15,11), так как число символов в этом коде уменьшается (укорачивается) на 6. Для примера рассмотрим классический код Хемминга (7,4), который можно сформировать и описать с помо- щью кодера, представленного на рис. 3.2. В простейшем варианте при заданных четырех (k = 4) информационных символах (i1, i2, i3,
i4) будем полагать, что они сгруппированы в начале кодового сло-
ва, хотя это и не обязательно. Дополним эти информационные сим-
волы тремя проверочными символами (r = 3), задавая их следую- щими равенствами проверки на четно сть, которые определяются соответствующими алгоритмами [3,5]:
r1 = i1 i2 i3; i2 = i2 i3 i4; r3 = i1 i2 i4,
где знак означает сложение по модулю 2.
В соответствии с этим алгоритмом определения значений провероч- ных символов ri ниже выписаны все возможные 16 кодовых слов (7,4) – кода Хемминга (табл. 3.1).
Таблица 3.1
Кодовые слова (7 ,4) – кода Хемминга
На рис. 3.3 приведена схема декодера для (7,4) – кода Хем-
минга, на вход которого посту-
i1
i2
i3
i4
r1
r2
r3
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
r = 3
пает кодовое слово
V i1, i2 , i3 , i4 , r1, r2, r3 .
Апостроф означает, что лю- бой символ слова может быть искажен помехой в канале пе- редачи.
В декодере в режиме ис- правления ошибок строится последовательность:
s1 r1 i1 i2 i3 ; s2 r2 i2 i3 i4 ; s3 r3 i1 i2 i4 .
Трехсимвольная последова- тельность (s1, s2, s3) называется синдромом. Термин "синдром"
используется и в медицине, где он обозначает сочетание призна-
ков, характерных для определенного заболевания. В данном случае син- дром S = (s1, s2, s3) представляет собой сочетание результатов проверки на четность соответствующих символов кодовой группы и характеризу-
ет определенную конфигурацию ошибок (шумовой вектор).
Число возможных синдромов определяется выражением
S = 2r. (3.21)
4-символьное информационное слово
7-символьное кодовое слово
i
1
От
ИС i
2
i
1
i
2 К моду-
i3 i
3
4
4
лятору
Сумматор по модулю 2
Сумматор по модулю 2
r
i
i
, i
1 + 2 + 3 r
2
r
3
2
+
3
+
Сумматор по модулю 2
i + i , + i
1 2 4
Рис. 3.2
7-символьное
кодовое
слово
4-символьное информационное слово
+
1
i2 +
i
1
i2 К ПС
i
3
От демо- i
дулятора 4
r
1
r
Сумматор по модулю 2
Ошибка в i , i , i ,
+ i3
+ i4
Цифровой корректор
Сумматор
по
модулю
2
1
ошибок
r
3
Сумматор по модулю 2
или r
2
Сумматор по модулю 2
Ошибка в i1, i2, i4, или r3
Рис. 3.3
При числе проверочных символов r = 3 имеется восемь возмож- ных синдромов (23 = 8). Нулевой синдром (000) указывает на то, что ошибки при приеме отсутствуют или не обнаружены. Всякому ненулевому синдрому соответствует определенная конфигурация ошибок, которая и исправляет ся. Классиче ские коды Хемминга (3.20) имеют число синдромов, точно равное их необходимому чис- лу (что позволяет исправить все однократные ошибки в любом ин- формативном и проверочном символах) и включают один нулевой синдром. Такие коды называются плотноупакованными.
Усеченные коды являются неплотноупакованными, так как число синдромов у них превышает необходимое. Так, в коде (9,5) при четы- рех проверочных символах число синдромов будет равно 24 =16, в то время как необходимо всего 10. Лишние 6 синдромов свидетельству- ют о неполной упаковке кода (9,5).
Для рассматриваемого кода (7,4) в табл. 3.2 представлены ненулевые синдромы и соответствующие конфигурации ошибок.
Таблица 3.2
Синдром |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
Конфигурация ошибок |
0000001 |
0000010 |
0001000 |
0000100 |
1000000 |
0010000 |
0100000 |
Ошибка в символе |
r3 |
r2 |
i4 |
r1 |
i1 |
i3 |
i2 |
Таким образом, код (7,4) позволяет исправить все одиночные ошиб- ки. Простая проверка показывает, что каждая из ошибок имеет свой единственный синдром. При этом возможно создание такого цифрово- го корректора ошибок (дешифратора синдрома), который по соответ- ствующему синдрому исправляет соответствующий символ в принятой кодовой группе. После внесения исправления проверочные символы ri
можно на выход декодера (рис. 3.3) не выводить. Две или более ошибок
превышают возможности корректирующего кода Хемминга, и декодер будет ошибаться. Это означает, что он будет вносить неправильные ис- правления и выдавать искаженные информационные символы.
Идея построения подобного корректирующего кода, естественно, не меняется при перестановке позиций символов в кодовых словах. Все такие варианты также называются (7,4)-кодами Хемминга.
2. ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ
В лабораторной работе исследуется усеченный код Хемминга (9,5). Длина кодового слова n = 9 разрядов, информационная часть содержит k = 5 разрядов, количество проверочных разрядов r = 4. Соответствую- щие алгоритмы проверки на четность рассматриваемого кода имеют вид
r1 = i2
r2 = i1
r3 = i2
i,3
i3
i4
,i4
i5
(3.22)
r4 = i1
i i,2 5
а алгоритм вычисления символов синдрома:
s1 = i2
s2 = i1
i3
i3
, r1
i4
, r2
s3 = i2
i4
i5
r3
(3.23)
s4 = i1
i2
i5 . r4
Данный код имеет минимальное кодовое расстояние dmin= 3, следо- вательно, теоретически он исправляет все однократные ошибки. Все одно- и двухкратные ошибки обнаруживаются.
Для выполнения лабораторной работы необходимо выбрать соответ- ствующую позицию в основном меню и нажать клавишу < ENTER >, которую в дальнейшем необходимо нажимать при переходе от пункта к пункту.
1. Начинать выполнение лабораторной работы следует при появле- нии в нижней строке экрана указания:
< Введите кодируемые символы >
2. В ответ на это указание необходимо ввести от одного до пяти алфавитно – цифровых символов, допустимых для кода МТК-2. Число введенных символов должно быть равно числу членов бригады. Они автоматически закодируются безызбыточным кодом МТК-2, кодовые сло- ва которого печатаются на экране. Нажатие клавиши < ESC > означает отказ от выполнения работы.
3. Кодовые слова безызбыточного кода МТК-2 необходимо закодиро- вать корректирующим кодом (9,5), руководствуясь алгоритмом (3.22).
Информационный вектор i, очевидно, представляет собой кодовое сло- во кода МТК-2. Полученные векторы x кода (9,5) (кодовые слова) не- обходимо ввести, набрав их на клавиатуре.
4. В кодовые слова x кода (9,5) автоматически вносятся однократ- ные ошибки, в результате чего формируются некоторые векторы y, не совпадающие с соответствующими векторами x.
Необходимо, пользуясь алгоритмом (3.23), определить синдром S и ввести его символы с клавиатуры. В соответствии с вычисленным век- тором S в таблице декодирования автоматически отыскиваются шумо- вые векторы z и отображаются на экране. Необходимо проанализиро- вать их и убедиться в том, что ненулевая позиция в этих векторах соот- ветствует искаженным разрядам в векторах y, т. е. соотношение x = z y справедливо.
5. Далее, в кодовые слова x кода (9,5) автоматически вносятся двух- кратные ошибки, т. е. вновь формируются векторы y, не равные соот- ветствующим векторам x. Необходимо повторить действия предыдуще- го пункта. При анализе шумовых векторов z необходимо учитывать, что таблица декодирования исследуемого в лабораторной работе кода со- держит только синдромы, соответствующие однократным ошибкам zi.
Поэтому возможны две ситуации:
вычисленному синдрому Si в таблице не соответствует никакой шу- мовой вектор zi. В этом случае на экране будут напечатаны символы (*******).
вычисленному синдрому Si в таблице соответствует некоторый век- тор zi. В этом случае необходимо убедиться в том, что он неправильно отображает реальную конфигурацию ошибок.
Рассмотрим пример, поясняющий ход выполняемых операций. Пусть выбран и введен Ф, ему соответствует кодовое слово кода МТК-
2:
i
= 10110.
Таким
образом,
на
экране
отобразится
следующая
ин-
формация:
Символ Код МТК-2
Ф 10110
В результате применения алгоритмов (3.22) получим вектор x кор- ректирующего кода (9,5), который и необходимо ввести.
Таким образом, получим вектор x = (101101111), и изображение на экране примет вид
-
Символ
Код МТК-2
Код (9,5)
Ф
10110
01101111
Далее, в вектор x вносится однократная ошибка, т. е. получается вектор y, не совпадающий с x, например: y = (101001111), и на экране будет следующее изображение:
-
Символ
Код МТК-2
Код (9,5)
Искажения
Ф
10110
101101111
101001111
Декодируем вектор y, пользуясь алгоритмом (3.23), т. е. определя- ем синдром S, который необходимо ввести. Вычисленный синдром S
= 0110.
Полученный синдром вводится в приведенную выше таблицу, кото- рая примет вид
имвол
Код МТК-2
Код (9,5)
Искажения
Синдром
Ф
10110
101101111
101001111
Вычисленному синдрому соответ ствует шумовой вектор Z = (000100000), т. е. ошибка произошла в шестом разряде (при счете разрядов справа – налево) исходного вектора x. На экране появится следующее изображение:
Шумовой
имвол
Код
МТК-2
Код
(9,5)
Искажение
Синдром
вектор
Ф
10110
101101111
101001111
0110
000100000
Далее, в вектор x вносится двухкратная ошибка, т. е. опять получа- ется вектор y, не совпадающий с x, например: y = (100001111). На экра- не будет предъявлена следующая таблица:
-
Символ
Код МТК-2
Код (9,5)
Искажение
Ф
10110
101101111
10001111
Вновь декодируем вектор y, пользуясь алгоритмом (3.23), т. е. опре- деляем синдром S, который необходимо ввести.
Полученный синдром:
имвол
Код
МТК-2
Код
(9,5)
Искажение
Синдром
Ф
10110
101101111
100001111
1010
Таким образом, в результате декодирования получен ненулевой син- дром. Однако в таблице декодирования ему может не соответствовать никакой шумовой вектор, поэтому изображение на экране примет вид
Шумовой
имвол
Код
МТК-2
Код
(9,5)
Искажение
Синдром
вектор
Ф
10110
101101111
100001111
1010
********
Код (9,5) с dmin = 3 не справляется с исправлением двукратной ошибки. На этом выполнение лабораторной работы заканчивается. Представ- ление отчета не требуется. Факт выполнения бригадой лабораторной
работы, включая количество попыток по пунктам фиксируется в спе- циальном файле на диске.