Принцип командирования заключается в том, что диапазон значений амплитуды от максимального до минимального разбивается на сегменты. Те из них, которые соответствуют меньшим значениям сигнала, квантуются более мелкими квантами, а для больших значений выбираются большие кванты, величина которых возрастает с номером сегмента.
Используются два закона неравномерного кодирования: ц-компандирование и А-компандирование. Они имеют некоторые отличия, которые будут рассмотрены позднее. Начнем с компандирования по закону А.
Компандирование по закону А (13-сегментное кодирование)
При этом законе весь диапазон амплитуд измеряется с помощью 4096 квантов (в данном случае они выполняют функции единиц измерения амплитуды). Весь диапазон амплитуд разбивается на 8 сегментов, включая нулевой (0,..., 7 или в двоичной системе 000,..., 111). В каждом сегменте для измерения применяются 16 шагов квантования различной величины (в двоичной системе они нумеруются от 0000 до 1111). При переходе от сегмента к сегменту величина шага квантования внутри сегмента увеличивается в 2 раза. Исключение составляют первые два сегмента, в которых шаги квантования равны 2. Если шаг квантования в нулевом и первом сегменте принять за 2 кванта, то во втором сегменте этот шаг составляет 4 кванта, в третьем 8 и последнем, восьмом 27 = 128 квантов. С уменьшением шага точность квантования возрастает в два раза. Соответственно, уменьшается абсолютное значение ошибки квантования (напомним, что она равна половине шага квантования). Относительная ошибка на всех шагах приблизительно одинакова и определяется разбросом амплитуд конкретного сигнала в данном сегменте.
|
|
Число шагов квантования в каждом сегменте составляет 16. Величина шагов, как указывалось, разная. Код, передаваемый в линию, содержит в 1-м разряде знак значения сигнала (положительное — отрицательное), следующие 3 разряда — номер одного из восьми сегментов, и 4 разряда — номер шага внутри сегмента. Таким образом, вместо передачи 13-разрядных комбинаций, образуемых на входе при 8192 квантах, в линию передаются 8 разрядов. Исходя из сказанного выше, структура байта, передаваемого на линию, имеет вид, представленный
Рис. 23. Структура байта, передаваемого в линию при компандировании по закону А
Описанную процедуру называют сжатием диапазона передаваемой мощности (компрессия). На приемном конце информация приблизительно восстанавливается (расширяется — экспандируется). Поэтому эту операцию (обычно выполняемую специальным диодом с нелинейной характеристикой), называют компандированием (компрессия — экспандирование).
|
|
В настоящее время компрессия выполняется внутри аналого-цифрового преобразователя (кодера), а экспандирование — декодера. Оба прибора объединяются в один элемент, называемый кодеком.
Согласно принятому правилу компрессии, каждый сегмент содержит 16 шагов квантования, которые вместе с номером сегмента позволяют установить значения дискреты с точностью, определяемой номером сегмента.
Первый сегмент состоит как бы из двух частей: нулевой подсегмент с номером 000 кодирует отрицательную часть первого сегмента, а 001 — положительную. Остальные 6 сегментов будут сопровождаться знаком в первом разряде, поэтому их нумерация будет зависеть только от величины дискрет. Таким образом, для нумерации сегментов требуется три бита (значения номеров от 000 до 111).
При 13-сегментном кодировании кодек передает 12-разрядную комбинцию. Этого числа разрядов вполне хватает, чтобы закодировать сигнал с максимальным значением 4096 дискрет. При этом номер сегмента можно определить по положению первой единицы в этой двоичной комбинации.
Как известно, двоичный весовой код переводится в десятичный с помощью весов, присваиваемых разрядам.
N = а1211+a2210+... + а1121+а1220 = a12048 + a21024 +... + a112 + al2.
Начальные точки сегментов равны 0, 32, 64, 128, 256, 512, 1024, 2048.
Поэтому, согласно весовому уравнению, все коды последнего сегмента (7-го, с учетом отсчета от нуля) будут начинаться с 1 (единицы в старшем 12-м разряде с учетом отсчета от нуля), т.е. в общем виде 1 ххх хххх хххх. Все коды 6-го сегмента будут иметь старший нулевой разряд и значение 1 в одиннадцатом разряде и т.д., т.е. 01хх хххх хххх. Первый сегмент будет иметь все нули в старших разрядах и единицу в шестом. Наконец, нулевой сегмент будет иметь не менее семи нулей до первого разряда, обозначающего значения кванта. Поэтому правило определения номера сегмента следующее: его номер N определяется как
N = 7 - п, где п — номер первого единичного разряда справа в 12-разрядной двоичной комбинации.
В табл. 1.2 приводятся линейные коды и соответствующие им коды сегментов.
Таблица 1.2. Линейные коды и соответствующие им коды сегментов
Кодовая линейная комбинация | Десятичный номер сегмента | Двоичный номер сегмента |
0000000xxxxx | ||
0000001xxxxx | ||
000001xxxxxx | ||
00001xxxxxxx | ||
0001xxxxxxxx | ||
001xxxxxxxxx | ||
01xxxxxxxxxx | ||
1xxxxxxxxxxx |
Рассмотрим значение последних разрядов 12-разрядной комбинации. Они определяют шаг квантования к, который может быть равен 2, 4, 8, 16, 32, 64, 128. Он связан с номером сегмента:
к = 2С,
где С— номер сегмента (1, 2, 3,..., 7).
Напомним, что у двух первых сегментов одинаковый шаг — 2.
Точность шага квантования позволяет определить число последних разрядов, которые можно не передавать в линию, поскольку в данном диапазоне они не влияют на величину дискреты. Например, при шаге квантования к = 4 сигналы величиной от 64 до 68 дискрет имеют одно и то же значение, т.е. последние два разряда могут игнорироваться. Учитывая это, с увеличением номера сегмента уменьшается число передаваемых последних бит, как это показано в табл. 1.3. На приемном конце принятая комбинация округляется до половины шага. В таблице латинские буквы w, х, у, z обозначают номер одного из 16-ти шагов квантования в данном сегменте. Прочерки в конце указывают на то, что выбранный шаг квантования не учитывает эти разряды и они игнорируется. В правой части таблицы приводятся 7-разрядные комбинации, передаваемые в канал.
Таблица 1.3. Линейные комбинации, передаваемые в канал согласно закону А
Кодовая линейная комбинация | Комбинация, передаваемая в канал |
0000000wxyz- | 000 wxyz |
0000001 wxyz- | 001wxyz |
000001 wxyz-- | 010wxyz |
00001 wxyz--- | 011wxyz |
000lwxyz | 100wxyz |
00lwxyz | 101 wxyz |
0lwxyz | 110 wxyz |
lwxyz | 111 wxyz |
На приемном конце принятая комбинация округляется до половины шага квантования, что равно добавлению единичного значения предыдущего сегмента вместо непереданного разряда. Непереданные разряды дополняются нулями, число которых определяется в соответствии с номером сегмента. Нули в сегментах добавляются следующим образом:
|
|
в нулевом сегменте — ни одного нуля;
в первом — ни одного нуля (одинаковая точность);
во втором — один;
в третьем — два и т.д.
Восстановление последовательностей на приемном конце (экспандирование) показано в табл. 1.4.
В табл. 1.5 приводятся конкретные значения кодирования для сегментной характеристики с законом А [8]. Надо отметить, что указанный диапазон входных амплитуд дублируется в конечных точках. Поэтому обычно шаг квантования выбирается так, чтобы невозможно было получить значение отсчета, точно равное граничному значению.
Таблица 1.4. Восстановление компенсированных комбинаций на приемном конце согласно закону А
Кодовые комбинации, полученные при компрессировании | Кодовые комбинации линейного выхода |
000 wxyz | 0000000 wxyzl |
001wxyz | 0000001 wxyz 1 |
010 wxyz | 00000lwxyzl0 |
011 wxyz | 00001 wxyz 100 |
100 wxyz | 0001 wxyz 1000 |
101wxyz | 001 wxyz 10000 |
110 wxyz | 01 wxyzl00000 |
111 wxyz | 1 wxyz1000000 |
Таблица 1.5. Кодирование сегментов согласно закону А
Диапазон входных амплитуд | Размер шага | Код сегмента | Код шага* квантования | Амплитуда на выходе декодера |
0-2 | ||||
2-4 | ||||
30-32 | ||||
32-34 | ||||
62-64 | ||||
64-68 | ||||
124-128 | ||||
128-136 | ||||
248-256 | ||||
256-272 | ||||
496-512 | ||||
512-544 | ||||
992-1024 | ||||
1024-1088 | ||||
1984-2048 | ||||
2048-2176 | ||||
3968-4096 | ||||
Все биты инвертируются через один разряд. |