Этот пример использует блок Discrete FIR Filter, чтобы проиллюстрировать, когда параметры преобразованы от двойного до номера фиксированной точки, когда тип входных данных преобразован в тип выходных данных, и когда правила для сложения, вычитания и умножения применяются.
Примечание
Если блок может выполнить все четыре арифметических операции, то правила для умножения и деления применяются сначала. Блок Discrete FIR Filter является примером этого.
Предположим, что вы конфигурируете блок Discrete FIR Filter для двух выходных параметров, где первым выходом дают
и вторым выходом дают
Кроме того, начальные значения 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 выполняет преобразования параметра и блочные операции в следующем порядке:
Параметр Coefficients преобразован оффлайн от, удваивается до типа данных Coefficients с помощью раунда-к-самому-близкому и насыщения.
Параметр Initial states преобразован оффлайн от, удваивается до типа входных данных с помощью раунда-к-самому-близкому и насыщения.
Коэффициенты и входные параметры умножаются вместе для начального временного шага для обоих выходных параметров. Для y 1 (0), операции 13 · u (0), 11 · 0.8, и –7 · 1.1 выполняются, в то время как для y 2 (0), операции 6 · u (0) и –5 · 0.8 выполняются.
Результаты этих операций хранятся как Product output.
Сумма выполняется в Accumulator. Итоговый результат суммирования затем преобразован в Output.
Шаги 2 и 3 повторяются для последующих временных шагов.