Лабораторная работа №1
Исследование процессов кодирования и декодирования при передаче дискретных сообщений кодами Хэмминга
Цель работы: изучение способов задания, оценки конкретных свойств, принципа построения и работы кодирующих и декодирующих устройств кодов Хэмминга.
Порядок выполнения работы
Составить проверочную матрицу систематического кода Хэмминга (7,4), используя следующие принципы её построения:
-матрица должна состоять из различных столбцов;
-последние столбцы матрицы образуют единичную подматрицу Ir r ..
Здесь и далее используются следующие обозначения:
n k r 4 3 7 -длина кодового слова (суммарное количество информационных (k) и проверочных (r) бит для одного блока передаваемой
информации).
k -длина информационного слова (количество информационных бит для
одного блока передаваемой информации). |
|
r -количество проверочных бит . |
|
Размер проверочной матрицы будет |
Hстрок столбцов Hr n H3 7 . |
Столбцы проверочной матрицы содержат 3 бита. Для краткости они могут быть представлены в восмиричной системе цифрами 1, 2, 3, 4, 5, 6,7.
Учитывая, что столбцы единичной диагональной матрицы являются двоичными числами - степенями 2-х: 4=22,2=21, 1=20 и одинаковы для всех вариантов задания, требуется определить 4 первые столбца, которые, в свою очередь, образуют ряд оставшихся двоичных трёхбитовых чисел: 3,5,6 и 7. Количество вариантов чередования столбцов равно количеству возможных перестановок, то есть 4! 1 2 3 4 24. Все эти возможные перестановки сведены в таблицу с вариантами задания.
Вариант |
1-4 столбцы проверочной |
|
|
матрицы |
(подматрица |
|
Rk r ) |
|
1 |
3,5,6,7 |
|
2 |
3,5,7,6 |
|
3 |
3,6,7,5 |
|
4 |
3,6,5,7 |
|
5 |
3,7,5,6 |
|
6 |
3,7,6,5 |
|
7 |
5,3,6,7 |
|
8 |
5,3,7,6 |
|
9 |
5,6,3,7 |
|
10 |
5,6,7,3 |
|
11 |
5,7,3,6 |
|
12 |
5,7,6,3 |
|
13 |
6,3,5,7 |
|
14 |
6,3,7,5 |
|
15 |
6,5,3,7 |
|
16 |
6,5,7,3 |
|
17 |
6,7,3,5 |
|
18 |
6,7,5,3 |
|
19 |
7,3,5,6 |
|
20 |
7,3,6,5 |
|
21 |
7,5,3,6 |
|
22 |
7,5,6,3 |
|
23 |
7,6,3,5 |
|
24 |
7,6,5,3 |
|
Для получения четырёх первых столбцов проверочной матрицы необходимо преобразовать в двоичную форму четыре восьмиричных числа из вышеприведённой таблицы. Добавив к ним три последних столбца, получим проверочную матрицу для кода Хэмминга со следующими параметрами:
Длина кодового слова, равная количеству столбцов n=7. Количество проверочных бит равное количеству строк r=3.
Длина информационного блока k=4. |
|
|
|
|
|
|
|
|||||
По проверочной матрицы |
H |
r n |
|
|
r |
; I |
r r |
|
составленной из двух |
|||
R |
|
|||||||||||
|
|
|
|
|
k |
|
|
, |
||||
подматриц, строится образующая |
G |
|
I |
k k |
; RT |
|
|
. Для этого потребуется |
||||
|
|
|
||||||||||
|
|
k n |
|
|
|
|
r k |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
транспонировать подматрицу Rk r и добавить к ней слева единичную матрицу.
По полученным матрицам формирeтся система проверочных и синдромных уравнений.
На основе проверочных и синдромных уравнений строятся схемы кодирующего и декодирующего устройств.
Пример Пусть задана образующая матрица Построить систему проверочных и синдромных уравнений и построить
схемы кодирующего и декодирующего устройств.
|
1 |
0 |
0 |
1 |
0 |
1 |
G(6,3) |
0 |
1 |
0 |
1 |
1 |
0 |
|
0 |
0 |
1 |
0 |
1 |
1 |
|
|
|
|
|
|
|
Проверочные уравнения служат для вычисления проверочных символов согласно формуле:
c a G(6,3)
Раскрыв содержание матричной операции, получим уравнения для символов кодового слова.
c1 g11a1 c2 g22a2 c3 g33a3
c4 g14a1 g24a2 g34a3 a1 a2
c5 a2 a3 c6 a1 a3
Последние 3 уравнения вычисляют проверочные символы и называются проверочными.
По ним строится блок –схема кодера:
Информационное |
Кодовое слово |
|
|
слово |
|
a1 |
с1 |
a2 |
с2 |
|
|
a3 |
с3 |
|
Сумматор |
|
с4 |
|
|
|
|
|
|
Сумматор |
|
с5 |
|
|
|
|
|
|
|
|
|
Сумматор
с6
Синдромные уравнения строятся по матричному алгоритму декодирования
s c H T |
|
|
|
|
|
|
|
(6,3) |
|
|
|
|
|
|
|
Определим проверочную матрицу H через образующую G |
|||||||
|
|
1 |
0 |
1 |
0 |
0 |
|
|
1 |
|
|||||
H(6,3) |
0 |
1 |
1 |
0 |
1 |
0 |
|
|
1 |
0 |
1 |
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
Раскрыв матричную операцию для бит синдрома, получим:
s1 h11c1 h12c2 h13c3 h14c4 h15c5 h16c6 c1 c2 c4 s2 h21c1 h22c2 h23c3 h24c4 h25c5 h26c6 c2 c3 c5
s3 h31c1 h32c2 h33c3 h34c4 h35c5 h36c6 c1 c3 c6
В матричном виде это уравнение представлено формулой
s c H T ,где
s - синдром ошибки;
H T - транспонированная проверочная матрица.
По синдромному уравнению можно построить схему декодера:
Кодовое слово
с1
с2
с3
с4
с5
с6
Сумматор
Сумматор
Сумматор
|
|
|
Информационное |
||||
|
|
|
слово |
|
|
||
|
|
|
|
|
|
|
|
Сум- |
|
|
|
|
a1 |
|
|
матор |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a2 |
|
|
Сум- |
|
|
|
|||
|
|
|
|
|
|||
|
матор |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
Сум- |
|
a3 |
|
|
|
|
|
матор |
|
|
|
|
|
|
|
|
|
|
|
|
Вектор ошибки e
Таблица
синдромов
Синдром ошибки s
На схеме блок «таблица синдромов» – это запоминающее устройство, определяющее по синдрому (он задаётся как адрес) вектор ошибки (последовательность бит, в которой единица располагается на том месте, на котором располагается ошибочный бит в кодовом слове). Например, для ошибки во втором бите кодового слова вектор ошибки представляется кодом e 010000 . На схеме для краткости предусматривается исправление ошибок только в информационной части кодового слова (в трёх первых битах c1 a1 ;c2 a2 ;c3 a3 ).В сокращённом виде вектор для ошибки во втором бите имеет вид: e 010 .
Произвести кодирование сообщения кодом Хэмминга, сформировав кодируемое сообщение в виде двух блоков по варианту в таблице 2. Каждый информационный блок содержит 4 бита.
Для передачи кодируются 2 блока
Таблица2
Вариант |
Инф блоки |
|
Вариант |
Инф блоки |
||
1 |
1000 |
1111 |
|
17 |
1010 |
1100 |
2 |
1001 |
1011 |
|
18 |
1101 |
0001 |
3 |
1110 |
0101 |
|
19 |
1000 |
1001 |
4 |
0011 |
1100 |
|
20 |
1001 |
0110 |
5 |
0100 |
1011 |
|
21 |
1000 |
1010 |
6 |
0101 |
1001 |
|
22 |
1011 |
0011 |
7 |
0110 |
0110 |
|
23 |
1001 |
1100 |
8 |
0111 |
1011 |
|
24 |
1101 |
0111 |
9 |
1000 |
0011 |
|
25 |
1001 |
1010 |
10 |
1001 |
1101 |
|
26 |
1100 |
1111 |
11 |
1010 |
1100 |
|
27 |
1011 |
1100 |
12 |
1011 |
0100 |
|
28 |
1100 |
1001 |
13 |
1100 |
1001 |
|
29 |
1011 |
1111 |
14 |
1101 |
0101 |
|
30 |
1000 |
1100 |
15 |
1110 |
1111 |
|
31 |
1111 |
1010 |
16 |
1111 |
0100 |
|
32 |
1111 |
0100 |
Для каждого блока вычисляется кодовое слово: сначала на бумаге путём умножения строки на матрицу, а затем на компьютере с помощью программы Labor1.exe в подкаталоге «Labor1» каталога «Лаб1 ПК». 4 файла с расширениями *.dll и *.bpl, которые должны быть в каталоге Labor1, необходимы как вспомогательные. Проверить правильность вычислений «вручную» порезультатам компьютерного расчёта.
Составить таблицу синдромов путём задания векторов ошибок в 1 – 7-м
битах кодового слова |
(e=1000000, e=0100000 - e=0000001) и вычислением |
синдромов по формуле |
s e H T . |
В первое из вычисленных кодовых слов внести ошибку, инвертировав один из битов. Второе кодовое слово оставить без изменений.
Произвести декодирование принятого кодового слова, закодированного кодом Хэмминга. Для этого надо вычислить синдром на бумаге по приведённой формуле и затем на компьютере для полученных выше кодовых слов (первое с внесённой ошибкой, второе - без ошибок). Программа Labor1.exe размещена лабораторном компьютере.
Убедиться, что при отсутствии ошибок в кодовом слове значение синдрома s=0.
Определить положение ошибочного бита в первом кодовом слове по вектору ошибки из таблицы синдромов.
Содержание отчета
1.Наименование и цель работы.
2.Исходные данные для выполнения работы.
3.Результаты выполнения работы: Проверочная матрица Образующая матрица
Транспонированная проверочная матрица Проверочные уравнения Схема кодера Синдромные уравнения Схема декодера
Результаты кодирования по формуле Результаты кодирования на компьютере Таблица синдромов Результаты декодирования по формуле
Результаты декодирования на компьютере Выводы
.
