Айфичер Э., Джервис Б. Цифровая обработка сигналов, практический подход (2-е изд., 2004) (1095888), страница 153
Текст из файла (страница 153)
В данном случае число представляется с использованием одного бит знака и четырех бит дробной части: О, 95624 х 24 = 15, 29984, что округляется до 15 = 01111. Ошибки в представлении чисел в и. 1 и 2 равны соответственно О, 64992/8 = О, 08124 и 0,29984/16 = 0,01874. Ошибка в представлении числа часто называется ошибкой квантования коэффициентов.
3. Из уравнения (!3.2) находим, что требуется 3,3 х 5 = 16,5 бит 17 бит. 13.2.1.2. Умножение с фиксированной запятой При умножении с фиксированной запятой используется тот факт, что произведение двух дробных чисел также является дробным числом, а произведение двух целых чисел — это целое число. Проиллюстрируем сказанное на примере. Пример 132 Возведите 0,5625 в квадрат, используя арифметику с дополнением до двух с фиксированной запятой. Предполагается формат О4. Решение 1001 = 0,5625 1001 = — 0,5625 000101 двоичная запятая 0001 при квантовании произведения бит теряется (для удаления дополнительного бита) и округления получаем 0101 = 0,25 + 2 4 = 0,3125 (точный ответ — 0,31640625).
После сдвига влево окончательный ответ: 0 0 0 00000 0100 000 00 О 1 00 000 1001 Глава 13. Анализ эффектов конечной разрядности... 13.2. Арифметика ЦОС 873 Из примера !3.2 видно, что после умножения получается дополнительный бит знака, и что произведение двух 5-битовых чисел имеет длину 10 бит, так что результат следует округлить или усечь до 5 бит перед записью в память. Вообще, произведение двух В-битовых чисел имеет длину 2В бит. Например, 10-битовый результат смещается на один элемент влево для удаления добавочного бита знака, а затем округляется до 0,0101. Округление (или усечение) результата, как иллюстрируется выше, является одним из главных преимушеств дробной арифметики с дополнением до двух, поскольку оно означает, что при умножении никогда не произойдет переполнения.
Впрочем, подобное округление (или усечение) вносит в сигнал ошибки, которые могут привести к неустойчивости или некоторым нежелательным побочным эффектам в системах ЦОС с обратной связью. 13.2.1.3. Сложение с фиксированной запятой Сложение двух дробей с фиксированной запятой значительно сложнее умножения. Это объясняется тем, что операнды должны представляться в одном О-формате, кроме того, следует учитывать возможность переполнения. Прнмйр 13э3:; Найдите сумму следующих чисел, представленных в формате дополнения до двух: 0001 1001 и 0110 1101 011 1101.
Решение Вначале операнды выражаются в одном О-формате, а затем складываются: 0110 1101 0111 1101 0001 1001 0000 0000 1000 0110 0111 1101 ~ переполнение Один из способов скорректировать переполнение — это сместить результат на одну позицию вправо, а затем установить метку экспоненты. Таким образом, ответ получается следующим: 1 0100 0011 0011 1110 метка экспоненты Другая альтернатива — это представить результат с использованием двойной точности илн предоставить достаточное свободное пространство, чтобы разрешить расширение вследствие переполнения.
874 Глава 13. Анализ эффектов конечной разрядности... -Пример', 134': Пусть размер регистра составляет 4 бит (1 бит знака и 3 бит данных). Найдите сумму следующих чисел: 1) -0,25 и 0,75; 2) 0,5; 0,75; — 0,5. Решение Из табл. 13.2 находим; О, 25ю = О, 010з', О, 5ю — — О, 100з и О, 75|о = О, 110з. 0,75 0,110 — 0,25 1,110 0,50 1 0,100 Ответ: 0,100. 0,5 0,100 +О, 75 О, 110 1, 25 1, 010 — частичная сумма 1, 100 — 0,50 О, 75 1 0„110 — окончательная сумма Ответ: 0,110. 13.2.2: . Арифметика с плавающей запятой 13.2.2.1. Представление в Формате с плавающей запятой Двоичное число Х в формате с плавающей запятой представляется как произведение двух чисел со знаком — мантиссы М и экспоненты Е: Х=М 2к, (! 3.3) где 2 — основание двоичной системы. Экспонента определяет диапазон чисел, которые можно представить, мантисса— это точность чисел.
Например, если экспонента и мантисса представлены 8 и 16 бит соответственно, диапазон чисел с плавающей запятой, которые можно представить, в данном случае — от 0,5 х 2 'зз до 1 — (2 'з) х 2'зз. Из 16 бит, используемых для представления мантиссы, один — это бит знака, а самый младщий разряд имеет сомнительную точность из-за эффектов округления. Следовательно, точность чисел с плавающей ззпятой составляет 1 в степени 2ы (0,61 х 104), т.е.
порядка 4 десятичных цифр. 13.2. Арифметика ЦОС 17$ Зная Несси»я авоичнав мияпн Пояс зсспонснтн Пояс значащая пнфр 5 Ез Е» Ев Е» Ез Ез Ев Ес Евв Еи Рн Евв Рвв Еп Евв Рп Рвв Рвз Рвз Рн Ен Ез Ев Рв Е» Ев Ев Ев Е» Ев Ра 53 ЗО 29 ?8 ?7 ?б ?5 24 25 2? 23 20 39 38 37 38 35 34 32 32 33 30 9 8 7 б 5 4 5 2 3 0 Свисс значащее »восо Нв ни си се за вчвюсс саово Рнс. 13.1. Представление с плавающей запятой (формат!ЕЕЕ обычной точности) 13.2.2.2. Формат с плавающей запятой 1ЕЕЕ Одной из наиболее широко используемых двоичных систем с плавающей запятой является стандарт 1ЕЕЕ 754 [9, 15). Формат обычной точности представлен на рис.
13.1. В данном случае числа с плавающей запятой с экспонентой в диапазоне 0 < Е < 255 называются нормированными. Десятичный эквивалент Х нормированного числа с плавающей запятой в формате 1ЕЕЕ равен Х в ц »1 р)2к-327 где ° à — мантисса дробной части в формате дополнения до двух, представленная битами от 0 до 22. ° Š— экспонента в форме представления "с избытком 127". ° л = 0 для положительных чисел, л = 1 для отрицательных чисел.
Две важные особенности формата 1ЕЕЕ с плавающей запятой — перед мантиссой предполагается наличие 1 и используется смещенный порядок (Ь?азот) ехропеп1). П»~Уйн8~83ф;13.$' 1. Дла числа с плавающей запятой 0 1000 0011.1100... 00000 экспонента равна 1000 0011 = 131, мантисса — О, 1100... = О, 75 и л = О. Следовательно, Х = (1, 75)2'8' '?' = 1 х 1, 75 х 24, 2. Для числа с плавающей запятой 1 0000 1111.0110... 00000 экспонента равна 0000 1111 = 15,мантисса — 0,0110... = 0,375 и л = 1.
Следовательно,Х = (1,375)238 '2' = — 1 х 1,375 х 2 "8. Глава 13. Анализ эффектов конечной разрядности .. 876 13.2.2.3. Сложение и умножение с плавающей запятой Если Х, и Хг — два числа с плаваюшей запятой, сумму которых нужно найти, причем Хг — — М, х 2л' и Хг —— М, х 2кг, их сумма Х равна Х = М х 2л, где М = М, +М, х 2к' ~г;Е= Ео пРедполагаЯ, что Хг > Хг.
(13.4) Перед сложением двух чисел с плаваюшей запятой необходимо уравнять их экспоненты. Этот процесс называется выравниваем и включает сдвиг вправо мантиссы меньшего операнда и увеличение его экспоненты, пока она не сравняется с экспонентой большего операнда. Если Х, и Хг — два надлежащим образом нормированных числа с плаваюшей запятой, произведение которых нужно найти, причем Х1 —— М, х 2~', Хг = )Уг х 2~', тогда их произведение Х записывается следующим образом: (13.5) Х = М х 2к, где М = М, х Мг, Е = Ег + Ег. Пример.13,6 1. Найдите сумму двух чисел А и В, где А = 9, 985 х 10к и В = 5, 6756 х 10г. 2.
Найдите произведение двух чисел А и В, где А = 2, 75 х 10 'в и В = 4, 5 х 10'в. Решение 1. Прежде всего экспоненты двух чисел сравниваются, и если они не равны, мантисса операнда с меньшей экспонентой смещается так, чтобы две экспоненты стали равными: 5,6756 х 1062 = 0,056756 х 104. Затем мантиссы складываются: М = 9,985 + 0,056756 = 10,041756; Е = 10 Таким образом, мантиссы умножаются и их экспоненты складываются. Поскольку М, и Мг — нормированы, их произведение М будет принадлежать диапазону О, 25 ( М < 1.
Следовательно, произведение М не вызывает переполнения, но может быть неверно нормировано ("антипереполнение"мантиссы). 13.3. Шум квантования АЦП и качество сигнала 677 и их сумма равна 10, 041756 х 104. Затем сумма нормируется — смещается десятичная точка мантиссы и (при необходимости) выравнивается экспонента — и получается окончательный ответ: 1, 0041756 х 104. 2.
Мантиссы перемножаются и экспоненты складываются; М .= 2, 75 х 4, 5 = 12, 375; Е = -16+ 10 = -6, в результате получается произведение А х В = 12, 375 х 10 в. Далее произведение нормируется, причем предполагается, что должным образом нормированное число с плавающей запятой меньше 10, — для этого выравнивается экспонента и меняется положение десятичной точки в мантиссе. В результате получаем А х В = 1, 2375 х 10 ". В арифметике с плавающей запятой ошибки округления возникают и при сложении, и при умножении, тогда как в арифметике с фиксированной запятой ошибки округления возможны только при умножении. Впрочем, в отличие от переполнения в арифметике с фиксированной запятой, переполнение при сложении с плавающей запятой крайне маловероятно из-за очень большого доступного динамического диапазона: чем больше битов в экспоненте, тем шире динамический диапазон.
В настоящее время значительное распространение получили программы и процессоры ЦОС с плавающей запятой (см, главу 12). : 1343;;Шум квантования АЦП и'качвство сигйала,'::,'': ..;:;,.-':.'"::--.'-':':::.„"-.,;: АЦП квантует аналоговый входной сигнал в конечное число битов, обычно 8, 12 или ! б, что приводит к появлению шума квантования. Как обсуждалось в главе 2, мощность шума квантования (или дисперсия, ттзцп) записывается следующим образом: г! 2 2 — 2В и и 12 3 (1З.б) где г! — размер шага квантования, а  — число битов АЦП.
Очевидно, что уровень шума можно легко уменьшить, увеличив число битов АЦП. Кроме того, можно также снизить этот шум, используя методы обработки при нескольких скоростях (см. главу 9). Вообще, для значений В, превышающих 12 бит, шум из-за ошибки квантования незначителен, исключая такие приложения, как профессиональное аудио, где для получения приемлемого качества требуется не менее 16 бит.