Я пытаюсь проанализировать данные ЭЭГ с устройства Emotiv Epoc + и не могу построить графики спектра мощности, используя функцию plot_psd ().
Исходный набор данных выглядит следующим образом:
Исходные данные ЭЭГ в формате CSV
, где AF3, F7, F3, FC5, T7, P7 , ... являются значениями от электродов устройства. Я поднастроил данные, содержащие информацию о четырнадцати электродах, создал информационную структуру, необходимую MNE, и, наконец, необработанный объект.
Информация необработанного объекта следующая:
Объект выборки данных имеет 918475 временных выборок и 14 каналов. Последняя выборка времени находится на 7175,578125 секундах. Первые несколько имен каналов: AF3, F7, F3.
bad channels: []
128.0 Hz
None
<Info | 16 non-empty fields
bads : list | 0 items
ch_names : list | AF3, F7, F3, FC5, T7, P7, O1, O2, P8, ...
chs : list | 14 items (MISC: 14)
comps : list | 0 items
custom_ref_applied : bool | False
dev_head_t : Transform | 3 items
events : list | 0 items
highpass : float | 0.0 Hz
hpi_meas : list | 0 items
hpi_results : list | 0 items
lowpass : float | 64.0 Hz
meas_date : NoneType | unspecified
nchan : int | 14
proc_history : list | 0 items
projs : list | 0 items
sfreq : float | 128.0 Hz
acq_pars : NoneType
acq_stim : NoneType
ctf_head_t : NoneType
description : NoneType
dev_ctf_t : NoneType
device_info : NoneType
dig : NoneType
experimenter : NoneType
file_id : NoneType
gantry_angle : NoneType
helium_info : NoneType
hpi_subsystem : NoneType
kit_system_id : NoneType
line_freq : NoneType
meas_id : NoneType
proj_id : NoneType
proj_name : NoneType
subject_info : NoneType
utc_offset : NoneType
xplotter_layout : NoneType
Когда я использую команду для построения графика спектра мощности
raw.plot_psd(fmax = 50)
Я получаю следующую ошибку:
---> 3 raw.plot_psd (fmax = 50)
<C:\Users\ey417\Anaconda3\lib\site-packages\mne\externals\decorator.py:decorator-gen-147> in plot_psd(self, fmin, fmax, tmin, tmax, proj, n_fft, n_overlap, reject_by_annotation, picks, ax, color, xscale, area_mode, area_alpha, dB, estimate, show, n_jobs, average, line_alpha, spatial_colors, verbose)
~\Anaconda3\lib\site-packages\mne\utils\_logging.py in wrapper(*args, **kwargs)
88 with use_log_level(verbose_level):
89 return function(*args, **kwargs)
---> 90 return function(*args, **kwargs)
91 return FunctionMaker.create(
92 function, 'return decfunc(%(signature)s)',
~\Anaconda3\lib\site-packages\mne\io\base.py in plot_psd(self, fmin, fmax, tmin, tmax, proj, n_fft, n_overlap, reject_by_annotation, picks, ax, color, xscale, area_mode, area_alpha, dB, estimate, show, n_jobs, average, line_alpha, spatial_colors, verbose)
1583 dB=dB, estimate=estimate, show=show, n_jobs=n_jobs,
1584 average=average, line_alpha=line_alpha,
-> 1585 spatial_colors=spatial_colors, verbose=verbose)
1586
1587 @copy_function_doc_to_method_doc(plot_raw_psd_topo)
<C:\Users\ey417\Anaconda3\lib\site-packages\mne\externals\decorator.py:decorator-gen-133> in plot_raw_psd(raw, fmin, fmax, tmin, tmax, proj, n_fft, n_overlap, reject_by_annotation, picks, ax, color, xscale, area_mode, area_alpha, dB, estimate, show, n_jobs, average, line_alpha, spatial_colors, verbose)
~\Anaconda3\lib\site-packages\mne\utils\_logging.py in wrapper(*args, **kwargs)
88 with use_log_level(verbose_level):
89 return function(*args, **kwargs)
---> 90 return function(*args, **kwargs)
91 return FunctionMaker.create(
92 function, 'return decfunc(%(signature)s)',
~\Anaconda3\lib\site-packages\mne\viz\raw.py in plot_raw_psd(raw, fmin, fmax, tmin, tmax, proj, n_fft, n_overlap, reject_by_annotation, picks, ax, color, xscale, area_mode, area_alpha, dB, estimate, show, n_jobs, average, line_alpha, spatial_colors, verbose)
618 fig, picks_list, titles_list, units_list, scalings_list, ax_list, \
619 make_label = _set_psd_plot_params(
--> 620 raw.info, proj, picks, ax, area_mode)
621 del ax
622 psd_list = list()
~\Anaconda3\lib\site-packages\mne\viz\utils.py in _set_psd_plot_params(info, proj, picks, ax, area_mode)
2959 _data_types = ('mag', 'grad', 'eeg', 'seeg', 'ecog')
2960 _check_option('area_mode', area_mode, [None, 'std', 'range'])
-> 2961 picks = _picks_to_idx(info, picks)
2962
2963 # XXX this could be refactored more with e.g., plot_evoked
~\Anaconda3\lib\site-packages\mne\io\pick.py in _picks_to_idx(info, picks, none, exclude, allow_empty, with_ref_meg, return_kind)
930 if picks.dtype.char in ('S', 'U'):
931 picks = _picks_str_to_idx(info, picks, exclude, with_ref_meg,
--> 932 return_kind, orig_repr, allow_empty)
933 if return_kind:
934 picked_ch_type_or_generic = picks[1]
~\Anaconda3\lib\site-packages\mne\io\pick.py in _picks_str_to_idx(info, picks, exclude, with_ref_meg, return_kind, orig_repr, allow_empty)
984 not allow_empty:
985 raise ValueError('picks (%s) yielded no channels, consider '
--> 986 'passing picks explicitly' % (orig_repr,))
987
988 #
ValueError: picks (None, treated as "data") yielded no channels, consider passing picks explicitly