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

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

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

n

PM

j t 1

n

p j (1 p)n j .

(3.6)

j

 

 

В примере на рисунке 3.3, б код может исправить все однобитовые ошибки (t= 1) в прямоугольном блоке стоящем из п = 36 бит. Следовательно, суммирование в уравнении (3.6) начинается с j = 2

36

PM

j 2

36

p j (1 p)36 j .

(3.7)

j

 

 

При достаточно малой вероятности ошибки приема символа p, наибольший вклад дает первое слагаемое суммы в (3.7). Следовательно, для примера с прямоугольным кодом (36, 25) можно записать следующее

P

36

p2 (1 p)34.

(3.8)

M

2

 

 

 

 

 

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

3.2 Маскирование ошибок

Если средняя вероятность появления ошибки не превышает рош = 10-5 и источником ошибок является шум в канале передачи, то расчеты показывают, что одиночные ошибки появляются в канале со скоростью 64 кбит/с в среднем 2 раза в секунду, а двойные примерно 4 раза в сутки. В этих условиях достаточно учитывать только одиночные ошибки. Действие последних приводит к искажению величины отдельных отсчетов сигнала на выходе ЦАП, и эффективным способом борьбы с ними является обнаружение ошибочно принятых кодовых слов с последующим маскированием искаженных отсчетов. Для обнаружения обычно используется уже описанный выше принцип проверки на четность, причем такой, чтобы число единиц в кодовом слове было четным. При приеме после выделения кодовых слов в каждом из них подсчитывается число единиц. Нечетное их число будет означать наличие ошибки в данном кодовом слове.

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

91

и от числа разрядов (символов) m в кодовом слове, включая и разряд четности. Величину рош можно найти по формуле

 

p

C2 p2

,

(3.9)

 

0

m ош

 

 

где C2

– число сочетаний из

m символов по 2. Отсюда

видно, что

m

 

 

 

 

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

Если одиночная ошибка в кодовом слове обнаружена, то ее маскирование после этого состоит в замене искаженного отсчета. Обычные методы, используемые для этого процесса, показаны на рисунке 3.4. На рисунке 3.4, а отмечено ошибочное значение отсчета. Самым плохим решением наверняка является его замена на нуль, т.е. выбрасывание отсчета с ошибочным значением (рисунок 3.4, б). Лучше, если вместо ошибочного отсчета будет использовано значение предыдущего отсчета (рисунок 3.4, в). Еще лучше будет, если его значение будет получено как интерполяция значений двух соседних отсчетов, например путем вычисления среднего значения (рисунок 3.4, г). Однако, все же разность между восстановленным и истинным значениями отсчета может быть заметной на слух и намного превысить шаг квантования.

Поскольку слух человека инерционен, то метод маскирования оказывается эффективным, если число ошибок не превышает одной-двух в секунду. Это условие выполняется при вероятности появления ошибки в канале рош = 10-5. При m = 9 в этом случае получаем, что вероятность необнаруженной ошибки р0 = 36 10-10, что примерно соответствует требуемому значению.

Увеличение рош до значения 10-4 ведет к резкому росту среднего числа ошибок в секунду до 20. Метод интерполяции первого порядка не обеспечивает полного маскирования ошибок полезным сигналом, они становятся уже заметными на слух. Можно считать, что изложенный выше метод маскирования применим, когда значение рош < 10-5.

3.3 Циклическая проверка четности с избыточностью

Циклическая проверка четности с избыточностью (cyclic redundancy check – CRC) — это один из наиболее широко используемых и надежных методов обнаружения ошибок. Принцип работы данного метода сводится к следующему: для блока из k бит (сообщения) передатчик генерирует так называемую контрольную последовательность кадра (frame check sequence — FCS) из (n-k) бит. При этом результирующая последовательность (состоящая из данных и FCS) должна делиться без остатка на заданную константу. На приемной стороне полученная последовательность делится на эту константу и, если деление не дало остатка приемник считает, что ошибки в процессе передачи отсутствовали.

92

Sn

 

 

 

 

Sn+1 Sn+2

 

 

Sn+1

Sn+2

 

 

Sn+1 Sn+2

 

 

Sn

Sn+1 Sn+2

 

Sn-1

 

 

 

 

 

 

Sn-1

 

 

 

 

 

Sn-1

Sn

 

 

 

 

 

Sn-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sn-2

 

 

 

 

 

 

Sn-2

 

 

 

 

 

Sn-2

 

 

 

 

 

 

 

Sn-2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а)

 

 

 

t

 

 

б)

 

 

t

в)

 

 

 

t

 

 

г)

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 3.4 Маскирование ошибочных отсчетов: а) обнаруженная ошибка в значении отсчета sn ; б) замена ошибочного отсчета sn отсчетом с нулевым значением; в) коррекция (экстраполяция нулевого порядка) через замену ошибочного отсчета sn его предыдущим значением sn-1 ; г) интерполяция первого порядка путем вычисления среднего значения из предыдущего sn-1 и последующего sn+1 отсчетов.

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

3.3.1 Арифметика по модулю 2

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

3.5.

1111

1111

11001

+1010

-0101

 

11

0101

1010

11001

 

 

 

110010

 

 

101011

Рисунок 3.5

Арифметика по модулю 2

Определим следующие параметры:

T n-битовый кадр, который необходимо передать;

D k-битовый блок данных (сообщение); первые k бит кадра Т; F == (п - k:)-битовая контрольная последовательность кадра;

последние (п - k) бит к адра Т ;

P (п - k + 1)-битовый предопределенный делитель.

93

Так как нужно, чтобы Т нацело делилось на Р, то очевидно, что Т должно иметь следующий вид

T 2n k D F,

(3.10)

Умножая в (3.10) D на 2n-k, мы фактически сдвигаем его влево на (п - k) бит, и заполняем оставшееся место нулями. После добавления контрольной последовательности кадра F получаем n битовый кадр, т.е. Т. Необходимо, чтобы P было делителем Т. Рассмотрим деление 2n-kD на Р

2n k D

Q

R

.

(3.11)

P

P

 

 

 

Имеем частное и некоторый остаток от деления. Поскольку деление производилось по модулю 2, остаток должен быть, по крайней мере, на один бит короче делителя. Используем полученный остаток в качестве контрольной последовательности кадра, т.е. F. Тогда

T 2n k D R.

(3.12)

Теперь необходимо проверить удовлетворяет ли R условию отсутствия остатка при делении Т на Р

T 2n k D R 2n k D R

.

(3.13)

P

 

P

 

P

 

P

 

 

 

 

 

Подставим уравнение (3.11) в (3.13) и получим

T

Q

R

 

R

.

(3.14)

 

 

 

P

 

P

 

P

 

Поскольку сумма по модулю 2 двух одинаковых двоичных чисел дает в результате 0, то

T

Q

R R

Q.

(3.15)

 

 

P

P

 

 

 

Так как в последнем выражении остатка нет, то это доказывает, что T нацело делится на P.

Итак, проведенный анализ показал, что существует простой способ создания контрольной последовательности кадра – в качестве неѐ можно использовать остаток от деления 2n-kD на P, т.е. T = 2n-kD + R.

94

Рассмотрим пример для иллюстрации выводов, полученных в формулах

(3.1) – (3.6).

Дано:

1.Сообщение D – 1010001101 (10 бит);

2.последовательность P – 110101 (6 бит).

Определить:

1. 5-ти битовую контрольную последовательность кадра R.

Согласно значениям исходных данных задачи имеем n = 15, k = 10, (n-k) =

5.

Решение задачи.

Исходное сообщение D умножается на 25, что дает в результате последовательность 101000110100000. Полученную последовательность делим на P рисунок 3.6.

2n-kD

 

101000110100000

 

 

110101

 

 

 

P

 

 

 

 

110101

 

 

 

 

 

1101010110

 

 

Q

 

 

 

 

 

 

111011

 

 

 

 

 

 

 

 

 

 

 

 

110101

 

 

 

 

 

 

 

 

 

 

 

 

111010

 

 

 

 

 

 

 

 

 

 

 

 

110101

 

 

 

 

 

 

 

 

 

 

 

111110

 

 

 

 

 

 

 

 

 

 

 

110101

 

 

 

 

 

 

 

 

 

 

101100

 

 

 

 

 

 

 

 

 

110101

 

 

 

 

 

 

 

 

 

110010

 

 

 

 

 

 

 

 

 

110101

 

 

 

 

 

 

 

 

 

01110

 

R

 

 

 

 

 

 

 

 

Рисунок 3.6 Процесс получения остатка от деления

 

 

Полученный остаток складывается с 25D и в результате получается битовый кадр T = 101000110101110, который и передается.

При отсутствии ошибок в канале принятая последовательность Tr не отличается от переданной последовательности T. Приемная сторона осуществляет деление принятой последовательности кадра на заданную последовательность P рисунок 3.7.

Поскольку деление не дало остатка, ошибок в канале не было. Заданная последовательность Р на один бит длиннее контрольной

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

95

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