المحطة 4 · الدرس 6
قراءة مكوّنات الآرتفاكت
eeglab_data.set (D1) · ما طُبّق عليه قبل هذا الدرس: فلترة high-pass و low-pass، إزالة ضوضاء الكهرباء (50 أو 60 هرتز)، القنوات السيئة، الاستيفاء (interpolation)، إعادة المرجع (re-referencing)، تشغيل ICA، فلتر 1 هرتز قبل ICA ونسخ الأوزانتنزيل البيانات (يفتح في نافذة جديدة)سكربت الوصول لهذه الحالة
% Shortcut: if you saved D1_main_ica.set in the 1-Hz filtering lesson, keep
% the first line and the last two lines, and replace every line between them with:
% EEG = pop_loadset('D1_main_ica.set', pwd);
[ALLEEG, EEG, CURRENTSET, ALLCOM] = eeglab;
eeglabRoot = fileparts(which('eeglab'));
EEG = pop_loadset('eeglab_data.set', fullfile(eeglabRoot, 'sample_data'));
fullLocs = EEG.chanlocs;
% Main dataset: high-pass at 0.1 Hz, then 60 Hz line-noise removal
EEG = pop_eegfiltnew(EEG, 'locutoff', 0.1);
EEG = pop_eegfiltnew(EEG, 'locutoff', 58, 'hicutoff', 62, 'revfilt', 1);
% Bad channels you removed earlier, e.g. {'T7'}; leave empty if none
badChans = {};
if ~isempty(badChans)
EEG = pop_select(EEG, 'rmchannel', badChans);
EEG = pop_interp(EEG, fullLocs, 'spherical');
end
% Average reference, EOG channels excluded
eogIdx = find(ismember({EEG.chanlocs.labels}, {'EOG1', 'EOG2'}));
EEG = pop_reref(EEG, [], 'exclude', eogIdx);
% ICA on a 1-Hz copy, then copy the weights back
EEG_ica = pop_eegfiltnew(EEG, 'locutoff', 1);
EEG_ica = pop_runica(EEG_ica, 'icatype', 'runica', 'extended', 1);
EEG.icaweights = EEG_ica.icaweights;
EEG.icasphere = EEG_ica.icasphere;
EEG.icachansind = EEG_ica.icachansind;
EEG.icawinv = [];
EEG.icaact = [];
EEG = eeg_checkset(EEG);
EEG.filename = ''; EEG.filepath = ''; EEG.datfile = ''; EEG.saved = 'no';
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, 0, 'setname', 'D1 main', 'gui', 'off');
eeglab redraw;زر الرجوع في متصفحك يعيدك لنفس المكان الذي كنت فيه، فافتح ما تشاء بلا قلق.
الفكرة باختصار
ICLabelأداة تصنّف كل مكوّن ICA إلى سبع فئات مع احتمال لكل فئة. يعطي كل مكوّن ICAطريقة تفصل الإشارة المسجّلة إلى مصادر مستقلة، بعضها دماغي وبعضها آرتفاكت. احتمالاً لكل فئة من سبع فئات. لكنه قد يخطئ، وقرار حذف المكوّن قرارك أنت. في درس ICLabel قرأت ثلاث فئات: العين عضلةmuscleنشاط كهربائي من العضلات بترددات عالية، غالباً من الفك والرقبة. والدماغ. هذا الدرس يغطّي الفئات السبع، مع العلامة التي تميّز كل واحدة.
التوتوريال الرسمي يعطي ترتيب النظر إلى المكوّن:
قبل وبعد
هذا الدرس يقرأ المكوّنات ولا يغيّر البيانات. المثال تحته محلول، ورابطه يفتح لعبة ICA كاملة: كل مثال فيها يعرض اللوحات الثلاث، وبعد إجابتك يعرض احتمالات ICLabel وسببها.
أسئلتك بعد هذا، كل جواب في قسمه:
لماذا أحتاج هذه الخطوة؟
السبب بالتفصيل، والمصطلحات التي تحتاجها
- خريطة الرأسscalp mapرسم يبيّن توزيع قيمة على الرأس من الأعلى..
- السلسلة الزمنيةtime seriesقيم الإشارة مرتّبة بحسب الزمن. للمكوّن.
- طيف القدرةpowerمربع السعة، ويقيس قوة الإشارة عند تردد معيّن. لنشاط المكوّن.
- في البيانات المقطّعة، صورة الـ ERPمتوسط استجابة الدماغ لحدث معيّن عبر محاولات كثيرة. (ERP imageرسم يعرض كل المحاولات كخطوط ملوّنة مرتّبة فوق بعضها.).
لوحة واحدة لا تكفي. المكوّن آرتفاكتartifactإشارة غير دماغية تختلط بالتسجيل، مثل الرمش أو نشاط العضلات. عندما تتفق اللوحات.
اللون والإشارة، اعرض التعريفإشارة
signalقيم تتغيّر مع الزمن، مثل الجهد المسجّل في قناة. لا يهمّان. في ICA إشارة المكوّن اعتباطية: الأحمر والأزرق في الخريطة قد ينقلبان، والسلسلة الزمنية قد تنقلب، دون أن يتغيّر المعنى. انظر إلى الشكل، لا إلى اللون.
اللون والإشارة، اعرض التعريفإشارة
signalقيم تتغيّر مع الزمن، مثل الجهد المسجّل في قناة. لا يهمّان. في ICA إشارة المكوّن اعتباطية: الأحمر والأزرق في الخريطة قد ينقلبان، والسلسلة الزمنية قد تنقلب، دون أن يتغيّر المعنى. انظر إلى الشكل، لا إلى اللون.
لماذا أحتاج هذه الخطوة؟
- خريطة الرأس.
- السلسلة الزمنية للمكوّن.
- طيف القدرة لنشاط المكوّن.
- في البيانات المقطّعة، صورة الـ ERP (ERP image).
لوحة واحدة لا تكفي. المكوّن آرتفاكت عندما تتفق اللوحات.
اللون والإشارة لا يهمّان.
في ICA إشارة المكوّن اعتباطية: الأحمر والأزرق في الخريطة قد ينقلبان، والسلسلة الزمنية قد تنقلب، دون أن يتغيّر المعنى. انظر إلى الشكل، لا إلى اللون.
اللون والإشارة لا يهمّان.
في ICA إشارة المكوّن اعتباطية: الأحمر والأزرق في الخريطة قد ينقلبان، والسلسلة الزمنية قد تنقلب، دون أن يتغيّر المعنى. انظر إلى الشكل، لا إلى اللون.
كيف أطبّقها في EEGLAB؟
5 خطوة من القوائم
ابدأ والنسخة الرئيسية مفتوحة وفيها أوزان ICA، كما في “نقطة البداية”. إذا كنت تكمل من درس ICLabel، فاختر D1 main من Datasets، لا D1 main clean، لأن مكوّنات الآرتفاكت ما زالت فيها.
- افتح Tools ثم Classify components using ICLabel ثم Label components، واترك Default (recommended)، ثم اضغط OK. تظهر الخرائط وفوق كل واحدة الفئة الأرجح.
- افتح Tools ثم Classify components using ICLabel ثم View extended component properties واختر مكوّناً. نافذته تعرض خريطة الرأس، وطيف النشاط، والسلسلة الزمنية، واحتمال كل فئة.
- لترى السلاسل الزمنية متجاورة، افتح Plot ثم Component activations (scroll). الرمش ونبض القلبheart (ECG)نبض القلب الكهربائي الذي قد يظهر في EEG كقمم منتظمة. أسهل ما يُرى هنا.
- لكل مكوّن، اقرأ اللوحات بالترتيب السابق وقارنها بالجدول في القسم التالي.
- اكتب المكوّنات التي ستحذفها وسبب كل واحد. لا تحذف شيئاً في هذا الدرس؛ الحذف في درس ICLabel.
كيف أطبّقها في EEGLAB؟
ابدأ والنسخة الرئيسية مفتوحة وفيها أوزان ICA، كما في “نقطة البداية”. إذا كنت تكمل من درس ICLabel، فاختر D1 main من قائمة Datasets، لا D1 main clean، لأن مكوّنات الآرتفاكت ما زالت فيها.
- افتح Tools ثم Classify components using ICLabel ثم Label components، واترك Default (recommended)، ثم اضغط OK. تظهر الخرائط وفوق كل واحدة الفئة الأرجح.
- افتح Tools ثم Classify components using ICLabel ثم View extended component properties واختر مكوّناً. نافذته تعرض خريطة الرأس، وطيف النشاط، والسلسلة الزمنية، واحتمال كل فئة.
- لترى السلاسل الزمنية متجاورة، افتح Plot ثم Component activations (scroll). الرمش ونبض القلب أسهل ما يُرى هنا.
- لكل مكوّن، اقرأ اللوحات بالترتيب السابق وقارنها بالجدول في القسم التالي.
- اكتب المكوّنات التي ستحذفها وسبب كل واحد. لا تحذف شيئاً في هذا الدرس؛ الحذف في درس ICLabel.
كيف أكتبها بالكود؟
نفس الخطوات في 16 أسطر MATLAB
% Classify the components, then find the clearest example of each class
EEG = pop_iclabel(EEG, 'default');
classes = EEG.etc.ic_classification.ICLabel.classes;
probs = EEG.etc.ic_classification.ICLabel.classifications;
[~, bestClass] = max(probs, [], 2); % most likely class of each component
for c = 1:numel(classes)
[p, comp] = max(probs(:, c));
fprintf('%-14s components: %2d | clearest: %2d (%.0f%%)\n', ...
classes{c}, sum(bestClass == c), comp, 100 * p);
end
% Panels of the clearest Eye, Muscle, and Brain components
% Column order: Brain, Muscle, Eye, Heart, Line Noise, Channel Noise, Other
[~, examples] = max(probs(:, [3 2 1]));
% pop_viewprops is in the ICLabel plugin folder; the menu adds it to the path, a script must add it
addpath(fullfile(fileparts(which('iclabel')), 'viewprops'));
pop_viewprops(EEG, 0, examples);الحلقة تطبع لكل فئة عدد المكوّنات التي هي فئتها الأرجح، والمكوّن صاحب أعلى احتمال لها. والسطر الأخير يفتح لوحات أوضح مكوّن للعين والعضلة والدماغ. إذا كان أعلى احتمال لفئة أقل من 50%، فالأرجح أن D1 ليس فيها مكوّن واضح من هذه الفئة.
في D1 توقّع عدة مكوّنات دماغ، ومكوّن عين واحداً على الأقل بين الأوائل. وقد لا تجد قلباً أو ضوضاء قناة: ليست كل داتاست فيها كل الفئات.
كيف أكتبها بالكود؟
% Classify the components, then find the clearest example of each class
EEG = pop_iclabel(EEG, 'default');
classes = EEG.etc.ic_classification.ICLabel.classes;
probs = EEG.etc.ic_classification.ICLabel.classifications;
[~, bestClass] = max(probs, [], 2); % most likely class of each component
for c = 1:numel(classes)
[p, comp] = max(probs(:, c));
fprintf('%-14s components: %2d | clearest: %2d (%.0f%%)\n', ...
classes{c}, sum(bestClass == c), comp, 100 * p);
end
% Panels of the clearest Eye, Muscle, and Brain components
% Column order: Brain, Muscle, Eye, Heart, Line Noise, Channel Noise, Other
[~, examples] = max(probs(:, [3 2 1]));
% pop_viewprops is in the ICLabel plugin folder; the menu adds it to the path, a script must add it
addpath(fullfile(fileparts(which('iclabel')), 'viewprops'));
pop_viewprops(EEG, 0, examples);الحلقة تطبع لكل فئة عدد المكوّنات التي هي فئتها الأرجح، والمكوّن صاحب أعلى احتمال لها. والسطر الأخير يفتح لوحات أوضح مكوّن للعين والعضلة والدماغ. إذا كان أعلى احتمال لفئة أقل من 50%، فالأرجح أن D1 ليس فيها مكوّن واضح من هذه الفئة.
في D1 توقّع عدة مكوّنات دماغ، ومكوّن عين واحداً على الأقل بين الأوائل. وقد لا تجد قلباً أو ضوضاء قناة: ليست كل داتاست فيها كل الفئات.
أي قيمة أختار؟
القيم المناسبة حسب هدف تحليلك
علامات فئات ICLabel السبع:
| الفئة | خريطة الرأس | الطيف | السلسلة الزمنية |
|---|---|---|---|
| دماغ (Brain) | ناعمة وعريضة، كأنها مصدر واحد في الدماغ | ينخفض مع ارتفاع التردد، وكثيراً فيه قمة قرب 10 هرتز | تذبذب مستمر بلا قمم حادة |
| العين (Eye) | أمامية جداً. الرمش: متماثلة في المقدمة. الحركة الجانبية: لونان متعاكسان بين يسار المقدمة ويمينها | أعلى ما يكون عند الترددات المنخفضة، ثم ينخفض بنعومة | قمم كبيرة منفصلة للرمش، أو درجات للحركة الجانبية |
| عضلة (Muscle) | بقعة صغيرة مركّزة عند الحافة، قرب الصدغ أو الرقبة | يرتفع أو يبقى عالياً من نحو 20 هرتز فما فوق | نشاط سريع خشن، كثيراً في دفعات |
| قلب (Heart) | عريضة، وكثيراً تدرّج على الرأس كله | بلا قمة مميزة | نبضات حادة منتظمة، نحو واحدة كل ثانية |
| ضوضاء الكهرباء (Line Noise) | أي شكل | قمة ضيقة عالية عند 50 أو 60 هرتز حسب بلد التسجيل | تذبذب سريع مستمر |
| ضوضاء قناة (Channel Noise) | مركّزة على قطب واحد | غير منتظم غالباً | قفزات أو انجراف، مثل قناة سيئة واحدة |
| أخرى (Other) | مختلطة أو مبعثرة | مختلط | بلا نمط واضح |
أي الفئات تحذف؟ في مسارنا: المكوّنات فوق 0.9 للعين أو العضلة، بعد المراجعة (درس ICLabel). القلب وضوضاء الكهرباء وضوضاء القناة تُحذف فقط بعد مراجعة واضحة. لا تحذف “أخرى” ولا “دماغ”.
أي قيمة أختار؟
علامات فئات ICLabel السبع:
| الفئة | خريطة الرأس | الطيف | السلسلة الزمنية |
|---|---|---|---|
| دماغ (Brain) | ناعمة وعريضة، كأنها مصدر واحد في الدماغ | ينخفض مع ارتفاع التردد، وكثيراً فيه قمة قرب 10 هرتز | تذبذب مستمر بلا قمم حادة |
| العين (Eye) | أمامية جداً. الرمش: متماثلة في المقدمة. الحركة الجانبية: لونان متعاكسان بين يسار المقدمة ويمينها | أعلى ما يكون عند الترددات المنخفضة، ثم ينخفض بنعومة | قمم كبيرة منفصلة للرمش، أو درجات للحركة الجانبية |
| عضلة (Muscle) | بقعة صغيرة مركّزة عند الحافة، قرب الصدغ أو الرقبة | يرتفع أو يبقى عالياً من نحو 20 هرتز فما فوق | نشاط سريع خشن، كثيراً في دفعات |
| قلب (Heart) | عريضة، وكثيراً تدرّج على الرأس كله | بلا قمة مميزة | نبضات حادة منتظمة، نحو واحدة كل ثانية |
| ضوضاء الكهرباء (Line Noise) | أي شكل | قمة ضيقة عالية عند 50 أو 60 هرتز حسب بلد التسجيل | تذبذب سريع مستمر |
| ضوضاء قناة (Channel Noise) | مركّزة على قطب واحد | غير منتظم غالباً | قفزات أو انجراف، مثل قناة سيئة واحدة |
| أخرى (Other) | مختلطة أو مبعثرة | مختلط | بلا نمط واضح |
أي الفئات تحذف؟ في مسارنا: المكوّنات فوق 0.9 للعين أو العضلة، بعد المراجعة (درس ICLabel). القلب وضوضاء الكهرباء وضوضاء القناة تُحذف فقط بعد مراجعة واضحة. لا تحذف “أخرى” ولا “دماغ”.
كيف أتأكد أنها نجحت؟
4 فحوص سريعة
- تعرف العلامة لكل فئة من السبع: الخريطة والطيف والسلسلة الزمنية.
- في D1 وجدت أوضح مكوّن للعين، وأكّدته باللوحات الثلاث.
- قائمتك مكتوبة: المكوّنات التي ستحذفها مع سبب لكل واحد، وليس فيها مكوّن دماغ أو “أخرى”.
- في لعبة ICA صنّفت الأمثلة وقرأت الشرح بعد كل إجابة.
كيف أتأكد أنها نجحت؟
- تعرف العلامة لكل فئة من السبع: الخريطة والطيف والسلسلة الزمنية.
- في D1 وجدت أوضح مكوّن للعين، وأكّدته باللوحات الثلاث.
- قائمتك مكتوبة: المكوّنات التي ستحذفها مع سبب لكل واحد، وليس فيها مكوّن دماغ أو “أخرى”.
- في لعبة ICA صنّفت الأمثلة وقرأت الشرح بعد كل إجابة.
ما الأخطاء التي يقع فيها كثيرون؟
5 أخطاء، وكيف تتجنّبها
- الحكم باللون. الإشارة اعتباطية في ICA. خريطة رمش زرقاء مثل الحمراء تماماً.
- الحكم من لوحة واحدة. الخريطة الأمامية وحدها لا تكفي: يوجد مكوّن دماغ أمامي أيضاً. طيفه فيه قمة، لا انخفاض ناعم من أدنى الترددات.
- اعتبار احتمال ICLabel حقيقة. هو تقدير من مصنّف مدرَّب. مكوّن بـ 55% عين و40% دماغ يحتاج مراجعتك قبل أي قرار.
- توقّع كل الفئات في كل داتاست. مكوّنات القلب تحتاج غالباً أثر قلب قوياً يصل إلى الـ EEG، وضوضاء الكهرباء تضعف كثيراً بعد فلتر notch.
- حذف مكوّنات “أخرى”. “أخرى” تعني أن ICLabel لم يحسم. حذفها قد يحذف معها نشاطاً دماغياً.
ما الأخطاء التي يقع فيها كثيرون؟
- الحكم باللون. الإشارة اعتباطية في ICA. خريطة رمش زرقاء مثل الحمراء تماماً.
- الحكم من لوحة واحدة. الخريطة الأمامية وحدها لا تكفي: يوجد مكوّن دماغ أمامي أيضاً. طيفه فيه قمة، لا انخفاض ناعم من أدنى الترددات.
- اعتبار احتمال ICLabel حقيقة. هو تقدير من مصنّف مدرَّب. مكوّن بـ 55% عين و40% دماغ يحتاج مراجعتك قبل أي قرار.
- توقّع كل الفئات في كل داتاست. مكوّنات القلب تحتاج غالباً أثر قلب قوياً يصل إلى الـ EEG، وضوضاء الكهرباء تضعف كثيراً بعد فلتر notch.
- حذف مكوّنات “أخرى”. “أخرى” تعني أن ICLabel لم يحسم. حذفها قد يحذف معها نشاطاً دماغياً.
متصفحك لا يسمح بحفظ التقدّم. كل الدروس متاحة، لكن علامات الإكمال لن تُحفظ.
تم. حُفظ تقدّمك في هذا المتصفح.تراجعأين أقرأ أكثر؟
4 مراجع: التوثيق الرسمي أولاً
- EEGLAB TutorialتوثيقStudying and flagging artifactual ICA components
- EEGLAB pluginتوثيقICLabel
- Luck, Applied Event-Related Potential Data Analysis (الطبعة الأولى)الفصل 9: Artifact Correction with ICA
- Learning to recognize ICA components of EEG and mobile EEGفيديوالفيديو كاملاً · 26:13
مكتوب لـ EEGLAB 2026.1 · 2026-10-28
للتوسّع
- EEGLAB Tutorial: https://eeglab.org/tutorials/06_RejectArtifacts/RunICA.html (Studying and flagging artifactual ICA components)
- EEGLAB plugin: https://eeglab.org/plugins/ICLabel/ (ICLabel)
- Luck, Applied Event-Related Potential Data Analysis (الطبعة الأولى): https://socialsci.libretexts.org/Bookshelves/Psychology/Biological_Psychology/Applied_Event-Related_Potential_Data_Analysis_(Luck) (الفصل 9: Artifact Correction with ICA)
- Learning to recognize ICA components of EEG and mobile EEG: https://www.youtube.com/watch?v=AXCxrDikpaM (الفيديو كاملاً)
تحتاج مساعدة؟
اسأل، أو شاركنا رأيك، أو بلّغ عن خطأ
- بلّغ عن خطأ علمي · يحتاج حساباً على GitHub. لا تملك حساباً؟ استخدم "شاركنا رأيك".