EEG bandpass filtering locutoff and hicutoff syntax

조회 수: 18 (최근 30일)
Zhuo
Zhuo 2025년 11월 8일 4:29
댓글: Elias 대략 6시간 전
I have been confused with this basic question for a while. If I want to keep the EEG data ranging from 0.05Hz- 80Hz when doing the bandpass filtering step, should I run: EEG = pop_eegfiltnew(EEG, 'locutoff', 0.05, 'hicutoff', 80)or EEG = pop_eegfiltnew(EEG, 'locutoff', 0.05, 'hicutoff', 80, ‘revfilt’, 1)? Thank you so much for anawering this question!

답변 (1개)

Umar
Umar 2025년 11월 9일 7:14
편집: Umar 2025년 11월 9일 7:15

Hi @Zhuo,

For your question about bandpass filtering EEG data in the range of 0.05Hz to 80Hz, the choice between the two commands depends on the filtering approach you'd like to use:

  • If you're processing offline data and want to preserve phase relationships, you should use:
    EEG = pop_eegfiltnew(EEG, 'locutoff', 0.05, 'hicutoff', 80, 'revfilt', 1);

This applies a zero-phase filter (non-causal), which is ideal for offline processing when phase accuracy is important.

  • If you're working with *real-time data* or prefer a *causal filter*, then you can use:
    EEG = pop_eegfiltnew(EEG, 'locutoff', 0.05, 'hicutoff', 80);

This applies a causal bandpass filter, which only uses past and present data.

For most offline analyses, `revfilt = 1` is recommended for better phase preservation.

Hope this helps.

Reference:

https://sccn.ucsd.edu/pipermail/eeglablist/2023/016946.html

  댓글 수: 1
Elias
Elias 대략 6시간 전
Hi Umar,
So to your understanding, the default setting of 'pop_eegfiltnew' is a causal bandpass filter? Based on what I am reading, it sounds like the newer function is a non-causal filter unless one manually selects for it to be causal. Here is where I read that:
Elias

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 EEG/MEG/ECoG에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by