Яка перевага фільтрафільтру MATLAB


30

MATLAB's filtfiltздійснює фільтрацію вперед-назад, тобто фільтрує, повертає сигнал, фільтрує знову і знову повертає назад. Мабуть, це зроблено для зменшення відставання фаз? Які переваги / недоліки використання такої фільтрації (я думаю, це призведе до ефективного збільшення порядку фільтру).

Чи було б краще використовувати filtfiltзавжди замість filter(тобто лише фільтрування вперед)? Чи є додатки, де це потрібно використовувати, а де їх не слід використовувати?


Не використовуйте нульову фазову фільтрацію для аудіо, оскільки це призводить до "попереднього дзвінка", яке звучить дивно. Мінімальнофазна фільтрація є більш природною. ccrma.stanford.edu/~jos/filters/Linear_Phase_Really_Ideal.html
ендоліти

Відповіді:


34

Ви можете найкраще подивитися на це в частотній області. Якщо - вхідна послідовність, а h [ n ] - імпульсна відповідь фільтра, то результат першого проходу фільтра дорівнюєх[н]год[н]

Х(еjω)Н(еjω)

при і H ( e j ω ) перетворення Фур'є з x [ n ] і h [ n ] відповідно. Поворот часу відповідає заміні ω на - ω у частотній області, тому після реверсування часу ми отримуємоХ(еjω)Н(еjω)х[н]год[н]ω-ω

Х(е-jω)Н(е-jω)

Н(еjω)

Х(е-jω)Н(еjω)Н(е-jω)

який після реверсування часу остаточно дає спектр вихідного сигналу

(1)Y(еjω)=Х(еjω)Н(еjω)Н(е-jω)=Х(еjω)|Н(еjω)|2

Н(е-jω)=Н(еjω)|Н(еjω)|2

год^[н]=год[н]год[-н]

В результаті:

  • якщо у вас є або вам потрібен фільтр IIR, і ви хочете нульове фазове спотворення, а затримка обробки не проблема, тоді цей метод корисний

  • якщо затримка обробки - це проблема, ви не повинні її використовувати

  • якщо у вас є фільтр FIR, ви можете легко обчислити нову відповідь фільтра FIR, що еквівалентно використанню цього методу. Зауважте, що з фільтрами FIR завжди може бути реалізована точно лінійна фаза.


Я створив тег з назвою maximum-aposteriori-estimation. Чи можете ви перейменувати його maximum-a-posteriori-estimation? По помилці я забув -після a. Дякую тобі.
Рой

15

Я знайшов це відео дуже і дуже корисним (воно детально розроблено відповідь Метта).

Ось кілька ключових ідей з відео:

  • Нульова фаза не призведе до фазових спотворень, але призведе до безпричинного фільтра. Це означає, що якщо дані фільтруються під час збирання, це не буде варіантом (справедливий лише для збережених даних, які ми можемо обробляти).введіть тут опис зображення
  • Коли ви впроваджуєте непричинний фільтр, перехідні процеси розмиваються вперед і назад (наприклад, якщо ми хочемо пульсацію 2 дБ, той факт, що ми будемо робити запуск вперед і назад за допомогою фільтра, означає, що ми хочемо кожного з вони мають 1 дБ).введіть тут опис зображення
  • Використовує властивість реверсування часу дискретного перетворення Фур'є. введіть тут опис зображення
  • Ефективна частотна характеристика, викликана FILTFILT, - це величина, що знаходиться в одному напрямку, у квадраті. Ви приймаєте вхідний сигнал, x[n]фільтруєте його, повертаєте результат назад, фільтруєте його знову і повертаєте назад (крок зміни часу, вимагає, щоб усі дані були доступні).введіть тут опис зображення
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.