Процесс умножения

Предположим, что вы хотите умножить три числа. Каждое из этих чисел представлено 5-битным словом, и у каждого есть различное единственное двоичной точкой масштабирование. Кроме того, выход ограничивается 10-битным словом с единственным двоичной точкой масштабированием 2-4. Умножение показывают в следующей модели для входных значений 5.75, 2.375, и 1.8125.

Применяя правила от предыдущего раздела, умножение выполняет эти шаги:

  1. Первые два числа (5.75 и 2.375) умножаются:

    QRawProduct=      101.11 ×10.011101.1123   101.1122+101.112101101.10101=13.65625.

    Обратите внимание на то, что двоичная точка продукта дана суммой двоичных точек умноженных чисел.

  2. Результат шага 1 преобразован в тип выходных данных:

    QTemp=convert(QRawProduct)=001101.1010=13.6250.

    Преобразования сигнала обсуждают преобразования. Обратите внимание на то, что потеря в точности одного бита происходит с получившимся значением QTemp, определенного округляющимся режимом. В данном примере раунд на пол используется. Кроме того, переполнение не произошло, но возможно для этой операции.

  3. Результат шага 2 и третьего номера (1.8125) умножается:

    QRawProduct=        01101.1010        ×1.1101 1101.101024       1101.101022  1101.101021+1101.1010200011000.10110010=24.6953125.

    Обратите внимание на то, что двоичная точка продукта дана суммой двоичных точек умноженных чисел.

  4. Продукт преобразован в тип выходных данных:

    Qa=convert(QRawProduct)=011000.1011=24.6875.

    Преобразования сигнала обсуждают преобразования. Обратите внимание на то, что потеря в точности 4 битов произошла с получившимся значением QTemp, определенного округляющимся режимом. В данном примере раунд на пол используется. Кроме того, переполнение не произошло, но возможно для этой операции.

Блоки, которые выполняют умножение, включают Product, Discrete FIR Filter и блоки Gain.