Что такое КИХ-фильтр?

preview_player
Показать описание
Об устройстве и нескольких вариантов использования фильтра с конечной импульсной характеристикой
Рекомендации по теме
Комментарии
Автор

Прекрасно, что оставляете статьи для прочтения! Спасибо огромное!

brunobrauchmeier
Автор

В always блоке должно быть блокирующее присваивание?

evgenyshorin
Автор

А почему на рисунке режекторного фильтра стоит значение (ms). А в других (мю-s). То есть наносекунды. Думаю, что ms - правильно?

vryabenko
Автор

Подскажите пожалуйста. Каким образом получились битовые коэффициенты, расчетный коэффициент умножается на

kair
Автор

Делаю крутой КИХ фильтр низких частот на 128 коэффициентов (16 битных), ширина данных 24бит, частота семплирования 384кГц. Таких фильтров нужно два. Задача - сэкономить ресурсы FPGA Cyclone II. Два таких фильтра потратят больше половины имеющихся умножителей при условии, что умножителей будет по одному на фильтр. Ясно, что можно завести сдвиговый регистр на 128 ступеней и выходы каждой ступени соединить мультиплексором к первому входу умножителя, а таблицу коэффициентов (ROM) через другой мультиплексор ко второму входу умножителя. Управлять обоими мультиплексорами может счётчик, тактируемый частотой (предварительная оценка) 0.384МГц * 128 = 49.152МГц. Даже если потребуется по два такта на операцию MAC, то частота получится около 100МГц. Это достижимо на этой FPGA. Но...
Сдвиговый регистр съест 128слов * 24бит = 3072 регистра. А вот это уже неприемлемо. Регистров не хватит на два фильтра. А ведь мне нужно и другую логику реализовывать. Вычитал в документации, что встроенную в ПЛИС память M4K можно заставить работать как сдвиговый регистр, что по заверениям разработчиков может использоваться в реализации КИХ фильтров. Если использовать эту фишку, то ресурсов должно хватить на всё. Но вот я так и не смог разобраться, как это использовать. Выходные отводы там невозможно вывести после каждой ячейки, а минимум с каждой третьей и выше. Никто не сталкивался с реализацией КИХ фильтра, где умножитель всего один, а в качестве сдвигового регистра используется память?

kardanium