Материал: ОТС Лекции 1 и 2 часть

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Линия задержки

Ск-1 Ск-2………… …С1

Рис.4.4.

Дельта - модуляция (ДМ).

При ДМ в тактовый момент времени передаётся только знак изменения функции по сравнению с предыдущим отсчётом рис.4.5. Если приращение положительное, то передаём "+1", если приращение отрицательное, то передаём "-1". На приёме принятые импульсы подаются на ФНЧ, или интегратор.

Погрешности дискретизации и квантования приблизительно такие же, как и при ИКМ. Ширина спектра сигнала ДМ приблизительно равна ширине спектра сигнала ИКМ при одинаковых качественных показателях.

x(t)

∆x

t

UДМ(t)

t

Рис.4.5.

4.7. Увеличение энтропии путём увеличение основания кода m.

Будем считать, что символы нового двоичного кода К3 (m = 2) , полученного выше, практически равновероятны и каждый символ переносит 1 дв.ед. информации. Комбинации из двух двоичных символов (бит) называют дибитами. Дибиты этого кода 00, 01, 10, 11 будем кодировать четверичным кодом К4 :

00 - закодируем символом 0; 01 - закодируем символом 1; 10 - закодируем символом 2; 11 - закодируем символом 3.

31

Каждый символ нового четверичного кода несёт уже не 1 дв.ед. информации (бит), а 2 дв.ед., т.к. при m=4 Hmax = log 4 =2 [бит/символ]. Энтропия этого кода максимальна, т.к. при равной вероятности каждого бита равновероятны и все дибиты.

Два символа двоичного кода длительностью 2Т несут, максимум, 2 бита информации (m=2; Hmax=1бит/символ; n=2; I = n * Hmax = 2бита). Один символ четверичного кода длительностью Т несет тоже 2 бита информации (m=4; Hmax=2бит/символ ; n=1; I = n * Hmax = 2 бита). Следовательно, мы в 2 раза увеличили скорость передачи информации. При этом помехоустойчивость приёма уменьшается.

5. ПОМЕХОУСТОЙЧИВОЕ КОДИРОВАНИЕ ( КАНАЛЬНОЕ КОДИРОВАНИЕ ).

5.1. Основные определения.

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

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

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

Отличие одной кодовой комбинации от другой характеризуется кодовым расстоянием. Кодовое расстояние d - это количество позиций, в которых одна

кодовая комбинация отличается от другой.

Например:

01 d =1

01

d =2

0111011

d =4

 

00

10

 

1010001

 

В пространстве

Хэмминга

расстояние

Хэмминга

d(xi,xj)

между двумя

кодовыми комбинациями, принадлежащими коду, - это вес Хэмминга, т.е. число ненулевых символов в векторе α , равном сумме ( xi xj ) по модулю 2. Очевидно, что 1d(xi,xj) n. Расстояние Хэмминга удовлетворяют аксиомам: d(xi,xj) 0; d(xj,xj) =0; d(xi,xj)= d(xj,xi) ; d(xi,xj) d(xi,xk)+d(xk,xj).

Вектор ошибки е - это двоичная комбинация длиной n, у которой символ “1” находится в тех позициях, где переданная и принятая комбинации не совпадают. Кратность ошибки равна весу Хемминга вектора е.

Исправляющая способность кода зависит от минимального кодового

расстояния данного кода. Минимальное кодовое расстояние: dmin=min i j d(xi,xj).

Для обнаружения одиночных ошибок минимальное кодовое расстояние между комбинациями должно равняться dmin=2. Например, для двоичного кода с основанием кода m=2 и длиной n=3 возможный набор разрешенных комбинаций с dmin=2 имеет вид:

32

000 ;

110

Разрешенные

111 ; 001

Запрещенные

101 ;

011

комбинации dmin=2;

010 ; 100

комбинации;

Предположим, что была передана комбинация 000. В линии связи помеха исказила второй символ и мы приняли 010. Это запрещенная комбинация, т.е. декодер обнаружит ошибку. Выигрыш в помехоустойчивости получен за счет проигрыша в скорости передачи, т.к. четыре сообщения мы могли бы передавать с помощью четырех комбинаций примитивного кода с m=2, n=2: 00, 01, 10, 11. Т.о. проигрыш по скорости передачи равен 1,5. Иными словами, к

кодовой комбинации из k информационных символов 00, 01, 10, 11 добавляется (n-k) избыточных или корректирующих символов, связанных по

определенному алгоритму с информационными символами. Количество корректирующих символов характеризует избыточность кода R:

R=(n-k)/n; (5.1)

Избыточность рассмотренного выше кода равна: R=(3-2)/3=0,33.

Для обнаружения ошибок кратности k следует использовать код, имеющий

dmin= k+1.

Для исправления одиночных ошибок следует использовать код с dmin=3. Например, для кода с m=2; n=3 можно использовать комбинации:

000

Разрешенные

001; 100;

Запрещенные

111

комбинации

010; 101;

комбинации

 

dmin=3 ;

011; 110;

 

Пусть передается комбинация 000. Допустим, что помеха исказила второй символ и мы приняли 010. Эта комбинация запрещенная, но она ближе к переданной комбинации 000 (d=1), чем к другой возможной 111 (d=2). Таким образом, мы декодируем комбинацию 010 как 000, т.е. исправляем ошибку. Выигрыш в помехоустойчивости достигается за счет еще большего проигрыша в скорости передачи, т.к. два сообщения мы могли бы передавать с помощью двух комбинаций примитивного кода с m=2, n=1: т.е. 0 и 1.Таким образом, к каждой информационной комбинации из одного символа мы добавили по 2 корректирующих (проверочных) символа.

Проигрыш по скорости передачи данного кода, исправляющего одиночные ошибки, по сравнению с примитивным или безызбыточным кодом равен 3. Избыточность этого кода равна: R=(3 -1)/3=0,667.

Для исправления ошибок с кратностью k следует использовать коды с минимальным кодовым расстоянием dmin=2k+1.

Проверка на четность.

Для обнаружения одиночных ошибок одним из наиболее совершенных способов кодирования является «проверка на четность»: к кодовой

комбинации из n информационных символов добавляется один проверочный такой, чтобы количество единиц в кодовой комбинации было четным. Например, к комбинации 0100110 добавляем проверочный символ 1, и передаем комбинацию 01001101. Одиночная ошибка делает число единиц в

33

принятой кодовой комбинации нечетным ( 3 или 5), что и обнаруживается на приеме.

5.2. Линейный двоичный блочный код.

Широко используются в технике связи линейные блочные систематические коды. Блочный код состоит из кодовых комбинаций, называемых также кодовыми словами. Длина каждого кодового слова равна n. Код - систематический, т.е. первые k символов являются информационными, а следующие (n - k) являются корректирующими. Блочный код обозначается, как код (n,k). Общее количество кодовых комбинаций равно N=mk. Если код – двоичный, то N=2k.

АЛГОРИТМ КОДИРОВАНИЯ

Рассмотрим алгоритм кодирования для двоичного блочного кода (7,3), у которого каждое слово имеет n=7 символов, из которых k=3 – информационные и (n-k)=4 – проверочные.

Алгоритм формирования кодовых комбинаций следующий: 1.Присваиваем каждому символу кода номер : a1, а2, а3, а4, а5, а6, а7.

Первые три символа (a1, а2, а3) являются информационными. Последние четыре символа - корректирующие (проверочные): а4, а5, а6, а7.

2. Составляем порождающую матрицу G. Эта матрица должна иметь n столбцов и k строк. Левая часть матрицы – это единичная матрица размером k*k. Правая часть G–это матрица-дополнение Р размером (n-k)*k:

 

1 0 0

0

1 1 1

 

G =

0 1 0 1 0 1 1

 

 

0 0 1 1

1 0 1

 

 

 

 

 

 

единичная матрица

|

матрица - дополнение

Матрица-дополнение P имеет в данном случае вид:

0 1 1 1 P = 1 0 1 1 1 1 0 1

3. Формируем кодовые комбинации. Для этого, сначала, записываем все

возможные информационные комбинации из трех символов (всего восемь комбинаций ): 000,001,010,011,100,101, 110,111.

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

(a1a2a3) на матрицу-дополнение Р. Произведение есть вектор-строка (a4a5a6a7):

(a1a2a3) * P = (а4, а5, а6, а7)

Очевидно, для заданной матрицы Р: а4 = а2 а3; a5 = a1 а3; а6 = а1 а2; а7= а1 а2 а3;

Знак означает суммирование по модулю 2, т.е. 0 0 = 0; 1 0 = 1; 0 1 = 1; 1 1 = 0.

5. Составляем кодовую таблицу разрешенных кодовых комбинаций:

34

 

Значения символов комбинации

 

 

 

 

 

 

 

 

 

 

a1

a2

a3

a4

a5

a6

a7

1

0

0

0

0

0

0

0

 

 

 

 

 

 

 

 

2

0

0

1

1

1

0

1

3

0

1

0

1

0

1

1

4

0

1

1

0

1

1

0

5

1

0

0

0

1

1

1

 

 

 

 

 

 

 

 

6

1

0

1

1

0

1

0

7

1

1

0

1

1

0

0

8

1

1

1

0

0

0

1

 

 

 

 

 

 

 

 

Для полученного кода dmin = 4, т.е. наш код может исправлять все одиночные ошибки и некоторые двойные.

АЛГОРИТМ ДЕКОДИРОВАНИЯ

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

сравнить

с каждой из

разрешенных комбинаций и принять решение о

переданном

кодовом слове.

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

1. Составляем проверочную матрицу H:

 

 

1 0 0 0

 

0 1 1

H =

1 0 1

0 1 0 0

 

1 1 0

0 0 1

0

 

1 1 1

0 0 0

1

 

 

 

 

транспонированная

 

матрица – дополнение

единичная матрица

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

 

 

 

0 1 1 1

(C1C2C3C4) = (a1, а2, а3, а4, а5, а6, а7) * HТ = (a1, а2, а3, а4, а5, а6, а7) *

 

1 0 1 1

 

 

 

1 1 0 1

 

 

 

1 0 0 0

 

 

 

0 1 0 0

 

 

 

0 0 1 0

 

 

 

0 0 0 1

 

 

C1 = а2 а3 а4 ;

C2 = а1 а3 а5;

C3 = а1 а2 а6;

C4 = а1 а2 а3 а7 .

где а1, а2.....а7 - принятый кодовый символ, возможно искаженный помехой.

35

Источник: https://studfile.net/preview/16534837/