Скачиваний:
0
Добавлен:
21.03.2026
Размер:
820.13 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра РС

отчет

по лабораторной работе №4

по дисциплине «Основы построения инфокоммуникационных систем»

Тема: ЦИКЛИЧЕСКИЙ КОД ХЭММИНГА

Вариант № 11

Студент гр. 0182

Бронников Д.Д.

Преподаватель

Маркелов О.А.

Санкт-Петербург

2023

Цель работы

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

2. Для этих информационных символов получить кодовое слово тремя способами.

Теоретические сведения

Кодом называется множество кодовых слов – последовательностей символов, которым соответствуют определенные сообщения источника информации. Если это множество является линейным подпространством, то код называется линейным. Код предназначен для обнаружения и исправления ошибок, возникающих из-за помех в канале связи.

В систематических линейных кодах кодовые слова имеют вид:

, где – информационные символы (биты), – проверочные (избыточные, контрольные).

Число k это размерность кода как линейного подпространства или число информационных символов. Число n – длина кода, или число символов в кодовом слове, или размерность линейного пространства, в котором расположен код.

Эти числа входят в обозначение кода ( . Они определяют количество избыточных символов и скорость кода .

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

.

Расстояние Хэмминга есть число позиций, в которых один вектор отличается от другого. Чем больше кодовое расстояние, тем выше помехоустойчивость кода.

На практике помехоустойчивость кода оценивается числами и . Эти числа показывают, что код способен обнаружить все ошибки, кратность которых , или исправить все ошибки кратности . Кратность ошибки — это число искаженных символов в принятой комбинации.

Между этими числами и кодовым расстоянием существует связь:

, если решается только задача обнаружения ошибок,

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

причем , если ошибки малой кратности исправляются, а более высокой обнаруживаются.

Способы задания линейного кода

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

Способы задания линейного кода есть способы задания линейного подпространства размерности k в пространстве размерности n.

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

.

Для сообщения источника в виде вектора слово линейного кода может быть получено по формуле

.

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

С каждым линейным подпространством связана матрица H, содержащая n столбцов и строк и проектирующая любое кодовое слово на перпендикуляр к этому подпространству. Поэтому для любого кодового слова справедливо

,

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

Это свойство использует декодер для проверки: принадлежит ли наблюдаемый на выходе канала сигнал коду или нет. Поэтому матрица H называется проверочной.

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

Способы задания кода (7,4)

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

Кодовое слово систематического, разделимого кода содержит 4 информационных символов и 3 проверочных .

Число кодовых слов , а число последовательностей на выходе канала .

Порождающая матрица может быть записана в виде:

.

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

Связь проверочных символов с информационными задается уравнениями:

,

,

.

Проверочная матрица кода (7,4) имеет вид:

.

Проверить, что для любого кодового слова

.

Кодирование циклическим кодом (7,4)

  1. Получение кода в соответствии с заданием

Вариант 11: 1110 = 10112

A = а1а2а3а4 = 10112

Кодовое слово можно получить тремя способами:

  1. Порождающей матрицей:

,

  1. С помощью связи проверочных символов с информационными задается уравнениями:

b1= а1а2а3 = 1 ⊕ 0 ⊕ 1 = 0

b2 = а4а2а3 = 1 ⊕ 0 ⊕ 1 = 0

b3 = а1а2а4 = 1 ⊕ 0 ⊕ 1 = 0

C = а1, а2, а3, а4, b1, b2, b3, = 1011000

  1. С помощью алгоритма кодирования циклическим систематическим кодом:

А(х) = х3 х1 х0 = х3 х 1

Cдвиг информационных символов. А(х) сдвигается влево на nk разрядов: A(x) · xn-k

xn-k = x7-4 = x3

А(х) · x3 = х6 х4 х3

B(x) = A(x) · xn-k mod g(x), где g(x) = х3х1 ⊕ 1

B(x) = 0

С(х) = A(x) · xn-k B(x)

С(х) = х6 х4х3 = 10110002

Проверка, что для кодового слова CHT = 0

;

  1. Моделирование работы кодера

Рис. 1 – Модель кодера

Рис. 2 – Работа кодера при подаче на вход сигнала (1011)

  1. Декодер циклического кода (7,4)

Рис. 3 – Структурная схема модели декодера

  1. В канале действует однократная ошибка

Ошибка задаётся многочленом xi, где i находится из сравнения:

i = (# + L) mod7; # = 11, L = 5

i = 16 mod 7 = 2 => Ошибка задаётся многочленом x2. Однако, в процессе выполнения работы была допущена ошибка и работа выполнена верно, но для L = 2 => x6.

Рис. 4 – Работа декодера при подаче на вход сигнала (1011000) и вектора ошибок (0100000)

Декодер регистрирует и исправляет ошибку:

С = (1011000) – отправленное сообщение;

Y = (1111000) – принятое сообщение;

e = (0100000) – найденные ошибки;

out = (1011000) – исправлена одна ошибка.

  1. В канале действует двукратная ошибка

Ошибка задаётся многочленом xi(1 + xF), где i находится из сравнения:

i = (# + L) mod 7. F – удовлетворяет неравенству i + F < 7

i = 1, F = 1 => Ошибка задаётся многочленом x6 + x7 (измерения снова не совсем верные, x6 + x5).

Рис. 5 – Работа декодера при подаче на вход сигнала (1011000) и вектора ошибок (0110000)

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

С = (1011000) – отправленное сообщение;

e = (0000001) – найденные ошибки;

Y = (1101000) – принятое сообщение;

out = (1101001) – ошибки не исправлены, добавлена одна новая ошибка.

  1. Работа декодера при трёх ошибках с фиксацией декодера:

Рис. 6 – Работа декодера при подаче на вход сигнала (1011000) и вектора ошибок (0111000)

Декодер регистрирует и исправляет ошибку, но в неправильном месте:

С = (1011000) – отправленное сообщение;

e = (0000001) – найденные ошибки;

Y = (1100000) – принятое сообщение;

out = (1100001) – ошибки не исправлены, добавлена одна новая ошибка.

  1. Работа декодера при трёх ошибках без фиксации декодера

Рис. 7 – Работа декодера при подаче на вход сигнала (1011000) и вектора ошибок (1000101)

Декодер не регистрирует и не исправляет ошибку:

С = (1011000) – отправленное сообщение;

e = (0000000) – найденные ошибки;

Y = (0011101) – принятое сообщение;

out = (0011101) – ошибки не исправлены.

Вывод

В ходе лабораторной работы были получены информационные символы кодового слова, используя свой порядковый номер в списке группы. На основании информационных символов были получены проверочные символы, используя 3 разных способа. Во всех трёх случаях кодовые слова совпали, а равенство С· НТ выполнилось.

Далее было проведено моделирование декодера в 4 различных случаях его работы: без ошибок, с однократной, двухкратной, трёхкратной и такой трёхкратной, что декодер не выдаёт сообщение об ошибке. В случае отсутствия ошибки декодер работает стабильно. При наличии однократной ошибки он её обнаруживает и исправляет, получая на выходе верное сообщение. При наличии двукратной ошибки декодер обнаруживает её, но неправильно исправляет принятое сообщение. При наличии трёхкратной ошибки и при ненулевом синдроме декодер работает как в случае с двухкратной ошибкой. При наличии трехкратной ошибки с нулевым синдромом декодер не обнаруживает ошибку и не исправляет ее.

Соседние файлы в предмете Основы построения инфокоммуникационных систем и сетей