Я довольно новичок в обработке сигналов и знаю, что этот вопрос может быть слишком широким. Но я все равно хотел бы услышать намеки от экспертов.
Меня учили использовать butter
(для разработки фильтра Баттерворта, известного как фильтр с максимально плоской величиной) и filtfilt
(цифровая фильтрация нулевой фазы) полосовую фильтрацию сигналов ЭЭГ (электроэнцефалограмма) в автономном режиме MATLAB (т.е. после завершения записи). Таким образом, вы можете избежать неизбежной «задержки», вызванной цифровым фильтром (то есть фильтрацией нулевой фазы).
Затем кто-то спросил меня, почему мы не можем использовать fft
(быстрое преобразование Фурье), чтобы получить представление сигнала в частотной области, а затем установить нулевую мощность нежелательных частот, а затем ifft
(обратное быстрое преобразование Фурье), чтобы восстановить отфильтрованные данные во времени домен для той же цели. Это манипулирование в частотной области звучало для меня проще и разумнее, и я не мог ответить, почему.
Каковы преимущества и недостатки использования простого fft/ifft
метода для полосовой фильтрации? Почему люди предпочитают использовать цифровые фильтры FIR или IIR?
Например, является ли fft/ifft
метод более подверженным спектральной утечке или ряби по сравнению с установленными цифровыми фильтрами? Способ также страдает от задержки фазы? Есть ли способ визуализации импульсного отклика для этого метода фильтрации для сравнения?