Алгоритм компандирования по a-закону
Процесс компандирования при современных параметрах микросхем может осуществляться с помощью постоянных запоминающих устройств прямым табличным преобразованием. Однако существуют алгоритмы, позволяющие делать другое преобразование путем несложного пересчета.
Алгоритм определения составляющих формата компандирования по рис. 8.6 для числа иллюстрируется таблицей 8.3 и выполняется в следующем порядке.
Таблица 8.3. Таблица линейных кодов и соответствующих номеров сегментов по A-закону |
||||
кодовая линейная комбинация |
Начальные точки следующего сегмента |
Шаг квантования |
Десятичный номер сегмента |
Двоичный номер сегмента |
0000000wxyz- |
|
|
|
000 |
0000001wxyz- |
|
|
|
001 |
000001wxyz-- |
|
|
|
010 |
00001wxyz---- |
|
|
|
011 |
0001wxyz----- |
|
|
|
100 |
001wxyz------ |
|
|
|
101 |
01wxyz---------- |
|
|
|
110 |
1wxyz----------- |
|
|
|
111 |
В таблице показана линейная комбинация, содержащая старшие разряды величины отсчета. указывает номер шага квантования, прочерки указывают на те разряды, которые могут быть пропущены в связи с уменьшением точности для данной величины отсчета.
Знак определяется согласно знаку заданного числа N и кодируется следующим образом:
0 — положительная величина отсчета,
1 — отрицательная величина.
Номер сегмента
Находится такое минимальное из возможных число , что
(точнее, ).
Номер сегмента определяется как
Номер шага
Номер шага квантования может быть определен несколькими способами.
1-й способ. После определения номера сегмента вычисляется следующая разность:
.
Эта разность переводится в двоичную форму, содержащую разряд, и в конце двоичной комбинации удаляются младших разрядов. Что дает
2-й способ. Определяются разряды номера шага, а именно .
определяется следующим образом.
a. Сравниваются числа и .
Если , то . Устанавливается новое число и выполняется шаг этого алгоритма, в другом случае ( ) , вычисляется и выполняется пункт этого алгоритма.
Далее сравниваются числа и .
Если , то . Устанавливается новое число и выполняется следующий шаг этого алгоритма, в другом случае ( ) и вычисляется и выполняется следующий шаг этого алгоритма.
Далее аналогичная процедура выполняется на следующих шагах для и .
Рассмотрим несколько примеров компандирования отсчетов.
Предположим, нам надо получить все характеристики значения отсчета 68.
Минимальное число, удовлетворяющее условию:
это .
Тогда десятичный номер сегмента равен (или двоичное значение 010). Далее вычисляем остаток:
.
Вычислим номер разряда первым способом. Двоичное значение для 6
оставшихся разрядов равно 000011, поскольку . Исключаем два последних разряда в двоичном представлении, получаем код шага квантования . Полный восьмиразрядный формат равен 0 010 0000.
Вычислим номер разряда вторым способом.
Рассмотрим число 125.
Из неравенства получаем .
Номер сегмента .
Номер шага квантования.
Остаток .
Первый способ.
Двоичное представление остатка . Исключая последние два знака, получаем код шага квантования .
Второй способ.