Генерация и распознование DTMF-сигналов


Рис. 16. Четыре различные конфигурации четырёхполюсника Библиотека Компэла


Ь IV. Примеры конкретных применений

4. Представление чисел и арифметика

Т.к. из ценовых соображений MSP430X325 не содержит аппаратного умно­жителя, все операции умножения выполняются при помощи сдвигов и сложе­ний либо вычитаний. Любое умножение двух чисел может быть представлено как многократное прибавление множителя. Если над двоичным числом произ­вести п операций сдвига вправо, результат будет идентичен умножению на 2". Т.к. представления коэффициентов в интервале 2" как правило недостаточно, каждая '1' в двоичном числе должна быть заменена при помощи сдвига и пос­ледующего сложения. Поясним это на примере умножения с использованием метода сдвига-сложения (shift-and-add):

1*0.46875 1b*0.011110b

= 22 = 0.01b

+ 2-3 + 0.001b

+ 2"4 + 0.0001b

+ 25 + 0.00001b

= 0.46875 = 0.01111b

Ввиду того, что в таких числах слишком много знаков после запятой, тре­буется большое число сложений для того, чтобы представить число в виде дополнения до 2-х. Чтобы повысить скорость обработки в таких случаях, ис­пользуется кодировка Canonically Signed Digit Code (CSD) [5]. В результате ис­пользования кода CSD, число знаков коэффициента после запятой уменьшено до минимума. Это достигнуто введением величины -1 для представления дво­ичных чисел. Эта величина появляется в вычислениях при вычитании. Вышеп­риведенный пример при использовании кода CSD будет выглядеть следующим образом:

1*0.46875 1b*0.1000-10(CSD)

= 22 =0.01Ь

-25 -0.00001Ь

= 0.46875 = 0.01111b

В результате использования кода CSD, процедура данного вычисления сокращена на два сложения путём замены одним вычитанием. Практическая выгода использования кода CSD имеет место только в случае, когда двоичные числа состоят из большого количества единиц.

Учитывая, что результат умножения п бит на m бит имеет разрядность n+m бит, а разрядность операндов не может увеличиваться от одного умно­жения к другому, результат должен быть округлён или младшие биты долж-

512 Библиотека Компэла