Переход от КИХ к БИХ

Все что касается фильтрации
Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Переход от КИХ к БИХ

Сообщение Santik »

Пусть комплексная функция H(jw) задана неким трансцендентным уравнением или в табличном виде. Задача - построить цифровой фильтр.
КИХ-фильтр получить легко: делаем обратное преобразование Фурье от H(jw) и получаем h(t) - импульсную реакцию фильтра.
Чтобы получить БИХ фильтр, надо аппроксимировать Н(z) отношением полиномов.
Пример аппроксимации отношением полиномов здесь http://matlab.exponenta.ru/simulink/book3/18.php

У кого есть готовая программа? Не хочется изобретать велосипед :D

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Переход от КИХ к БИХ

Сообщение Santik »

Рассмотрим простейший КИХ фильтр - "Скользящее среднее".
Рекуррентная формула фильтра:
y=1/(N+1)(x+x[i-1]+... x[i-N])или

Рассмотрим фильтр второго порядка N=2

или

Перейдём обратно к H(S). В общем виде выражение для H(S) имеет вид:

Матрица z- преобразования ФНЧ имеет вид:

Обратная матрица:

Я ошибся. Множитель не 1/8, а 1/4, в общем случае 2^{-N}, где N- порядок фильтра.
Но всё равно для H(S) этот множитель впоследствии сокращается.

Найдём коэффициенты H(S)


Окончательно:

Сделаем преобразование ФНЧ --> ФНЧ заменой


Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Переход от КИХ к БИХ

Сообщение Santik »

Используя матрицу z-преобразования ФНЧ перейдём в z- область:

Заметим, что при


Cовсем не удивительно, что получившийся БИХ-фильтр имеет такие же отвратительные характеристики, как и его КИХ- прототип :D
Всё вышеописанное - скорее иллюстрация того, как легко осуществить переход H(z)-->H(s)-->H(z).
Кроме того, хочу обратить Ваше внимание на статью "DESIGN OF LINEAR PHASE IIR FILTERS VIA WEIGHTED
LEAST-SQUARES APPROXIMATION"
DESIGN_OF_LINEAR_PHASE_IIR_FILTERS_VIA_WEIGHTED.rar
(42.52 КБ) 349 скачиваний

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

Re: Переход от КИХ к БИХ

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

Ну прямо скажем получившийся БИХ отнюдь не проще чем КИХ.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Переход от КИХ к БИХ

Сообщение Santik »

Да я даже больше скажу - он получился хуже (по вычислительным затратам) :D
Однако, если взять КИХ 100- порядка, то его можно превратить в БИХ 10-го с приблизительно теми же параметрами (см. статью в файле)
Согласен, КИХ 20 порядка переводить в БИХ такого же - это извращение... :D
Другое дело - взять коэффициенты "понравившегося" БИХ-фильтра (Чебышева 2-го рада, к примеру) на частоту 0.5 и "быстренько" пересчитать его коэффициенты любую нужную частоту и попутно (в идеале) линеаризовав ФЧХ... Вот это мне кажется красивая задача :D
Первая часть задачи легко решается с применением матриц z- преобразования.

Pavel
Сообщения: 3
Зарегистрирован: 05 окт 2015, 10:28

Re: Переход от КИХ к БИХ

Сообщение Pavel »

Santik писал(а): Кроме того, хочу обратить Ваше внимание на статью "DESIGN OF LINEAR PHASE IIR FILTERS VIA WEIGHTED
LEAST-SQUARES APPROXIMATION"
DESIGN_OF_LINEAR_PHASE_IIR_FILTERS_VIA_WEIGHTED.rar
Здравствуйте! Возникло несколько вопросов по прикрепленной статье.
1) как правильно выбрать весовую функцию?
2) BFGS алгоритм оптимизации не подскажите где найти его реализацию, например в матлабе, может быть там встроенная функция есть?

Ответить