реклама на сайте
подробности

 
 
> Нижнее насыщение gains IIRов в fixed point, Избегание обнуления gainа при переводе в fixed point
Саша Z
сообщение Jun 2 2007, 12:06
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



У меня в системе банка фильтров есть 15 коротких IIRов (второго порядка), transfer function каждого содержит в числителе только число (скажем gain). В алгоритме динамически играюсь IIR gain factors т.е. варьирую это gainы (не суть важно как именно - это - определяется в алгоритме), т.е. на каждом определенном этапе алгоритм вырабатывает 15 gain factors которые являются числителями каждого соотв. IIRа.
В Матлабе работает нормально, перевожу в имплементацию (16 бит fixed point). Грубо конвертирую полученные в Матлабе gain factors в 16 бит fixed point:

gain = int16(round(1024*gain)), получаю целочисленные факторы в 16-битном размере.

В оригинале (из Матлаба) все факторы меньше 1 (в диапазоне 0 - 1) и могут отличаться более чем на 3 порядка. Это приводит к тому что когда фактор меньше скажем 0.0005 - в результате вышеуказанной операции получаю 0, что фактически обнуляет конкретный фильтр.

Посему видимо нужна какая-то защита от обнуления когда реальный коеффициент ниже порога квантизации. Можно например вместо round использовать celing:

gain = int16(ceiling(1024*gain)), но тогда уравниваются например факторы в 2х смежных диапазонах (например все между 0.0001 и 0.001 идет в 1), что полуается весьма грубо.

Единственый вариант более правдоподобного разпределения после квантизации вижу в квантизации на большую разрядность, например 2^15:

gain = int16(round(2^15*gain)), но в таком случае мне кажется увеличивается вероятность переполнения промеж. результатов в процессе IIR фильтрации...


Что посоветуете ?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th July 2025 - 18:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01348 секунд с 7
ELECTRONIX ©2004-2016