Коды исправляющие ошибки курсовая

Министерство образования и науки РФ Пермский национальный исследовательский политехнический университет

Кафедра «Автоматика и телемеханика»

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

для выполнения курсовой работы

по дисциплине

«ОБЩАЯ ТЕОРИЯ СВЯЗИ», часть II

для студентов заочной и дистанционной форм обучения по направлению 210700 «Инфокоммуникационные технологии и

системы связи», профиль 21070004.62 «Сети связи и системы коммутации»

Пермь, 2013

2

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

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

1.Постановка задачи

Впроцессе выполнения курсовой работы необходимо решить следующие задачи:

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

2.По заданному количеству дискретных сообщений определить длину информационной части неизбыточного кода m.

3.По верхней границе Хэмминга определить длину избыточного

кода n, перейти к коду с четным dmin и рассчитать вероятности правильной передачи, трансформации и стирания сообщения.

4.Построить порождающую матрицу G (проверочную матрицу H) и определить операторы кодирования. Рассчитать операторы кодирования для заданного значения информационной части.

5.Построить функциональную схему кодирующего устройства ГСК (кодера ГСК).

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

7.Произвести вычисление синдромов для заданной кодовой комбинации для следующих ситуаций:

безошибочная передача,

передача с однократной ошибкой,

передача с двукратной ошибкой,

передача с трехкратной ошибкой.

8.Построить функциональную схему декодирующего устройства ГСК (декодера ГСК).

9.Сделать выводы о проделанной работе.

2. Краткая теория

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

3

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

2.1. Принципы построения корректирующих кодов

Общий принцип построения корректирующих кодов достаточно прост. Из общего числа М0 = 2m возможных m-разрядных двоичных кодовых комбинаций используются для передачи дискретных сообщений не все, а только необходимое количество Мр (естественно, Мр < М0). Используемые кодовые комбинации называются разрешенными (рабочими). Остальные (М0 Мр) комбинаций считаются запрещенными, т. е. они не могут передаваться по каналу связи, и их появление на приемном конце свидетельствует о наличии ошибок. По определению академика А.А. Харкевича, корректирующим кодом является код, удовлетворяющий единственному условию: Мр < М0. Действительно, если имеется хотя бы одна запрещенная кодовая комбинация, то возникает принципиальная возможность обнаружения (или даже исправления) ошибок передачи.

Таким образом, любой корректирующий код является кодом с избыточностью (имеются лишние, неиспользуемые кодовые комбинации). Для описания корректирующего кода вводятся следующие параметры:

Корректирующая способность кода определяется кратностью об-

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

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

1 0 1 1 0 0

1 1 0 1 1 0

————-

0 1 1 0 1 0

не совпадают в трех разрядах (помечены наклоном и подчеркиванием) и поэтому расстояние Хэмминга dij = 3. Математически расстояние Хэмминга вычисляется как число единиц в сумме по модулю два ( ) этих кодовых комбинаций, что представляет собой вес кодовой комбинации их суммы W.

Минимальное кодовое расстояние dmin– это минимальное расстоя-

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

4

среди них минимальное. Это и будет кодовое расстояние dmin = min dij, которое полностью характеризует корректирующую способность кода.

Относительная скорость кода Rk показывает относительное число разрешенных кодовых комбинаций в коде и вычисляется по формуле

Rk = log2 Мр / log2 М0

Величина Xk = 1 – Rk является коэффициентом избыточности ко-

да.

При введении избыточности в первичный код U, содержащий m ин-

формационных символов a1, a2, … , am, добавляются k избыточных сим-

волов c1, c2, … , ck. Таким образом, кодовый вектор V, направляемый в линию связи, содержит m информационных и k избыточных символов. Общая длина кодовой комбинации n определяется по формуле

n = m + k.

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

U(m)

V(n=m+k)

V’(n)

Декодер

U(m)

Кодер

избыточного

избыточного

кода

кода

ξ

Рис. 1. Структурная схема системы передачи дискретной информации

Введение избыточности позволяет на приемной стороне произвести исправление или обнаружение ошибки. При этом возможны три состояния приема сообщения:

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

стирание – обнаружение ошибки и удаление сообщения,

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

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

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

5

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

dmin r + 1.

Декодирование с исправлением ошибок. В кодах с исправлением ошибок предъявляются более жесткие требования к расстоянию между разрешенными кодовыми комбинациями. Исправление ошибок возможно также только в том случае, когда переданная разрешенная кодовая комбинация переходит в запрещенную. Решение о том, какая кодовая комбинация передавалась, производится в декодере на основании сравнения принятой запрещенной комбинации со всеми разрешенными. Принятая кодовая комбинация отождествляется с той из разрешенных, на которую она больше всего похожа, т. е. с той, от которой она отличается меньшим числом элементов. Согласно этому правилу, для исправления ошибок кратностью s необходимо, чтобы запрещенная кодовая комбинация, получаемая при s-кратных ошибках, оставалась ближе к истинной, чем к любой другой разрешенной комбинации. Это выполняется при условии

dmin ≥ 2s + 1.

Декодирование с исправлением и обнаружением ошибок. Для то-

го чтобы избыточный код исправлял ошибки кратностью не более s и обнаруживал ошибки кратностью не более r (r > s), минимальное кодовое расстояние должно определиться по формуле:

dmin s + r + 1.

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

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

Для кода, исправляющего ошибки кратности не более s:

s

n

Pi (1P)

ni

,

Pпр =

i=0

i

Pтр =1 Pпр.

(1)

6

Для кода, исправляющего ошибки кратности не более s и обнаруживающего ошибки кратностью не более r (r > s):

s

n

ni

,

Pпр =

Pi (1P)

i=0

i

r

n

Pi (1P)

ni

,

Pст =

i=s+1 i

Pтр =1 Pпр Pст.

(2)

Примечания.

1.Р – вероятность ошибки в одном символе.

2.Используется математическая модель биноминального распределения ошибок в канале связи.

Корректирующая способность кода должна обеспечивать вероятность трансформации сообщения не больше допустимой : Ртр <= Ртр.доп.

2.2. Построение групповых систематических кодов

Одним из наиболее популярных реализаций корректирующих кодов является групповой систематический код (ГСК). Он относится к систематическим вследствие того, что имеет явно выраженные информационные и избыточные части. ГСК представляется в форме (n,m,d), где

n – общая длина кодового вектора,

m – длина информационной части,

d – минимальное кодовое расстояние.

Исходные данные для расчета параметров кода:

m – длина информационной части,

Р – вероятность ошибки в одном символе кода

Ртр.доп. – допустимое значение вероятности трансформации.

Для расчета ГСК необходимо определить k – количество избыточных символов (длину избыточной части), а также убедиться, что вероятность трансформации сообщения при применении рассчитанного кода не больше допустимого значения.

Для определения параметров кода применятся формула «Верхней границы Хемминга»:

2m

2

n

s

n

s

n!

, где E =

=

.

1

+ E

i=1 i

i=1 i!(n i)!

7

В данное выражение подставляются заданное значение m и расчет-

ное значение s, и неравенство решается относительно n.

Ниже представлен алгоритм выбора параметров группового система-

тического кода (рис. 2).

Исходные

данные

(m, Р, Ртр.доп.)

s=0, r=0

Расчет параметров

кода: n, k, dmin

Ртр<Pтр.доп.

r=s+1

Ртр<Pтр.доп.

s=s+1

Построение

порождающей матрицы G

Построение

проверочной матрицы H

Расчет избыточных символов

Рис. 2. Алгоритм выбора параметров группового систематического кода

После выбора параметров кода, удовлетворяющих требования по вероятности трансформации сообщения, необходимо определить операторы кодирования, при помощи которых вычисляются значения избыточных символов. Для этого строятся порождающая матрица G или проверочная матрица H. Матрицы строятся для кодов с нечетным dmin.

Порождающая матрица G имеет размерность [m x n] и в каноническом виде может быть определена следующим образом:

8

G = [Im P],

где Im – единичная матрица размерности [m x m], в которой по главной диагонали находятся 1, а остальные элементы 0, P – матрица размерности [m x k], состоящая из m k-разрядных ненулевых и несовпадающих друг с другом строк, вес которых не менее dmin–1:

1

0

… 0

p

p

p

11

12

1k

G =

0

1

… 0

p21

p22

p2k

… … … …

… … … …

0

0

… 1

pm1 pm2

pmk

Таким образом, порождающая матрица G представляет собой m n— разрядных линейно независимых нетривиальных векторов Vi.

V1

G = V2 .Vm

Проверочная матрица H имеет размерность [k x n] и в каноническом виде может быть определена следующим образом:

H = [PT Ik],

где Ik – единичная матрица размерности [k x k], в которой по главной диагонали находятся 1, а остальные элементы 0, PT – транспонированная матрица P размерности [k x m], состоящая из m k-разрядных ненулевых и несовпадающих друг с другом столбцов, вес которых не менее dmin–1:

p11

p21

pm1

1

0

0

p

p

22

p

m2

0

1

0

H =

12

… …

… … … …

p1k

p2k

pmk

0

0

1

Допустим, что необходимо закодировать в групповом систематическом коде m-разрядный информационный вектор U = (a1, a2, …, am). Тогда n-разрядный вектор V ГСК, соответствующий данному информационному вектору, будет иметь следующий вид:

9

V = (a1, a2, …, am, c1, c2, …, ck)

Для ГСК выполняется проверочное условие:

G · HT = 0, следовательно, и V · HT = 0.

Указанные соотношения используются для вычисления избыточных символов.

V = U · G = (a1, a2, …, am, c1, c2, …, ck), следовательно,

m

c j =ai pij , где j =1, k .

(3)

i=1

Для перехода к коду с четным dmin (к коду, исправляющему ошибку кратности s и обнаруживающему ошибку кратности r = s + 1) используются следующие формулы перехода:

dmin чет= dmin нечет +1 kчет = kнечет + 1

nчет = nнечет + 1

m = const

К кодовой комбинации добавляется дополнительный избыточный символ, который вычисляется как сумма по модулю два всех элементов информационной и избыточной части:

m

k

ck +1 =ai c j .

(4)

i=1

j=1

Вычисление данного символа вводит обобщенную проверку на четность, ибо его значение всегда добавляет вес кодового вектора до четного значения. Поэтому ошибки, не нарушающие четность кодового вектора, будут обнаружены. Указанная процедура формирования кода выполняется только для т.н. кодов Хэмминга (s = 1, dmin = 3 или s = 1, r = 2, dmin = 4).

Кодирующие устройства (кодеры) ГСК

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

10

буферный регистр информационных символов (БРИС), осущест-

вляющий прием и промежуточное хранение информационных символов ai,

комбинатор проверочных символов (КМПС), выполняющий функцию вычисления избыточных символов cj,

выходной буферный регистр (БР), формирующий вектор V.

2.3. Декодирование групповых систематических кодов

Для декодирования ГСК применяется принцип синдромного декодирования. Синдром группового кода ( S ) вычисляется декодером, как решение уравнения

V H T = S = (s1, s2 ,…, s j ,…, sk ) ,

где V ′=V e =(a1,a2,…,ai,…, an) искаженный вектор на входе декодера. Таким образом

S = e H T = (e1, e2,…, ei,…, en) hijT ,

т.е. между k-разрядным синдромом и исправляемым вектором ошибки существует однозначная зависимость. Поэтому в правильно построенном коде, исправляющем ошибки, декодер по конкретному значению синдрома однозначно вычисляет величину и место ошибки. Для двоичного канала достаточно указать только место ошибки, а затем указанный разряд проинвертировать. Из уравнений следует выражение для вычисления значения j— го разряда синдрома:

n

n

s j = ai

hTij = ei hijT , ( j =

1, k

) , s j = 0,1.

i=1

i=1

Синдром может принимать 2k значений, включая нулевое. Тогда если код исправляет ошибки кратности s и меньше, то с учетом требования однозначного соответствия между множеством различных значений син-

s

n

s

n!

дрома и множеством исправляемых ошибок E =

=

, спра-

i=0 i i=1 i!(n i)!

ведливо следующее соотношение: 2k E = s n . Таким образом, мы по- i=0 i

лучим верхнюю границу Хемминга.

Синдромное декодирование состоит из следующих этапов:

Соседние файлы в папке TKz-12_Obschaya_teoria_svyazi_chast_2

  • #

    13.03.2016201.81 Кб1415.pdf

  • #

    13.03.2016319.84 Кб1416.pdf

  • #
  • #
  • #
  • #
  • #

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

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Омский государственный педагогический университет»

(ФГБОУ ВО «ОмГПУ»)

Факультет математики, информатики, физики и технологии

Кафедра прикладной информатики и математики

Курсовая работа

Код Хемминга

Направление: педагогическое образование

Профиль:  Информатика и Технология

Дисциплина: Теоретические основы информатики

Выполнила: студентка

32 группы

Коробейникова

Ольга Витальевна

______________________________(подпись)

Научный руководитель:

Курганова

Наталья Александровна

к.п.н., доцент

Оценка _______________

«__» _______________ 20___г.

(подпись)

Омск, 20___

Оглавление

Введение        

Глава 1. Теоретические основы изучения помехоустойчивого кодирования        

1.1. Виды помехоустойчивого кодирования        

1.2. Характеристика кода Хемминга при помехоустойчивом кодировании        

1.3. Алгоритмы использования кода Хемминга для нахождения ошибок        

Глава 2. Практические основы кода Хемминга        

2.1. Примеры использования кода Хемминга для нахождения одной ошибки        

2.2. Примеры использования кода Хемминга для нахождения двоичной ошибки        

ЗАКЛЮЧЕНИЕ        

Список литературы        

Введение

На сегодняшний день в мире передается огромное количество информации, хотя системы передачи данных отвечают всем требованиям. Они не являются столь совершенными. При передаче данных могут возникать помехи. Помехоустойчивость – способность системы осуществлять прием информации в условиях наличия помех в линии связи и искажений во внутри аппаратных трактах. Помехоустойчивость обеспечивает надежность и достоверность передаваемой информации (данных).Управление правильностью передачи информации выполняется с помощью помехоустойчивого кодирования. Есть коды, обнаруживающие ошибки, и корректирующие коды, которые еще и исправляют ошибки. Помехозащищенность достигается с помощью введения избыточности, дополнительных битов. В симплексных каналах связи устраняют ошибки с помощью корректирующих кодов. В дуплексных–достаточно применения кодов, обнаруживающих ошибки. [1]

История развития помехоустойчивого кодирования началась еще с 1946г., а именно, после публикации монографии американского ученого К. Шеннона «Работы по теории информации и кибернетике».В этой работе он не показал как построить эти коды, а доказал их существование. Важно отметить, что результаты работы К. Шеннона опирались на работы советских ученых, таких как: А. Я. Хинчин, Р.Р. Варшамов и др. На сегодняшний день проблема передачи данных является особо актуальной,т.к. сбой при передаче может вызвать не только искажение сообщения в целом, но и полную потерю информации. Для этого и существуют помехоустойчивые коды, способные предотвратить потерю и искажение информации. В настоящее время существует ряд разновидностей помехоустойчивых кодов, обеспечивающих высокую достоверность при малой величине избыточности и простоте технической реализации кодирующих и декодирующих устройств. Принципиально коды могут быть использованы как для обнаружения, так и для исправления ошибок. Однако удобства построения кодирующих и декодирующих устройств определили преимущественное применение лишь некоторых из них, в частности корректирующего кода Хемминга.

Цель данной курсовой работы: Ознакомление с помехоустойчивым кодированием и изучение кода Хемминга.

Задачи:

1) Ознакомиться с видами помехоустойчивого кодирования;

2) Ознакомиться с кодом Хемминга, как с одним из видов помехоустойчивого кодирования;

3) Изучить алгоритм построения кода Хемминга.

Объект исследования: помехоустойчивое кодирование.

Предмет исследования: код Хемминга.

Данная курсовая работа состоит из титульного листа, оглавления,введения, двух глав (теоретической и практической), заключения и списка литературы.

Глава 1. Теоретические основы изучения помехоустойчивого кодирования

1.1. Виды помехоустойчивого кодирования

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

Рис. 1.Помехи и их источники

Внешние источники помех вызывают в основном импульсные помехи, а внутренние –флуктуационные. Помехи, накладываясь на видеосигнал, приводят к двум типам искажений: краевыеи дробления. Краевые искажения связаны со смещением переднего или заднего фронта импульса.Дробление связано с дроблением единого видеосигнала на некоторое количество более коротких сигналов [2].

Приведем классификацию помехоустойчивых кодов.

1) Обнаруживающие ошибки:

 блоковые:

А) Разделимые:

  • с проверкой на четность;
  • корреляционные;
  • Хэмминга;
  • БЧХ;

Б) Неразделимые:

  • с постоянным весом;
  • Грея.

2) Корректирующие коды:

Непрерывные:

А) С пороговым декодированием;

Б) По макс. правдоподобия;

В) С последовательным декодированием.

Теперь рассмотрим более подробно каждый вид кодирования.

Код с проверкой на четность.

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

В каждом пакет данных есть один бит четности, или, так называемый, паритетный бит. Этот бит устанавливается во время записи (или отправки) данных, и затем рассчитывается и сравнивается во время чтения (получения) данных. Он равен сумме по модулю 2 всех бит данных в пакете. То есть число единиц в пакете всегда будет четно. Изменение этого бита (например с 0 на 1) сообщает о возникшей ошибке.

Пример:

Начальные данные: 1111

Данные после кодирования: 11110 (1 + 1 + 1 + 1 = 0 (mod 2))

Принятые данные: 10110 (изменился второй бит)

Как мы видим, количество единиц в принятом пакете нечетно, следовательно, при передаче произошла ошибка [3].

Корреляционные коды (код с удвоением).

Элементы данного кода заменяются двумя символами, единица «1» преобразуется в 10, а ноль «0» в 01.

Вместо комбинации 1010011 передается 10011001011010. Ошибка обнаруживается в том случае, если в парных элементах будут одинаковые символы 00 или 11 (вместо 01 и 10) [2].

Код с постоянным весом.

Одним из простейших блочных неразделимых кодов является код с постоянным весом. Примером такого кода может служить семибитный телеграфный код МТК–3, в котором каждая разрешенная кодовая комбинация содержит три единицы и четыре нуля (рис.2). Весом кодовой комбинации называют число содержащихся в ней единиц. В рассматриваемом коде вес кодовых комбинаций равен трем.

Число разрешенных кодовых комбинаций в кодах с постоянным весом определяется как количество сочетаний изnсимволов поgи равно

 (1)

Где n–длина кодовой комбинации, аg – вес разрешенной кодовой комбинации. Для кода МТК-3 число разрешенных кодовых комбинаций равно. Таким образом, из общего числа комбинаций только 35 используются для передачи сообщений[4].

Рис.2. Примеры разрешенных и запрещенных комбинаций кода МТК-3

Инверсный код.

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

k

r

n

11011

11011

1101111011

11100

00011

1110000011

Прием инверсного кода осуществляется в два этапа. На первом этапе суммируются единицы в первой основной группе символов. Если число единиц четное, то контрольные символы принимаются без изменения, если нечетное, то контрольные символы инвертируются. На втором этапе контрольные символы суммируются с информационными символами по модулю два. Нулевая сумма говорит об отсутствии ошибок. При ненулевой сумме, принятая комбинация бракуется. Покажем суммирование для принятых комбинаций без ошибок (1,3) и с ошибками (2,4).

1)

11011

11011

00000

2)

11111

00100

11011

Обнаруживающие способности данного кода достаточно велики. Данный код обнаруживает практически любые ошибки, кроме редких ошибок смещения, которые одновременно происходят как среди информационных символов, так и среди соответствующих контрольных. Например, при k=5, n=10 и . Коэффициент обнаружения будет составлять [2].

Код Грея.

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

Недостатком кода Грея является его невесомость, т.е. вес единицы не определяется номером разряда. Информацию в таком виде трудно обрабатывать на ЭВМ. Декодирование кода также связано с большими затратами. Поэтому перед вводом в ЭВМ (или перед декодированием) код Грея преобразуется в простой двоичный код, который удобен для ЭВМ и легко декодируется.

Для перевода простого двоичного кода в код Грея нужно:

  1. под двоичным числом записать такое же число со сдвигом вправо на один разряд (при этом младший разряд сдвигаемого числа теряется); 
  2. произвести поразрядное сложение двух чисел по модулю 2 (четности). [5].

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

1.2.Характеристика кода Хэмминга при помехоустойчивом кодировании

В середине 40-х годов Ричард Хемминг работал в знаменитых Лабораториях Белла на счётной машине Bell Model V. Это была электромеханическая машина, использующая релейные блоки,скорость которых была очень низка: один оборот за несколько секунд. Данные вводились в машине с помощью перфокарт, и поэтому в процессе чтения часто происходили ошибки. В рабочие дни использовались специальные коды, чтобы обнаруживать и исправлять найденные ошибки, при этом оператор узнавал об ошибке по свечению лампочек, исправлял и запускал машину. В выходные дни, когда не было операторов, при возникновении ошибки машина автоматически выходила из программы и запускала другую.

Р. Хемминг часто работал в выходные дни, и все больше и больше раздражался, потому что часто был должен перегружать свою программу из-за ненадежности перфокарт. На протяжении нескольких лет он проводил много времени над построением эффективных алгоритмов исправления ошибок. В 1950 году он опубликовал способ, который на сегодняшний день мы знаем как код Хемминга.[6.].

Код Хемминга, как и любой (n,k) код, содержит k информационных и избыточных символов. Избыточная часть кода строится таким образом, чтобы при декодировании можно было бы установить не только факт наличия ошибок в принятой – комбинации, но и указать номер позиции, в которой произошла ошибка. Это достигается за счет многократной проверки принятой комбинации на четность. Каждой проверкой должны охватываться часть информационных символов и один из избыточных символов. При каждой проверке получают двоичный контрольный символ. Если результат проверки дает четное число, то контрольному символу присваивается значение 0, если нечетное число– 1. В результате всех проверок получается p-разрядное двоичное число, указывающее номер искаженного символа. Для исправления ошибки достаточно лишь изменить значение данного символа на обратное. [7]

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

 (2)

 (r – количество проверочных разрядов).

Характерной особенностью проверочной матрицы кода с является то, что ее столбцы представляют собой любые различные ненулевые комбинации длиной r.Например, при r=4 иn=5 для кода (15,11), проверочная матрица может иметь следующий вид (рис.3)

http://info.sernam.ru/archive/arch.php?path=../htm/book_codb/files.book&file=codb_28.files/image4.gif

Рис.3. Проверочная матрица

Перестановкой столбцов, содержащих одну единицу, данную матрицу можно привести к виду(рис.4)

http://info.sernam.ru/archive/arch.php?path=../htm/book_codb/files.book&file=codb_28.files/image5.gif

Рис. 4.Измененная матрица

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

http://info.sernam.ru/archive/arch.php?path=../htm/book_codb/files.book&file=codb_28.files/image6.gif

Рис.5. Система проверочных уравнений

где  -проверочные разряды;  -информационные разряды

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

Операция кодирования может выполняться в два этапа. На первом этапе определяется кодовая комбинация с использованием матрицы H, соответствующей коду с  на втором — добавляется один проверочный разряд, в котором записывается результат суммирования по модулю два всех разрядов кодового слова, полученного на первом этапе. Операция декодирования также состоит из двух этапов. На первом вычисляется синдром, соответствующий коду на втором — проверяется последнее проверочное соотношение.[8]

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

1.3.Алгоритмы использования кода Хэмминга для нахождения ошибок

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

Рассмотрим алгоритм построения кода для исправления одиночной ошибки.

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

и (4)

(5)

Вычисляют основные параметры кода m и n.

2.Определяем рабочие и контрольные позиции кодовой комбинации. Номера контрольных позиций определяются по закону , где i= 1,2,3,…т.е. они равны 1,2,4,8,16,…а остальные позиции являются рабочими.

3. Определяем значения контрольных разрядов (0 или 1) при помощи многократных проверок кодовой комбинации на четность. Количество проверок равно . В каждую проверку включается один контрольный и определенные проверочные биты. Если результат проверки дает четное число, то контрольному биту присваивается значение – 0, в противном случае – 1. Номера информационных бит, включаемых в каждую проверку, определяются по двоичному коду натуральных n -чисел разрядностью – m (табл. 2, для m = 4) или при помощи проверочной матрицы H(mn), столбцы которой представляют запись в двоичной системе всех целых чисел от 1 до  перечисленных в возрастающем порядке.

Количество разрядов m – определяет количество проверок.

В первую проверку включают коэффициенты, содержащие 1 в младшем (первом) разряде, т.е. b1,b3, b5 и т.д.

Во вторую проверку включают коэффициенты, содержащие 1 во втором разряде, т.е. b2, b3, b6 и т.д.

В третью проверку –коэффициенты которые содержат 1 в третьем разряде и т.д.

Таблица 2

Десятичные числа (номера разрядов кодовой комбинации)

Двоичные числа и их разряды

3

21

1

0

01

2

0

10

3

0

11

4

1

00

5

1

01

6

1

10

7

1

11

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

Для исправления ошибки необходимо проинвертировать бит в ошибочной позиции. Для исправления одиночной ошибки и обнаружения двойной используют дополнительную проверку на четность. Если при исправлении ошибки контроль на четность фиксирует ошибку, то значит в кодовой комбинации две ошибки.[9]

Вывод к главе 1: Таким образом, мы узнали, что такое помехоустойчивость, помехоустойчивое кодирование, ознакомились с видами помехоустойчивого кодирования. Затем рассмотрели код Хемминга, изучили алгоритм построения кода Хемминга. При построении кода важно знать, что код Хемминга ищет и исправляет одиночную ошибку, но двойную ошибку. В итоге, изучив теоретическую часть, мы выяснили, какие существуют виды помехоустойчивого кодирования. Ознакомились подробнее с кодом Хемминга, изучили его алгоритм кодирования.

Глава 2. Практические основы кода Хемминга

2.1. Примеры использования кода Хемминга для нахождения одной ошибки

Существует множество различных примеров для нахождения ошибок при помощи кода Хемминга.

Пример 1. Пользуясь кодом Хэмминга найти ошибку в сообщении.

1) 1111 1011 0010 1100 1101 1100 110

РЕШЕНИЕ. Сообщение состоит из 27 символов, из них 22 информационные, а 5 – контрольные. Это разряды b1 = 1, b2 = 1, b4 = 1, b8 = 1, b16=0. Вычислим число J для обнаружения ошибки: Введем для удобства следующие множества:

V1 = 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27… – все числа у которых первый разрядравен 1

V2 = 2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27… – все числа, у которых второй разрядравен 1

V3 = 4, 5, 6, 7, 12, 13, 14, 15, 20, 21, 22, 23 … – все числа, у которых третий разряд равен1

V4 = 8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27 … – все числа, у которых четвертый разрядравен 1,

V5 = 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 … – все числа, у которых пятый разрядравен 1.

Разряды числа J определяются следующим образом:

j1 = b1 +b3+b5+b7+b9+b11+b13+b15+b17+b19+b21+b23+b25+b27 = 1

j2=b2+b3+b6+b7+b10+b11+b14+b15+b18+b19+b22+b23+b26+b27= 0

j3 = b4+b5+b6+b7 +b12+b13+ b14+ b15+ b20 +b21+b22+b23 = 0

j4 =b9+b10+b11+b12+b13+b14+b15+b24+b25+b26+b27 = 0,

j5 = b16+ b17+b18+b19+b20+b21+b22+b23+b24+b25+b26+b27 = 1

то есть число J= = .

Таким образом, ошибка произошла в семнадцатом разряде переданного числа.[10]. В этом примере мы рассмотрели, как можно обнаружить одиночную ошибку. Далее мы проанализируем пример, как можно найти и исправить эту ошибку.

Пример 2.

Построить код Хемминга для передачи сообщений в виде последовательности десятичных цифр, представленных в виде 4 –х разрядных двоичных слов. Показать процесс кодирования, декодирования и исправления одиночной ошибки на примере информационного слова 0101.

Решение:

1. По заданной длине информационного слова (k = 4 ), определим количество контрольных разрядов m, используя соотношение:

,

при этом  т. е. получили (7, 4) -код.

2. Определяем номера рабочих и контрольных позиции кодовой комбинации. Номера контрольных позиций выбираем по закону .

Для рассматриваемой задачи (при n = 7 ) номера контрольных позиций равны 1, 2, 4. При этом кодовая комбинация имеет вид:

b1 b2 b3 b4 b5 b6 b7

k1 k2 0 k2 1 0 1

3. Определяем значения контрольных разрядов (0 или 1), используя проверочную матрицу (рис.3).

Первая проверка:

k1b3 b5 b7 = k1 011 будет четной при k1 = 0.

Вторая проверка:

k2 b3 b6 b7 = k2 001 будет четной при k2 = 1.

Третья проверка:

k3 b5 b6 b7 = k3 101 будет четной при k3 = 0.

1 2 3 4 5 6 7

Передаваемая кодовая комбинация: 0100101

Допустим принято: 0110101

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

1) k1= b3 b5 b7 = 0111 = 1.

2)k2=b3 b6 b7 = 1101 = 1.

3) k3 =b5 b6 b7 = 0101 =0.

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

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

2.2. Примеры использования кода Хемминга для нахождения двоичной ошибки

Для обнаружения двойной ошибки следует только добавить еще один проверочный разряд.

Пример 1:

Принята кодовая комбинация С = 101000001001, произошло

искажение 2-го и 5-го разрядов. Обнаружить ошибки.

Решение.

Значения проверок равны:

k1= b1 b3 b5 b7 b9 b11 = 110010= 1

k2= b2 b3 b6 b7 b10 b11= 010000=1

k3=b4 b5 b6 b7 b12= 00001=1

k4= b8 b9 b10 b11 b12= 01001=0

Тогда контрольное число (синдром) ошибкиравен 0111.

Таким образом, при наличии двукратной ошибки декодирование дает

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

во 2-м и 5-м разрядах. В этом случае составляется расширенный код

Хэмминга, путем добавления одного проверочного символа.

Пример 2 :

Передана кодовая комбинация «01001011», закодированная кодом Хемминга с d = 4. Показать процесс выявления ошибки.

Решение:

Принята комбинация «01001111»:

а) проверка на общую четность указывает на наличие ошибки (число единиц четное);

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

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

2. Принята комбинация «01101111»:

а) проверка на общую четность показывает, что ошибка не фиксируется;

б) частные проверки (последний символ отбрасывается)

Первая проверка 0 1 1 1 = 1

Вторая проверка 1 1 1 1 = 0

Третья проверка  0 1 1 1 = 1

Таким образом, частные проверки фиксируют наличие ошибки. Она, якобы, имела место на пятой позиции. Но так как при этом первая проверка на общую четность ошибки не зафиксировала, то значит, имела место двойная ошибка. Исправить двойную ошибку такой код не может [14].

Вывод к главе 2: Таким образом, мы показали, как работает код Хемминга на практике. Мы видим, что при одиночной ошибке  ее можно исправить, но для этого нам нужно знать, сколько потребуется контрольных разрядов, а двойную ошибку можно лишь обнаружить.

ЗАКЛЮЧЕНИЕ

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

Список литературы

  1. Вернер М. Основы кодирования[Текст].– М.: Техносфера, 2004. – 288 с.  
  2. Помехоустойчивое кодирование [Электронный ресурс]. – Режим доступа:https://clck.ru/9cWsc,свободный. Дата обращения: 27.11.2015.
  3. Помехоустойчивое кодирование [Электронный ресурс]. – Режим доступа:http://habrahabr.ru/post/111336/, свободный. Дата обращения: 05.12.2015.
  4. Файловый архив для студентов. Лекция: основные понятия кодирования в ЦСПИ [Электронный ресурс]. – Режим доступа: http://www.studfiles.ru/preview/4087325/,свободный. Дата обращения: 27.11.2015.
  5. Лекция «Простейшие коды» [Электронный ресурс]. – Режим доступа: http://davaiknam.ru/text/lekciya-3-kodirovanie-informacii-prostejshie-kodi, свободный. Дата обращения: 27.11.2015.
  6. Академик [Электронный ресурс] – Режим доступа: http://dic.academic.ru/dic.nsf/ruwiki/177544, свободный. Дата обращения: 27.11.2015
  7. Кузьмин И.В.Основы теории информации и кодирования [Текст]. – Киев,1986. – 237 с.
  8.  Научная библиотека. Код Хемминга [Электронный ресурс]. – Режим доступа: http://info.sernam.ru/book_codb.php?id=28, свободный. Дата обращения: 05.12.2015
  9. Статья корректирующие коды [Электронный ресурс]. – Режим доступа: http://referatwork.ru/refs/source/ref-11094.html#Текст работы, свободный. Дата обращения: 05.12.2015
  10. МатБюро- решение задач по высшей математике [Электронный ресурс]. – Режим доступа: http://www.matburo.ru/Examples/Files/Hem2.pdf, свободный. Дата обращения: 06.12.2015.
  11. Блейхут Р. Теория и практика кодов, контролирующих ошибки. [Текст]. – Москва, 1986г. –576 с.
  12. Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования – методы, алгоритмы, применение. [Текст]. – Москва, 2005г.–320 с.
  13. Р.Хемминг Теория кодирования и теория информации. / Перевод с английского С.Гальфанда. // [Текст]. – Москва, 1983г. – 176 с.
  14. Портал студентов «Седьмой бит» [Электронный ресурс]. – Режим доступа: http://www.itmo.ru/work/253/page4, открытый. Дата обращения: 20.12.2015.

Исследование процесса исправления ошибок избыточными кодами

Автор:   •  Декабрь 14, 2018  •  Курсовая работа  •  7,899 Слов (32 Страниц)  •  538 Просмотры

Страница 1 из 32

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное

учреждение высшего образования

Кубанский государственный технологический университет

(ФГБОУ ВО «КубГТУ»)

Институт компьютерных систем и информационной безопасности

Кафедра Информационных систем и программирования

КУРСОВАЯ РАБОТА

по дисциплине «Теория информации и сигналов»

на тему: «Исследование процесса исправления ошибок избыточными кодами»

Выполнил студент группы 15-КБ-ИВ1 Мишин Георгий Михайлович

Допущен к защите_____________________________________________

Руководители работы:  _______________д.т.н., профессор Ключко В. И.

                                                                 (расшифровка подписи)                   

                                          ______________ст. преподаватель Кушнир Н.В.

                                                                 (расшифровка подписи)                   

Нормоконтролер                                                ст. преподаватель Кушнир Н.В.

                                                                 (расшифровка подписи)                   

Защищен _____________________     Оценка                                         

                                                 (подпись, дата)

Члены комиссии:         к.п.н., доцент  Романов Д.А.                                                               (подпись, дата, расшифровка подписи)

                                к.т.н., ст. преп.Тотухов К.Е.                                

                                                                         (подпись, дата, расшифровка подписи)

                                          ст. преп. Носова Ю.С.                                

                                                                         (подпись, дата, расшифровка подписи)

Краснодар

2017[pic 1]

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное

учреждение высшего образования

Кубанский государственный технологический университет

 (ФГБОУ ВО «КубГТУ»)

Институт компьютерных систем и информационной безопасности

Кафедра Информационных систем и программирования

                                                                              УТВЕРЖДАЮ

                                Зав. кафедрой ИСП

д.т.н., профессор Видовский Л.А.

______________

            (подпись, ФИО, звание, степень)

                   «___»____________2017 г.

З А Д А Н И Е

на курсовую работу

Студенту Мишину Георгию Михайловичу группы 15-КБ-ИВ1  3 курса института компьютерных систем и информационной безопасности

направления  09.03.01 Информатика и вычислительная техника                                

Тема работы: «Исследование процесса исправления ошибок избыточными кодами»

Содержание задания: __________________________________________

____________________________________________________________

Объем работы:  ___ стр.

а) пояснительная записка к работе;

б) программа в среде разработки Visual Studio C# 2017

Рекомендуемая литература:

1. Ключко В.И., Власенко А.В., Кушнир Н.В., Кушнир А.В. Теория информации и сигналов: учеб. пособие / Кубан. гос. технол. ун-т. Краснодар: Изд. ФГБОУ ВПО «КубГТУ», 2014.-132 с.

Доступно только на Essays.club

Предложите, как улучшить StudyLib

(Для жалоб на нарушения авторских прав, используйте

другую форму
)

Ваш е-мэйл

Заполните, если хотите получить ответ

Оцените наш проект

1

2

3

4

5

Министерство образования 
и науки РФ

Федеральное государственное 
бюджетное образовательное учреждение

Высшего профессионального 
образования

Математический факультет

Специальность «Компьютерная 
безопасность»

Курсовая работа на тему:

«Коды, исправляющие
дефекты»

Автор:

Мойсеенко С. С.

Научный руководитель:

Семыкина Н. А.

Тверь 2013

Оглавление

Принципы помехоустойчивого кодирования 3

Декодирование помехоустойчивых кодов 4

Способ сравнения. 4

Синдромный способ 4

Мажоритарное декодирование 4

Классификация корректирующих кодов 5

Код с постоянным весом 5

Код с четным числом единиц 6

Код Хэмминга 6

Матричное представление систематических 
кодов 10

Декодирование циклических кодов 11

Список
использованной литературы: 12

Принципы помехоустойчивого кодирования

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

Возможность помехоустойчивого кодирования 
осуществляется на основании теоремы,
сформулированной Шенноном, согласно
ей:

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

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

Рисунок 1 — Случаи приема закодированного
сообщения

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

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

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

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

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

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

Декодирование помехоустойчивых
кодов

Декодирование — это процесс перехода от вторичного
отображения сообщения к первичному алфавиту.

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

Способ 
сравнения.

Этот способ основан на том, что, принятая
кодовая комбинация сравнивается со всеми
разрешенными комбинациями, которые заранее
известны на приеме. Если принятая комбинация
не совпадает ни с одной из разрешенных,
выносится решение о принятии запрещенной
комбинации. Недостатком данного способа
является громоздкость и необходимость
большого времени для декодирования в
случае применения многоразрядных кодов.
Данный способ используется в кодах с
обнаружением ошибок.

Синдромный 
способ 

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

Мажоритарное 
декодирование 

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

Классификация корректирующих
кодов

Классификация корректирующих кодов 
представлена схемой (рисунок 2)

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

Рисунок 2 — Классификация
корректирующих кодов

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

Неразделимые — это коды, в кодовых комбинациях
которых нельзя выделить проверочные
разряды.

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

Систематические (линейные) — это коды, в которых проверочные символы
определяются как линейные комбинации
информационных символов, в таких кодах
суммирование по модулю два двух разрешенных
кодовых комбинаций также дает разрешенную
комбинацию. В несистематических кодах
эти условия не выполняются.

Код с постоянным весом

Данный код относится к классу
блочных не разделимых кодов. В нем 
все разрешенные кодовые комбинации
имеют одинаковый вес. Примером кода
с постоянным весом является Международный 
телеграфный код МТК-3. В этом коде
все разрешенные кодовые комбинации
имеют вес равный трем, разрядность 
же комбинаций n=7. Таким образом, из
128 комбинаций (N= 2= 128) разрешенными являются
Nа = 35 (именно столько комбинаций из всех
имеют W=3). При декодировании кодовых комбинаций
осуществляется вычисление веса кодовой
комбинации и если W≠3, то выносится решение
об ошибке. Например, из принятых комбинаций
0110010, 1010010, 1000111 ошибочной является третья,
т. к. W=4. Данный код способен обнаруживать
все ошибки нечетной кратности и часть
ошибок четной кратности. Не обнаруживаются
только ошибки смещения, при
которых вес комбинации не изменяется,
например, передавалась комбинация 1001001,
а принята 1010001 (вес комбинации не изменился
W=3). Код МТК-3 способен только обнаруживать
ошибки и не способен их исправлять. При
обнаружении ошибки кодовая комбинация
не используется для дальнейшей обработки,
а на передающую сторону отправляется
запрос о повторной передаче данной комбинации.
Поэтому данный код используется в системах
передачи информации с обратной связью.

Код с четным числом единиц

Данный код относится к классу
блочных, разделимых, систематических 
кодов. В нем все разрешенные 
кодовые комбинации имеют четное
число единиц. Это достигается 
введением в кодовую комбинацию
одного проверочного символа, который 
равен единице если количество единиц
в информационной комбинации нечетное
и нулю, если четное. Например:

При декодировании осуществляется
поразрядное суммирование по модулю
два всех элементов принятой кодовой 
комбинации и если результат равен 
единице, то принята комбинация с 
ошибкой, если результат равен нулю,
то принята разрешенная комбинация. Например:

101101 = 1 + 0 + 1 + 1 + 0 + 1 = 0 — разрешенная 
комбинация

101111 = 1 + 0 + 1 + 1 + 1 + 1 = 1 — запрещенная 
комбинация.

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

Код Хэмминга

Код Хэмминга относится к классу
блочных, разделимых, систематических 
кодов. Кодовое расстояние данного 
кода d0=3 или d0=4.

Блочные систематические коды характеризуются 
разрядностью кодовой комбинации n
и количеством информационных разрядов
в этой комбинации k остальные разряды 
являются проверочными (r):

r = n — k.

Данные коды обозначаются как (n,k).

Рассмотрим код Хэмминга (7,4). В 
данном коде каждая комбинация имеет 7
разрядов, из которых 4 являются информационными,

При кодировании формируется кодовая 
комбинация вида:

ааааbbb3

где а— информационные символы;

b— проверочные символы.

В данном коде проверочные элементы
bнаходятся через линейные комбинации
информационных символов ai, причем, для каждого проверочного
символа определяется свое правило. Для
определения правил запишем таблицу синдромов
кода (таблица 1), в которой записываются
все возможные синдромы, причем, синдромы
имеющие в своем составе одну единицу
соответствуют ошибкам в проверочных
символах:

  • синдром 100 соответствует ошибке в проверочном символе b1;
  • синдром 010 соответствует ошибке в проверочном символе b2;
  • синдром 001 соответствует ошибке в проверочном символе b3.

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

Таблица 1 — Синдромы кода Хэмминга (7;4)

Число

синдрома

Элементы синдрома

Элементы кодовой

комбинации

С1

С2

С3

1

0

0

1

b3

2

0

1

0

b2

3

0

1

1

a1

4

1

0

0

b1

5

1

0

1

a2

6

1

1

0

a3

7

1

1

1

a4

 

Определим правило формирования элемента
b3. Как следует из таблицы, ошибке
в данном символе соответствует единица
в младшем разряде синдрома С4. Поэтому,
из таблицы, необходимо отобрать те элементы
ау которых, при возникновении
ошибки, появляется единица в младшем
разряде. Наличие единиц в младшем разряде,
кроме b3,соответствует элементам a1, aи a4. Просуммировав эти информационные
элементы получим правило формирования
проверочного символа:

b= a+    a +  a4

Аналогично определяем правила 
для bи b1:

b= a+  a+ a4

b= a+  a+ a4

Пример 1: необходимо сформировать кодовую
комбинацию кода Хэмминга (7,4) соответствующую
информационным символам 1101.

В соответствии с проверочной матрицей
определяем bi:

b= 1 +  0 + 1 = 0; b= 1 + 0 + 1=1; b= 1 + 1 + 1 = 1.

Добавляем проверочные символы 
к информационным и получаем кодовую
комбинацию:

Biр = 1101001.

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

Аi(х) = аn-1xn-1 + аn-2xn-2 +…+ а0x0

где an-1, … коэффициенты полинома принимающие
значения 0 или 1. Например, комбинации
1001011 соответствует полином

Аi(х) = 1*x+ 0*x+ 0*x+ 1*x+ 0*x+ 1*x+1*x= x+ x+ x+1.

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

Разрешенные кодовые комбинации циклических 
кодов обладают тем свойством, что 
все они делятся без остатка 
на образующий или порождающий полином G(х). Порождающий
полином вычисляется с применением ЭВМ.
В приложении приведена таблица синдромов.

Этапы формирования разрешенной 
кодовой комбинации разделимого 
циклического кода Biр(х).

1.  Информационная кодовая комбинация
Ai преобразуется из двоичной формы в полиномиальную
(Ai(x)).

2.  Полином Ai(x) умножается на хr,

Ai(x)*xr

где r количество проверочных разрядов:

r = n — k.

3.  Вычисляется остаток от деления R(x)
полученного произведения на порождающий
полином:

R(x) = Ai(x)*xr/G(x).

4.  Остаток от деления (проверочные разряды)
прибавляется к информационным разрядам:

Biр(x) = Ai(x)*x+ R(x).

5.  Кодовая комбинация Bip(x) преобразуется
из полиномиальной формы в двоичную (Bip).

Пример 2. Необходимо сформировать кодовую
комбинацию циклического кода (7,4) с порождающим
полиномом G(x)=х3+х+1, соответствующую информационной
комбинации 0110.

1. Преобразуем комбинацию в полиномиальную 
форму:

Ai = 0110 = х+ х = Ai(x).

2. Находим количество проверочных 
символов и умножаем  полученный
полином на xr:

r = n – k = 7 – 4 =3

Ai(x)*x= (х+ х)* x= х+ х4

3. Определяем остаток от деления Ai(x)*xна порождающий полином, деление
осуществляется до тех пор пока наивысшая
степень делимого не станет меньше наивысшей
степени делителя:

R(x) = Ai(x)*xr/G(x)

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

Biр(x) = Ai(x)*xr+ R(x) = х+ х+ 1= 0110001.

5. Преобразуем кодовую комбинацию 
из полиномиальной формы в двоичную:

Biр(x) = х+ х+ 1 = 0110001 = Biр

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

Формирование разрешенной 
кодовой комбинации неразделимого 
циклического кода.

Формирование данных комбинаций осуществляется
умножением информационной комбинации
на порождающий полином:

Biр(x) = Ai(x)*G(x).

Причем умножение можно производить 
в двоичной форме.

Пример 3: необходимо сформировать кодовую
комбинацию неразделимого циклического
кода используя данные примера 2, т. е. G(x)
= х3+х+1, Ai(x) = 0110, код (7,4).

1. Переводим комбинацию из двоичной 
формы в полиномиальную:

Ai = 0110 = х2+х = Ai(x)

2. Осуществляем умножение Ai(x)*G(x)

3. Переводим кодовую комбинацию 
из полиномиальной форы в двоичную:

Bip(x) = х543+х = 0111010 = Bip

В этой комбинации невозможно выделить
информационную и проверочную части.

Матричное представление 
систематических кодов

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

Поскольку систематические коды обладают
тем свойством, что сумма двух
разрешенных комбинаций по модулю два 
дают также разрешенную комбинацию,
то для формирования комбинаций таких 
кодов используют производящую матрицу Gn,k. С помощью производящей матрицы можно
получить любую кодовую комбинацию кода
путем суммирования по модулю два строк
матрицы в различных комбинациях. Для
получения данной матрицы в нее заносятся
исходные комбинации, которые полностью
определяют систематический код. Исходные
комбинации определяются исходя из условий:

1)      все исходные комбинации должны быть
различны;

2)      нулевая комбинация не должна входить
в число исходных комбинаций;

3)      каждая исходная комбинация должна
иметь вес не менее кодового расстояния;

4)      между любыми двумя исходными комбинациями
расстояние Хэмминга должно быть не меньше
кодового расстояния.

Производящая матрица имеет 
вид:

Производящая подматрица имеет k строк 
и n столбцов. Она образована двумя 
подматрицами: информационной (включает
элементы аij) и проверочной (включает
элементы bij). Информационная матрица имеет
размеры k x k, а проверочная — r x k.

В качестве информационной подматрицы
удобно брать единичную матрицу Ekk:

Проверочная подматрица Gr,k строится путем подбора различных
r-разрядных комбинаций, удовлетворяющих
следующим правилам:

1)      в каждой строке подматрицы количество
единиц должно быть не менее d0-1;

2)      сумма по модулю два двух любых строк
должна иметь не менее d0-2 единицы;

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

Декодирование циклических 
кодов

При декодировании таких кодов
(разделимых и неразделимых) используется
Синдромный способ. Вычисление синдрома
осуществляется в три этапа:

1. принятая комбинация Bip’ преобразуется
их двоичной формы в полиномиальную (Bip(x));

2. осуществляется деление Bip(x) на
порождающий полином G(x) в результате чего
определяется синдром ошибки C(x) (остаток
от деления);

3. синдром ошибки преобразуется 
из полиномиальной формы в 
двоичную;

4. По проверочной матрице или 
таблице синдромов определяется 
ошибочный разряд;

5. Ошибочный разряд в Bip’(x) инвертируется;

6. Исправленная комбинация преобразуется 
из полиномиальной формы в 
двоичную Bip.

делением принятой кодовой комбинации
Biр’(x) на порождающий полином G(x), который
заранее известен на приеме. Остаток от
деления и является синдромом ошибки С(х).

 Список 
использованной литературы:

  1. Блейхут Р. «Теория и практика кодов, контролирующих ошибки». — М.: Мир, 1986.
  2. Мак-Вильямс Ф. Дж., Слоэн Н. Дж. А. «Теория кодов, исправляющих ошибки». М.: Радио и связь, 1979.
  3. Морелос-Сарагоса Р. «Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение»— М.: Техносфера, 2006.
  4. http://ru.wikibooks.org/wiki/%D0%9F%D0%BE%D0%BC%D0%B5%D1%85%D0%BE%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D0%BE%D0%B5_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
  5. http://www.studfiles.ru/dir/cat32/subj1320/file13732/view140202/page5.html
  6. https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BE%D0%BA

Министерство образования и науки РФ Пермский национальный исследовательский политехнический университет

Кафедра «Автоматика и телемеханика»

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

для выполнения курсовой работы

по дисциплине

«ОБЩАЯ ТЕОРИЯ СВЯЗИ», часть II

для студентов заочной и дистанционной форм обучения по направлению 210700 «Инфокоммуникационные технологии и

системы связи», профиль 21070004.62 «Сети связи и системы коммутации»

Пермь, 2013

2

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

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

1.Постановка задачи

Впроцессе выполнения курсовой работы необходимо решить следующие задачи:

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

2.По заданному количеству дискретных сообщений определить длину информационной части неизбыточного кода m.

3.По верхней границе Хэмминга определить длину избыточного

кода n, перейти к коду с четным dmin и рассчитать вероятности правильной передачи, трансформации и стирания сообщения.

4.Построить порождающую матрицу G (проверочную матрицу H) и определить операторы кодирования. Рассчитать операторы кодирования для заданного значения информационной части.

5.Построить функциональную схему кодирующего устройства ГСК (кодера ГСК).

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

7.Произвести вычисление синдромов для заданной кодовой комбинации для следующих ситуаций:

безошибочная передача,

передача с однократной ошибкой,

передача с двукратной ошибкой,

передача с трехкратной ошибкой.

8.Построить функциональную схему декодирующего устройства ГСК (декодера ГСК).

9.Сделать выводы о проделанной работе.

2. Краткая теория

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

3

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

2.1. Принципы построения корректирующих кодов

Общий принцип построения корректирующих кодов достаточно прост. Из общего числа М0 = 2m возможных m-разрядных двоичных кодовых комбинаций используются для передачи дискретных сообщений не все, а только необходимое количество Мр (естественно, Мр < М0). Используемые кодовые комбинации называются разрешенными (рабочими). Остальные (М0 Мр) комбинаций считаются запрещенными, т. е. они не могут передаваться по каналу связи, и их появление на приемном конце свидетельствует о наличии ошибок. По определению академика А.А. Харкевича, корректирующим кодом является код, удовлетворяющий единственному условию: Мр < М0. Действительно, если имеется хотя бы одна запрещенная кодовая комбинация, то возникает принципиальная возможность обнаружения (или даже исправления) ошибок передачи.

Таким образом, любой корректирующий код является кодом с избыточностью (имеются лишние, неиспользуемые кодовые комбинации). Для описания корректирующего кода вводятся следующие параметры:

Корректирующая способность кода определяется кратностью об-

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

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

1 0 1 1 0 0

1 1 0 1 1 0

————-

0 1 1 0 1 0

не совпадают в трех разрядах (помечены наклоном и подчеркиванием) и поэтому расстояние Хэмминга dij = 3. Математически расстояние Хэмминга вычисляется как число единиц в сумме по модулю два ( ) этих кодовых комбинаций, что представляет собой вес кодовой комбинации их суммы W.

Минимальное кодовое расстояние dmin– это минимальное расстоя-

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

4

среди них минимальное. Это и будет кодовое расстояние dmin = min dij, которое полностью характеризует корректирующую способность кода.

Относительная скорость кода Rk показывает относительное число разрешенных кодовых комбинаций в коде и вычисляется по формуле

Rk = log2 Мр / log2 М0

Величина Xk = 1 – Rk является коэффициентом избыточности ко-

да.

При введении избыточности в первичный код U, содержащий m ин-

формационных символов a1, a2, … , am, добавляются k избыточных сим-

волов c1, c2, … , ck. Таким образом, кодовый вектор V, направляемый в линию связи, содержит m информационных и k избыточных символов. Общая длина кодовой комбинации n определяется по формуле

n = m + k.

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

U(m)

V(n=m+k)

V’(n)

Декодер

U(m)

Кодер

избыточного

избыточного

кода

кода

ξ

Рис. 1. Структурная схема системы передачи дискретной информации

Введение избыточности позволяет на приемной стороне произвести исправление или обнаружение ошибки. При этом возможны три состояния приема сообщения:

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

стирание – обнаружение ошибки и удаление сообщения,

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

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

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

5

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

dmin r + 1.

Декодирование с исправлением ошибок. В кодах с исправлением ошибок предъявляются более жесткие требования к расстоянию между разрешенными кодовыми комбинациями. Исправление ошибок возможно также только в том случае, когда переданная разрешенная кодовая комбинация переходит в запрещенную. Решение о том, какая кодовая комбинация передавалась, производится в декодере на основании сравнения принятой запрещенной комбинации со всеми разрешенными. Принятая кодовая комбинация отождествляется с той из разрешенных, на которую она больше всего похожа, т. е. с той, от которой она отличается меньшим числом элементов. Согласно этому правилу, для исправления ошибок кратностью s необходимо, чтобы запрещенная кодовая комбинация, получаемая при s-кратных ошибках, оставалась ближе к истинной, чем к любой другой разрешенной комбинации. Это выполняется при условии

dmin ≥ 2s + 1.

Декодирование с исправлением и обнаружением ошибок. Для то-

го чтобы избыточный код исправлял ошибки кратностью не более s и обнаруживал ошибки кратностью не более r (r > s), минимальное кодовое расстояние должно определиться по формуле:

dmin s + r + 1.

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

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

Для кода, исправляющего ошибки кратности не более s:

s

n

Pi (1P)

ni

,

Pпр =

i=0

i

Pтр =1 Pпр.

(1)

6

Для кода, исправляющего ошибки кратности не более s и обнаруживающего ошибки кратностью не более r (r > s):

s

n

ni

,

Pпр =

Pi (1P)

i=0

i

r

n

Pi (1P)

ni

,

Pст =

i=s+1 i

Pтр =1 Pпр Pст.

(2)

Примечания.

1.Р – вероятность ошибки в одном символе.

2.Используется математическая модель биноминального распределения ошибок в канале связи.

Корректирующая способность кода должна обеспечивать вероятность трансформации сообщения не больше допустимой : Ртр <= Ртр.доп.

2.2. Построение групповых систематических кодов

Одним из наиболее популярных реализаций корректирующих кодов является групповой систематический код (ГСК). Он относится к систематическим вследствие того, что имеет явно выраженные информационные и избыточные части. ГСК представляется в форме (n,m,d), где

n – общая длина кодового вектора,

m – длина информационной части,

d – минимальное кодовое расстояние.

Исходные данные для расчета параметров кода:

m – длина информационной части,

Р – вероятность ошибки в одном символе кода

Ртр.доп. – допустимое значение вероятности трансформации.

Для расчета ГСК необходимо определить k – количество избыточных символов (длину избыточной части), а также убедиться, что вероятность трансформации сообщения при применении рассчитанного кода не больше допустимого значения.

Для определения параметров кода применятся формула «Верхней границы Хемминга»:

2m

2

n

s

n

s

n!

, где E =

=

.

1

+ E

i=1 i

i=1 i!(n i)!

7

В данное выражение подставляются заданное значение m и расчет-

ное значение s, и неравенство решается относительно n.

Ниже представлен алгоритм выбора параметров группового система-

тического кода (рис. 2).

Исходные

данные

(m, Р, Ртр.доп.)

s=0, r=0

Расчет параметров

кода: n, k, dmin

Ртр<Pтр.доп.

r=s+1

Ртр<Pтр.доп.

s=s+1

Построение

порождающей матрицы G

Построение

проверочной матрицы H

Расчет избыточных символов

Рис. 2. Алгоритм выбора параметров группового систематического кода

После выбора параметров кода, удовлетворяющих требования по вероятности трансформации сообщения, необходимо определить операторы кодирования, при помощи которых вычисляются значения избыточных символов. Для этого строятся порождающая матрица G или проверочная матрица H. Матрицы строятся для кодов с нечетным dmin.

Порождающая матрица G имеет размерность [m x n] и в каноническом виде может быть определена следующим образом:

8

G = [Im P],

где Im – единичная матрица размерности [m x m], в которой по главной диагонали находятся 1, а остальные элементы 0, P – матрица размерности [m x k], состоящая из m k-разрядных ненулевых и несовпадающих друг с другом строк, вес которых не менее dmin–1:

1

0

… 0

p

p

p

11

12

1k

G =

0

1

… 0

p21

p22

p2k

… … … …

… … … …

0

0

… 1

pm1 pm2

pmk

Таким образом, порождающая матрица G представляет собой m n— разрядных линейно независимых нетривиальных векторов Vi.

V1

G = V2 .Vm

Проверочная матрица H имеет размерность [k x n] и в каноническом виде может быть определена следующим образом:

H = [PT Ik],

где Ik – единичная матрица размерности [k x k], в которой по главной диагонали находятся 1, а остальные элементы 0, PT – транспонированная матрица P размерности [k x m], состоящая из m k-разрядных ненулевых и несовпадающих друг с другом столбцов, вес которых не менее dmin–1:

p11

p21

pm1

1

0

0

p

p

22

p

m2

0

1

0

H =

12

… …

… … … …

p1k

p2k

pmk

0

0

1

Допустим, что необходимо закодировать в групповом систематическом коде m-разрядный информационный вектор U = (a1, a2, …, am). Тогда n-разрядный вектор V ГСК, соответствующий данному информационному вектору, будет иметь следующий вид:

9

V = (a1, a2, …, am, c1, c2, …, ck)

Для ГСК выполняется проверочное условие:

G · HT = 0, следовательно, и V · HT = 0.

Указанные соотношения используются для вычисления избыточных символов.

V = U · G = (a1, a2, …, am, c1, c2, …, ck), следовательно,

m

c j =ai pij , где j =1, k .

(3)

i=1

Для перехода к коду с четным dmin (к коду, исправляющему ошибку кратности s и обнаруживающему ошибку кратности r = s + 1) используются следующие формулы перехода:

dmin чет= dmin нечет +1 kчет = kнечет + 1

nчет = nнечет + 1

m = const

К кодовой комбинации добавляется дополнительный избыточный символ, который вычисляется как сумма по модулю два всех элементов информационной и избыточной части:

m

k

ck +1 =ai c j .

(4)

i=1

j=1

Вычисление данного символа вводит обобщенную проверку на четность, ибо его значение всегда добавляет вес кодового вектора до четного значения. Поэтому ошибки, не нарушающие четность кодового вектора, будут обнаружены. Указанная процедура формирования кода выполняется только для т.н. кодов Хэмминга (s = 1, dmin = 3 или s = 1, r = 2, dmin = 4).

Кодирующие устройства (кодеры) ГСК

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

10

буферный регистр информационных символов (БРИС), осущест-

вляющий прием и промежуточное хранение информационных символов ai,

комбинатор проверочных символов (КМПС), выполняющий функцию вычисления избыточных символов cj,

выходной буферный регистр (БР), формирующий вектор V.

2.3. Декодирование групповых систематических кодов

Для декодирования ГСК применяется принцип синдромного декодирования. Синдром группового кода ( S ) вычисляется декодером, как решение уравнения

V H T = S = (s1, s2 ,…, s j ,…, sk ) ,

где V ′=V e =(a1,a2,…,ai,…, an) искаженный вектор на входе декодера. Таким образом

S = e H T = (e1, e2,…, ei,…, en) hijT ,

т.е. между k-разрядным синдромом и исправляемым вектором ошибки существует однозначная зависимость. Поэтому в правильно построенном коде, исправляющем ошибки, декодер по конкретному значению синдрома однозначно вычисляет величину и место ошибки. Для двоичного канала достаточно указать только место ошибки, а затем указанный разряд проинвертировать. Из уравнений следует выражение для вычисления значения j— го разряда синдрома:

n

n

s j = ai

hTij = ei hijT , ( j =

1, k

) , s j = 0,1.

i=1

i=1

Синдром может принимать 2k значений, включая нулевое. Тогда если код исправляет ошибки кратности s и меньше, то с учетом требования однозначного соответствия между множеством различных значений син-

s

n

s

n!

дрома и множеством исправляемых ошибок E =

=

, спра-

i=0 i i=1 i!(n i)!

ведливо следующее соотношение: 2k E = s n . Таким образом, мы по- i=0 i

лучим верхнюю границу Хемминга.

Синдромное декодирование состоит из следующих этапов:

Соседние файлы в папке TKz-12_Obschaya_teoria_svyazi_chast_2

  • #

    13.03.2016201.81 Кб1715.pdf

  • #

    13.03.2016319.84 Кб1716.pdf

  • #
  • #
  • #
  • #
  • #

  • Коды исправляющие ошибки книга
  • Коды звуковых ошибок компьютера
  • Коды для проверки ошибок на тойоте
  • Коды бсод ошибок на виндовс 10
  • Кодом ошибки 43 видеокарта nvidia