Материал: 636_Nosov_V.I._Seti_radiodostupa_CH.1_

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

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

ненулевом состоянии.

 

 

 

 

 

 

На рисунке 3.11 представлена общая схема устройства для реализации

кода CRC с генераторным полиномом

 

 

 

 

 

 

 

n

k

 

 

 

 

P( X )

 

A X i ,

 

(3.12)

 

 

 

 

i

 

 

 

 

 

i

0

 

 

 

где A0 = An-k = 1, все остальные Ai равны 0 или 1.

 

 

 

Выход

 

 

 

 

 

 

(n бит)

 

 

 

 

 

 

Ключ 1

 

 

 

 

 

A

B

 

 

 

 

 

Вход

 

 

 

 

 

 

(k бит)

Tn-k-1

Tn-k-2

 

 

T1

T0

 

 

 

 

 

An-k-1

An-k-2

A2

A1

 

Ключ 2A

 

 

 

 

 

 

B

 

 

 

 

 

Рисунок 3.11 Общая архитектура формирования кода CRC для реализации полинома-делителя

 

 

P(X) = Xn-k + An-k-1Xn-k-1+…+ A2X2 + A1X + 1

 

 

101

4. БЛОЧНЫЕ КОДЫ

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

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

Данные k бит

Кодовое слово n бит

 

 

 

 

 

 

словоКодовое

битn

 

 

 

 

 

Кодер

 

 

 

 

 

 

 

 

 

 

 

FEC

 

 

 

 

 

 

 

 

 

 

Отправитель

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нет ошибок, или нет

 

 

 

 

 

 

Данные битk

 

 

 

 

исправимых ошибок

 

 

Декодер

 

 

 

FEC

 

 

 

 

 

 

 

 

 

 

 

 

Обнаруживаемые, но

 

 

 

 

неисправляемые

 

 

 

 

 

 

 

 

 

 

ошибки

 

 

Указание на

 

 

 

 

 

 

 

 

 

ошибку

Получатель

 

 

 

 

 

 

 

 

 

Рисунок 4.1 Пояснение принципа прямого исправления ошибок

С помощью кодера FEC (forward error correction— прямое исправление ошибок) передатчик преобразует каждый k-битовый блок данных в n-битовый блок (n > k), именуемый кодовым словом, который затем; передается (в беспроводной связи для передачи используется созданный модулятором аналоговый сигнал) [8, 16, 17, 18, 19, 20, 21]. При распространении сигнал подвергается воздействию шума, помех и замираний, что может привести к появлению ошибочных битов. Приемник демодулирует полученный сигнал, преобразовывая его в строку битов, подобную переданной, но, возможно, с

102

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

1.При отсутствии ошибочных битов вход декодера FEC идентичен исходному кодовому слову, так что на выход декодера поступает исходный блок данных;

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

3.Некоторые последовательности ошибок могут быть обнаружены декодером, но не могут быть исправлены. В этом случае декодер сообщает о наличии неисправимой ошибки;

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

Декодер FEC исправление ошибок осуществляет путем добавления избыточных данных к передаваемому сообщению.

Кодирование с коррекцией ошибок можно рассматривать как инструмент, реализующий различные компромиссы системы. На рисунке 4.2 приведен сравнительный вид двух кривых, описывающих зависимость достоверности передачи от отношения Eb/N0. Одна кривая соответствует обычной схеме модуляции без кодирования, а вторая представляет такую же модуляцию, но уже с использованием кодирования. Ниже подробно рассмотрены компромиссы, имеющие место при канальном кодировании.

Представим себе, что разработана простая, недорогая система речевой связи которая была установлена у заказчика. Система не использует кодирование с коррекцией ошибок Пусть рабочая точка системы совпадает с точкой А на рисунке 4.2 (Eb/N0 = 8 ДБ, PB = 10-2). После нескольких испытаний у заказчика появляются жалобы на качество связи, он полагает, что вероятность появления битовой ошибки должна быть не выше 10-4. Обычным способом удовлетворения требования заказчика является сдвиг рабочей точки из точки А, например, в точку В (рисунок 4.2). В то же время допустим, что, Eb/N0 равное 8 дБ, – это максимальное значение, возможное в данной системе. Из рисунка 4.2 видим что один из возможных выходов из ситуации (компромиссов) – это сдвиг рабочей точки из точки А в точку С. Иными словами, "съехав" по вертикали вниз в точку С на кривой, отвечающей кодированному случаю, можно предоставить заказчику более высокую достоверность передачи данных. Чего это будет стоить? Помимо введения новых компонентов (кодера и декодера), это приведет к увеличению скорости передачи сигнала. Избыточность позволяет приемнику

103

восстановить исходное сообщение при наличии определенного уровня

ошибок.

 

 

 

 

 

PB

 

 

 

 

Кодированная

 

 

10-2

 

A

 

 

 

 

 

F

10

-4

 

 

B

 

C

 

 

 

 

 

 

 

 

 

 

Некодированная

10-6

 

E

D

 

 

 

 

 

 

 

 

Eb/N0 (дБ)

 

 

8

9

14

 

Рис.4.2

Сравнение достоверности передачи при

 

использовании схемы с кодированием и без кодирования

Из рисунка 4.2 следует, что для частоты возникновения ошибок 10-6 использование кодирования позволяет снизить отношение Eb/N0 на 5 дБ. Это улучшение называется эффективностью кодирования. Эффективность кодирования – это снижение необходимого отношения Eb/N0 для системы с кодированием по сравнению с системой без кодирования (при одном и том же виде модуляции) для достижения заданной частоты ошибок.

На рисунке 4.2 кривые для кодированного и некодированного сигналов пересекаются (как правило, при низких значениях Eb/N0). Смысл этого пересечения (порога) в том, что у всех систем кодирования имеется ограниченная способность к коррекции ошибок. Если в блоке имеется больше ошибок, чем способен исправить код, система будет работать плохо. Представим себе, что значение Eb/N0 снижается непрерывно. Что мы увидим на выходе демодулятора? Демодулятор будет допускать все больше и больше ошибок. Следовательно, такое постепенное уменьшение Eb/N0 должно, в конце концов, создать пороговую ситуацию, когда декодер будет переполнен ошибками. При достижении этого порога снижение производительности можно объяснить поглощением энергии избыточными битами, которые не

104

дают никакого выигрыша. Необходимо отметить, что существует класс мощных кодов, называемых турбокодами (turbo code), которые позволяют повысить надежность передачи при низких значениях Eb/N0. У турбокодов точка пересечения графиков находится значительно ниже, чем у других кодов.

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

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

4.1 Принципы блочных кодов

Сначала определим термины, которые будут использоваться при рассмотрении блочных кодов. Расстоянием Хэмминга (Hamming distance) d(v1, v2) между двумя п-битовыми двоичными последовательностями v1 и v2 называют число несовпадающих разрядов v1 и v2. Haпример, если

v1 = 011011, v2= 110001,

то

d(v1, v2) = 3.

Рассмотрим теперь метод блочного кодирования с целью коррекции ошибок. Пусть требуется передать определенное количество k-битовых блоков данных. Вместо передачи каждого блока как последовательности k бит, преобразуем каждую k -битовую последовательность в уникальное n- битовое кодовое слово. Рассмотрим эти преобразования на примере для k = 2 и п = 5. имеем следующее присваивание:

Блок данных

Кодовое слово

00

00000

01

00111

10

11001

11

11110

Предположим, что кодовое слово было получено на приемной стороне в виде последовательности 00100. Поскольку эта последовательность не

105

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