Перейти к содержанию
    

Новый алгоритм быстрого реверсивного фильтра IIR, с возможностью линейной фазы

Случайно наткнулся на интересный документик. 

По сути - это единственный известный мне алгоритм, позволяющий получить БИХ фильтры с линейной фазовой характеристикой "в реальном времени", без использования буферов реверсирования времени.

Вычислительная нагрузка - значительно ниже КИХ фильтров, но немного выше, чем при классических БИХ фильтрах. Однако требуется дополнительное ОЗУ под увеличенные линии задержек.

Фильтрами интересуюсь на уровне "без высшей математики", поэтому полностью оценить данный алгоритм не могу.

Предлагаю обсудить и, по возможности, выработать методику применения алгоритма.

Reverse IIR_rus.pdf

ReverseIIR.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если без высшей математики, то рекурсивных фильтров с линейной фчх не бывает. Можно лишь аппроксимировать линейную фчх постановкой allpass корректоров. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 минут назад, thermit сказал:

Бывает. И без коррекции фчх.

надо вроде пропустить через обычный IIR сигнал сначала в прямом во времени направлении, а потом в обратном и ФЧХ становится линейной.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это физически не реализуемая система. Возможна рекурсивная физ реализуемая система со строго линейной фазой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 минут назад, thermit сказал:

Возможна рекурсивная физ реализуемая система со строго линейной фазой.

CIC, если мы говорим про дискретные системы и требует сохранения устойчивости?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Cic это каскад потенциально неустойчивы интеграторов с плюсами на единичной окружности, которые компенсируются нулями гребенчатых фильтров. Если гребенчатый фильтр стоит до интегратора, он предотвращает собой неустройчивость. При этом импульсная характеристика фильтра конечна по времени. Реализовать же  IIR фильтр с линейной фазой принципиально невозможно. Можно лишь пытаться в некоторой степени линеаризовать фчх добавлением allpass звеньев, сделав при этом фильтр неминимальнофазовых. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 минут назад, bahurin сказал:

Cic это каскад потенциально неустойчивы интеграторов с плюсами на единичной окружности, которые компенсируются нулями гребенчатых фильтров. Если гребенчатый фильтр стоит до интегратора, он предотвращает собой неустройчивость. При этом импульсная характеристика фильтра конечна по времени. Реализовать же  IIR фильтр с линейной фазой принципиально невозможно. Можно лишь пытаться в некоторой степени линеаризовать фчх добавлением allpass звеньев, сделав при этом фильтр неминимальнофазовых. 

Возможно и именно принципиально. Просто он не будет устойчивым. 1/(1-z^-1) обладает линейной фазой. Реализуется и используется сплошь и рядом. Хотя бы даже в циках. Лично я, кстати ставлю их перед гребенками. Память экономится при децимации. От перемены мест сомножителей итд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подайте на интегратор сигнал с постоянной составляющей и подождите некоторое время. Аккумулятор переполнится и выдаст на выход скачок от максимально возможного значения до нуля. Не знаю как вы, а я бы не хотел в аппаратуре системы жизниобеспечения поиметь такой скачок. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При любой конечной разрядности и конечной постоянной составляющей интегратор переполнится через конечный промежуток времени. Не морочте людям голову. Использовать интегратор без предварительного дифференциатора нельзя. Не закладывайте багов, о которые потом будете ударяться головой. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 минут назад, bahurin сказал:

При любой конечной разрядности и конечной постоянной составляющей интегратор переполнится через конечный промежуток времени. Не морочте людям голову. Использовать интегратор без предварительного дифференциатора нельзя. Не закладывайте багов, о которые потом будете ударяться головой. 

так  это нормально что интегратор переполняется, это работе cic-а не мешает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, Lmx2315 сказал:

так  это нормально что интегратор переполняется, это работе cic-а не мешает.

Повторюсь: при правильно выбранной разрядности да. Совершенно не мешает. Сергей, может быть прежде, чем разбрасываться трескучими словами стоит изучить вопрос поглубже?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...