Что это за фильтр? Это IIR?


9

Я пытаюсь ответить на следующий вопрос:

Система описывается уравнением:

y[n]=0.5y[n1]+x[n]0.5x[n1]

IIR - фильтр? Мой ответ - да.

Спасибо


1
Существует класс КИХ-фильтров, называемых «Усеченные БИХ-фильтры» (TIIR). Вы можете гуглить это, и вы найдете вещи от Джулиуса Смита и Эвери Вана. Другим примером фильтров TIIR является фильтр скользящей суммы или скользящего среднего или фильтр CIC (все они имеют разные названия для одного и того же). что делает этот рекурсивный фильтр КИХ, так это подавление нулевого полюса. как реализовано, есть внутренние полюса, и если они будут нестабильны, фильтр может взорваться внутри, но вы не увидите его на выходе, пока не будут превышены числовые пределы.
Роберт Бристоу-Джонсон

1
каковы численные пределы?
Черный Ясмин

зависит от числового типа (с плавающей или фиксированной) и ширины слова. этот материал можно посмотреть. . (скажем, для IEEE-754 поплавками для фиксированной, это зависит от того, сколько бит, , которые остались от двоичной точки, примерно ± 2 п я - 1 .nI±2nI1
Роберт Бристоу-Джонсон

Еще раз спасибо, господа за помощь! это очень помогает, я рад, что нашел этот сайт
Black Yasmin

2
@AnthonyParks: Вы говорите : « почему люди все усложняют ... это явно IIR, потому что первый член фильтра имеет часть обратной связи »? Я говорю : « почему люди не удосуживаются понять основные понятия DSP »? БИХ-фильтр всегда подразумевает рекурсивную форму, но КИХ не обязательно означает, что фильтр нерекурсивен. Это единственный правильный ответ, и вы путаете понятия здесь. Если бы это был экзаменационный вопрос, вы бы проиграли, заявив, что это ИДК. Оппенгейм объясняет эту тему в своей книге о DSP.
jojek

Ответы:


18

Это КИХ- фильтр, хотя он выглядит как БИХ. Если вы рассчитаете коэффициенты, вы получите конечную импульсную характеристику:

h=[1]

Это происходит из-за отмены нулевого полюса:

Y(z)0.5Y(z)z1=X(z)0.5X(z)z1

H(z)=Y(z)X(z)=10.5z110.5z1=1

Да, это может быть сложно. Видение коэффициентов в LCCDE (уравнение разностей линейных постоянных коэффициентов) не обязательно означает, что это БИХ-фильтр. Это может быть просто рекурсивный FIR-фильтр.y[nk]


1
спасибо за признание! Я был одурачен, чтобы сказать IIR, даже не глядя внимательно на коэффициенты ... Я удалил свой ответ.
Fat32

Тем не менее, если вы реализуете уравнения, как первоначально указано, они не будут вести себя точно так же, как H (z) = 1 из-за эффектов конечной длины слова (несмотря на то, что в этом случае подавление полюс-ноль является точным).
Оскар

Это верно @Oscar, но это числовые проблемы, которые не имеют ничего общего с фильтром F / IIR.
jojek

1
@jojek: вы, конечно, совершенно правы. Однако использование рекурсивных КИХ-фильтров вызывает немало проблем, если вы не знаете об этом (а это делают многие, даже «высококачественные» исследователи). Отсюда и мой комментарий. В идеале также следует обсудить алгоритм и передаточную функцию.
Оскар

jojek Я читаю ваш ответ на этот вопрос, на который вы ответили, но я не могу комментировать. dsp.stackexchange.com/questions/17605/… я могу использовать другое окно?
Черный Ясмин

14

Ответ Джохека, конечно, правильный. Я просто хотел бы добавить больше информации, потому что слишком часто я видел замешательство в терминах «БИХ» и «рекурсивный». Следующие последствия всегда имеют место:

IIRrecursivenon-recursiveFIR

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

Однако обратное, как правило, не соответствует действительности. Рекурсивный фильтр может иметь конечную импульсную характеристику, как в случае с примером в вопросе. Другой известный пример - фильтр скользящих средних. Это нерекурсивная реализация скользящего среднего (обязательно FIR):

y[n]=1Nk=nN+1nx[k]

y[n]=y[n1]+1N(x[n]x[nN])

1
Краткий и точный, как всегда, +1;) Спасибо, что подняли дело МА.
jojek

1
@jojek: да, я думаю, что это классика, которую все должны знать.
Мэтт Л.

И хотя я в первую очередь думал о шуме округления в комментарии к ответу Джоджека, для MA переполнение будет потенциальной проблемой, которую необходимо тщательно рассмотреть. Легко решается арифметикой в ​​два дополнения и достаточной длиной слова.
Оскар

1
@ Оскар: Что ж, после очень простого анализа с двойной точностью с плавающей запятой я получил ошибку 8.881784197001252e-16 . Это после обработки, эквивалентной 1 году аудио при частоте дискретизации 44,1 кГц. Входные данные представляют собой гауссовский шум с нормированным распределением. Вот код для воспроизведения результата ! Нажмите! (это может занять 3 дня). Если это правильно, то я думаю, что беспокоиться не о чем.
Jojek

1
@jojek: три вещи. 1) Я имел в виду фильтр ответа скользящей средней, а не тот, который был в исходном вопросе. 2) Да, это нормально для аудио (но не точно, поэтому нет смысла выделять жирным шрифтом "нет"), но я предпочитаю, чтобы моя критически важная для безопасности обработка сигнала работала независимо от входного сигнала, имеющего синтетические свойства. 3) Интересно то, что фильтр, с которым вы моделировали, не будет иметь проблем, которые я описал (так как полюс находится внутри единичного круга, а не на нем), но всегда будет иметь ошибки округления, не зависящие от представления (которых можно избежать в случае скользящей средней).
Оскар
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.