Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужен простой, но перестраиваемый НЧ фильтр
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
des00
Добрый день!

Модернизирую старый проект, в старом же железе (FPGA), напряг с ресурсами полный. Нужна реализация средне/высоко добротного НЧ фильтра, желательно с перестраиваемой на лету полосой, с минимумом ресурсов. Что-то вроде bireciprocal фильтра, но, не с таким изменением АЧХ при смене полосы и с затуханием порядка 50-60 дБ.

Желаемое могу сделать на FIR, комбинации ACC фильтров, но это ресурсов жрет сильно много. Может кому попадалось что-то простое ?
litv
Если б такой был - нафига бы FIR все пользовали.
Кроме того задание непонятно. Глядя на АЧХ - могу советовать.
У меня например требования в полосе пропускания неравномерность- 0.2 дб. А у Вас??? Бывает +-3 дб - а это гораздо проще.
Универсальных рецептов и фильтров не бывает. Можно БИХ - если ФЧХ неважна (но с ним секса больше).
Если Вы знаете такие названия как bireciprocal - кто Вам посоветует? wink.gif
des00
Цитата(litv @ Nov 17 2011, 22:44) *
Кроме того задание непонятно. Глядя на АЧХ - могу советовать.

да виноват, нужна АЧХ что то вроде такой, только с подавлением порядка 50-60 дБ. Неравномерность АЧХ, нелинейность ФЧХ не принципиальны (нужно выкромсать мощность в полосе). Крайне желательно что бы можно было менять полосу фильтра. Если говорить терминами риснука в приложении, то в пределах pi/8, pi/4, pi/2 и т.д.

Можно и БИХ, но априори устойчивый, как например bireciprocal или фильтр вида y[k] = k*x[k] + (1-k)*y[k-1] (этот неподходит, т.к. уж очень сильно режет полосу и дает не сильно хорошее подавление).

фильтр вида H(z) = a*z^-k + z^-2k, хорош, но не позволяет полосу менять и нужна комбинация из 2-3фильтров для моей задачи %(
Fast
ну ни фиге себе вопросец,
тоже себе такое хочу
blackfin
Цитата(des00 @ Nov 18 2011, 08:21) *
Крайне желательно что бы можно было менять полосу фильтра. Если говорить терминами риснука в приложении, то в пределах pi/8, pi/4, pi/2 и т.д.

Если полоса ФНЧ изменяется дискретно и если кол-во дискретов небольшое, то можно использовать банк фильтров на основе FFT небольшой длины (например FFT на 8 точек, т.е. без умножений) + набор фильтров меньшего порядка (в пределе, просто умножение на окно). Подробнее можно почитать в статье: Multirate digital filters, filter banks, polyphase networks, and applications: a tutorial, /стр. 85, раздел D. FIR Filters with Adjustable Multilevel Response, and Tunable FIR Filters/.
des00
Цитата(blackfin @ Nov 18 2011, 00:47) *
Подробнее можно почитать в статье:

спасибо, ознакомлюсь, посмотрю как на мою задачу ложиться.

Цитата(Fast @ Nov 18 2011, 00:36) *
тоже себе такое хочу

еще неплохой, очень простой, правда полосовой фильтр (на частоту T/4) y[k] = a*x[k] - (1-a)*y[k-1].

Может еще какие простые фильтры есть ?
eugen_pcad_ru
Банк перестраиваемых фильтров. А просто плис перегрузить? Т.е. сделать кучку прошивок и менять их при надобности?
Fast
Цитата(des00 @ Nov 18 2011, 09:58) *
Может еще какие простые фильтры есть ?
куда уж проще..

для T/4 использую очень узкополосный высокодобротный для выделения тактовой частоты
R(t) = X(t) - R(t-2) * K0
Y(t) = [R(t) - R(t-2)] * K1
правда, не знаю, что за формула такой, вывел ее сам из стандартной для БИХ, кой-чего упростив

des00
Цитата(Fast @ Nov 18 2011, 02:46) *
куда уж проще..


да я ФНЧ имел в виду %) за полосовой спасибо, добавлю в копилку

Цитата(Fast @ Nov 18 2011, 02:46) *
R(t) = X(t) - R(t-2) * K0
Y(t) = [R(t) - R(t-2)] * K1
правда, не знаю, что за формула такой, вывел ее сам из стандартной для БИХ, кой-чего упростив

ИМХО ошибка при использовании коэффициента K1, в формуле он выступает как коэффициент усиления выхода
Самурай
Цитата(des00 @ Nov 18 2011, 06:55) *
Добрый день!

Модернизирую старый проект, в старом же железе (FPGA), напряг с ресурсами полный. Нужна реализация средне/высоко добротного НЧ фильтра, желательно с перестраиваемой на лету полосой, с минимумом ресурсов.


А насколько он полный, этот напряг с ресурсами?sm.gif В граммах, т.е. в ячейках/тапах/умножениях/сложениях сколько будет?sm.gif
И что там насчет переходной полосы?
des00
Цитата(Самурай @ Nov 18 2011, 04:35) *
А насколько он полный, этот напряг с ресурсами?sm.gif В граммах, т.е. в ячейках/тапах/умножениях/сложениях сколько будет?sm.gif
И что там насчет переходной полосы?

если учесть что проект занимает 93% от 25 тысячника сыклона 3, то сильно полный. бюджет 1500 плиток максимум. Вариант с разными прошивками тоже не катит, т.к. не заложено конструктивно.
Fast
Цитата(des00 @ Nov 18 2011, 13:00) *
ИМХО ошибка при использовании коэффициента K1, в формуле он выступает как коэффициент усиления выхода
это не ошибка, это коэффициент усиления выхода =)) просто в зависимости от K0 разная энергетика выхода, отчего не знаю, поэтому воткнул K1
des00
По переходной полосе, что-то вроде той что приведена в атаче к сообщению 3 меня полностью устроит sm.gif

Цитата(Fast @ Nov 18 2011, 04:01) *
это не ошибка, это коэффициент усиления выхода =)) просто в зависимости от K0 разная энергетика выхода, отчего не знаю, поэтому воткнул K1

чтобы усиление и разрядность не скакала я бы сделал так wink.gif

Код
R(t) = X(t)*K0 - R(t-2) * (1- K0)
Y(t) = R(t) - R(t-2)
des00
уффф, таки запихал, правда с 3-х каскадным acc фильтром, 30/70% 180/90 МГц.
Fast
не лопнет ?
а что умеет делать эта чудо-машина
des00
Цитата(Fast @ Nov 18 2011, 11:33) *
не лопнет ?
а что умеет делать эта чудо-машина

надеюсь что нет sm.gif, это демодулятор с перестраиваемой полосой и модуляцией от 2 до 90 мегабит. фильтр все еще ищу
анатолий
Попробуйте http://opencores.org/project,lp_iir_filter
Это на основе того волнового фильтра, что на картинке.
Как такие фильтры строить написано в
"Сергиенко А.М. Симоненко В.П. Отображение периодических алгоритмов в программируемые логические интегральные схемы
// Электронное моделирование. –2007. Т.29. №2. С. 49-61. "
des00
Цитата(анатолий @ Nov 21 2011, 08:53) *
Как такие фильтры строить написано в
"Сергиенко А.М. Симоненко В.П. Отображение периодических алгоритмов в программируемые логические интегральные схемы
// Электронное моделирование. –2007. Т.29. №2. С. 49-61. "

ознакомился с методикой и сорцами, вещь!!! большое спасибо.

Не подскажите не попадался ли вам расчет коэффициентов для таких же полосовых фильтров ?
анатолий
Расчет коэффициентов для любого такого фильтра ведут как решение задачи оптимизации.
Вот на таких-то частотах сдвиг фазы у передаточной характеристики должен быть 0 градусов, а на таких - 180 и таких - 360.
плюс-минус ошибка, которую минимизируют.
Минимизация делается на Matlab, Mathcad соответствующими функциями.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.