Групповая задержка КИХ фильтров
-
- Сообщения: 89
- Зарегистрирован: 28 окт 2010, 22:31
- Откуда: Москва
Групповая задержка КИХ фильтров
с удовольствием "доел" статью http://dsplib.ru/content/filters/linphase/linphase.html. Все замечательно, но есть ни то глобальное (мое) заблуждение, ни то -- там не очень все четко сказано. По моим (возможно, мифическим) представлениям, КИХ фильтр (вообще-то, мне больше мил термин "нерекурсивный", но его, кажется, отменили), имеющий линейную ФЧХ, обладает групповой задержкой, равной ровно половине порядка. Т.е. групповую задержку такого фильтра, соответственно, нужно мерить в отсчетах, и, в частности, если необходимо свести сигнал исходный + отфильтрованный, исходный сигнал подлежит задержке на N/2 отсчетов, а 1-е N/2 отсчетов от КИХ-фильтра д.б. отброшены (в предположении, что N-четное); при этом 0-й отсчет задержанного исходного сигнала будет соответствовать N/2-му отсчету сигнала отфильтрованного. (Причем, возможно, я опять устал, но N в моих рассуждениях здесь -- порядок фильтра, а число отсчетов ИХ при этом -- N+1 -- ну да, фильтр с одним коеффициэнтом ИХ (h[0]) -- умножение на константу, т.е. 0-го порядка<???> -- ну, это вопрос терминологии, хотя, конечно, для понимания тоже нуждается в "сведении". -- т.е. это, считаю, 2-й (отдельный) вопрос, причем "2-го порядка важности", тем не менее...)
Т.е. или я что-то глобально путаю, или статья нуждается в уточнении. Потому так если предлагаемое ("кастрюльное") правило правильно, его, на мой вкус, надо озвучить -- это очень облегчит жизнь многим юзерам КИХ. Если я неправ -- соотв. разъяснения избавят меня от моря ошибок.
Т.е. или я что-то глобально путаю, или статья нуждается в уточнении. Потому так если предлагаемое ("кастрюльное") правило правильно, его, на мой вкус, надо озвучить -- это очень облегчит жизнь многим юзерам КИХ. Если я неправ -- соотв. разъяснения избавят меня от моря ошибок.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.
- Бахурин Сергей
- Администратор
- Сообщения: 1114
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Групповая задержка КИХ фильтров
Да похоже я увлекся. Порядок цифрового фильтра (БИХ или КИХ неважно) равен числу линий задержек. Поэтому вы правы, в статье надо сказать что порядок фильтра N-1, а не N.
"Фильтр" у которого только один к-т h(0) не является фильтром, поскольку не имеет линий задержек. Это просто умножитель на h(0), и понятие порядка к нему неприменимо.
PS "КИХ фильтр" писать короче чем "нерекурсивный фильтр", к тому же, такая аббревиатура отлично сочетается с англоязычной FIR filter, поэтому в условиях глобализации нерекурсивный фильтр все чаще становиться КИХ фильтром.
да именно поэтому выход КИХ фильтра нечетного порядка (с четным количеством к-тов) всегда на полотсчета сдвинут относительно входного сигнала.По моим (возможно, мифическим) представлениям, КИХ фильтр (вообще-то, мне больше мил термин "нерекурсивный", но его, кажется, отменили), имеющий линейную ФЧХ, обладает групповой задержкой, равной ровно половине порядка
ну да, фильтр с одним коеффициэнтом ИХ (h[0]) -- умножение на константу, т.е. 0-го порядка<???> -- ну, это вопрос терминологии, хотя, конечно, для понимания тоже нуждается в "сведении". -- т.е. это, считаю, 2-й (отдельный) вопрос, причем "2-го порядка важности", тем не менее...)
"Фильтр" у которого только один к-т h(0) не является фильтром, поскольку не имеет линий задержек. Это просто умножитель на h(0), и понятие порядка к нему неприменимо.
PS "КИХ фильтр" писать короче чем "нерекурсивный фильтр", к тому же, такая аббревиатура отлично сочетается с англоязычной FIR filter, поэтому в условиях глобализации нерекурсивный фильтр все чаще становиться КИХ фильтром.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Групповая задержка КИХ фильтров
http://www.dsplib.ru/content/filters/li ... phase.html
Данные фильтруются рекурсивным фильтром, затем результат фильтрации реверсируется и снова пропускается через тот же фильтр. Выходной вектор реверсируется еще раз, что приводит в итоге к несмещенным по фазе данным.
Так как сигнал фильтруется дважды, АЧХ = |Y|**2 т.е. крутизна среза увеличивается.
Однако существуют фильтры с нулевым фазовым сдвигом (каскадные фильтры). В геофизике широко применяются полосовые фильтры Баттерворта с нулевой фазовой характеристикой.Поскольку БИХ фильтры не обладают свойствами симметрии импульсной характеристики и не могут иметь линейную ФЧХ.
Данные фильтруются рекурсивным фильтром, затем результат фильтрации реверсируется и снова пропускается через тот же фильтр. Выходной вектор реверсируется еще раз, что приводит в итоге к несмещенным по фазе данным.
Так как сигнал фильтруется дважды, АЧХ = |Y|**2 т.е. крутизна среза увеличивается.
- Бахурин Сергей
- Администратор
- Сообщения: 1114
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Групповая задержка КИХ фильтров
чтобы реверсировать результат фильтрации надо сначала все данные принять и где-то сохранить, а уже потом реверсировать. А это уже физически не реализуемый фильтр, поскольку входных данных может оказаться бесконечное число. Фильтры с нулевой групповой задержкой физически не реализуемые, ибо они инерционны (поскольку стоят линии задержки), но должны дать отклик в момент прихода сигнала, чего они из за инерционности не могут сделать. Вы можете для фиксированной выборки скомпенсировать задержку при фильтрации тем или иным способом, но говорить что она нулевая не можете. Кроме того в случае БИХ фильтра скомпенсировать эту задержку невозможно, поскольку разые частоты приобретают разную задержку из-за нелинейности ФЧХ.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Групповая задержка КИХ фильтров
Ну на флэшке, напримерчтобы реверсировать результат фильтрации надо сначала все данные принять и где-то сохранить
Ну еще можно сказать:Фильтры с нулевой групповой задержкой физически не реализуемые, ибо время не может течь в обратном направлении!Фильтры с нулевой групповой задержкой физически не реализуемые, ибо они инерционны
Любой фильтр, в том числе и БИХ не знает в каком направлении (по времени) поступают данные. Задержка будет нелинейна Z(f), но при фильтрации реверсированного сигнала она поменяет знак -Z(f).
- Бахурин Сергей
- Администратор
- Сообщения: 1114
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Групповая задержка КИХ фильтров
Покажите мне передаточную характеристику фильтра с нулевой групповой задержкой. Прямо запишите:
тогда можно о чем-то говорить. Все ваши схемы компенсации задержки подразумевают, что вы получили все отсчеты потом что-то с ними делаете. Т.о. при обработке первого отсчета вы уже знаете последний, что невозможно при обработке в реальном времени при поступлении первого отсчета и это соответствует членам в передаточной характеристике , т.е. не задержке сигнала, а скорее его предсказателю.
тогда можно о чем-то говорить. Все ваши схемы компенсации задержки подразумевают, что вы получили все отсчеты потом что-то с ними делаете. Т.о. при обработке первого отсчета вы уже знаете последний, что невозможно при обработке в реальном времени при поступлении первого отсчета и это соответствует членам в передаточной характеристике , т.е. не задержке сигнала, а скорее его предсказателю.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Групповая задержка КИХ фильтров
Я не спорю - такого фильтра в реальном времени не существует...Все данные должны быть получены до начала "реверсивной" фильтрации.Покажите мне передаточную характеристику фильтра с нулевой групповой задержкой.
Пусть мы имеем звуковой файл Т=1 час, отфильтрованый БИХ фильтром в реальном времени. Проиграв его "задом наперед" и пропустив через тот же фильтр избавимся от сдвига фазы, зависящего от частоты
- Бахурин Сергей
- Администратор
- Сообщения: 1114
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Групповая задержка КИХ фильтров
т.е. итог можно подвести такой:
1. Не бывает физически-реализуемых бих фильтров с линейной ФЧХ
2. Не бывает физически-реализуемых фильтров с нулевой ФЧХ
3. В частном случае, имея весь набор данных для анализа можно обеспечить обработку с компенсацией задержки при фильтрации как ких, так и бих фильтром. Последний тезис про бих фильтры я постараюсь проверить.
1. Не бывает физически-реализуемых бих фильтров с линейной ФЧХ
2. Не бывает физически-реализуемых фильтров с нулевой ФЧХ
3. В частном случае, имея весь набор данных для анализа можно обеспечить обработку с компенсацией задержки при фильтрации как ких, так и бих фильтром. Последний тезис про бих фильтры я постараюсь проверить.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Групповая задержка КИХ фильтров
Да, итог печальный...
"Физически-реализуемый" - довольно расплывчатый термин по-моему...
Пусть я имею звуковой файл f(i)=a1,a2,....aN длительностью Т= 1 час, который пропускаю через фильтр порядка 2N. Это конечно не совсем удобно - через 2 часа получить первую выборку, но почему Вы считаете такой фильтр физически нереализуемым?
И окружность нарисовать - физически-нереализуемый процесс - невозможно замкнутую кривую нарисовать с неизвестной длиной!Не бывает физически-реализуемых фильтров с нулевой ФЧХ
"Физически-реализуемый" - довольно расплывчатый термин по-моему...
Пусть я имею звуковой файл f(i)=a1,a2,....aN длительностью Т= 1 час, который пропускаю через фильтр порядка 2N. Это конечно не совсем удобно - через 2 часа получить первую выборку, но почему Вы считаете такой фильтр физически нереализуемым?
- Бахурин Сергей
- Администратор
- Сообщения: 1114
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Групповая задержка КИХ фильтров
Еще раз повторяю реакция физически реализуемого фильтра выходит всегда позже воздействия. Если вам для формирования реакции в момент t0 нужны значения сигнала в момент t1>t0, то такой фильтр физически не реализуем, поскольку его импульсная характеристика залезает в отрицательное время. Ваш пример - пример физически реализуемого устройства, поскольку формирование первого отсчета на выходе происходит после того как вы приняли последний отсчет, т.е. отклик вашего фильтра на воздействие первого отсчета записи вы получите все равно не раньше чем примите всю запись (т.е. не раньше чем через час). Но говорить о нулевой групповой задержке не приходится ибо задержка минимум час. Это первое. Второй вопрос как вы будете действовать, если вам не известен конец записи? Допустим отсчеты идут непрерывно. Если вы поставите обычный фильтр, то в нем есть несколько линий задержки и вы можете фильтровать сигнал в принципе бесконечно. Но ваш фильтр тогда становится не реализуемым, поскольку вы будете бесконечно ждать, когда закончатся отсчеты, а они не закончатся никогда.Пусть я имею звуковой файл f(i)=a1,a2,....aN длительностью Т= 1 час, который пропускаю через фильтр порядка 2N. Это конечно не совсем удобно - через 2 часа получить первую выборку, но почему Вы считаете такой фильтр физически нереализуемым?
И еще замечание я проверил тезис о том что можно сделать бих фильтр с линейной фазой, так вот если вы будете обрабатывать фиксированный кусок, то получите усеченную импульсную характеристику бих фильтра, т.е. по сути получите ких фильтр.