Цифровая обработка сигналов: Справочник - Гольденберг Л.М.
Скачать (прямая ссылка):
Пусть заданы обратные коды чисел А к В, причем |А|, |В|, \А+В\<1.
Обратный код суммы чисел образуется путем сложения обратных кодов
слагаемых с учетом переноса из знакового разряда (циклического переноса),
прн наличии .которого к младшему разряду суммы добавляется 1.
Пример 3.13. Допустим А=-0,01001, В = 0,11000. Тогда
И1обр= 1.10110
+ [А + В]обр = 0.01111.
[В]обр = 0.11000
1; 0.01110
Циклический >+ 1
перенос ______________
0.01111
3.4.3. Переполнение разрядной сетки при сложении
При сложении нескольких чисел, удовлетворяющих условию (3.3), может -
произойти переполнение разрядной сетки. Для фиксации переполнения
используют модифицированные коды, содержащие h дополнительных знаковых
разрядов, где A=intlog2?, a k - число слагаемых.
При сложении двух чисел (&=2) А= 1. Модифицированный код, фиксирующий
переполнение, должен содержать два знаковых разряда. При наличии
переполнения значения знаковых разрядов не совпадают, т. е. в знаковых
разрядах фиксируется комбинация 01 или 10.
3.4.4. Умножение в прямом коде
Пусть множимое А содержит Ъ числовых разрядов, а множитель В - т числовых
разрядов
[¦^]пр - яо- °i °2... аь;
[^Inp^^o- bi bi ... bmt где "о, &о={1,0}-знаковые разряды сомножителей.
Точное значение произведения Р-АВ может содержать до Ь+т числовых
разрядов. Значение знакового разряда произведения Р определяется путем
сложения значений знаковых разрядов сомножителей по модулю 2: ро=яо(r)&о,
т. е.
' 1 при а0фЬо\
Ро = п .
0 при ао=Ьв.
88
Значения числовых разрядов получаются путем перемножения числовых
разрядов сомножителей.
Пример 3.14. Пусть А--0,1001; В=0,101. Выполним умножение чисел в прямом
коде по алгоритму умножения, начиная с младших разрядов [3.2]:
1ч-1.1001=а[А]Пр 0 X?
0ч-0.101 -- [5]пр
Т ioow
Формирование знака произведения
+
01001
0000
01001-Ч-
001001 ' 1001
101101-
1.0101101 = [ЛВ]Пр.
Стрелка -"- соответствует сдвигу кода частичной суммы на один разряд
вправо.
Различные алгоритмы умножения чисел в прямом коде подробно описаны в
[3.2].
3.4.5. Умножение в дополнительном коде
При умножении чисел в дополнительном коде множимое и частичные
произведения обычно представляются в модифицированном коде (для
устранения переполнений при вычислении частичных сумм).
Алгоритм умножения чисел в дополнительном коде, начиная с младшего
разряда, практически аналогичен соответствующему алгоритму для прямого
кода, однако на последнем шаге (при отрицательном множителе) к частичной
сумме добавляется дополнительный код числа, равного-множимому по
абсолютному значению и противоположного по знаку.
Пример 3.15. Пусть А--0,111; В=-0,010, т. е. [А] "а0п=11.001;
[?]мдоп=1.110; [-А]"ноп=00.111;
[А]" =1 1.001
X
[В] "оп=1-Н°
+
+
00 X о о
1 ° 1 О .0000
и .001
п. О О ?
п. .10010
п. .001
10. t 2 о
11. .010110
О О | ли
00.001110= [АВ]доп.
89
Различные алгоритмы умножения чисел в дополнительном коде, в том числе и
широко используемый в ЦФ алгоритм Бута, подробно рассмотрены в [1.6,
3.2].
3.5. КВАНТОВАНИЕ ЧИСЕЛ В ЦИФРОВЫХ ФИЛЬТРАХ, ИСПОЛЬЗУЮЩИХ АРИФМЕТИКУ С
ФИКСИРОВАННОЙ ЗАПЯТОЙ
3.5.1. Общие сведения
Квантование числа есть представление последнего с помощью конечного
количества (Ъ) числовых разрядов. Операция квантования является
нелинейной и вносит в представление числа х ошибку
?цв==К (х)-х, (3.11)
где х - число до квантования; F{x) -число после квантования (после
выполнения нелинейной операции F).
Шагом квантования Q называется весовой коэффициент младшего числового
разряда, равный 2~ь. При квантовании используются два способа: округление
а t/сечение.
3.5.2. Округление
При округлении числа до Ъ разрядов исходное m-разрядное число (Ь</п< <оо)
заменяется на ближайшее Ь-разрядиое (округление соответствует выбору
ближайшего уровня квантования).
Ошибка округления E0=F0{x)-х удовлетворяет неравенству
-2"й/2 < ?0 < 2~ь/2 (3.12)
для всех трех способов кодирования чисел (прямого, обратного и
дополнительного кодов). В (3.12) считается, что m^>b.
Характеристика нелинейности, соответствующая операции округления,
показана иа рис. 3.1,а.
Рис. 3.1
Р(ЕУ)
J-1
-Г В Ть~' Ф
б)
О Г' В)
Рис. 3.2 90
Плотность вероятности ошибки округления Р(Е0) показана на рис. 3.2,с..
При анализе эффектов квантования в ЦФ, как правило, предполагается, что
все значения ошибки квантования равновероятны, т. е. ошибки распределены
равномерно.
3.5.3. Усечение
При усечении m-разрядного числа до Ъ разрядов (Ь<т<оо) младшие т-Ь
разрядов исходного числа отбрасываются.
Ошибка усечения Ey=Fy(x)-х удовлетворяет неравенствам:
а) для положительных чисел при любом способе кодирования и отрицательных
чисел в дополнительном коде
- 2-й<?у<0; (3.13')
б) для отрицательных чисел в прямом и обратном кодах
О < Еу < 2-Ь . (3.13")
В (3.13) считается, что т>Ь.
Характеристика нелинейности, соответствующая операции усечения для
дополнительного кода, показана на рис. 3.1,6, а для прямого и обратного
кодов- иа рис. 3.1,в.
Плотности вероятности ошибки усечения Р(ЕУ) показаны на рис. 3.2,6 для