У меня возникают трудности с пониманием того, что означает «бесконечность» в БИХ на практике. Теоретически импульсный отклик используется для обратной связи. Если эта обратная связь никогда не заканчивается, как генерируется результат?
Чтобы ответить на этот вопрос, вы должны знать, что означают «Импульс» и «Ответ» ...
«Импульс» - это простой импульс. В цифровом отношении это будет выборка с максимальным значением, в то время как все остальные выборки до и после будут равны нулю. Если бы вы слушали это, вы бы услышали что-то вроде поп-музыки или фейерверка.
«Ответ» - это выход фильтра (или чего-то еще), которому дан импульс.
Например, вы можете прослушать «импульсный отклик комнаты», войдя в комнату, просто хлопнув в ладоши и услышав эхо. Потребовалось бы немного практики, чтобы хлопать рукой как можно более «остро». Получить импульсный отклик фильтра можно тем же способом, но вместо хлопка в ладоши вы используете простой импульс и вместо комнаты у вас есть фильтр.
Если вы посмотрите на импульсную характеристику фильтра или комнаты, вы увидите, что выходной сигнал покачивается некоторое время после импульса (и иногда он также колеблется и раньше). В комнате вы услышали это покачивание как эхо. В фильтре это покачивание напрямую связано с частотной и фазовой характеристикой фильтра. В комнате количество времени, которое вы слышите эхо, называется «временем реверберации» - для фильтра нет соответствующего термина, но он является частью импульсной характеристики.
Теперь КИХ-фильтр (конечный импульсный отклик) является конечным, поскольку время импульсного отклика ограничено математикой. Математически невозможно, чтобы время импульсного отклика превышало количество отводов в фильтре, поэтому оно конечно .
БИХ-фильтр, с другой стороны, не имеет этого математического ограничения во времени импульсного отклика. Если задана бесконечная математическая точность, БИХ-фильтр может вечно извиваться. Конечно, в практическом смысле это никогда не будет продолжаться вечно, так как в какой-то момент покачивание становится меньше, чем точность используемой математики, и поэтому исчезает.
Фильтры FIR
FIR, с другой стороны, имеют линейный путь от входа к выходу. После N выборок входной сигнал (например, импульс Дирака) будет смещен, и это конец.
КИХ-фильтры по своей природе стабильны, а БИХ-фильтры необязательно.
источник
Существует два широких класса цифровых фильтров: бесконечный импульсный отклик (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-секундный обзор демонстрирует это достаточно, чтобы ответить на ваш вопрос.
источник
Еще один момент, о котором еще не упоминалось, заключается в том, что фильтры БИХ могут быть дополнительно подразделены на два стиля: те, где этапы могут быть ранжированы, так что каждый этап полностью зависит от его собственных предыдущих значений и значений более ранних этапов, и те, где этапы не могут быть ранжированы (потому что два или более этапов зависят друг от друга). Для каскадов в КИХ-фильтре каскады могут ссылаться на предыдущие выходы других каскадов при условии, что они могут быть ранжированы, как в прежнем стиле IIR, и ни один каскад не ссылается на свой предыдущий выход.
Если ступени в БИХ-фильтре могут быть ранжированы, и если общая величина коэффициентов самоотдачи для данной ступени меньше единицы, БИХ-фильтр гарантированно будет стабильным. Если, например, ступень включает некоторое количество сигнала от предыдущих ступеней, плюс половина предыдущего значения этой ступени и 1/4 от значения до этого, минус 1/8 от значения до этого, общая величина обратная связь будет 7/8, поэтому при отсутствии дальнейших входных данных от нижних ступеней величина вклада от самоотдачи будет уменьшаться на 12,5% за каждую итерацию.
источник
РПИ выполняет свою математику с конечным числом элементов, скажем, 32 или 12 или с некоторым числом, но это то, что делает математика, берет конечное число элементов и выполняет фильтрацию только для них.
IIR, делает свою математику на всех образцах, которые вы кормите. Если вы наберете 10 проб и остановите его, то он сработает на 10 пробах, если вы наберете 1 000 000 000 проб, то математика оперирует 1 000 000 000 проб. И если вы оставляете объект, работающий бесконечно, приближаясь к бесконечности (пусть он будет работать вечно), то число элементов также будет бесконечно приближаться к бесконечности. Поскольку слово «конечный» явно относится к другой модели, а модель БИХ предназначена для того, чтобы не иметь конечного числа выборок, слово «бесконечный» как противоположное конечному просто звучит лучше, чем неопределенное или какое-либо другое подобное слово.
источник