Jump to content

    
Sign in to follow this  
avtoneru

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

Recommended Posts

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

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

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

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

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

Reverse IIR_rus.pdf

ReverseIIR.pdf

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
27 минут назад, thermit сказал:

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

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

Share this post


Link to post
Share on other sites
11 минут назад, thermit сказал:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
18 минут назад, bahurin сказал:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
18 минут назад, bahurin сказал:

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

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

Share this post


Link to post
Share on other sites
1 минуту назад, Lmx2315 сказал:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this