5.5.       Сравнение арифметики с плавающей и фиксированной точкой

Арифметика, применяемая при цифровой обработке сигналов, может быть разделена на две категории: с фиксированной точкой и с плавающей точкой. Данная классификация относится к формату, используемому для хранения чисел и манипуляций с этими числами под управлением процессора. Рассмотренные DSP компании Analog Devices с фиксированной точкой представляют каждое число 16-ю разрядами. Существует четыре различных способа представления 16-разрядного числа, принимающего в общей сложности  возможных значений.

При использовании беззнакового целого формата число может принимать значение от 0 до 65535. При использовании знакового целого формата используется дополнительный код для представления отрицательных чисел, поэтому диапазон возможных значений лежит в пределах от –32768 до +32767.

При использовании беззнакового дробного формата 65536 уровней распределяются между 0 и +1. И, наконец, знаковый дробный формат позволяет использовать отрицательные числа, при этом 65536 возможных значений равномерно распределенны между -1 и +1.

Арифметика DSP семейства ADSP-21xx оптимизирована под знаковый дробный формат, обозначаемый как 1.15 (один точка пятнадцать). В этом формате присутствует один разряд для знака (MSB) и 15 дробных разрядов, представляющих значения от  до значения, меньшего +1 на величину, соответствующую одному младшему биту (рис. 5.7).

Рис. 5.7. Дробный формат 1.15 в 16-битной арифметике

с фиксированной точкой

Этот подход может быть обобщенно обозначен, как «I.Q», где I-число битов слева от точки, отделяющей дробную часть, а Q число битов справа от точки. Например, беззнаковое целое число представляется как формат 16.0. Однако для большинства приложений цифровой обработки сигналов предполагается использование дробных форматов числа. Дробные числа имеют превосходство, которое заключается в том, что результат умножения двух дробных чисел меньше каждого из сомножителей.

Для сравнения, DSP с плавающей точкой обычно используют минимум 32 разряда для представления каждого числа. Это приводит к возможности представления гораздо большего количество различных значений, чем в 16-разрядном DSP с фиксированной точкой, а точнее – 232 = 4294967296. Что особенно важно, плавающая точка сильно увеличивает диапазон значений, который может быть представлен. Наиболее распространенный стандарт с плавающей точкой – стандарт ANSI/IEEE 754-1985, где самое большое и самое маленькое возможные числа равны ±3,4 × 1038 и ±1,2 × 10–38 соответственно. Важно, что этот стандарт резервирует структуры битов, которые позволяют представить другие специальные коды чисел, такие как, например, ±0 и ±∞.

Стандарт IEEE-754 представления чисел с плавающей точкой охарактеризован более детально на рис. 5.8. Тридцатидвухразрядное слово разделяется на знаковый разряд, S, 8-разрядную экспоненту Е, и 23-разрядную мантиссу М.

Подпись:  

Рис. 5.8. Тридцатидвухбитный формат с плавающей точкой одинарной точности,
стандарт IEEE-754

Отношение между десятичным и двоичным представлениями чисел с плавающей точкой, представленных в формате IEEE-754, задается с помощью выражения:

.                   (5.2)

Обратите внимание, что «1.» предшествует «М» и что смещение 127 вычитается из экспоненты «Е» так, что «Е» – всегда положительное число.