Солонина А., Улахович Д. Алгоритмы и процессоры цифровой обработки сигналов (2002) (1095891), страница 28
Текст из файла (страница 28)
3.14. Сохранение числа в формате "двойное слово" (иллюстрация примеРа 1) Рис. 3.13. Сохранение числа е формате "расшиРенное слово" !иплкгстрация примера 2) в) целое число Слово Алгоритмы и процессоры цифровой обработки сигналов Десятичный зкеиаапент -2г + 2г + 2'+ а. + 2 г + 2 в = -0.84375 3 Десятичный эквивалент -2 + 2'2г+ 2! =-!08 140 Алгоритмы и процессоры цифровой обработки сигнвлоч Глава 3.
Данные 141 3.7.7. Представление данных при целочисленной арифметике В процессорах с ФТ и цеаачцссеннай арифметикой Гслс. равд. 3. 75) для пред ставления исходных данных вессгествессссого пша (весцественных чисел) используют их целочисленные злассвасессслы. Они опрелелясогся в результате масштабирования. которое выполняется иользователем перед составлениец прос раммы. Масшсабированнс можно выиоашть одним из леул способов: (3 первый способ — из асей совокупности исходных данных вещественного типа выбирается максимальное по модулю число и приравнивается к максимально допустимому ио модулю целалг числу в формате "слово" (маишннои единице); значение остальных исходных санных вещественного типа сгахочится из соответствующей пропорции; дробная часть отбрасывается или олругляется пользователем; П второй способ — производится предварительное масштабирование данных вещественного типа так.
чтобы осси не иревосхошли 1 по модулю; затем осушествтяется их масциабироваиие к машинной единице по первому способу. На практике чаще масштабируют ио второму способу, для которого в табл. 3.5 приведен пример соотвстствсся чисел прн длине слова 16 битов. Масштабировать следует к максимальному по модулю значенисо, в даниолс случае лсашинная сдшшцв равна 32 768. Таблица 3.5.
Целочисленные эквиваленты при длине слова 18 битов Исходные данные Првдстввлвнив двн- Шестнадцатеричный эквивалент алгоритма иых в программе в дополнительном коде 7ЕЕЕ 32 767 16 384 4000 О,б 0000 ОООО -О,б -1Б 364 -32 7ББ 8000 При целочисленной арифлсетике исходные данные целого типа не масшта бируются, если они ие превосходят машинной единицы. Иначе масштабсс рованис прелусматривается пользователем. При целочисленной арифметике результаты обработки (конечные данные) получаются также в виде целочисленных эквивалентов, поэтому, если необ холимо знать истинные значения результатов, требуется выполнить ироде дуру обратного масштабирования — деление целочиспенных эквивалентов на значение массссснногг единицы. Пример 1.
В процессоре (с ФТ, целочисленной арифметикой, формат представления нсходныл дсинсых и результатов — слово ллиссои !6 битов) выпал!ляется программа преобразования массива из 100 (стс = 100) коэффициентов аг(ас — дробные числа) в другие, вычисленные ио заданному алгоритму, 100 коэффициентов Ь,. 2)оцолнитессьно среди козффицссесстов Ьс рассчитывается количество 2 коэффишсентов, значение которых удовлетворяет некоторому условшо алгоритма. Рассмотрим: Представление в программе (с помощью соответствующих директив языка ассемблера) исходных даиныл — коэффициентов а; и нх количества Ж 2, Определение истинных значений коэффициентов Ьь а также количества 7 Оо рассчитанным в процессоре значсниям.
Раввине задачи илсиострируется табл. 3.6. Итак: 1. В процессорах с целочисленной арифметикой ири выполнении арифме- 1ИЧЕСКИХ ОПЕРации все числа восиринимасотса Как цссЫе, ЦоэтоМУ дробные числа исобходилю залсенить их цесочнсаенныин экыссвааенсссаассс. в примере ас -л Лн где Ас — целочисленный эквивалент ал ((слочнспенньсе эквсссясленты А, коэффициентов ас (все коэффициенты по модулю меньше !) находятся из иропорции 1 — 32 768 ас — Ль спкуда Ас.
= 32 768 . ас, например, Ав = 32 768 . 0.57 = !8 677,76 илн, после округления, ао = 18 678 и т. д. (слг. табл. 3.6). В программе истинные значения коэффициентов а; заменшотся их целочиспеннылсн эквлсвалесстамп Ль Количество дс — целое число. поэтому его целочисленный эквивалент оссределссть не требуется. 2. В - В результате выполнения ссрограмлсы вычислены целочислешсые эквивапенты В, испсниых коэффишсентов Ь;, а также значение  — делос число. И4стиниые значения коэффициентов Ь; находятся по их цепочисленным эквивалентам В; из пропорции 1 — 32768 Ьс — Вь шкуда Ьс= В,/32 768. например, Ь„= Всс/32 768 = 2457/32768 = = 0.0748816 (с точностью до 7 значащих цссфр после запятой) и т.д.
(слс. табл. 3.6). Копи пичество  — целое число, поэтому в результате вычислении выдается его нстшшое значение. рава 3. Даннье 142 143 Результаты вычислений Исходные данные Имя Целочисленный эквивалент Истинное значение Целочисленный эквивалент Имя Истинное значение 0,0749816 0.9490651 -0,0037536 Ьг 2457 Ь, 31 099 18 678 — 4553 аг 0,57 а, -0,13895 9830 О,з Ьм 15 348 !. 55 28 083 Не вычисляется ам 0,85701 74 100 0,4583837 Исходные данные Результаты вычисления Имя Истинное значение Дробный эквивалент Имя Дробный Истинное эквивалент значение ал 0,57 Вычисляются 0,0749 сразу истинные значения 0,949О коэффициентов -0,0037 Не вычисляется а, -0,13895 аг 0„3 ь1 Ьг агг 0,85701 гг 1ОО Ьм 0,4683 !.
0,549 55 0,999... 1 Алгоритмы и процессоры цифровой обработки сигнале Таблица 3.8. Истинные значения и целочисленные эквивалентн 3.7.8. Представление данных при дробной арифметике Прн дрпонпд арифметике (елл рпзд. 3.7.57 значения исходных данных вешественного типа не масштабируются, если ани не превосходят едпн1шы по модулю, т. к.
машинная единица, в отличие от ЭПОС с целочисленной арифметикой, равна 0,999... = 1. Это основное преимушество цробнои арифметики. Если хотя бы одна из значений вещественных данных превосходит ! па модулю, пользователь должен прецусмотреть предварительное масштабирование.
При дробной арифметике следует масштабировать значения исходных данных «ского типа для получения пх дрпбнмт эквикгыенглпе. В этол! случае макспмальнае по модулю целое число приравнивается к 1, а значения остальных цанных целого типа находятся из пропорции. Для конечных ценных (результатоа) целого типа, если необходимо знать истинные значения результатов. требуется выполнить процедуру обратнага масштабирования Следует иметь в вплу, что в алгоритмах л(ОС абьел1 вычислении с данными пелота типа. как правика, невелик. Пример 2. Задача, поставленная в примере ! из рпзд, 3.7.7, решается в црп цессоре с дробной арифметикой; формат представления исходных ланныл и результатов — слово ллпнай 1б битов.
Решение задачи иллюстрируется табл. 3.7. 1. В процессорах с дробной арифметикой при выполнении арифметических опсрашШ все и!сза васпринпл1аются как пробные, позталгу, если асе ис хадные данные вешественнога типа по люцулю лгеньше ! (как в нашем случае) и пл не нала заменять драбнылш эквивалентами (табл. 3.7). Кшнгчество )У вЂ” целое число, поэтому необходимо вычислить его лробпый эквивалент.
который в паяцом счучае равен Л/згк = 0,999... = 1, поскольку целое шсло олно. его дробныи эквивалент соответствует машпнноп единице 0,999... = 1. Пояуч~нный л!юбцый эквивалент Ю,к, используется в программе саответствуюшего целого числа Ф. 3 В результате выполнения программы вычислены истинные значения коэффициентов Ь, (дробные числа, вопрос о точности вычислений не рассматривается) и дробный эккнвпленгк целого числа 7,гк, = 0,549 (таба.
3.7); истинное значение 7, определяется из пропорции 1 — !00 (М Е,„„— 7., откуда 7. = Е „„100 = 0,5499 !00 = 54.99 = 55 (см. табл, 3.7). Таблица 3.7. Истинные значения и дробные эквиваленты З 7 9. Арифметические операции В дополнительном коде Осца 1авным препмущестВом дапоЛНПтЕлЬНата кода ЯВЛяется то, что Вес ариф фметнческпе операшш с числами независимо от нх типа, целые пчи Цробнь ые, выпочняются одинакова — как с беззнпкпеьмгк гпклпян, когда знаковый ый разряд восприннлгается лак старший значаший. Результат арцфметикои операции представлен также е дополнительном кале.
"ассл сл!атрпм особенности вьнюлненпя операций слежения. вычитания и умяожс . '" синя прн использовании целочисленной и цробнаи арифчегпк. рава 3. Данные 145 144 У 6 5 4 Уменьшвемое т 6 5 4 3 2 Вычитаемое 6 5 4 з г 1 о Слагаемое т 8 5 4 З Разность Слагаемое трактовка типа данньм и типа врифметгии Сумме трактовка типа данныи и типа ариФметики в) целые числе рг г 2$ г гг г гг) и (-гг г 2г + 2'+ 2' + 8 = 2 = 8 08)128 — 1бг'1 28 = 80/128 = 0.625 ае ые числе: дротгнвя арифметика Алгоритмы и процессоры цифровой обработки сигналоа Сложение и вычитание На рис. 3.!6 ирцвелен пример сложения чисел в дополнительном коле ках беззнаковь)х чисел ио иравилдм обычной чвоичной арифметики.
На зтом же рисунке лается различная трактовка слагаемых и результата, Все числя пред. ставлены в формате "слово" длиной 8 битов т 6 5 4 3 2 1 0 т Б 5 4 3 2 1 0 Р ° г +г" г-г).1-2'.г. ° г +2 -2')=гт=0,0625 в) дробные числа; целочисленная арифметика; слагаемые и сумма — целые числа, которые масштабируются к машинной единице равной Й (см варианта> 53)128 + (-45))128 = бл 28- "О 0625 Рис. 3.16.