Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методические указания к выполнению лабораторных ра

.pdf
Скачиваний:
31
Добавлен:
10.02.2016
Размер:
883.65 Кб
Скачать

41

Лабораторная работа 4.1 ИЗУЧЕНИЕ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ

КОРРЕКТИРУЮЩИХ БЛОКОВЫХ КОДОВ 1 Цель работы

1.1Изучение принципов кодирования корректирующими кодами (принципов помехоустойчивого кодирования).

1.2Экспериментальное исследование работы кодеров и декодеров кода Хемминга и циклических кодов.

2 Ключевые положения

2.1Одним из способов повышения качества передачи цифровых сигналов каналами связи с ошибками является применение корректирующих кодов, позволяющих обнаруживать или исправлять ошибки, возникающие в каналах связи. В данной работе рассматриваются двоичные блоковые корректирующие коды.

2.2Общий принцип построения корректирующих кодов довольно простой. Из общего числа M = 2n возможных кодовых комбинаций длины n используются для передачи не все, а только M0 = 2k (M0 < M). Используемые кодовые комбинации называются разрешенными. Остальные M M0 комбинаций считаются запрещенными, т.е. они не могут подаваться в канал связи, их появление на выходе канала свидетельствует о наличии ошибок. Таким образом, благодаря наличию запрещенных кодовых комбинаций возникает возможность обнаружения ошибок, возникающих при передаче. Итак, любой корректирующий код является кодом с избыточностью (каналом связи передается r = n k избыточных символов в каждой кодовой комбинации).

2.3Для описания корректирующих кодов вводятся следующие парамет-

ры.

Расстояние Хемминга dij показывает степень отличия i-й и j-й кодовых комбинаций. Для любых двух двоичных кодовых комбинаций расстояние равняется числу несовпадающих в них символов.

Кодовое расстояние dmin – это минимальное расстояние Хемминга для заданного кода. Перебрав все возможные пары разрешенных кодовых комбинаций и вычислив для них расстояния dij, необходимо найти среди них минималь-

ное, т.е. dmin = min dij.

Скорость кода Rкод показывает относительное число информационных символов k в кодовых комбинациях длины n и вычисляется Rкод = k/n.

Корректирующая способность кода определяется кратностью обнаруживаемых ошибок qоб и кратностью исправляемых ошибок qис.

Кратность гарантировано обнаруживаемых ошибок qоб – число ошибок в кодовой комбинации, которое гарантировано обнаруживаются при декодировании, определяется: qоб < dmin.

Кратность исправляемых ошибок qис – число ошибок в кодовой комби-

нации, исправляемых при декодировании, определяется: qис < dmin/2.

42

2.4 При использовании помехоустойчивого кодирования в состав канала связи включаются кодер и декодер корректирующего кода по схеме, приведенной на рис. 1.

 

 

 

 

ˆ

 

ˆ

 

 

 

 

 

Аi

Кодер

Вi

Цифровой канал

Декодер

A j

B j

 

 

 

корректирующего

 

связи

 

корректирующего

 

 

 

кода

 

с ошибками

 

кода

 

 

 

 

 

Выход

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 1 – Схема включения кодера и декодера корректирующего кода сигнала

 

 

в состав цифрового канала связи

 

ошибки

Назначение кодера и декодера заключается в следующем. На вход кодера поступает комбинация простого кода Аi длины k, кодер преобразует ее в комбинацию корректирующего кода Вi длины n согласно правилам кодирования, причем, n > k. На вход декодера поступает комбинация длины n из канала связи:

ˆ

= Вi Å Е,

(1)

B j

где Е – комбинация ошибок. Например, Вi = 101000; пусть ошибка произошла

ˆ

= 110000.

во втором и третьем символах, тогда Е = 011000, а B j

В зависимости от способности кода корректировать и цели его применения декодер корректирующего кода может работать в режиме обнаружения или в режиме исправления ошибок. В режиме обнаружения ошибок декодер анали-

зирует: комбинация

ˆ

ˆ

B j

разрешенная или запрещенная? Если комбинацияB j

разрешенная, то декодер согласно правилу декодирования формирует на своем

ˆ

запрещенная, то она бра-

выходе комбинацию Аj длины k. Если комбинация B j

куется декодером, на выходе декодера комбинация отсутствует, а на выходе

сигнала ошибки (рис. 1) появляется определенный сигнал (например, “1”).

В

режиме исправления ошибок декодер вместо запрещенной комбинации

ˆ

де-

B j

кодирует ближайшую к ней разрешенную кодовую комбинацию согласно правилу декодирования и выдает комбинацию длины k.

2.5Наибольшее распространение в системах передачи получили систематические корректирующие коды, кодовые комбинации которых содержат k информационных символов (символы комбинации простого кода, поступившей на вход кодера) и r = n k дополнительных символов, сформированных кодером из информационных символов. В случае линейных кодов дополнительные символы являются линейной комбинацией информационных символов.

2.6Корректирующие коды с кодовым расстоянием dmin = 3, позволяющие при декодировании исправлять однократные ошибки, называют кодами Хемминга. Наиболее удобным для описания процессов кодирования и декодирование линейных блоковых кодов является матричный способ. Так, кодирование систематическим кодом (n, k), состоящее во введении в кодовые комбинации дополнительных символов, описываются матричным соотношением

 

43

A×G = B,

(2)

где A = (a1 a2 ak) – матрица-строка размером k, соответствующая комбинации простого кода на входе кодера;

B = (b1 b2 bk bk+1 bn) – матрица-строка размером n, соответствующая комбинации корректирующего кода на выходе кодера;

Информ. Матрицаматрица дополнение

1 0....0

g

1,k +1

...g

 

 

 

 

 

 

 

 

1,n

 

 

 

 

0 1....0

g 2,k +1 ...g 2,n

 

(3)

G =

 

 

 

 

 

 

 

 

...............................

 

 

 

0 0....1

g k ,k +1 ...g k ,n

 

 

 

 

 

 

 

порождающая матрица размером k ´ n, элементы которой gij принимают значения 1 или 0. Порождающую матрицу можно рассматривать как объединение единичной матрицы порядка k (информационной матрицы) и матрицыдополнения размером k ´ r.

Из уравнения (2) вытекает, что дополнительные символы связаны с информационными символами соотношением

k

 

bi = ai , i = 1,..., k; bi = a j g ji , и = k + 1, k + 2,…, n.

(4)

j =1

Здесь сложение выполняется по модулю 2. Таким образом, элементы і-го столбца порождающей матрицы определяют і-й дополнительный символ.

Строки матрицы G должны удовлетворять следующим условиям:

1. Расстояние между любыми двумя строками не должно быть меньше

dmin.

2.Каждая строка должна содержать не менее dmin единиц.

3.Все строки должны быть линейно независимыми, т.е. ни одну из строк нельзя получить путем суммирования (по модулю 2) любых остальных.

Последнее условие для матрицы (3) выполняется благодаря тому, что первые k столбцов образуют единичную матрицу. Итак, при построении матри- цы-дополнения необходимо удовлетворить условиям 1 и 2.

Если кодовое расстояние dmin = 3, то условия 1 и 2 для строк матрицыдополнения можно сформировать так.

1.Расстояние между любой парой строк должно быть не меньше 1 (т.е. достаточно, чтобы строки были несовпадающими).

2.Каждая строка должна содержать не меньше двух единиц.

Поскольку эти условия легко осуществимы, то и порождающая матрица может быть легко построена. Например, для кода (7, 4) порождающая матрица имеет вид

44

 

1

0

0

0

0

1

1

 

 

 

 

1

0

0

1

0

1

 

 

0

 

(5)

G =

0

0

1

0

1

1

0

.

 

 

 

 

 

0

0

1

1

1

1

 

 

0

 

 

Процесс декодирования заключается в вычислении синдрома и в матричной форме записывается так:

 

 

ˆ

(6)

 

 

H×B = S,

где H

проверочная матрица размером r ´ n;

 

ˆ

матрица-столбец размера n, соответствующая кодовой комбинации на

B

входе декодера;

 

 

S –

матрица-столбец размера r.

 

Из соотношения (6) следует, что вычисление синдрома сводится к r про-

веркам

 

 

 

 

n

ˆ

(7)

 

 

 

si = hi j ×bi , i = 1, 2, …, r,

j =1

т.е., i-я проверка определяется элементами i-й строки проверочной матрицы. Проверочная матрица строится таким способом. Сначала строится матри-

ца – транспонированная матрица-дополнение, а затем к ней по правую сторону приписывается единичная матрица:

 

 

g

1,k +1

g

2,k +1

 

1 0....0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g1, k + 2

g2,k + 2

 

0

1....0

 

(8)

H = (hij ) =

 

 

 

 

 

..............

.

 

 

...... ... ....

 

 

 

 

 

 

g1, n

g 2, n

 

0 0....0

 

 

 

 

 

 

 

 

Например, для кода (7,4) с порождающей матрицей (4) проверочная мат-

рица имеет вид:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

1

1

 

1

0

0

 

 

 

H =

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

0

 

0

1

0

,

 

(9)

 

 

0

1

1

1

 

0

0

1

 

 

 

 

 

 

 

 

 

и проверки декодера сводятся к следующим выражениям:

 

 

 

ˆ

ˆ

ˆ

ˆ

,

 

 

 

 

 

s1 = b1

Åb3

Åb4

Åb5

 

 

 

 

 

 

ˆ

ˆ

ˆ

ˆ

,

 

 

(10)

 

 

s2 = b1

Åb2

Åb3

Åb6

 

 

 

 

 

ˆ

ˆ

ˆ

ˆ

 

 

 

 

 

 

s3 = b2

Åb3

Åb4

Åb7 .

 

 

 

На основе (10) легко составить таблицу ненулевых синдромов (табл. 1).

Таблица 1 – Таблица синдромов кода (7,4)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Синдром s1s2s3

100

 

010

 

001

 

110

101

011

111

Ошибочный символ

ˆ

 

ˆ

 

 

ˆ

 

 

ˆ

ˆ

ˆ

ˆ

b5

 

b6

 

 

b7

 

 

b1

b4

b2

b3

45

Последние четыре колонки табл. 1 показывают, как по виду синдрома определяется номер ошибочного символа (дополнительные символы не подлежат исправлению, так как после выполнения проверок (10) они не используются).

Правило формирования дополнительных символов (4) является основой алгоритма работы кодера:

1.На вход кодера поступают k информационных символов в параллельном коде или в последовательном коде (в последнем случае нужен регистр сдвига длиной k).

2.Вычисляются r = n k дополнительных символов с помощью сумматоров по модулю 2.

3.k информационных и r дополнительных символов поступают на выход кодера в параллельном или последовательном коде (в последнем случае нужен преобразователь параллельного кода в последовательный).

Алгоритм работы декодера следующий:

1.На вход декодера поступают n символов из канала связи.

2.На основе соотношения (10) вычисляется синдром.

3.Анализатор синдрома, построенный на основе таблицы синдромов, формирует сигналы для исправления ошибок информационных символов.

4.Производится исправление ошибочных символов, заключающееся в их инверсии – выполняется путем добавления по модулю 2 к исправляемым сим-

ˆ

ˆ

ˆ

).

волам единиц (пусть bi

некоторый символ, тогда bi

Å 1 = bi

5. На выход декодера после исправления ошибки поступает комбинация простого кода из k символов.

2.6 Среди систематических блоковых кодов наиболее широкое распространение получили циклические коды, благодаря простоте построения кодера и декодера. Для описания циклических кодов оказалось удобным представлять кодовые комбинации полиномами – например, комбинации Ai =10111 соответствует полином ai(х) = х4 + х2 + х + 1 (символы кодовой комбинации являются коэффициентами при соответствующих степенях фиктивной переменной x, причем символу, который записывается первым, соответствует наиболее высокая степень х).

Любой циклический код задается не только числами n и k, но и порождающим полиномом g(x) степени r. Циклическим (n, k) кодом называется код,

все комбинации которого представляются полиномами степени n – 1 и меньше,

 

Таблица 2 – Порож-

и делятся без остатка на порождающий полином. В

 

табл. 2 приведены порождающие полиномы для

 

 

дающие полиномы

 

 

r = 3, 4 и 5.

 

 

 

 

 

r

 

g(x)

Работа кодера циклического кода (n, k) сво-

 

 

 

 

 

3

 

x3 + x2 + 1

дится к следующему. Пусть a(x) – полином, соответ-

 

 

x3 + x + 1

ствующий комбинации простого кода, поступившей

 

 

 

 

 

 

 

на вход кодера. Полином a(x)×xr соответствует до-

 

4

 

x4 + x3 + 1

 

 

x4 + x + 1

бавлению к входной комбинации r нулей справа.

 

 

 

 

 

 

 

Выполняется деление полинома a(x)×xr на порож-

 

5

 

x5 + x4 + x2 + 1

 

 

 

 

дающий полином g(x) с целью определения остатка

 

 

 

 

46

от деления r(x). Остаток от деления r(x) и являются дополнительными символами. Полином, который соответствует исходной комбинации кодера, определяется как:

b(x) = a(x)×xr + r(x),

(11)

т.е. r нулей, введенных в комбинацию, замещаются комбинацией, соответствующей остатку от деления.

Легко показать, что полином b(x) делится без остатка на полином g(x):

b(x)

=

a(x)x r

+

r(x)

= p(x) +

r(x) Å r(x)

= p(x) ,

g(x)

g(x)

g(x)

g(x)

 

 

 

 

где p(x) – целая часть от деления a(x)×xr/g(x).

Следует помнить, что сложение полиномов выполняется по правилу сложения по модулю два (mod 2) коэффициентов при одинаковых степенях х.

Рассмотрим пример формирования кодовой комбинации кода (10, 5) с порождающий полиномом g(x) = x5 + x4 + x2 + 1. Пусть Аi = 10110, тогда ai(x) = x4 + x2 + x, и ai(x)×x5 = x9 + x7 + x6. Выполним деление с целью определе-

ния остатка.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x9 + x7 + x6

 

 

 

 

 

|

x5 + x4 + x2 + 1

 

 

 

Согласно (11)

 

Å9

 

 

 

8

 

 

 

6

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bi(x) = x9 + x7 + x6 + x3 + x2 + 1

+ x

+ x

+ x

 

 

 

x

4

+ x

3

+ 1

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

или Bi = 1011001101.

 

 

Åx

8

+ x

7

+ x

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В декодере циклического ко-

 

 

 

x8 + x7 + x5+ x3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Å

5

+ x

4

+ x

3

 

 

 

 

 

 

 

 

да выполняется деление получен-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

5

4

2

 

 

 

 

 

 

 

 

 

 

 

 

ˆ

 

 

 

 

 

 

 

 

 

 

 

 

x

 

+ x

 

+ x + 1

 

 

 

 

 

 

ной

комбинации

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 = r(x)

 

b(x) на порож-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x3 + x2 +

 

дающий полином. Полиномы пе-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ˆ

 

 

 

 

 

 

 

 

реданной комбинации b(x), комби-

нации на входе декодера

 

 

и ошибки e(x) связаны соотношениям, аналогич-

b(x)

ным (1):

ˆ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ˆ

 

 

 

 

b(x) = b(x) Å e(x). Результат деления b(x) на порождающий полином

можно показать

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b (x)

=

 

b(x)

Å

e(x)

= p(x) Å

e(x)

= p(x) Å v(x) Å

s(x)

,

 

 

 

 

 

 

 

 

 

 

 

g(x) g(x)

 

 

 

 

g(x)

 

 

 

 

 

g(x)

 

g(x)

 

Таблица 3 – Синдромы однократных ошибок

 

откуда вытекает, что остаток от деле-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ния s(x)

зависит только от полинома

 

Полином

 

 

 

 

 

 

 

 

 

Синдром s(x)

 

 

ошибки e(x)

 

 

 

 

 

 

 

 

ошибки и не зависит от переданной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x9

 

 

 

 

 

 

x4

+ x3

+ x2 + x

+ 1

 

 

 

комбинации (v(x) – целая часть от де-

 

x8

 

 

 

 

 

 

x4

 

 

 

 

 

 

 

 

 

 

 

ления e(x) на g(x)). Остаток от деления

 

x7

 

 

 

 

 

 

 

 

 

 

 

x3

 

 

 

 

 

+ x + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s(x) является синдромом. Ненулевой

 

x6

 

 

 

 

 

 

x4

+ x3

+ x2 + x + 1

 

 

х5

 

 

 

 

 

 

x4

 

 

 

 

 

+ x2 +

 

 

1

 

 

 

остаток свидетельствует о том, что

 

x4

 

 

 

 

 

 

x4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

комбинация на входе декодера есть

 

x3

 

 

 

 

 

 

 

 

 

 

 

x3

 

 

 

 

 

 

 

 

 

 

 

 

 

запрещенной (ошибочной). Если де-

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

кодер работает в режиме исправления

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ошибок, то номер ошибочного симво-

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

47

ла (или номера ошибочных символов) определяется на основе анализа синдрома. Для кода (10, 5) с порождающим полиномом g(x) = x5 + x4 + x2 + 1 составим таблицу синдромов для всех однократных ошибок, выполняя деление e(x) на g(x) и фиксируя в табл. 3 только остатки от деления.

Из табл. 3 следует, что в случае однократных ошибок все синдромы разные, поэтому каждый синдром однозначно указывает номер ошибочного символа. Исправление ошибки декодером осуществляется с помощью дешифратора, построенного согласно табл. 3, и инвертора, который выполняет инверсию ошибочного символа.

Рассмотренный код (10, 5) имеет кодовое расстояние dmin = 4 и позволяет исправлять только однократные ошибки.

3. Ключевые вопросы

3.1Какие коды называются корректирующими?

3.2Объяснить назначение кодера и декодера корректирующего кода.

3.3Что называется избыточностью и скоростью кода?

3.4Что такое расстояние Хемминга между комбинациями, кодовое расстояние, кратность ошибки?

3.5Как рассчитать способность кода обнаруживать и исправлять

ошибки?

3.6Объяснить общий принцип обнаружения и исправления ошибок.

3.7Дайте определение систематических корректирующих кодов.

3.8Что такое порождающая матрица?

3.9Как построить порождающую матрицу для систематического кода?

3.10Что такое проверочная матрица?

3.11Что такое синдром?

3.12Объяснить принцип построения кодера и декодера кода Хемминга.

3.13Какие коды называются циклическими?

3.14Как выполняется запись кодовых комбинаций в виде полиномов?

3.15Объяснить принцип кодирования и декодирования циклическими

кодами.

4. Домашнее задание

4.1Изучить раздел “ Корректирующие коды” по конспекту лекций и литературе [3, с. 5...39]. Привести схему включения кодера и декодера корректирующего кода в состав цифрового канала связи.

4.2Записать число (N + 8) в двоичной системе исчисления, где N – номер Вашей бригады. Считая, что это число – комбинация простого кода длины k = 4, сформировать из нее комбинацию кода Хемминга (7, 4), заданного порождающей матрицей (5). Составьте проверочную матрицу и таблицу синдромов заданного кода. Введите однократную ошибку в символ b сформированной комбинации, рассчитайте синдром для полученной комбинации. Убедитесь, что

синдром соответствует ошибочному символу ˆ bN .

4.3 Считая, что полученное в п. 3 число – комбинация простого кода длины k = 5, сформировать из нее комбинацию циклического кода (10, 5), ис-

48

пользуя порождающий полином g(x) = x5 + x4 + x2 + 1. Для трех комбинаций ошибок е1(х), е2(х) и е3(х), заданных в табл. 4, вычислить синдромы, а затем, используя табл. 3, определить результаты работы декодера. Если вычисленный синдром есть в табл. 3, то декодер инвертирует символ комбинации, который считается ошибочным. Если же в табл. 3 отсутствует вычисленный синдром, то декодер не изменяет символы декодируемой комбинации. Комбинация на выходе декодера – это первые k символов комбинации, поступившей на вход декодера.

4.4 Подготовьтесь к обсуждению по ключевым вопросам разд.

Таблица 4

Полиномы ошибок для домашнего задания

 

 

 

 

 

 

 

 

Номер

 

e1(x) –

e2(x) –

e3(x) –

 

бригады N

 

однократная ошибка

двукратная ошибка

трехкратная ошибка

1, 11

 

x9

x9 + 1

x7 +x6 + 1

2, 12

 

x8

x6 + x8

x9 + x8 + x4

3

 

x7

x6 + x

x9 + x8 + x2

4

 

x6

x9 + x

x7 + x6 + x

5

 

x5

x7 + x6

x8 + x7 + x2

6

 

x4

x7 + x4

x8 + x7 + x3

7

 

x3

x9 + x2

x8 + x7 + x

8

 

x2

x6 + x3

x8 + x6 + x

9

 

x1

x7 + x2

x9 + x6 + x4

10

 

1

x8 + x

x8 + x6 + x4

5. Лабораторное задание

5.1 Ознакомиться с виртуальным макетом на рабочем месте. Для этого запустить программу 4.1а Изучение кодирования и декодирование корректирующими блоковыми кодами, используя иконку Лабораторные рабо-

ты на рабочем столе, а затем папки ТЭС и Модуль 4. Изучить схему макета на дисплее компьютера, пользуясь разд. 6. Уточнить с преподавателем план вы-

полнения лабораторного задания.

5.2 Ввести информационные символы, полученные в домашнем зада-

нии, после выполнения программой кодирования убедитесь в правильности выполнения домашнего задания.

5.3Ввести однократную ошибку поочередно в символы b1, b2, b3, b4, b5, b6, b7, после выполнения программы убедитесь в правильности декодирования

иправильности составления таблицы синдромов в домашнем задании.

5.4Ввести двукратную ошибку в произвольные два символа, после вы-

полнения программы убедитесь, что декодер старается исправить ошибку согласно синдрому и вводит третью ошибку. Повторить эксперимент для двух-

трех других двукратных ошибок.

5.5 Ввести трехкратную ошибку в символы b1, b2, b3, после выполнения программы убедитесь, что синдром равняется нулю (разрешенная комбинация) – это свидетельствует о том, что в коде dmin = 3. Повторить эксперимент, вводя трехкратную ошибку в символы b1, b4, b5. На основе проверочной матрицы определите, какие еще трехкратные ошибки приводят к разрешенным комбинациям.

49

5.6 Запустить программу 4.1б Изучение кодирования и декодирование корректирующими блоковыми кодами, используя иконку Лаборатор-

ные работы на рабочем столе, а затем папки ТЭС и Модуль 4. Изучить схему макета на дисплее компьютера, пользуясь разд. 6. Уточнить с преподавателем

план выполнения лабораторного задания.

5.7 Исследовать процесс кодирования циклическим кодом (10, 5). Для этого:

выбрать в меню “ Что исследуем?” пункт “ Кодирование”;

выбрать код (10, 5) и ввести соответствующий ему порождающий по-

лином;

ввести определенные в домашнем задании информационные символы. После выполнения программы сравните полученную на выходе кодера

комбинацию с результатом расчета в домашнем задании.

5.8 Исследовать процесс передачи каналом связи. Для этого:

выбрать в меню “ Что исследуем?” пункт “ Передача каналом”;

ввести комбинацию ошибок длиной п, состоящей из нулей.

Запустить программу на выполнение при сохраненных установках п. 5.7. Убедиться, что в случае нулевой комбинации ошибок комбинация на выходе “ Канала связи” совпадает с входной комбинацией.

Ввести комбинацию ошибок, которая соответствует однократной ошибке е1(х) в табл. 4 для Вашего N. После запуска программы сравнить комбинации на входе и выходе канала связи и убедить в корректном моделировании канала

связи с ошибками.

5.9 Исследовать процесс декодирования. Для этого:

выбрать в меню “ Что исследуем?” пункт “ Декодирование”;

ввести комбинацию ошибок из нулей.

Запустить программу на выполнение при сохраненных других установках. Убедиться, что синдром нулевой, а комбинация на выходе декодера совпадает с комбинацией на входе кодера.

Ввести комбинацию ошибок с однократной ошибкой е1(х) из домашнего задания. Запустить программу на выполнение при сохраненных предыдущих установках в кодере. Составить таблицу наподобие табл. 5, куда занести результаты декодирования.

Таблица 5 –

Результаты исследований циклического кода (10, 5)

 

 

 

 

 

 

Комбинация

 

Вход декодера

Выход декодера

Синдром

Номер ошибочного символа,

 

 

ˆ

ˆ

 

 

ошибок е(х)

 

b(x)

s(x)

определенного декодером

 

a(x)

x9

 

0011001101

10110

х4 + х3 + 1

x9

 

 

 

 

 

 

 

Повторить исследование декодирования при двукратной е2(х) и трехкратной е3(х) ошибках из домашнего задания. Сравнить полученные результаты с результатами расчетов в домашнем задании.

Повторить исследование декодирования произвольной четырехкратной ошибки е4(х). Для определенных комбинаций ошибок, например,

50

е4(х) = х6 + х5 + х3 + х синдром нулевой – это подтверждает, что код (10, 5) имеет кодовое расстояние dmin = 4.

6. Описание лабораторных макетов

Лабораторный макет кодера и декодера кода Хемминга (7, 4) (программа 4.1а) выполнен программно на персональном компьютере. Код описывается порождающей матрицей (5).

Управление работой макета выполняется путем перемещения курсора и действием левой кнопкой мыши на курсор. Введение ошибок выполняется путем установки в «1» разряда (разрядов) комбинации ошибок e1 e2 e3 e4 e5 e6 e7, в которых должна возникнуть ошибка. Макет выполняет преобразование пере-

данной комбинации в принятую по правилу ˆ Å для

bi = bi ei, i = 1, 2, …, 7.

Лабораторный макет для исследования кодеров и декодеров циклических кодов (программа 4.1б) выполнен на компьютере, структурную схему макета приведено на рис. 2. Макет предназначен для исследования процессов кодирования и декодирования циклических кодов: (7, 4), (10, 5), (10, 6), (11, 7), (12, 8), (13, 9), (14, 10), (15, 11).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Индикатор b(x)

 

 

 

ˆ

 

 

 

Индикатор aˆ (x)

 

 

 

 

Индикатор b(x)

 

 

 

Введення a(x)

 

 

 

b(x)

 

 

 

ˆ

 

 

 

 

 

aˆ (x)

Кодер

 

 

Канал

 

 

Декодер

 

 

 

b(x)

 

 

 

 

 

 

 

связи

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение e(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Индикатор s(x)

 

Индикатор номера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ошибочного символа

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 2 – Схема макета лабораторной работы

Макет позволяет последовательно исследовать кодирование, передачу каналом связи и декодирование. Он содержит объекты, обозначенные красным цветом, установки которых студент должен выполнить. Окна голубого цвета используются для освещения результатов работы макета.

Кодер формирует разрешенную кодовую комбинацию путем расчета r = n – k дополнительных символов и дополнения ими информационных символов. Полученная комбинация отображается на выходе кодера.

Для моделирования передачи каналом связи необходимо ввести комбинацию ошибок длиной п, состоящей из 1 и 0. Символ 1 вводится в тех позициях, в которых должна возникнуть ошибка при передаче комбинации каналом связи. В канале связи комбинация от кодера складывается по модулю два (mod 2) с комбинацией ошибок. Полученная комбинация отображается на выходе канала связи.

Декодер делит кодовую комбинацию, поступившую на его вход, на порождающий полином. Окно под декодером отображает синдром (в двоичном представлении) кодовой комбинации, которая поступила из канала связи; окно