[an error occurred while processing this directive]
|
Коэффициенты перевести следующим образом (допустим в 16 бит). Сначала найти максимальное по модулю значение. Затем исходя из этого выбрать представление числа (сколько бит на целую часть, сколько на дробную. Допустим абсолютная величина отсчетов ИХ для КИХ-фишльтра не превышает 1. Тогда выбираете формат Q.15 (15 бит дробной части, ноль целой части и один бит на знак. Соответственно формула перевода будет round(32768*x). Допустим входной сигнал у Вас в том-же формате. Далее сворачиваете ИХ с сигналом. При этом на каждом перемножении получается Q.15*Q15 = Q.30. (в общем случае - Q.M*Q.N = Q.(M+N)) То есть дробная часть кончается после 30-го разряда. Учитывая это после суммирования сдвигаете результат на сколько надо разрядов (чтобы из Q.30 получить обратно Q.15 это на 15 разрядов вправо).
Ну Вам может в этом сдвиге помочь аппаратный сдвигатель, приделанный к умножителю. Он при желании сдвигает на 2 влево результат умножения, в таком случае Вам останется взять старшее слово суммы (для Q.15*Q.15).
E-mail: info@telesys.ru