Алгоритм компандирования по 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.
Из
неравенства
получаем
.
Номер
сегмента
.
Номер шага квантования.
Остаток
.
Первый способ.
Двоичное
представление остатка
.
Исключая последние два знака, получаем
код шага квантования
.
Второй способ.
