Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Сети радиодоступа. Ч.1. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
61
Оценка MOS
Тип кодера
1
2
3
4
5
PCM – импульсно-кодовая модуляция ADPCM - адаптивная дифференциальная РСМ
CELP — активируемое кодом линейное предсказание
LD-CELP - CELP с малой задержкой
LPC — линейное кодирование с предсказанием
PCM
64
ADPCM
32
LD-CELP
16
CELP
8
CELP
4,2
LPC
2,4
Некодированная
речь
Рисунок 3.9 – Субъективное качество речи для различных кодеров
Контрольные вопросы
1.
Последовательность преобразования аналогового сигнала в
цифровой при стандартной импульсно-кодовой модуляции.
2. Функции элементов структурной схемы кодера АДИКМ.
3. Функции элементов структурной схемы декодера АДИКМ.
4. Поясните характеристики процесса речеобразования.
5.
Поясните характеристики элементов структурной схемы
кодера речи с линейным предсказанием.
6.
Поясните характеристики элементов структурной схемы
декодера речи с линейным предсказанием.
7. Субъективная оценка производительности кодера речи.
62
4 Канальное кодирование
В системах радиосвязи цифровой сигнал перед подачей его на модулятор подвергают обработке в кодере канала, который является общим как для сигнала канала трафика, поступающего от кодера речи, так и для сигналов
логических каналов, поступающих из логического блока (рисунок 2.7). В самом
общем случае в кодере канала осуществляется перемежение входных символов,
скремблирование, шифрование и введение корректирующего кода (Forward Error Correction – FEC) (рисунок 4.1).
Перемежитель Скремблер FEC
От
логического
блока
От кодера
речи
Ключ
шифрования
К
модулятору
Рисунок 4.1 – Функциональная схема кодера канала
В процессе передачи по каналу связи происходит искажение сигнала, а
также на него накладываются шумы и помехи. В результате на выходе
канала связи в сигнале появляются ошибки, частота появления которых
зависит от скорости передачи данных и отношения сигнал/шум в канале.
Ошибки будут всегда, независимо от конструкции системы передачи, так что в
переданном кадре один или несколько битов обязательно изменят свое значение.
Существуют три наиболее распространенных способа борьбы с
ошибками в процессе передачи данных:
• коды для обнаружения ошибок;
• коды для коррекции ошибок, называемые также схемами прямого
исправления ошибок (Forward Error Correction – FEC).
Код обнаружения ошибок позволяет довольно легко установить наличие
ошибки. Как правило, подобные коды используются совместно с определенными
протоколами канального или транспортного уровня, имеющими схему ARQ. В схеме ARQ приемник попросту отклоняет блок данных, в котором была
обнаружена ошибка, после чего передатчик передает этот блок повторно. Коды
63
прямого исправления ошибок позволяют не только обнаружить ошибки, но и
исправить их, не прибегая к повторной передаче. Схемы FEC часто используются
в беспроводной передаче, где повторная передача крайне неэффективна, а уровень
ошибок довольно высок.
Далее будем считать, что данные передаются как одна или несколько
непрерывных последовательностей битов, которые называют кадрами или
блоками. Определим вероятности, связанные с возникновением ошибок в
переданных кадрах:
Pb – вероятность появления единичного ошибочного бита, именуемая также частотой появления ошибочных битов (BER – bit error rate);
P1 – вероятность безошибочного приема кадра;
Р
2
– вероятность того, что используемый алгоритм выявления ошибок
позволяет обнаружить ошибку в кадре;
Р
3
– вероятность того, что используемый алгоритм выявления ошибок
позволяет обнаружить все ошибки в кадре.
Рассмотрим для начала пример, когда при передаче данных схемы
выявления ошибок не используются. В этом случае вероятность обнаружения
всех ошибок Р
3
равна нулю. Чтобы найти значения остальных вероятностей,
предположим, что каждый бит может быть ошибочным с равной вероятностью, т.е. Pb – постоянная независимая величина для каждого бита. Тогда можно
записать
1 2 1
(1 ) , 1 ,
F
b
P P P P= − = −
где F – число битов в кадре. Иными словами, вероятность получения
кадра без ошибок уменьшается с ростом вероятности битовой ошибки.
Кроме того, вероятность отсутствия ошибок в полученном кадре
уменьшается с увеличением длины кадра – чем длиннее кадр, тем больше в нем битов и тем больше вероятность ошибочности одного из них.
Из этого следует необходимость применения схем обнаружения
ошибок. Работа всех методов обнаружения ошибок основывается на
следующем принципе: к информационному кадру на передающей стороне
добавляется последовательность битов, которые составляют код
обнаружения ошибок (рисунок 4.2).
64
Данные
k бит
Кодер
(n-k) бит
n бит
а )
Сравнение
Данные
Ошибки
б )
Кодер
Рисунок 4.2 – Процесс обнаружения ошибок: а) формирование кода
обнаружения ошибок; б) использование кода на приемной стороне
Этот код вычисляется как функция переданных битов. Обычно для
информационного блока из k бит алгоритм обнаружения ошибок дает код, имеющий n-k бит, причем (n-k)<k. Код обнаружения ошибок (иногда
называемый контрольными битами) присоединяется к блоку данных, в результате чего получается последовательность из п бит, которая и передается. Приемник разделяет полученную последовательность на k бит
данных и (п - k) бит кода обнаружения ошибок. Основываясь на k битах данных, приемная сторона вычисляет код, после чего сверяет результат с принятым кодом обнаружения (п - k) бит кода обнаружения ошибок. После чего сверяет полученный код с принятым кодом обнаружения ошибок.
Если два кода не совпадают, в канале произошла ошибка. Следовательно, параметр P3 – это вероятность того, что в кадре
присутствует ошибка и она обнаружена с помощью используемой схемы.
Параметр Р
2
называют остаточным уровнем ошибок. Р2 – это вероятность
того, что ошибка не будет обнаружена, несмотря на использование схемы
выявления ошибок.
65
4.1 Коды для обнаружения ошибок
Проверка чётности. Наиболее простой метод обнаружения ошибок
– добавление бита четности в конец каждого блока данных. Коды с контролем четности (parity-check code) для обнаружения или исправления ошибок
используют линейные суммы информационных битов, которые называются
символами (parity symbols), или битами четности (parity bits). Код с одним контрольным битом – это прибавление к блоку информационных битов
одного контрольного бита. Этот бит (бит четности) может быть равен нулю или единице, причем его значение выбирается так, чтобы сумма всех битов в кодовом слове была четной или нечетной. В операции суммирования пользуется арифметика по модулю 2 (операция исключающего ИЛИ). При проверке чётности не обнаруживается чётное количество ошибок в контролируемом блоке бит. Поэтому проверка четности не является надежным средством обнаружения ошибок, поскольку импульсные помехи и глубокие селективные замирания в канале обычно довольно продолжительны (в особенности при высоких скоростях передачи данных) и вызывают
большое количество ошибок.
Маскирование ошибок. Если средняя вероятность появления ошибки
не превышает р
ош
= 10-5 и источником ошибок является шум в канале
передачи, то расчеты показывают, что одиночные ошибки появляются в канале со скоростью 64 кбит/с в среднем 2 раза в секунду, а двойные примерно 4 раза в сутки. В этих условиях достаточно учитывать только одиночные ошибки. Действие последних приводит к искажению величины отдельных отсчетов сигнала на выходе ЦАП, и эффективным способом борьбы с ними
является обнаружение ошибочно принятых кодовых слов с последующим
маскированием искаженных отсчетов. Для обнаружения обычно используется уже описанный выше принцип проверки на четность, причем такой, чтобы
число единиц в кодовом слове было четным. При приеме после выделения
кодовых слов в каждом из них подсчитывается число единиц. Нечетное их
число будет означать наличие ошибки в данном кодовом слове.
Вероятность р
0
того, что при использовании данного метода ошибка не
будет обнаружена, зависит как от вероятности р
ош
ее появления в канале, так
и от числа разрядов (символов) m в кодовом слове, включая и разряд
четности. Величину р
ош
можно найти по формуле
22
0 ош
,
m
p C p=
(4.1)
66
где
2
m
C
– число сочетаний из m символов по 2. Отсюда видно, что
использование длинных кодовых слов ведет к росту вероятности
необнаруженной ошибки.
Если одиночная ошибка в кодовом слове обнаружена, то ее
маскирование после этого состоит в замене искаженного отсчета. Обычные методы, используемые для этого процесса, показаны на рисунке 1.2.
S
n
S
n-1
S
n-2
S
n+1
S
n+2
а)
t
S
n
S
n-1
S
n-2
S
n+1
S
n+2
б)
t
S
n
S
n-1
S
n-2
S
n+1
S
n+2
в)
t
S
n
S
n-1
S
n-2
S
n+1
S
n+2
г)
t
Рисунок 4.3 – Маскирование ошибочных отсчетов: а) обнаруженная ошибка в значении отсчета sn ; б) замена ошибочного отсчета sn отсчетом с нулевым значением; в) коррекция (экстраполяция нулевого порядка) через замену ошибочного отсчета sn его предыдущим значением s
n-1
; г) интерполяция
первого порядка путем вычисления среднего значения из предыдущего s
n-1
и
последующего s
n+1
отсчетов.
На рисунке 4.3, а отмечено ошибочное значение отсчета. Самым плохим
решением наверняка является его замена на нуль, т.е. выбрасывание отсчета с
ошибочным значением (рисунок 4.3, б). Лучше, если вместо ошибочного отсчета будет использовано значение предыдущего отсчета (рисунок 4.3, в).
Еще лучше будет, если его значение будет получено как интерполяция значений двух соседних отсчетов, например, путем вычисления среднего
значения (рисунок 4.3, г). Однако все же разность между восстановленным и
истинным значениями отсчета может быть заметной на слух и намного
превысить шаг квантования.
Поскольку слух человека инерционен, то метод маскирования
оказывается эффективным, если число ошибок не превышает одной-двух в
секунду. Это условие выполняется при вероятности появления ошибки в канале р
ош
= 10-5. При m = 9 в этом случае получаем, что вероятность
необнаруженной ошибки р
0
= 3610
-10
, что примерно соответствует
требуемому значению.
67
Увеличение р
ош
до значения 10-4 ведет к резкому росту среднего числа
ошибок в секунду до 20. Метод интерполяции первого порядка не обеспечивает полного маскирования ошибок полезным сигналом, они становятся уже заметными на слух. Можно считать, что изложенный выше метод маскирования применим, когда значение р
ош
< 10-5.
Циклическая проверка четности с избыточностью (cyclic redundancy check – CRC) – это один из наиболее широко используемых и надежных
методов обнаружения ошибок. Принцип работы данного метода сводится к следующему: для блока из k бит (сообщения) передатчик генерирует так
называемую контрольную последовательность кадра (frame check sequence – FCS) из (n-k) бит. При этом результирующая последовательность (состоящая из данных и FCS) должна делиться без остатка на заданную константу
(полином). На приемной стороне полученная последовательность делится на
эту константу, и если деление не дало остатка, приемник считает, что ошибки в процессе передачи отсутствовали.
Наиболее широко используются четыре полинома Р(Х):
• CRC-12: 

   
   
• CRC-16: 

  
 
• CRC-CCITT: 

  
 
• CRC-32: 

         
 
   
Система контроля ошибок CRC-12 используется для передачи потоков 6-битовых знаков; здесь генерируются 12-битовые контрольные
последовательности кадров. Системы CRC-16 и CRC-CCITT применяются для передачи 8-битовых знаков в США и Европе, соответственно; здесь
создаются контрольные последовательности длиной 16 бит. В большинстве случаев этих полиномов достаточно, чтобы иметь достаточно малую вероятность необнаруженной ошибки. В специальных случаях, когда требуется очень малая вероятность необнаруженной
ошибки, может быть использована система контроля CRC-32.
Процесс циклической проверки четности с избыточностью можно
представить (и, как правило, он так и реализуется) как схему деления,
состоящую из элемента исключающего ИЛИ и регистра сдвига. Регистр
сдвига представляет собой строку 1-битовых ячеек памяти. Каждая ячейка
68
имеет выходную шину, показывающую текущее хранимое значение, и
входную шину. В дискретные моменты времени, которые называют тактами, хранимые в них значения ячеек памяти замещаются значениями, указанным во входной шине. Замена происходит синхронно во всем регистре, так что в результате хранимые значения ячеек регистра сдвигаются на один бит.
Реализация схемы выглядит следующим образом:
1. Регистр, содержащий (n-k) ячеек памяти (по размеру контрольной
последовательности кадра).
2. До (n - k) элементов исключающего ИЛИ.
3. Наличие или отсутствие элемента исключающего ИЛИ
соответствует наличию или отсутствию члена в полиноме-делителе Р(Х), исключая члены 1 и X
n-k
.
Понять принцип работы устройства циклической проверки четности с
избыточностью можно с помощью примера, приведенного на рисунке 1.2. В примере, как и ранее, используются такие величины
• сообщение D = 1010001101; 
󰇛󰇜
    
 ;
• делитель Р = 110101; 
󰇛󰇜
   
 .
На рисунке 4.4 представлена реализация устройства формирования циклической проверки четности с избыточностью (CRC-5) для рассматриваемого примера.
Процесс начинается с очистки ячеек памяти регистра сдвига (все
ячейки обнуляются). После этого передаваемое сообщение (делимое)
1010001101 побитно вводится в регистр, начиная со старшего бита.
В таблице 4.1 иллюстрируется пошаговая работа схемы рисунка 4.4 по мере введения отдельных битов.
Нулевой такт соответствует исходному состоянию. Строки таблицы содержат значения пяти ячеек регистра сдвига в соответствующие моменты времени. Кроме того, в строках та блицы приводятся значения на выходе трех схем исключающего ИЛИ. Пос леднее число в каждой
строке – значение следующего входного бита, который станет доступен для работы на следующем этапе.
Необходимо отметить, что операция исключающего ИЛИ влияет на значения ячеек С
4
, С2 и С0 при следующем сдвиге, что идентично
рассмотренному ранее процессу двоичного деления. Процесс выполняется для всех битов передаваемого сообщения. Для получения корректности выходного сигнала используются два ключа. При вводе битов данных оба ключа находятся в положении А. В результате за первых 10 шагов входные
69
биты подаются в регистр сдвига и также используются в качестве выходных битов. По окончании обработки последнего бита данных регистр сдвига
содержит остаток деления R, выделенный серым цветом. При вводе
последнего бита входных данных в регистр оба ключа устанавливаются в
положение В.
T
4
T
3
T
2
T
1
T
0
Ключ 1
Ключ 2
A B
A
B
Вход
k=10 бит
Выход
n=15 бит
Рисунок 4.4 – Реализация устройства формирования кода CRC-5
Таблица 4.1 – Пошаговая работа устройства формирования кода CRC-5
Такты
Т4 Т3 Т2 Т
1
Т
0
Т4Т
3
I
Т4Т
1
I
Т
4
I
I (ввод данных )
0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1
0
2 1 1 1 1 1 1 1 0
1
3 1 1 1 1 0 0 0 1 0 4 0 1 0 0 1 1 0 0 0 5 1 0 0 1 0 1 0 1 0 6 1 0 0 0 1 0 0 0 1 7 0 0 0 1 0 1 0 1 1 8 1 0 0 0 1 1 1 1 0 9 1 0 1 1 1 0 1 0 1 10 0 1 1 1 0
В этом случае:
1) все логические однобитовые элементы памяти больше не изменяют
значения битов;
2) за следующие 5 шагов на выход подаются 5 бит остатка от деления R. В результате на выходе устройства CRC получается выходная последовательность 101000110101110 из n = k + R = 15 бит.
В приемнике используется аналогичная логика (рисунок 4.5).
Принятые биты последовательности n вводятся в регистр сдвига по мере поступления. Если ошибки отсутствуют, то после деления входных k бит на
70
генераторный полином P(X) регистр сдвига будет содержать остаток от деления этой входной последовательности из k бит на генераторный полином, т.е. остаток от деления R. После этого со входа начинает поступать переданная последовательность остатка от деления R. Как следует из логики деления
двоичных чисел, при делении двух одинаковых двоичных чисел получается 0, т.е. все ячейки памяти регистра сдвига будут в нулевом состоянии, что и свидетельствует об отсутствии ошибок в канале. При наличии ошибок в
канале не менее одной ячейки регистра сдвига будут в ненулевом состоянии.
Вход
n =15 бит
T
1
T
2
T
3
T
15
T
10
i
1
i
2
i
3
i
10
Выход k = 10 бит
T
0
T
1
T
2
T
3
T
4
Детектор ошибки
Рисунок 4.5 – Реализация устройства детектирования кода CRC-5
На рисунке 4.6 представлена общая схема устройства для реализации
кода CRC с генераторным полиномом
0
( ) ,
nk
i
i
i
P X A X
−
=
=
(1.2)
где A0 = A
n-k
= 1, все остальные Ai равны 0 или 1.
P(X) = X
n-k
+ A
n-k-1
X
n-k-1
+…+ A
2
X2 + A1X + 1
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]