Приветствую форумчане,
Как получить для КИХ фильтра понятно. Но КИХ не подходит для реализации на RTL (уровень регистровых передач) из-за высокой задержки фильтра которая ограничивает входной сигнал. Жертвовать характеристиками АЧХ нельзя (понижать порядок или увеличивать частоту дискретизации). При этом частотный диапазон на уровне ослабления в 2 раза (6дБ) должен иметь низкий уровень пульсаций.
RTL модель фильтра реализована в лоб. Как сдвиговый регистр с отводами для умножения и одним сумматором. Входной сигнал имеет разрядность 2. Где ws1 = 5 Мгц, а wp2 = 20 МГц.
Вопрос такой, каким образом можно спроектировать АЧХ подобного рода с помощью БИХ фильтра. Проблема физической реализации КИХ фильтра на уровне RTL из-за высокой задержки фильтра.
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Проблема физической реализации КИХ фильтра на уровне RTL из-за высокой задержки фильтра.
КИХ не подходит для RTL, а БИХ подходит? Всю жизнь считал наоборот, бих очень сложно реализуется ввиду того что его выход зависит от предыдущего выхода, что очень сложно реализовать из-за задержек на умножение и сумматоры. А если ещё учесть вопросы устойчивости в челочисленной арифметике, то вообще грустно становится.
Re: Проблема физической реализации КИХ фильтра на уровне RTL из-за высокой задержки фильтра.
Ну я относительно недавно знаком с ЦОС и т.д. Немного по другому задам вопрос. Правильно считать, что групповая задержка КИХ фильтра ограничивает частотный диапазон фильтрации? То есть к примеру имеется регистр выполняющий роль 20(order) задерживающий элементов работающий частоте дискретизации 20МГц(Fd). Общая задержка такого регистра составляет t = (order-1)/(Fd*2) = 4.75e-7. Ограничивается ли длительность сигнала этой задержкой? Должен ли период сигнала больше этой задержки?
Последний раз редактировалось harkut 16 июн 2022, 08:18, всего редактировалось 1 раз.
Re: Проблема физической реализации КИХ фильтра на уровне RTL из-за высокой задержки фильтра.
С БИХ ещё не успел поиграться в RTL. Но как минимум столкнулся с тем, что не понимаю как подобную АЧХ получить для БИХ. Поэтому начал с КИХ.
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Проблема физической реализации КИХ фильтра на уровне RTL из-за высокой задержки фильтра.
Нет групповая задержка говорит что сигнал на выходе появится не сразу, а через некоторое время. При этом какие частоты в сигнале будут подавлены а какие нет от этой задержки не зависят.
Не понял вопроса. Фильтр может работать с бесконечным сигналом. Если у вас 20 регистров задержки, то сигнал на выходе может быть задержан от 0 до 20 тактов относительно входа в зависимости от коэффициентов. Длительность сигнала при этом не ограничена.harkut писал(а): ↑16 июн 2022, 07:20То есть к примеру имеется регистр выполняющий роль 20(order) задерживающий элементов работающий частоте дискретизации 20МГц(Fd). Общая задержка такого регистра составляет t = (order-1)/(Fd*2) = 4.75e-7. Ограничивается ли длительность сигнала этой задержкой? Должен ли период сигнала больше этой задержки?
-
- Сообщения: 92
- Зарегистрирован: 06 апр 2015, 10:09
- Откуда: г, Нижний Новгород (rif27@bk.ru)
Re: Проблема физической реализации КИХ фильтра на уровне RTL из-за высокой задержки фильтра.
Вашу задачу очень несложно решить численными методами синтеза IIR на дискретной сеткеharkut писал(а): ↑15 июн 2022, 14:18Вопрос такой, каким образом можно спроектировать АЧХ подобного рода с помощью БИХ фильтра. Жертвовать характеристиками АЧХ нельзя (понижать порядок или увеличивать частоту дискретизации). При этом частотный диапазон на уровне ослабления в 2 раза (6дБ) должен иметь низкий уровень пульсаций.
RTL модель фильтра реализована в лоб. Как сдвиговый регистр с отводами для умножения и одним сумматором. Входной сигнал имеет разрядность 2. Где ws1 = 5 Мгц, а wp2 = 20 МГц.
параметров с заданной разрядностью представления коэффициентов. Вот я привожу решение
вашей задачи БИХ-фильтром 8-го порядка с разрядностью представления целочисленных
коэффициентов 12 бит. Здесь же приводится контрольный анализ этого решения в MATLAB.
Видно, что для fs=50 МГц длина импульсного отклика не превосходит 40 семплов.
Инерционность фильтра по задержке ипульсного отклика - 10 семплов.
Неравномерность на ступеньке 5 - 20 МГц составляет 1,5 %. Наверное можно её ещё уменьшить,
подняв порядок фильтра до 10. Существенно сократить инерционность можно спроектировав
ваш БИХ-фильтр как минимально-фазовый. Сейчас он таковым не является.
- Вложения
-
- Gain_R12_Full_0+.gif (8.65 КБ) 3544 просмотра
-
- MATLAB_GAIN_RTL.gif (4.45 КБ) 3544 просмотра
-
- MATLAB_IMP_RTL.gif (5.56 КБ) 3544 просмотра
-
- MATLAB_Z_RTL.gif (4.34 КБ) 3544 просмотра
Последний раз редактировалось Vlad27 29 июн 2022, 11:55, всего редактировалось 2 раза.
-
- Сообщения: 92
- Зарегистрирован: 06 апр 2015, 10:09
- Откуда: г, Нижний Новгород (rif27@bk.ru)
Re: Проблема физической реализации КИХ фильтра на уровне RTL из-за высокой задержки фильтра.
А вот решение той же задачи целочисленным КИХ-фильтром 32-го порядка
с несимметричной ИХ.
с несимметричной ИХ.
- Вложения
-
- Gain_FIR_R14_0.gif (5.77 КБ) 3503 просмотра
-
- Gain_RTL_FIR_N=32.gif (4.04 КБ) 3503 просмотра
-
- IMP_RTL_FIR_N=32.gif (6.18 КБ) 3503 просмотра
-
- Z_RTL_FIR_N=32.gif (4.77 КБ) 3503 просмотра
Последний раз редактировалось Vlad27 29 июн 2022, 11:36, всего редактировалось 1 раз.
Re: Проблема физической реализации КИХ фильтра на уровне RTL из-за высокой задержки фильтра.
Благодарю за ответ.
Ещё вопрос. А какие численные методы по нахождению коэффициентов для БИХ фильтра (Не доходит каким конкретно способом их найти)? MATLAB не пользуюсь, но Octave знаю. Численные методы вы имеете в виду уже реализованные в MATLAB?
-
- Сообщения: 92
- Зарегистрирован: 06 апр 2015, 10:09
- Откуда: г, Нижний Новгород (rif27@bk.ru)
Re: Проблема физической реализации КИХ фильтра на уровне RTL из-за высокой задержки фильтра.
О синтеза ЦФ (и БИХ и КИХ) методом дискретного нелинейного программирования почитайте,А какие численные методы по нахождению коэффициентов для БИХ фильтра (Не доходит каким конкретно способом их найти)? MATLAB не пользуюсь, но Octave знаю. Численные методы вы имеете в виду уже реализованные в MATLAB?
пожалуйста, нашу тему на этом форуме "Целочисленное проектирование фильтров" - там
ссылка на книгу и некоторые наши статьи, где общая идея описывается и её основные достоинства
приводятся. В качестве примера работы программы приведу пару скрин-шотов модуля
анализа приведённого выше решения.
А какая длина КИХ у вас получилась (число отсчётов) и выполнялось ли условие симметрии ИХ
(импульсной характеристики) - ведь МАТЛАБ именно с этой опцией КИХ-фильтры считает, чем
практически и убивает быстродействие фильтра.