Verizon
Mar 14 2016, 12:46
Имеется КИХ фильтр постоенный в ПЛИС. Количество значащих коэффициентов 26. Входной сигнал имеет размерность 12 бит со знаком. Коэффициенты имеют размерность 16 бит со знаком. Выходной результат, с учетом того, что максимальное значение коэффициента = 2577, будет занимать размерность 28 бит.
Как в этом случае правильно воспользоваться данными фильтра в размерности 16 бит со знаком?.
Беру 27...12 биты. Это простейшее масштабирование. В этом случае просто отбрасываются младшие 12 бит.
Можно-ли както смаштабировать или нормализовать данные к 16 битам с учетом всех 28 бит? Насколько это будет корректнее или нет по сравнению с простейшим масштабированием?
bahurin
May 15 2016, 21:06
А почему при 16 битном представлении у вас максимальный к-т фильтра 2577? Что мешает усилием воли туда 32767 записать?
Надо понять где точка в ваших к-тах и столько разрядов по выходу фильтра сделать раунд для корректного масштабирования
jorikdima
May 16 2016, 03:51
Ну может по замыслу там не может быть более 2577. Чего такого то?
По теме. Можно не отбросить а огруглить, проанализировав то, что после "запятой". Это избавит от систематической ошибки - она же постоянная составляющая.
Есть вот такая идея.
У вас ведь есть на это все дело модель в симулинке/матлабе/еще где-то?
Вам нужно найти максимум АЧХ вашего фильтра. Узнать в этой точке коэффициент передачи. Вот на этот коэффициент передачи вам нужно поделить выход фильтра, чтобы получить коэффициент передачи 1.
Т.к. вы хотите расширить разрядность на 4 разряда, то нужно скорректировать делитель на эту величину. По сути это способ использовать дробные коэффициенты в фильтре при целочисленной арифметике.
Вы не можете просто отбросить разряды, если коэффициент усиления фильтра не равен степени двойки. В таком случае вы потеряете диапазон на выходе.
ТСу : по эффективной полосе посчитайте выходную разрядность и возьмите +1 бит бит на запас.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.