У меня возникают трудности с пониманием того, что означает «бесконечность» в БИХ на практике. Теоретически импульсный отклик используется для обратной связи. Если эта обратная связь никогда не заканчивается, как генерируется результат?
У меня возникают трудности с пониманием того, что означает «бесконечность» в БИХ на практике. Теоретически импульсный отклик используется для обратной связи. Если эта обратная связь никогда не заканчивается, как генерируется результат?
Ответы:
Чтобы ответить на этот вопрос, вы должны знать, что означают «Импульс» и «Ответ» ...
«Импульс» - это простой импульс. В цифровом отношении это будет выборка с максимальным значением, в то время как все остальные выборки до и после будут равны нулю. Если бы вы слушали это, вы бы услышали что-то вроде поп-музыки или фейерверка.
«Ответ» - это выход фильтра (или чего-то еще), которому дан импульс.
Например, вы можете прослушать «импульсный отклик комнаты», войдя в комнату, просто хлопнув в ладоши и услышав эхо. Потребовалось бы немного практики, чтобы хлопать рукой как можно более «остро». Получить импульсный отклик фильтра можно тем же способом, но вместо хлопка в ладоши вы используете простой импульс и вместо комнаты у вас есть фильтр.
Если вы посмотрите на импульсную характеристику фильтра или комнаты, вы увидите, что выходной сигнал покачивается некоторое время после импульса (и иногда он также колеблется и раньше). В комнате вы услышали это покачивание как эхо. В фильтре это покачивание напрямую связано с частотной и фазовой характеристикой фильтра. В комнате количество времени, которое вы слышите эхо, называется «временем реверберации» - для фильтра нет соответствующего термина, но он является частью импульсной характеристики.
Теперь КИХ-фильтр (конечный импульсный отклик) является конечным, поскольку время импульсного отклика ограничено математикой. Математически невозможно, чтобы время импульсного отклика превышало количество отводов в фильтре, поэтому оно конечно .
БИХ-фильтр, с другой стороны, не имеет этого математического ограничения во времени импульсного отклика. Если задана бесконечная математическая точность, БИХ-фильтр может вечно извиваться. Конечно, в практическом смысле это никогда не будет продолжаться вечно, так как в какой-то момент покачивание становится меньше, чем точность используемой математики, и поэтому исчезает.
Фильтры 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 проб. И если вы оставляете объект, работающий бесконечно, приближаясь к бесконечности (пусть он будет работать вечно), то число элементов также будет бесконечно приближаться к бесконечности. Поскольку слово «конечный» явно относится к другой модели, а модель БИХ предназначена для того, чтобы не иметь конечного числа выборок, слово «бесконечный» как противоположное конечному просто звучит лучше, чем неопределенное или какое-либо другое подобное слово.