Файл: ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. Методы кодирования данных..pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.04.2023

Просмотров: 283

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введем следующие обозначения:

  • ti – число (кратность) исправляемых ошибок;
  • d0 – расстояние между разрешенными комбинациями.

Следовательно, получим условие, при котором код сможет исправить ошибки (2):

d0 ≥ 2ti + 1 (2)

Для построения помехоустойчивого кода необходимо к k информационным разрядам добавить r проверочных. Число проверочных разрядов, которое требуется для построения кода, способного исправить одну ошибку вычисляется по формуле (3):

2r ≥ k + r + 1 (3)

При этом общее число разрядов равняется n = k + r. Код, построенный с такими параметрами называется [n, k] кодом. Например, для передачи четырехразрядной комбинации дополнительно нужно три проверочных символа. Следовательно, получается код [7, 4].

Экономичность и эффективность кодов с обнаружением ошибок определяют особые параметры: коэффициент избыточности (4) и коэффициент обнаружения (5).

RU = 1 – ln(M1) / ln(M) (4)

K0 = Q / (Q + Q1) (5)

где М = 2n – общее количество кодовых слов, которое может быть получено в n‑элементном коде;

М1 – число используемых комбинаций;

Q – общее число искаженных комбинаций, в которых может быть обнаружена ошибка;

Q1 – общее количество искаженных комбинаций, в которых не может быть обнаружена ошибка [1].

4.1. Коды Хэмминга

Рассмотрим правила построения [7, 4] кода Хэмминга, исправляющего одну ошибку в передаваемой информационной комбинации (a1, a2, a3, a4). Выпишем таблицу истинности для трех проверочных разрядов:

x2

x1

x0

0

0

0

0

0

1

b0

0

1

0

b1

0

1

1

a1

1

0

0

b2

1

0

1

a2

1

1

0

a3

1

1

1

a4

Где аi – информационные разряды, а bi – проверочные.


Тогда, проверочные разряды восстанавливаются по информационным по правилам (6-8):

b0 = a1  a2  a4 (6)

b1 = a1  a3  a4 (7)

b2 = a2  a3  a4 (8)

Таким образом, видно, что значение b0 формируется из всех ak, для которых х0 = 1. Значение b1 формируется из всех аk, для которых х1 = 1 и т.д.

На передатчик канала связи подается самокорректирующийся код Хэмминга [7, 4], имеющий вид (b0, b1, a1, b2, a2, a3, a4). На приемном конце считаются проверочные символы (9-11):

В0 = a1  a2  a4 (9)

В1 = a1  a3  a4 (10)

В2 = a2  a3  a4 (11)

Разница между принимаемыми Вi и передаваемыми bi проверочными разрядами позволяет обнаружить и локализовать ошибку.

4.2. Циклические коды

Циклические коды представляют собой обобщение кодов Хэмминга. В данном коде произвольная кодовая последовательность a = (a1, a2, …, an) принимает вид полинома (12):

u(x) = a1xn-1 + a2xn-2 + … + aт-2x2 + an-1x + an (12)

Так, например, кодовой последовательности 1011 соответствует многочлен u(x) = 1х3 + 0х2 + 1х1 + 1х0 = х3 + х + 1.

При этом вводятся понятия приводимых и неприводимых многочленов. Неприводимый многочлен – это такой, который не может быть представлен в виде произведения многочленов меньшей степени. Приводимый многочлен, напротив, может быть факторизован.

4.3. Сверточные коды

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

Для описания работы автомата требуется задать:

  • вектор значений входного сигнала a = (a1a2…an);
  • вектор внутренних состояний автомата s = (s1s2…sn).

Во время работы на вход автомата подается очередное значение сигнала ai. В зависимости от текущего состояния sk автомат изменяет значение сигнала на zi, но и сам под воздействием входного сигнала меняет свое состояние на sm. Следующее значение сигнала ai+1 автомат принимает находясь в состоянии sm и в соответствии со своим состоянием формирует выходное значение zi+1, а сам при этом меняет свое состояние на sn и т.д.


Следовательно, описание работы автомата дополнительно требует следующих параметров:

  • вектор возможных значений выходного сигнала z = (z1z2…zn);
  • функцию перехода g: (aksk) → (z), создающую значения выходного сигнала zk из входного sk с учетом текущего состояния автомата sk;
  • функцию перехода f: (aksk) → (sk+1­), меняющую состояние автомата sk на sm в зависимости от значения принятого сигнала ak и текущего состояния автомата sk.

Автомат, обрабатывающий двоичную последовательность и имеющий четыре возможных состояния s = (s0, s1, s2, s3) называется сверточным кодом. Его принято задавать в виде таблицы (см. таблицу 4).

Таблица 4 – Автомат сверточного кода

f

g

0

1

0

1

s0

s0

s2

00

11

s1

s0

s2

11

00

s2

s1

s3

10

01

3

s1

s3

01

10

ЗАКЛЮЧЕНИЕ

В рамках выполнения данной работы была раскрыта тема основных методов кодирования информации. Важно отличать процессы кодирования и шифрования. Код используется для передачи информации в более удобном виде. А шифр – для засекречивания.

Кодирование - изменяет форму, но оставляет прежним содержание. Для прочтения нужно знать алгоритм и таблицу кодирования.

Шифрование - Может оставлять прежней форму, но изменяет, маскирует содержание. Для прочтения недостаточно знать только алгоритм шифрования, нужно знать ключ [Лаш].

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

Существует множество способов классификаций методов кодирования. В данной работе рассмотрены основные из них, а именно:

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