Що це за фільтр? Це IIR?


9

Я намагаюся відповісти на таке питання:

Чи описується система рівнянням:

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

IIR - фільтр? Моя відповідь - так.

Дякую


1
існує клас фільтрів FIR під назвою "Урізаний IIR" (TIIR) фільтрів. Ви можете знайти Google, і ви знайдете матеріали від Джуліус Сміт та Ейвері Ван. Інший приклад фільтрів TIIR - це фільтр Moving Sum, або Moving Average або фільтр CIC (всі дуже різні назви для однієї і тієї ж речі). що робить цей рекурсивний фільтр FIR - це скасування полюса-нуля. як реалізовано, є внутрішні полюси, і якби вони були нестабільними, фільтр міг би підірватися всередині, але ви не побачили б його у виході, поки там не будуть перевищені числові межі.
Роберт Брістоу-Джонсон

1
які числові межі?
Чорний Ясмін

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

ще раз дякую, панове за всю допомогу! це дуже допомагає Я радий, що знайшов цей веб-сайт
Black Yasmin

2
@AnthonyParks: Ви кажете : " Чому люди роблять це складним? Це, очевидно, IIR, оскільки перший термін фільтра має частину зворотного зв'язку ". Я кажу : " чому люди не намагаються зрозуміти основні поняття DSP "? Фільтр IIR завжди має на увазі рекурсивну форму, однак FIR не означає, що фільтр є нерекурсивним. Це єдина правильна відповідь, і ви плутаєте тут поняття. Якби це було питання іспиту, ви не зможете сказати, що це ІІР. Оппенхайм пояснює цю тему у своїй книзі про DSP.
jojek

Відповіді:


18

Це фільтр FIR , хоча він схожий на IIR. Якщо обчислити коефіцієнти, ви отримаєте кінцевий імпульсний відгук:

h=[1]

Це відбувається через скасування нульового полюса:

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

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

Так, це може бути складно. Бачачиy[nk]коефіцієнти в LCCDE (лінійне рівняння постійних коефіцієнтів) не обов'язково означає, що це фільтр IIR. Це може бути просто рекурсивний фільтр FIR.


1
дякую за визнання! Мене обдурили сказати ІІР, не дивлячись ніколи уважно на коефіцієнти ... Я видалив свою відповідь.
Fat32

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

Це правда @ Oscar, але це числові проблеми, які не мають нічого спільного з тим, що фільтр F / IIR.
jojek

1
@jojek: ви, звичайно, абсолютно праві. Однак використання рекурсивних фільтрів FIR спричиняє досить багато проблем, якщо ви не знаєте про ці речі (про що багато, навіть "якісні" дослідники). Отже, мій коментар. В ідеалі також слід обговорити функцію алгоритму та передачі.
Оскар

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

14

Відповідь Джожека, звичайно, правильна. Я просто хотів би додати ще трохи інформації, тому що занадто часто я бачив, що терміни "IIR" і "рекурсивний" плутаються. Наступні наслідки завжди мають місце:

IIRrecursivenon-recursiveFIR

тобто кожен фільтр IIR (тобто фільтр дискретного часу, що має нескінченно тривалий імпульсний відгук) повинен бути реалізований рекурсивно (якщо у вас немає нескінченної пам’яті), і кожна нерекурсивна система LTI має кінцевий імпульсний відгук (знову ж таки, якщо у вас немає нескінченності пам'ять).

Однак, зворотне, як правило, не відповідає дійсності. Рекурсивний фільтр може мати кінцеву імпульсну відповідь, як це стосується прикладу у питанні. Ще один відомий приклад - фільтр з ковзними середніми. Це нерекурсивна реалізація ковзної середньої (обов'язково ПДВ):

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

І це рекурсивна реалізація того ж фільтра (також FIR):

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

1
Короткий та акуратний, як завжди, +1;) Дякую за те, що ви порушили справу MA.
jojek

1
@jojek: так, я думаю, що це класика, яку повинні знати всі.
Метт Л.

І хоча я в першу чергу думав про закруглений шум у коментарі до відповіді jojek, для МА переповнення буде потенційним питанням, яке потрібно ретельно розглянути. Легко вирішується двома арифметичними доповненнями і достатньою довжиною слова.
Оскар

1
@Oscar: Ну, зробивши дуже простий аналіз з подвійною точністю з плаваючою точкою, я отримав помилку 8,881784197001252e-16 . Це після обробки еквіваленту 1 року аудіо на частоті дискретизації 44,1 кГц. Вхідні дані - гауссовий шум з нормалізованим розподілом. Ось код для відтворення результату ! Натисніть! (запуск може тривати 3 дні). За умови, що це правильно, то я вважаю, що турбуватися нема про що.
jojek

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