Лайонс Р. Цифровая обработка сигналов. Второе издание. Пер. с англ. (2006) (1095938), страница 96
Текст из файла (страница 96)
Таблица 12.3. Форматы чисел с плавающей запятой (12-32) Формат стандарта! ЕЕЕ Р764 Бит 31 30 29 28 27 26 26 24 23 22 21 20 ... 2 1 0 23 22 21 20 2-1 ° -Дробная часть (г) к (е)+ Формат !ВМ Бит 31 30 29 28 27 26 26 24 23 22 21 20 ... 2 1 0 26 23 24 23 22 21 20 2-1 2-2 2-3 2-4 2-22 2-23 2-24 Знак (3) Порядок (е)- -Дробная часть (Г)- Формат (3ЕС (О!9!та! Ег)и!ртвпт Согр.) Бит 31 30 29 28 27 26 26 24 23 22 21 20 ... 2 1 О 27 23 23 24 2з 22 21 2 Знак (3) ( — 1- -Порядок (е)- Формат яа1~-БТО 176ОА Бит 31 30 29 ... 11 10 9 8 7 6 б 4 3 2 1 0 20 2-1 2-2 2-20 2-21 2-22 2-23 27 28 23 24 23 22 21 20 «-Дробная часть (т) ° -Порядок (е)- Формат фирмы ПЕС использует двоичный порядок со смещением и дробную часть в виде модуля со знаком и скрытым битом, равным 2 1. Десятичное значение нормализованного числа в формате ПЕС вычисляет следующим образом значениеоЕС = (-1)4 ° 00 17" '2' 123 (12-33) скрытый бит МИ= БТР 1750А представляет собой стандарт чисел с плавающей запятой военно-воздушных сил США.
В этом формате порядок представляется в виде двоичного дополнительного кода, расположенного в восьми младших разрядах слова. Дробная часть в этом формате также представляется двоичным дополнительным Формат чисел с плавающей запятой фирмы 1ВМ несколько отличается от других форматов, потому что в качестве основания он использует 16, а не 2. Порядок представляется в двоичном коде со смещением, а дробная часть — в виде модуля со знаком без скрытого бита.
Десятичное значение нормализованного числа в формате 1ВМ вычисляется как 12.4. аоичные о маты с плавающей запятой кодом (без скрытого бита), по этой причине в таблице 12.3 знаковый бит специально не отмечен. Десятичное значение числа в формате М11-БТ1) 1750А вычисляется как значение1750А / '2е. (12-34) Обратите внимание на то, что все слова в таблице 12.3 содержат 32 бита.
Это не случайно. Использование 32-битовых слов облегчает реализацию этих форматов в 8-, 16- и 32-битовых процессорах. Обеспечивая преимущества в обработке данных, эти форматы, с другой стороны„требуют достаточно большого объема сравнений и ветвлений для правильной реализации арифметических операций. В работе [231 приводятся блок-схемы алгоритмов, показывающие, какие действия необходимо выполнить при сложении или умножении чисел с плавающей запятой. 12.4.1. Динамический диапазон чисел с плавающей запятой Определение динамического диапазона для произвольного формата с плавающей запятой требует значительных усилий.
Мы начнем с повторения выражения для динамического диапазона заданной системы чисел (12-6): Динамический диапазон дБ = = 20 ° 1ойг<Д(наибольшее возможное значение слова)/ /(наименьшее возможное значение слова) ] . (12-35) Когда мы пытаемся определить наибольшее и наименьшее возможные значения слова для заданного формата чисел с плавающей запятой, мы быстро понимаем, что они зависят от таких факторов, как с позиция двоичной запятой; с используется скрытый бит или нет (если используется, то важна его позиция относительно двоичной запятой); а значение основания формата чисел с плавающей запятой; ц формат представления двоичных чисел со знаком, используемый для порядка и дробной части (например, вспомните таблицу 12.2, согласно которой двоичный дополнительный формат позволяет представлять большие по модулю отрицательные числа, чем формат модуля со знаком); а как обрабатываются ненормализованные мантиссы, если таковые возможны (ненормализованные числа — это ненулевые числа, которые меньше минимального нормализованного, но все еще могут быть представлены, когда и порядок, и скрытый бит равны нулю); о как обрабатываются порядки, когда их двоичное представление содержит только единицы или только нули (например, формат 1ЕЕЕ Р754 интерпретирует число, порядок которого в двоичном коде состоит только из единиц, а дробная часть отлична от нуля, как недопустимое число, тогда как в формате 1)ЕС число, знаковый бит которого равен единице, а порядок — нулю, является специальной инструкцией, а недопустимым числом).
464 Глава 12. и овые о матыданныки як оль в об аботке сигналов Бит Ь+Ьв-1 Ь+Ь-2 ... Ь+2 Ь Ь -1 Ь -2 ... 1 0 Г Я Т 2ьв- < 2ье-г 21 2о 2- < 2 г 2-ьт+ < 2-ьт Знак (з) - Порядок (е) - Дробная часть (1) Сначала мы определим, каким может быть максимальное значение нашего слова с плавающей запятой. Наибольшее значение дробной части соответствует случаю, когда скрытый бит и все остальные Ьи битов дробной части равны единице. При этом дробная часть равна/'= [1-ь(1-2 Ья)].
Первая единица в этом выражении представляет скрытый бит слева от запятой, а значение в круглых скобках — значение дробной части, все Ьи битов которой равны единице. Наибольшее положительное значение мы можем прлтччить, когда Ь, — битовый порядок в двоичном формате со смещением равен 2<г ' -~>. Наконец, наибольшее значение, которое может быть представлено в этом формате с плавающей запятой, равно наибольшей дробной части, умноженной на 2 в степени, равной наибольшему порядку, или наибольшеевозможноезначениеслова = [1+ (1 — 2 ьи)] '2<г ' О. (12-36) ь,-< Наименьшее значение, которое мы можем представить словом с плавающей запятой, равно единице в скрытом бите, умноженной на два в наиболее отрицательной степени, или наименьшее возможное значение слова = 1 ь2 <г ' 1. (12-37) ь,-< Подставляя (12-36) и (12-37) в (12-35), получаем динамический диапазонов = -20 ° !ой<О([1+(1 2-Ьт)].2<г ' -О/[1'2 <г ' >]) (12-38) И здесь мы можем использовать приближение — когда Ь велико, скажем, превышает семь, значение 2 ьи приближается к нулю; т.
е. при увеличении Ь значение дроби, состоящей из единиц, (1 — 2 Ьи), приближается к 1. При этом (12-38) превращается в д~~~~~~~~~~й диапазонов = =20 ° !ой<о([1+1].2<г "-'-О/[1 ° 2-<г '>]) = -20 ° !ой<о(2 ° 2<г ' '-О/[2-<г ' '~]) -20 ° )ой<о(2<г ' ')/[2-<г -'Ц) = =20 ° !од<о[2 ° 2<г ' Ц =20' !од<о [2<г '>] -6.02 ° 2 '. (12-39) Попытка вывести выражение для динамического диапазона с учетом всех возможных комбинаций перечисленных факторов вряд ли привела бы к полезному результату.
Мы можем вывести приблизительное выражение для динамического диапазона, которое часто используется на практике [8, 22, 24]. Предположим следующее: порядок представлен Ь -битовым двоичным числом со смещением, дробная часть представляет собой нормализованное число в виде модуля со знаком, имеющее знаковый бнт и Ь значащих битов, а скрытый бит располагается слева от двоичной запятой. Наше гипотетическое слово имеет следующую форму: 12.5. воичный о мат с поблочно плавающей запятой Используя (12-39), мы можем оценить, например, динамический диапазон чисел с плавающей запятой в коротком формате 1ЕЕЕ Р754, который содержит восемь битов порядка: динамический диапазон геее рт«4 - 6.02 ° 2« - 1529 дБ .
(12-40) Мы продемонстрировали только самые главные свойства наиболее употребительных форматов чисел с плавающей запятой, но в этой области есть еще множество деталей, требующих изучения. Для заинтересованного читателя ссылки, приведенные в конце этой главы, могут послужить хорошей отправной точкой. 12.5. Двоичный формат с поблочно плавающей запятой Союз двоичных чисел с фиксированной и с плавающей запятой известен как формат с поблочно плавающей запятой.
Эта схема используется, особенно в специализированных процессорах БПФ, когда обрабатываются большие массивы, или блоки, данных. При использовании поблочно плавающей запятой сначала анализируются все слова в блоке данных, затем нормализуется мантисса наибольшего слова и вырабатывается правильный порядок. Эта нормализация позволяет использовать весь динамический диапазон мантиссы. Затем мантиссы остальных слов сдвигаются так, что они могут использовать порядок наибольшего слова. Таким образом, все слова данных в блоке используют один и тот же порядок, что позволяет сэкономить память. В реализациях БПФ арифметические операции выполняются над блочно нормализованными данным, как над числами с фиксированной запятой.
Но когда в результате сложения возникает ситуация переполнения, все слова данных сдвигаются на один бит вправо (делятся на два), а порядок увеличивается на единицу. Как, возможно, читатель уже догадался, форматы с поблочно плавающей запятой имеют расширенный динамический диапазон и позволяют избежать проблем переполнения, свойственных форматам с фиксированной запятой, но не достигают характеристик, характерных для форматов с истинно плавающей запятой 18,25,261.
Библиография 1. НепйеЪапег, О. «ТЬе Н!зсогу о1 Апс!епс Азсгопошу», 1оипиг1 о7' №ат Еазгетл 5пн11ез, ч'о1. 4, 1945, р. 12. 2. КппсЬ, Р. Е. Тйе Атг о~ Сотригетртойтатт(пд: 5ет(питепса1 Мегйог1з том 2, раздел 4.1, А<И!зоп-Жез1еу РпЪ|!з|йпй, Кеас|!пй, МаззасЬцзесгз, 1981, р. 179 (Кнут Д. «Искусство программирования для ЭВМ» М., Мир 1977; ванч://1!Ь.гп).
3. КезСег, Ж. «РейрЬега1 С1гсшгз Сап Ма1се ог Вгеа1с 5ашр1!пй-АРС ЗузСешз», ЕЮХ Майаг(пе, ОссоЬег 1, 1992. 4. Огоче, М. «Меазпппй Ггецпепсу Кезропзе апс1 Еггесс!че Вйз ()яп8 Р|д!са| Я|япа1 Ргосезз!пй ТесЬп!с|вез», Нета1егг-РаскапЦоитпа!, РеЬгпагу 1992. 5. Те!сСгошх. «Е(гесс!че Вйз Тезс!пй Еча!паСез Рупаппс Капйе Рег1оппапсе о1 Р|- 8!с!х!п8 1пзспппепсз», ТеягтопсхАрр11саг1оп Ноге, Но. 45»ч'-7527, РесешЬег 1989.
6. ПзЬаш, К. «ЗпЬгапй!п8 АРСз Орегасе ас Н!8Ь Яреед ъчсЬ Н|8Ь Кезо1псюп», ЕРШ Майаз!пе, АрП1 11, 1991. 466 Глава 12. Ци овые о ыатыданныхиих аль в об аботке сигналов 7. Реш1ег, М. «Типе-Ропса!п ТесЬп!с!иез ЕпЬапсе Теяс!пй о! Н!8Ь-Зреес! АРСв, ЕР?Ч Маяаг(пе, МагсЬ 30, 1992. 6. Н!1!оп, Н. «А 10-МНх Апа1ой-со-Р!8!са! Сопчегсег чт!сЬ 110-с1В 1.шеапсу», Несо!егг-расМатсЦоитпа1, ОссоЬег 1993.
6. 1.уопя, К. О. «Ргоч!с!!пя Зогсятаге Р!ех!Ъ|1йу !ог Орска! Ргосеязог Ыо!яе Апа1угйя, Сотригет Рея(йп, !и1у 1978, р. 95. 10. КписЬ, Р. Е. Т!сеАтг о/Сотрисет рторатт(пд: 5етгпитепса! Мейос7я, том 2, раздел 4.2, Ас(йяоп-Жез1еу РиЫ!яЬ!пй, Кеас!!п8, МаяяасЬияесся, 1981, р. 198 (Киут Д. «Искусство программирования для ЭВМ» М., Мир 1977; йель//1!Ь.ги). 11. КаЬ!пег, 1 К., апс! Со!и, В.