БИХ-фильтры, что означает бесконечность?


11

У меня возникают трудности с пониманием того, что означает «бесконечность» в БИХ на практике. Теоретически импульсный отклик используется для обратной связи. Если эта обратная связь никогда не заканчивается, как генерируется результат?

Ответы:


18

Чтобы ответить на этот вопрос, вы должны знать, что означают «Импульс» и «Ответ» ...

«Импульс» - это простой импульс. В цифровом отношении это будет выборка с максимальным значением, в то время как все остальные выборки до и после будут равны нулю. Если бы вы слушали это, вы бы услышали что-то вроде поп-музыки или фейерверка.

«Ответ» - это выход фильтра (или чего-то еще), которому дан импульс.

Например, вы можете прослушать «импульсный отклик комнаты», войдя в комнату, просто хлопнув в ладоши и услышав эхо. Потребовалось бы немного практики, чтобы хлопать рукой как можно более «остро». Получить импульсный отклик фильтра можно тем же способом, но вместо хлопка в ладоши вы используете простой импульс и вместо комнаты у вас есть фильтр.

Если вы посмотрите на импульсную характеристику фильтра или комнаты, вы увидите, что выходной сигнал покачивается некоторое время после импульса (и иногда он также колеблется и раньше). В комнате вы услышали это покачивание как эхо. В фильтре это покачивание напрямую связано с частотной и фазовой характеристикой фильтра. В комнате количество времени, которое вы слышите эхо, называется «временем реверберации» - для фильтра нет соответствующего термина, но он является частью импульсной характеристики.

Теперь КИХ-фильтр (конечный импульсный отклик) является конечным, поскольку время импульсного отклика ограничено математикой. Математически невозможно, чтобы время импульсного отклика превышало количество отводов в фильтре, поэтому оно конечно .

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


спасибо за приятное объяснение! Где происходит обратная связь в IIR?
GorillaApe

2
@Parhs: обратная связь имеет место, потому что текущий вывод получен из предыдущих входных и выходных значений, тогда как для FIR-фильтра вывод получен только из предыдущих входных значений.
Пол Р

1
@Parha Feedback является побочным эффектом топологии. Под топологией я имею в виду что-то вроде блок-схемы или «схематического» представления фильтра. По сути, результаты математической операции на одном этапе передают другую операцию на предыдущем этапе. Вот что такое обратная связь. Большинству людей FIR легче использовать, потому что они не имеют такой обратной связи. Эту обратную связь трудно заставить работать правильно, но в ней есть большая эффективность.

Система IIR имеет внутреннее состояние, которое «запоминает» предыдущий ввод за все время. Способ, которым вы смоделируете это, состоит в том, чтобы либо подавать предыдущие выходы обратно в токовый выход, такой как этот биквад прямой формы 1 , либо эквивалентно петле обратной связи на входе, такой как этот канонический биквад прямой формы 2 .
Eryk Sun

11


b0yb0z1b1b1bi


z1

введите описание изображения здесь

Фильтры FIR
FIR, с другой стороны, имеют линейный путь от входа к выходу. После N выборок входной сигнал (например, импульс Дирака) будет смещен, и это конец.
КИХ-фильтры по своей природе стабильны, а БИХ-фильтры необязательно.

введите описание изображения здесь


1
что зацикленный сингл может быть небезопасным, давая в некоторых случаях нежелательные результаты?
GorillaApe

2
Это определенно может. Используйте неправильные пути обратной связи или выгоды, и вы можете создать нестабильный фильтр или фильтр, который навсегда вытеснит синусоиду. Как правило, это не то, что нужно для «фильтра», поэтому существуют методы для анализа стабильности и предотвращения нестабильности.
Олин Латроп

Должна ли сумма из всех условий обратной связи возвращаться к началу цепочки обратной связи, или может ли результат от более поздних терминов быть суммирован с входом для более поздних терминов? Хотя я ожидаю, что любой фильтр, который может быть реализован последним способом, может быть преобразован в форму, которую вы иллюстрировали, я бы сказал, что есть полезный подкласс фильтров БИХ, которые могут быть сформированы из каскадных фильтров первого порядка (где каждый вывод каждого правого термина может кормить сам, но ни один из его предшественников)
суперкат

1
a1a2

@stevenvh: Как я отметил в своем ответе, есть полезное подмножество БИХ-фильтров, где стадия может возвращаться к себе, но не к предыдущей стадии; Я не знаю, что я читал термин для описания таких фильтров, но их гораздо легче охарактеризовать, чем обобщенные фильтры БИХ. Хотя они могут быть с правильными коэффициентами отображены в форме выше, было бы сложнее распознать такой фильтр (есть ли для них термин?) В этой форме.
суперкат

4

Существует два широких класса цифровых фильтров: бесконечный импульсный отклик (IIR) и конечный импульсный отклик (FIR). Опять же, в целом, фильтры БИХ основаны на уравнениях, а фильтры КИХ - на основе таблиц.

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

Очень распространенный однополюсный фильтр низких частот IIR может быть выражен как:

FILT <- FILT + FF (NEW - FILT)

Это означает, что на каждой итерации выходные данные перемещаются с фиксированной долей (FF, «доля фильтра») расстояния до входа. Это легко визуализировать, когда FF = 1/2. Если все равно 0, а вход внезапно переходит в 1 и остается там (единичный шаг), то выход будет равен 1/2, 3/4, 7/8, 15/16 и т. Д. Это бесконечный ряд. В конечном итоге значение станет настолько близким к 1, что оно будет выражено как 1, поскольку цифровые значения в компьютере не имеют бесконечной точности.

КИХ-фильтры работают по совершенно другому принципу. Конечный недавний фрагмент входного сигнала сохраняется, и каждое из сохраненных значений умножается на другой коэффициент, а затем добавляются все результаты, чтобы сделать вывод фильтра для этой итерации. На следующей итерации самое старое сохраненное значение отбрасывается, остальные сдвигаются на один слот старше, а новый вход помещается в освобожденный слот. Затем новый сохраненный фрагмент умножается на коэффициенты и т. Д. Этот процесс называется «сверткой», а таблицу коэффициентов часто называют ядром фильтра. С этим фильтром можно сделать некоторые полезные и полезные вещи, проявив творческий подход к коэффициентам. Это целая тема, о которой я не буду сейчас говорить. Однако, поскольку конечный фрагмент ввода хранится в памяти, любая часть входного сигнала может воздействовать на выход только в течение конечного времени. После того, как входной сэмпл сдвинут из конца сохраненного фрагмента, он исчезает и больше не влияет на результат.

Есть целые книги, написанные об этом материале, и вы можете провести несколько семестров курсов колледжа, углубляясь в это глубже. Надеюсь, мой 30-секундный обзор демонстрирует это достаточно, чтобы ответить на ваш вопрос.


1

Еще один момент, о котором еще не упоминалось, заключается в том, что фильтры БИХ могут быть дополнительно подразделены на два стиля: те, где этапы могут быть ранжированы, так что каждый этап полностью зависит от его собственных предыдущих значений и значений более ранних этапов, и те, где этапы не могут быть ранжированы (потому что два или более этапов зависят друг от друга). Для каскадов в КИХ-фильтре каскады могут ссылаться на предыдущие выходы других каскадов при условии, что они могут быть ранжированы, как в прежнем стиле IIR, и ни один каскад не ссылается на свой предыдущий выход.

Если ступени в БИХ-фильтре могут быть ранжированы, и если общая величина коэффициентов самоотдачи для данной ступени меньше единицы, БИХ-фильтр гарантированно будет стабильным. Если, например, ступень включает некоторое количество сигнала от предыдущих ступеней, плюс половина предыдущего значения этой ступени и 1/4 от значения до этого, минус 1/8 от значения до этого, общая величина обратная связь будет 7/8, поэтому при отсутствии дальнейших входных данных от нижних ступеней величина вклада от самоотдачи будет уменьшаться на 12,5% за каждую итерацию.


0

РПИ выполняет свою математику с конечным числом элементов, скажем, 32 или 12 или с некоторым числом, но это то, что делает математика, берет конечное число элементов и выполняет фильтрацию только для них.

IIR, делает свою математику на всех образцах, которые вы кормите. Если вы наберете 10 проб и остановите его, то он сработает на 10 пробах, если вы наберете 1 000 000 000 проб, то математика оперирует 1 000 000 000 проб. И если вы оставляете объект, работающий бесконечно, приближаясь к бесконечности (пусть он будет работать вечно), то число элементов также будет бесконечно приближаться к бесконечности. Поскольку слово «конечный» явно относится к другой модели, а модель БИХ предназначена для того, чтобы не иметь конечного числа выборок, слово «бесконечный» как противоположное конечному просто звучит лучше, чем неопределенное или какое-либо другое подобное слово.


«оперирован на 1 000 000 000 образцов». Ну не напрямую. Поскольку часть выходных данных используется в расчете для следующей выборки, всегда будут следы предыдущих выборок. Фильтр всегда будет содержать очень ограниченное количество образцов. И это не "неопределенно"; оно детерминировано, даже если оно может быть нестабильным.
stevenvh

это то, что я имел в виду, что каждый образец имеет некоторые, но небольшие эффекты от всех образцов, которые предшествовали ему, для IIR.
old_timer

Бесконечное и конечное число элементов в расчете не является разницей между IIR и FIR. Самый простой БИХ работает только с 2 элементами данных: 1 с входа, 1 с выхода.
радагаст

Бесконечное не из числа входов, а из числа накопленных циклов, конечное число занимает только N количество выборок для одного входа в математике, бесконечное эффективно работает на каждом цикле. Конечное число циклов против бесконечного количества циклов для одного входа.
old_timer
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.