Пусть комплексная функция H(jw) задана неким трансцендентным уравнением или в табличном виде. Задача - построить цифровой фильтр.
КИХ-фильтр получить легко: делаем обратное преобразование Фурье от H(jw) и получаем h(t) - импульсную реакцию фильтра.
Чтобы получить БИХ фильтр, надо аппроксимировать Н(z) отношением полиномов.
Пример аппроксимации отношением полиномов здесь http://matlab.exponenta.ru/simulink/book3/18.php
У кого есть готовая программа? Не хочется изобретать велосипед
Переход от КИХ к БИХ
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Переход от КИХ к БИХ
Рассмотрим простейший КИХ фильтр - "Скользящее среднее".
Рекуррентная формула фильтра:
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)
Окончательно:
Сделаем преобразование ФНЧ --> ФНЧ заменой
Рекуррентная формула фильтра:
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: Переход от КИХ к БИХ
Используя матрицу z-преобразования ФНЧ перейдём в z- область:
Заметим, что при
Cовсем не удивительно, что получившийся БИХ-фильтр имеет такие же отвратительные характеристики, как и его КИХ- прототип
Всё вышеописанное - скорее иллюстрация того, как легко осуществить переход H(z)-->H(s)-->H(z).
Кроме того, хочу обратить Ваше внимание на статью "DESIGN OF LINEAR PHASE IIR FILTERS VIA WEIGHTED
LEAST-SQUARES APPROXIMATION"
Заметим, что при
Cовсем не удивительно, что получившийся БИХ-фильтр имеет такие же отвратительные характеристики, как и его КИХ- прототип
Всё вышеописанное - скорее иллюстрация того, как легко осуществить переход H(z)-->H(s)-->H(z).
Кроме того, хочу обратить Ваше внимание на статью "DESIGN OF LINEAR PHASE IIR FILTERS VIA WEIGHTED
LEAST-SQUARES APPROXIMATION"
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Переход от КИХ к БИХ
Ну прямо скажем получившийся БИХ отнюдь не проще чем КИХ.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Переход от КИХ к БИХ
Да я даже больше скажу - он получился хуже (по вычислительным затратам)
Однако, если взять КИХ 100- порядка, то его можно превратить в БИХ 10-го с приблизительно теми же параметрами (см. статью в файле)
Согласен, КИХ 20 порядка переводить в БИХ такого же - это извращение...
Другое дело - взять коэффициенты "понравившегося" БИХ-фильтра (Чебышева 2-го рада, к примеру) на частоту 0.5 и "быстренько" пересчитать его коэффициенты любую нужную частоту и попутно (в идеале) линеаризовав ФЧХ... Вот это мне кажется красивая задача
Первая часть задачи легко решается с применением матриц z- преобразования.
Однако, если взять КИХ 100- порядка, то его можно превратить в БИХ 10-го с приблизительно теми же параметрами (см. статью в файле)
Согласен, КИХ 20 порядка переводить в БИХ такого же - это извращение...
Другое дело - взять коэффициенты "понравившегося" БИХ-фильтра (Чебышева 2-го рада, к примеру) на частоту 0.5 и "быстренько" пересчитать его коэффициенты любую нужную частоту и попутно (в идеале) линеаризовав ФЧХ... Вот это мне кажется красивая задача
Первая часть задачи легко решается с применением матриц z- преобразования.
Re: Переход от КИХ к БИХ
Здравствуйте! Возникло несколько вопросов по прикрепленной статье.Santik писал(а): Кроме того, хочу обратить Ваше внимание на статью "DESIGN OF LINEAR PHASE IIR FILTERS VIA WEIGHTED
LEAST-SQUARES APPROXIMATION"
1) как правильно выбрать весовую функцию?
2) BFGS алгоритм оптимизации не подскажите где найти его реализацию, например в матлабе, может быть там встроенная функция есть?