Преобразования и арифметические операции

Этот пример использует блок Discrete FIR Filter, чтобы проиллюстрировать, когда параметры преобразованы от двойного до номера фиксированной точки, когда тип входных данных преобразован в тип выходных данных, и когда правила для сложения, вычитания и умножения применяются. Для получения дополнительной информации о преобразованиях и операциях, обратитесь к Параметру и Преобразованиям Сигнала и Правилам для Арифметических операций.

Примечание

Если блок может выполнить все четыре арифметических операции, то правила для умножения и деления применяются сначала. Блок Discrete FIR Filter является примером этого.

Предположим, что вы конфигурируете блок Discrete FIR Filter для двух выходных параметров, где первым выходом дают

y1(k)=13u(k)+11u(k1)7u(k2),

и вторым выходом дают

y2(k)=6u(k)5u(k1).

Кроме того, начальные значения u (k –1) и u (k –2) даны 0,8 и 1.1, соответственно, и все входные параметры, параметры, и выходные параметры имеют единственное двоичной точкой масштабирование.

Чтобы сконфигурировать блок Discrete FIR Filter для этой ситуации, на панели Main его диалогового окна, необходимо задать параметр Coefficients как [13 11 -7; 6 -5 0] и параметр Initial states как [0.8 1.1], как показано здесь.

Точно так же сконфигурируйте опции на панели Data Types диалогового окна блока, чтобы появиться следующими:

Блок Discrete FIR Filter выполняет преобразования параметра и блочные операции в следующем порядке:

  1. Параметр Coefficients преобразован оффлайн от, удваивается до типа данных Coefficients с помощью раунда-к-самому-близкому и насыщения.

    Параметр Initial states преобразован оффлайн от, удваивается до типа входных данных с помощью раунда-к-самому-близкому и насыщения.

  2. Коэффициенты и входные параметры умножаются вместе для начального временного шага для обоих выходных параметров. Для y 1 (0), операции 13 · u (0), 11 · 0.8, и –7 · 1.1 выполняются, в то время как для y 2 (0), операции 6 · u (0) и –5 · 0.8 выполняются.

    Результаты этих операций хранятся как Product output.

  3. Сумма выполняется в Accumulator. Итоговый результат суммирования затем преобразован в Output.

  4. Шаги 2 и 3 повторяются для последующих временных шагов.