- MNE version: e.g. 1.3.1
- operating system: Windows 11
this is my code:
import mne
import numpy as np
from scipy.signal import hilbert
print(mne.version)
加载数据集
data_path = mne.datasets.sample.data_path()
raw_fname = data_path / ‘MEG’ / ‘sample’ / ‘sample_audvis_raw.fif’
raw = mne.io.read_raw_fif(raw_fname, preload=True)
选择感兴趣的电极和频段
picks = mne.pick_types(raw.info, meg=True, eeg=False, exclude=‘bads’)
raw.filter(low_cut=8., high_cut=12., method=‘iir’) # 正确的参数名
epochs = mne.Epochs(raw, events=None, event_id=None, tmin=-0.5, tmax=0.5, picks=picks, preload=True)
计算两个通道之间的PLV
def compute_plv(signal1, signal2):
# 计算信号的解析信号
analytic_signal1 = hilbert(signal1)
analytic_signal2 = hilbert(signal2)
# 计算瞬时相位
instant_phase1 = np.unwrap(np.angle(analytic_signal1))
instant_phase2 = np.unwrap(np.angle(analytic_signal2))
# 计算相位差
phase_diff = instant_phase1 - instant_phase2
# 计算PLV
plv = np.abs(np.mean(np.exp(1j * phase_diff)))
return plv
初始化PLV矩阵
n_channels = len(epochs.ch_names)
plv_matrix = np.zeros((n_channels, n_channels))
计算所有通道对之间的PLV
for i in range(n_channels):
for j in range(i + 1, n_channels):
# 获取通道信号
signal1 = epochs.get_data()[:, i, :]
signal2 = epochs.get_data()[:, j, :]
# 计算PLV
plv = compute_plv(signal1, signal2)
# 存储PLV值(因为PLV是对称的,所以只存储上三角矩阵)
plv_matrix[i, j] = plv
plv_matrix[j, i] = plv
and this is the result:
1.3.1
Opening raw data file C:\Users\jie\mne_data\MNE-sample-data\MEG\sample\sample_audvis_raw.fif…
Read a total of 3 projection items:
PCA-v1 (1 x 102) idle
PCA-v2 (1 x 102) idle
PCA-v3 (1 x 102) idle
Range : 25800 … 192599 = 42.956 … 320.670 secs
Ready.
Reading 0 … 166799 = 0.000 … 277.714 secs…
Traceback (most recent call last):
File “D:/brain_wave/PLV.py”, line 21, in
raw.filter(low_cut=8., high_cut=12., method=‘iir’) # 正确的参数名
TypeError: filter() got an unexpected keyword argument ‘low_cut’
Process finished with exit code 1
so who can help me slove this problem?