Гольденберг Л.М. и др. - Цифровая обработка сигналов (Справочник) (1044122), страница 16
Текст из файла (страница 16)
Таблица 3.2 2Е 2! Пример 8.1. Запишем число А=25,8125ыр> в различных системах счисления, используя (3.1) и 13.2): двоичная СС: А=1 24+1 ° 2з+О 22+ 0 2т+ 1 20+1.2 ! +1 ° 2 2+0.2 а+1.2 А!21 — 11001, 1101; восьмеричная СС: А=З 8'+1 8 +6 8 ~ -1-4 8 А„, = З1,64; шестнадцатиричная СС: А= 1 ° 1бт+9 16а+Р 16 А !а — 19,Р. Каи правило, в устройствах цифровой обработки сигналов числа представляются в двоичной системе счисления. 3.1.2. Перевод чисел иа одной ПСС в другую Перевод чисел из одной ПСС в другую осуществляется в соответствии со следующими алгоритмами.
Алгоритм подстановки. Для перевода числа А~ ~ из ПСС с основанием гт р1 в ПСС с основанием р, необходимо в представление числа А~р 1 в виде 1 (31) подставить значения основания р и разрядов а;, записанные в ПСС с основанием рв и вычислить полученную сумму произведений. Пример 8.2. Перевод двоичного числа А~ю=1011,0! в десятичную систему счисления: АПа1 — 1 2з+О 22+! 2т+1*2а+О 2 ~+1 2 2=11,25. 83 О 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16 384 32 768 65 536 131 072 262 144 524 288 — 1 — 2 — 3 — 4 — 5 — 6 — 7 — 8 — 9 — 10 — 11 — 12 — 13 — 14 — 15 — 16 — 17 — 18 — 19 — 20 0,5 0,15 0,125 0,0625 0,03125 0,015625 0,0078125 0,00390625 0.,001953125 0,0009765625 0,0004882812о 0,000244140625 0,0001220703125 0,00006103515625 0,000030517578125 0,0000152587890625 0,00000762939453125 0,000003814697265625 0,0000019073486328125 0,00000095367431640625 Перевод десятичного числа Апм=11,25 в двоичную систему счисления: АОΠ— 1 ° 1010+~ + 1 ° 1010«+ 10.1010 ~ + 101 1010 ш ж!011,01.
При «ручном» переводе алгоритм подстановки удобно использовать при преобразовании чисел из двоичной в десятичную СС, а при «машинном» переводе (т. е, при выполнении преобразования чисел в цифровом устройстве, работающем в двоичной системе счисления) — при преобразовании чисел из десятичной в двоичную СС. Перевод целого числа (алгоритм последовательного деления). Для перевода целого числа А~» 1 из ПСС с основанием р1 в ПСС с основанием ра необходимо 1 последовательно делить число А рт~ и получающиеся частные (большие, чем р»~ на число р», записанное в ПСС с основанием рь и выписать последовательно все остатки от деления, начиная с последнего. А, = !0100. О 10 а О Перевод правильной дроби (алгоритм последовательного умножения).
Для перевода правильной дроби А~р 1 из ПСС с основанием р, в ПСС с основанием 1 рз необходимо последовательно умножать данную дробь на число рм записанное в ПСС с основанием р~ (перемножаются только дробные части), и выписать последовательно все целые части полученных произведений, начиная с первого. Пример ЗХ Перевод десятичной дроби А~~0~=0,8125 в двоичную систему счисления: А(,1 — 0,1101. Х О, 8125 2 1, Х б250 2 2500 2 5000 2 О, Х 1, 0000 Алгоритмы последовательного деления и умножения удобно использовать при «ручном» переводе — в случае преобразования чисел из десятичной СС вЂ” и «машинном» вЂ” при преобразовании чисел в десятичную СС.
Перевод неправильной дроби выполняется в два приема (отдельно для целой и дробной частей). 3.2. ФОРМЫ ПРЕДСТАВЛЕНИЯ ЧИСЕЛ В ЦИФРОВЫХ ФИЛЬТРАХ 3.2.1 Фиксированная запятая При представлении числа в форме с фиксированной запятой считается, что положение запятой, отделяющей целую часть числа от дробной, фиксировано. Разряды слева от запятой представляют целую часть числа и его знак, а спра- 84 Пример 3.8. Перевод десятичного числа Апм=20 в двоичную систему счисления: ва — дробную часть числа. Все разряды числа (вместе со знаковым) образуюттак называемую разрядную сетку ЦФ.
Каждый 1-й разряд сетки имеет определенный вес, что позволяет просто реализовать арифметические операции. Как правило, в ЦФ исгользуется нормирование обрабатываемых данных таким образом, чтобы все арифметические операции выполнялись с числами, по абсолютному значению меньшими единицы: 0 <~ 1А~< 1. (3.3) Разрядная сетка, содержащая Ь+1 двоичных разрядов (старший — знаковый, остальные — числовые), позволяет представить 2'+' различных чисел (2ь отличающихся по абсолютному значению чисел с шагом 2 — ") в диапазоне 0()А~ (1 — 2 (3.4) Если результат арифметической операции выходит за верхний предел неравенства (3.4), происходит переполнение разрядной сетки, приводящее к искажению результата. При выполнении условия (3.3) переполнение может произойти только при операциях сложения и вычитания. 3.2.2. Плавающая нанятая Числа в форме с плавающей запятой представляются с помощью двух чисел с фиксированной запятой — мантиссы ц и порядка у: (3.5) Представление числа в виде (3.5) основано на записи его в виде А=(~р) р-т, (3.6) где р — основание системы счисления; у — целое число; р — правильная дробь.
Пример 3.5. Представим двоичное число Ад>=0,0101 в виде (3.6): а) А= О,!01 ° 10 — зт, где ы1 > — — + 0,101; ~. = — 01 00 б) А= О 0101 ° 1О"-оо где и 1 —— 0,0101; у1 1 — — +00, и т.д. Порядок у (вместе со знаком) указывает истинное положение запятой в числе А. Число называется нормализованным, если в старшем числовом разряде мантиссы стоит цифра, отличная от нуля. Нормализованное представление числа позволяет сохранить в мантиссе наиоольшее количество значащих цифр, т. е.
повышает точность вычислений. В разрядной сетке, содержащей Ь двоичных разрядов, Ь разрядов отводитт ся на представление порядка и его знака, а Ь разрядов — на представление-. и мантиссы и ее знака (Ь=Ь вЂ” 'Ь ). диапазон представления абсолютных знаи чений нормализованных двоичных чисел в форме с плавающей запятой определяется неравенством — 1 1ь О 2 2 (!А!((1 — 2 т — 11 ь .11 2 т — 1 (3.7)- 85 Пример З.б; Определим диапазон представления чисел в форме с плаваю.ще9 запятой, если разрядная сетка содержит 6=20 разрядов, причем 6 =б; 6„=14.
В соответствии с (3,7) 2 зз е !А(( (1 — 2 та).2з~. Вероятность переполнения разрядной сетки при выполнении операций над числами в форме с плавающей запятой оказывается незначительной. Однако сами операции являются более сложными по сравнению с арифметическими операциями над числами с фиксированной запятой, поскольку действия выполняются как с мантиссами чисел, так и с порядками. Прн сложении двух чисел с плавающей запятой вначале осуществляется выравнивание порядков (меныпий приводится к большему путем сдвига мантиссы на соответствующее число разрядов вправо), затем — сложение мантисс и нормализация результата. При умножении двух чисел производятся сложение порядков, умножение мантисс и нормализация результата:,[3.!]. 3.3.
КОДИРОВАНИЕ ЧИСЕЛ В ЦИФРОВЫХ ФИЛЬТРАХ Существуют три основных кода для представления чисел: прямой, обратныи и дополнительный В данном параграфе рассматриваются положительные и отрицательные числа с фиксированной запятой А=~О,а а ...аь, удовлетворяющие условию (3.3). Код числа содержит 6+! разряд. Старший разряд служит для фиксации знака числа и называется знаковым. Следующие 6 разрядов служат для фикса.ции дробной части числа и называются числовыми. 3.3.1. Прямой код Условное обозначение: [А] р.
Используется прн выполнении операции умно.жения в ЦФ. Правило кодирования: в знаковый разряд кода записывается 0 (для положительных чисел) и 1 (для отрицательных чисел), числовые разряды кода соответствуют числовым разрядам (дробной части) исходного числа: [ А],рО. ага, ...
аь при А=-:0; (3.8) 1. ат а, ... аь при А(0. Пример 3.7. Представим положительное число А и отрицательное число В, 'модуль которых равен 0,10111, в прямом коде. В соответствии с (3.8) [А]яр= 0 ° 10111 н [В]вр — 1 !0111. 3.3.2. Дополнительный мод Условное обозначение: ![А]л,е. Используется прн выполнении операций ум.ножения и сложения в ЦФ. Правило кодирования положительных чисел: дополнительный код положи-тельного числа совпадает с прямым кодом:,[А]ль,=![А]~р.
Правило кодирования отрицательных чисел: в знаковый разряд кода за=.писывается 1, числовые разряды исходного числа ннвертируются (О заменяется 1 и наоборот) и к младшему числовому разряду добавляется 1: [А) хоп= О. а1аа ... аь при А~О; (3.9) 1. а1 аз ... аь-1- 2 при А(0. Пример 3.8. Представим отрицательное число А= — 0,10111 в дополнительном коде. В соответствии с (3.9) [А) пр — -- 1.