КИХ с временными требованиями

Все что касается фильтрации
kaa
Сообщения: 40
Зарегистрирован: 17 мар 2019, 20:03

КИХ с временными требованиями

Сообщение kaa »

Добрый день.

Бьюсь с задачей с синтеза фильтра с требованиями одновременно к частотным и
временным характеристикам.

Сейчас имеется фильтр удовлетворяющий требованиям.

Грубо говоря требования следующие:

Частотные характеристики

КИХ
Fpass ~ 0.0(3) * pi рад/отсчет
Fstop ~ 0.1(6) * pi рад/отсчет

неравномерность в полосе пропускания ~ 1e-3 (может ~ 1e-2) дБ
подавление ~ -40 дБ

Временные характеристики

Overshoot в step response ~ 4 % (время перехода ~ 1e-2 мс)

Хотелось бы узнать о возможностях такого синтеза (я с filterDesigner в матлабе
не справился, попробовал свободные инструменты - Iowa Hills...)

или хотя бы о трансформации готового фильтра в более узкополосный
(Fpass = 0.025, Fstop = 0.125) (матлаб такое умеет, но получается только БИХ).
Последний раз редактировалось kaa 14 май 2019, 10:15, всего редактировалось 1 раз.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: КИХ с временными требованиями

Сообщение Бахурин Сергей »

Что значат цифры в скобочках 0.(3) и 0.1(6)?
Неравномерность в полосе 0.001 дБ чем обусловлено? Просто это очень очень мало.
Время перехода 0.01мс для какой частоты дискретизации?

У вас два противоречивых требования: время перехода, значит порядок фильтра должен быть низким, и второе неравномерность и узкополосность (которые сильно увеличивают порядок). Во первых надо понять можно ли оба эти требования обеспечить одновременно или нет.

kaa
Сообщения: 40
Зарегистрирован: 17 мар 2019, 20:03

Re: КИХ с временными требованиями

Сообщение kaa »

Что значат цифры в скобочках 0.(3) и 0.1(6)?
Дробь в периоде 0.(3)=0.333...
Неравномерность в полосе 0.001 дБ чем обусловлено?
Я опираюсь на существующий фильтр (в нем ~0.003).
Вообще, требованием к ошибке по амплитуде выходного сигнала. RMSE ниже 1%, я думаю.
Время перехода 0.01мс для какой частоты дискретизации?
Сотни герц: 200, 300, 400, 600, 800. Задержка должна быть не очень большой (~100 мс)

kaa
Сообщения: 40
Зарегистрирован: 17 мар 2019, 20:03

Re: КИХ с временными требованиями

Сообщение kaa »

Есть мой результат, у него и неравномерность не такая хорошая, и главное, подавление.
Фильтр на 400 Гц.
Думаю, такой фильтр удовлетворил бы требованиям, если подавление было бы хотя бы -40 дБ.

Код: Выделить всё

[0.00120132700001965,0.00136954589395670,0.00156239062545813,0.00165161414281919,0.00156760431325377,0.00132694960827608,0.000893509284499829,0.000323644274024273,-0.000377393485094536,-0.00111559950789236,-0.00185721652140215,-0.00249355833449831,-0.00299323238136606,-0.00326850263771120,-0.00332514410679709,-0.00313068546914258,-0.00274006077066323,-0.00220779046614222,-0.00159387478110683,-0.00104500223268814,-0.000622017206796596,-0.000385486133840983,-0.000469675928844279,-0.000831413419227467,-0.00144104218652757,-0.00217709490424602,-0.00294861175208530,-0.00353436117371161,-0.00373889885134030,-0.00328026103224798,-0.00196008117460906,0.000443926134910129,0.00403855045371200,0.00888032468486600,0.0149364408965284,0.0220271393312099,0.0299445681711593,0.0383494139979957,0.0468001647847810,0.0549397901939721,0.0622628179193993,0.0683671948758868,0.0728896037838790,0.0756076931867127,0.0763055818013234,0.0756076931867127,0.0728896037838790,0.0683671948758868,0.0622628179193993,0.0549397901939721,0.0468001647847810,0.0383494139979957,0.0299445681711593,0.0220271393312099,0.0149364408965284,0.00888032468486600,0.00403855045371200,0.000443926134910129,-0.00196008117460906,-0.00328026103224798,-0.00373889885134030,-0.00353436117371161,-0.00294861175208530,-0.00217709490424602,-0.00144104218652757,-0.000831413419227467,-0.000469675928844279,-0.000385486133840983,-0.000622017206796596,-0.00104500223268814,-0.00159387478110683,-0.00220779046614222,-0.00274006077066323,-0.00313068546914258,-0.00332514410679709,-0.00326850263771120,-0.00299323238136606,-0.00249355833449831,-0.00185721652140215,-0.00111559950789236,-0.000377393485094536,0.000323644274024273,0.000893509284499829,0.00132694960827608,0.00156760431325377,0.00165161414281919,0.00156239062545813,0.00136954589395670,0.00120132700001965]

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: КИХ с временными требованиями

Сообщение Бахурин Сергей »

Я сделал так:
Через x обозначил коэффициенты исходного фильтра, который получил в личке.

Дальше в матлабе:

Код: Выделить всё

P=89;
Q=67;
z=resample(x, P, Q) *Q/P;
Посмотрите z получился как ваш, но с подавлением 40 дБ. И неравномерность чуть лучше

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: КИХ с временными требованиями

Сообщение Бахурин Сергей »

Но есть нюансик: фильтр перестал быть линейнофазовым. Неравномерность гвз 0.03 сэмпла в полосе пропускания.

kaa
Сообщения: 40
Зарегистрирован: 17 мар 2019, 20:03

Re: КИХ с временными требованиями

Сообщение kaa »

Да, это проблема, трансформация в БИХ в матлабе делает фильтр с аналогичными изначальм характеристиками, но неравномерность гвз все портит.

Есть идея использовать методы линейного программирования, которые позволяют устанавливать временные ограничения на КИХ фильтр.

https://www.cs.tut.fi/~ts/FIR_constraints.pdf

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: КИХ с временными требованиями

Сообщение Бахурин Сергей »

Можно ещё алгоритм ремеза попробовать применить к вашей требуемой ачх.

kaa
Сообщения: 40
Зарегистрирован: 17 мар 2019, 20:03

Re: КИХ с временными требованиями

Сообщение kaa »

Да, видел в документе (прилагаю) упоминание.
Но, похоже, для одновременного задания временных характеристик требуется тот алгоритм, о котором документ. В конце даже есть примеры в матлабе.
Оставлю для всех, найден просто в сети.
Вложения
linprog.pdf.7z
(201.24 КБ) 198 скачиваний

Ответить