Сергиенко А.Б. Цифровая обработка сигналов (2002) (1095939), страница 71
Текст из файла (страница 71)
Приведем простой пример: 2=2 2" =1 2' = — 2' =... 2 Чтобы устранить эту неоднозначность, принято ограничивать диапазон допустимых значений мантиссы, например, так: 0,5 < )Д < 1, нли так; 1 < ~ Я < 2 (этот вариант используется наиболее часто). Процедура приведения мантиссы к допустимому диапазону называется нормализацией, а экспоненцнальная запись числа, удовлетворяющая указанным ограничениям, — иорг«ализоватюй экспоненциальной формой. Нормализация мантиссы позволяет сэкономить один разряд в ее двоичном представлении.
Действительно, если нормализованная мантисса лежит в диапазоне [0,5, 1[, то ее двоичная запись имеет вид «0,1,», а если для нормализации используется диапазон [1, 2[, двоичная запись будет выглядеть как «1,...». В обоих случаях заранее известно, что первый значащий разряд равен единице, поэтому его можно не хранить. Иногда это называется использованием неявного старшего бита. Для представления отрицательных чисел необходимо обеспечить возможность представления отрицательных значений мантиссы. Как правило, для этого используется прямой код (см.
ранее раздел «Представление отрицательных чисел»), то есть модуль мантиссы и знаковый бит хранятся независимо. Использование строго нормализованной мантиссы делает невозможным представление пулевого значения в формате с плавающей запятой. Поэтому используется специальное соглашение о том, что число, содержашее нули во всех разрядах мантиссы и порядка, считается нулем. Знаковый разряд при этом может иметь любое значение.
Таким образом, имеется два представления нуля — «положительный нуль» и «отрицательнь1й нуль». Об этом уже говорилось ранее в разделе «Представление отрицательных чисел». Чтобы использование данного соглашения для представления нуля не привело к возникновению «дырки» в наборе представимых чисел, нулевое представление порядка должно соответствовать не нулевому, а минимально возможному эуз Глава 7.
Эффекты квантования в цифровьи системах (то есть отрицательному) его значению. Поэтому для представления порядка чисел с плавающей запятой используется сзяеитенпый код (см. ранее раздел «Представление отрицательных чисел»). ЗАМЕЧАНИЕ Если бы порядок хранился, например, в дополнительном кодс, число, имсютцие нули во всех разрндах мантиссы и порнлка, форыальпо равнялось бы единице, и замена его на пуль привела бы к невозможности представления единичного зпачсши, что нвпо неприемлемо.
Итак, для представления нулевого значения в формате с плавающей запятой мантисса неминуемо должна быть деттормыизоваттттой. Однако если использовать ненормализованную мантиссу только для представления нуля, малые по модулю числа, представимые в данном формате, оказываются расположены неравномерно — вокруг нуля появляется «мертвая зона», размер которой существенно превышает расстояние между ближайшими к нулю представимыми числами, Чтобы решить зту проблему н сделать расположение представимых чисел вблизи нуля равномерным, применяют следующее соглаитеттие о денормализатгии: если все разряды порядка иметот пулевые значения, то величина порялка увеличиваетсн на сдшшцу.
а мантисса считается детторжализовапной, то есть содержащей в неявном старшем бите нуль, а не единицу. Это позволяет расширить возможности представления малых по модулто чисел. грактттчески в данном случае мы увеличиваем диапазон возможных отрицательных порядков за счет сокрашения числа значащих цифр мантиссы.
Поясним сказанное на примере, рассмотрев 6-битовый формат с плавающей запятой, в котором отведено 2 бита для хранения порядка и 3 — для хранения мантиссы. Биты лвоичцого представления числа, таким образом, имеют следующее назначение: зеелптл Здесь з — знаковый бит, е — биты порядка, ж — биты мантиссы. Рассчитаем и покажем на графике (рис. 7.1) все числа, которые можно представить в данном формате без использования и с использованием денормализации мантиссы для малых чисел. Соответствующие вычисления можно осуществить с помощью следующей МАТЮКАВ-програьтьты: "ь' первый вариант - денориализациЯ только длЯ нулЯ тог д = 0:бЗ 3 перебор всех возможных представлений з = 1 — 2 * Ьтсдег(к.
б); Ж знаковый иножитель е = Ь12Ое(Ьттре1(к. дгб))-1; Ж порЯдок лт = 1 . Ьт'ГапотК, 7) ! 8; Ж иантисса т тб -Ьттапот'к. 31) П'к»1)=О; з' нуль - особый случай е)зе 71'к+1)=з*лт*(2"е); епо епо зцЬр)оь(2. 1, 1) Форматы представления чисел р)ос(т. 1*0, '. ') Ж второй вариант — денорнализасиЯ длЯ палых по иодулю чисел тсг К = 0:63 Ж перебор всех вознояных гредставлений з = 1 - 2 * Ь(сде1(К. 6): Ж знаковый кноиитель е = Ь~2де(Ь~ 1де1(К, 4:6)): Ж сиещенный порЯдок 11 е Ж обычный случай - нориализуеи как)яссу е = е-1: Ж истинный порЯдок и - 1 + Ь(1апб(К. 7) ! 8: Ж коряализованнаЯ кантисса е)зе Ж нули в поле порЯдка - не норкализуеи иантиссу и = Ьз1апб(К, 7) 7 8; Ж денорнализованнаЯ кантисса епб 1(К+1)=з*гл*(2"е): епб зсЬр)ог(2.
1. 2) р)оС(г. 1*0. '.') -2 о 2 4 6 8 -6 -4 -2 о 2 4 6 8 Рис. 7.1. Числа, представимые в 6-битовом формате с плавающей запятой без использования (сверху) и с использованием (снизу) соглашения о денормализации мантиссы для малых чисел Сравнение двух графиков рис, 7.1 наглядно демонстрирует, как денормализация мантиссы влияет на возможности представления малых по модулю чисел. ЗАМЕЧАНИЕ В приведенном листинге использованы следующие функции МАТ1.ЛВ: Ь(гдет — возвращает биты с заданными померамп нз двоичного представления цслого неотрицательного 'числа; Ь(тапб — выполняет побитовую логическую опсрацщо «И» над неотрицательными целыми числами; Ьт2бе — преобразует вектор, состоящий из нулей и единиц, трактун его как запись числа в дво~ичпой системе счисления, В заключение данного разделе приведем сведения о форматах с плаваюшей за- пятой, поддерживаемых процессорами персональных компьютеров: (3 формат с одинарной точностью 161пд)е в языке Разса1, г)оат в языке С)— 32 бита, включающие знаковый разряд, 8 бит порядка и 23 бита мантиссы; 01 формат с двойной точностью КбоцЬ)е в языках Разса1 и С) — 84 бита, включаюгцие знаковый разряд, 11 бит порядка и 52 бита мантиссы.
Это основной формат хранения данных в МАТ1.АВ; 380 Глава 7. Эффекты квантования в цифровых системах Л формат с расширенной точностью (еххепдед в языке Разса1, 1опй доцЫе в языке С) — 80 бит, включаюших знаковый разряд, 15 бит порядка н 64 бита мантиссы. В отличие от двух предыдущих форматов, здесь не используется неявный старший бит мантиссы.
Формат с плавающей запятой за счет экспоненциального представления чисел обладает сугцественно большим динамическим диапазоном, чем формат с фиксированной запятой прн той же длине слова. Однако платой за это является неравномерность квантования и повышенная сложность реализации арифметических операций. П роцесс квантования 1<ак уже отмечалось в главе 3, квантованием называется процесс преобразования истинных значений отсчетов сигнала в двоичные числа, имеющие конечное число разрядов. Там же было введено понятие шума квантования, В данном разделе мы обсудим шум квантования несколько подробнее, а также рассмотрим идею неравномерного квантования.
Шум квантования 1<ак было отмечено в разделе «Аналоговые, дискретные и цифровые сигналы» главы 3, при представлении отсчетов дискретного сигнала в виде чисел с ограниченной разрядностью происходит их округление. Разность между исходным н округленным значениями называется шумом кеантоеатшя. Анализ вопросов, связанных с шумами квантования и ошибками округления в цифровых системах обработки сигналов, весьма сложен (см., например, [8]). В данном разделе будет представлено лишь несколько положений общего характера. В качсстве иллюстрации процесса квантования на рис. 7.2 показаны (без дискретизации по времени) гармонический сигнал е(г), результат его квантования з„(г) и возникающий при этом шум е(с) - е(г) — з,(г), Очевидно, что значения шума квантования лежат в следующих пределах; Л Л вЂ” <е(г) < —, 2 2 где Ь вЂ” расстояние между соседними уровнями квантования, то есть разность между ближайшими возможными значениями квантованного сигнала.
В болыцнцстве случаев можно считать е(г) случайным процессом, имеющим равномерное распределение вероятности в указанных пределах. Такой случайг иый процесс имеет нулевое среднее значение и дисперсию, равную Ь /12. После дискретизации шум квантования представляет собой последовательность шсел е(lгТ), образующую дискретный случайный процесс (см. раздел «Дискретные случайные сигналы» главы 3). Во многих случаях отсчеты этой последовательности можно считать некоррелированными друг с другом. З81 Процвос квантование к,(г Рнс.
7.2. Процесс квантования гармонического сигнала ЗАМЕЧАНИЕ На рнс. 7.2 предполагалось, что прн квантовании производится округление эпачепнй уровня сигнала. В реальных АЦП вместо этого может использоваться усечение, то есть округление в сторону меньшего значения. В этом случае шум квантования лежит в диапазоне О...Ь, его среднее значение равно д/2, а дисперсия, как н в случае округления, составляет А~/12. В качестве примера рассчитаем отношение сигнал/шум (з(йпа1-го-по!зе гайо, Б!ч(К) при квантовании гармонического сипшла. Пусть квантованию подвергается гармонический сигнал с амплитудой А. Определим отношение снгнал/шум, разделив эту амплитуду на среднеквадратическое значение шума квантования: С/Ш = =2 =А(,Г3, Д/12 где Аг- 2А/Л вЂ” число уровней квантования, укладывающихся в размахе сигнала.