[an error occurred while processing this directive]
|
Формат числа выбирается (как правило) исходя из масштаба коэффициентов. Например если максимальный коэффициент фильтра (по абсолютной величине) 4.2354 то выбирается формат Q12, что бы под целочисленную цасть оставалось 3 бита. Ну и так далее. Соответственно все коэффициенты одного фильтра должны быть в одном и том-же формате, что-бы сумма получилось корректной.
Про переполнения. Для того и сделаны аккумуляторы по 40 бит, чтобы переполнения не мешали. Переносы в guard bits в процессе подсчета фильтра никого не волнуют, а если результат фильтрации (после масштабирования для компенсации сдвига, обусловленного применением коэффициентов в формате, отличном от Q15) превышает 32 бита - то его требуется просто ограничить. Для этого есть команда SAT в ассемблере. И во время фильтрации бит OVM должен быть (как правило) обнулен, что бы предотвратить автоматическое ограничение.
E-mail: info@telesys.ru