Здравствуйте.
Требуется сделать FIR фильтр низкой частоты с нелинейной ФЧХ.
Прекрасно получаю коэффициенты для фильтра с помощью Матлабовского FilterDesign методом Equiripple.
Но ФЧХ такого фильтра линейна!
Требуется сделать полку с постоянной фазой в заданном диапазоне частот.
Подскажите, в какую сторону двигаться для решения задачи.
Спасибо.
beaRTS
Dec 14 2012, 05:07
Цитата(mml @ Dec 14 2012, 07:45)

Здравствуйте.
Требуется сделать FIR фильтр низкой частоты с нелинейной ФЧХ.
Требуется сделать полку с постоянной фазой в заданном диапазоне частот.
а нельзя ли сделать в заданном диапазоне частот два фильтра с линейной фазой, но фазы которых бы взаимно компенсировали друг друга и на выходе бы давали полку ??? это так просто догадка
У всех КИХ линейная ФЧХ. У БИХ не пойми какая. По моему то что вам нужно можно реализовать только с помощью БПФ фильтрации
beaRTS
Dec 14 2012, 05:22
Цитата(Gyga @ Dec 14 2012, 08:17)

У всех КИХ линейная ФЧХ. У БИХ не пойми какая. По моему то что вам нужно можно реализовать только с помощью БПФ фильтрации
а моя идея несостоятельная?? можете пару слов сказать в напутствие молодому поколению?
eugen_pcad_ru
Dec 14 2012, 05:38
У всех КИХ линейная ФЧХ. Да, Ваша идея противоречит теории фильтрации.
Используйте БПФ-фильтрацию.
Цитата(eugen_pcad_ru @ Dec 14 2012, 08:38)

У всех КИХ линейная ФЧХ. Да, Ваша идея противоречит теории фильтрации.
Используйте БПФ-фильтрацию.
Правильно ли я понял, что теоретически невозможно рассчитать коэффициенты для КИХ фильтра, которые приведут к желаемому результату?
Буду копать БПФ.
Спасибо.
Вам требуется постоянная фаза или постоянная групповая задержка?
Цитата(vetal @ Dec 14 2012, 09:09)

Вам требуется постоянная фаза или постоянная групповая задержка?
ФАЗА
Цитата(eugen_pcad_ru @ Dec 14 2012, 15:38)

У всех КИХ линейная ФЧХ.
Неправильно. Линейная ФЧХ только у фильтров с симметричной импульсной характеристикой. КИХ не обязан иметь симметричную характеристику.
2
mmlИмпульсная характеритика фильтра есть обратное преобразование Фурье от его частотной характеристики. Потому нарисуйте требуемые формы АЧХ, ФЧХ в диапазоне частот до Fs/2, дополните до Fs АЧХ осесимметрично, ФЧХ - центральносимметрично, сделайте из всего этого комплексный массив и возьмите ОДПФ. В получившейся импульсной характеристике (точки которой являются коэффициентами фильтра) отбросьте конечные значения, близкие к нулю (меньшие погрешности вычислений)
2 V_G
Огромное спасибо за хороший ответ!
Что значит осесимметрично и центральносимметрично?
При отбрасывании конечных значений исходить только из амплитуды значений? От этого будет зависеть порядок фильтра.
Нет ли где примера, как это делается матлабовскими функциями?
Какую задать фазу в диапазоне где она не имеет значения?
Осевая симметрия = зеркальная, четная симметрия. Центральная симметрия - нечетная симметрия относительно точки Fs/2: все положительные значения заменяются на отрицательные и наоборот.
Если импульсная характеристика не уйдет в 0, то это признак неустойчивости фильтра, тут уже думать надо отдельно.
Ну, и естественно, судить надо по только амплитуде, т.к. ОБПФ при выполненных требованиях к симметрии должно дать чисто вещественную импульсную характеристику.
Про фазу не скажу, но скорее всего, надо экспериментировать с целью получения устойчивого фильтра минимального порядка. Может, и математика есть для этого, но я не в курсе.
beaRTS
Dec 14 2012, 07:04
Цитата(mml @ Dec 14 2012, 09:53)

2 V_G
Что значит осесимметрично и центральносимметрично?
осевая симметрия, видимо, имеется в виду относительно оси Ординат (ОУ) - четные функции, как косинус (вспомните график косинуса)
центральная симметрия - относительно начала координат - ей обладают нечетные функции такие ,как синус .
ссылка
yaghtn
Dec 14 2012, 09:57
Mml, обратите внимание на FilterShop фирмы LinearX. Оно заметно гибче, чем Матлабовский FilterDesign.
В FilterShop имеется возможность оптимизировать коэффициенты фильтров под необходимые амплитудные и фазовые характеристики.
Гляньте аппликухи на
http://www.linearx.com/support/knowledgeba...edgebaseTop.htmВ частности,
http://www.linearx.com/files/pdf/FilterShopApp_09.pdf - "Digital FIR Decimator & Analog Lowpass".
Цитата(yaghtn @ Dec 14 2012, 12:57)

Mml, обратите внимание на FilterShop фирмы LinearX.
Софт платный, как я понимаю. У них есть, доступные для скачивания, демо версии.
Они позволят решить эту задачу?
andrew_b
Dec 14 2012, 10:44
Цитата(beaRTS @ Dec 14 2012, 09:07)

а нельзя ли сделать в заданном диапазоне частот два фильтра с линейной фазой, но фазы которых бы взаимно компенсировали друг друга и на выходе бы давали полку ??? это так просто догадка
Можно. Второй фильтр называется фазовым корректором.
beaRTS
Dec 14 2012, 10:56
Цитата(andrew_b @ Dec 14 2012, 14:44)

Можно. Второй фильтр называется фазовым корректором.

вот и славненько =)
Цитата(andrew_b @ Dec 14 2012, 13:44)

Можно. Второй фильтр называется фазовым корректором.
И как создать второй фильтр с обратным наклоном ФЧХ?
andrew_b
Dec 14 2012, 11:24
К вашим услугам все методы синтеза цифровых фильтров.
Цитата(mml @ Dec 14 2012, 21:09)

И как создать второй фильтр с обратным наклоном ФЧХ?
Это комплексно-сопряженный фильтр. Его импульсная характеристика зеркальна по отношению к первому.
Цитата(yaghtn @ Dec 14 2012, 12:57)

Mml, обратите внимание на FilterShop фирмы LinearX.
Обзавелся фильтершопом 3.4.0.808.
По заданной амплитуде фильтры делает.
Заданную фазу игнорирует.
AndeyP
Dec 17 2012, 21:39
Мatlab код для расчета фильтров по заданным амплитудной и частотной характеристикам можно найти например в диссертации Mathias Lang "Algorithms for the Constrained Design of Digital Filters with Arbitrary Magnitude and Phase Responses"
http://citeseerx.ist.psu.edu/viewdoc/summa...i=10.1.1.6.9336 .
voloda
Jan 13 2013, 12:03
Если еще актуально - так можно сделать, но не в реальном времени.
Стивен Смит "Цифровая обработка сигналов" пункт 19.4 "ФЧХ рекурсивных фильтров". Фильтр с нулевой фазой.
Коротко идея: прогоняем данные дважды через один и тот же фильтр, второй раз - отсчеты на вход фильта подаем в обратном порядке.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.