المحطة 3 · الدرس 7
إعادة المرجع (re-referencing)
eeglab_data.set (D1) · ما طُبّق عليه قبل هذا الدرس: فلترة high-pass و low-pass، إزالة ضوضاء الكهرباء (50 أو 60 هرتز)، القنوات السيئة، الاستيفاء (interpolation)تنزيل البيانات (يفتح في نافذة جديدة)سكربت الوصول لهذه الحالة
[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
EEG.filename = ''; EEG.filepath = ''; EEG.datfile = ''; EEG.saved = 'no';
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, 0, 'setname', 'D1 interp', 'gui', 'off');
eeglab redraw;زر الرجوع في متصفحك يعيدك لنفس المكان الذي كنت فيه، فافتح ما تشاء بلا قلق.
الفكرة باختصار
الجهد الكهربائي لا يُقاس في نقطة واحدة. كل قناةchannelالإشارة المسجّلة من قطب واحد، وهي ما يعرضه EEGLAB. تقيس الفرق بين قطبها قطبelectrodeالقطعة المعدنية التي توضع على الرأس لالتقاط الإشارة. آخر اسمه المرجعreferenceالنقطة التي يُقاس جهد كل قناة بالنسبة لها. (reference). لذلك يحدد المرجع شكل كل القنوات.
إذا غيّرت المرجع، تتغيّر كل القنوات معاً. القناة القريبة من المرجع القديم تبدو صغيرة، وبعد تغييره قد تكبر كثيراً. لا توجد قناة “حقيقية” بلا مرجع.
إعادة المرجعre-referencingتغيير المرجع بعد التسجيل بحساب الجهد بالنسبة لمرجع جديد. (re-referencing) تحسب البيانات كأنها سُجّلت بمرجع آخر. أشهر خيارين:
قبل وبعد
المحاكاة تحتاج JavaScript. هذه صورة ثابتة للفكرة نفسها.
هذه محاكاة. إعداد المسار في هذا الدرس المرجع المتوسط
ماذا يعني ما رأيته؟


اسحب الخط لتقارن.
ماذا يعني ما رأيته؟
المحاكاة تحتاج JavaScript. هذه صورة ثابتة للفكرة نفسها.
أسئلتك بعد هذا، كل جواب في قسمه:
لماذا أحتاج هذه الخطوة؟
السبب بالتفصيل، والمصطلحات التي تحتاجها
- المرجع المتوسطaverage referenceمرجع يساوي متوسط كل قنوات الرأس. (average reference): متوسط كل قنوات الرأس في كل لحظة. التوثيق الرسمي ينصح به لتحليل المصادر، وهو مرجع مسارنا قبل ICAطريقة تفصل الإشارة المسجّلة إلى مصادر مستقلة، بعضها دماغي وبعضها آرتفاكت..
- متوسط الماستويدlinked mastoidsمرجع يساوي متوسط قطبي العظمتين خلف الأذنين. (linked mastoids): متوسط قطبين خلف الأذنين. شائع في دراسات ERPمتوسط استجابة الدماغ لحدث معيّن عبر محاولات كثيرة.، مثل كتاب Luck.
عن D1
سُجّلت بمرجع عند الماستويد، كما يقول التوثيق الرسمي، وقناة المرجع ليست في البيانات. لذلك لا تضيفها، ولا تستطيع تجربة متوسط الماستويد على D1. جرّبه في المحاكاة أدناه.
عن D1
سُجّلت بمرجع عند الماستويد، كما يقول التوثيق الرسمي، وقناة المرجع ليست في البيانات. لذلك لا تضيفها، ولا تستطيع تجربة متوسط الماستويد على D1. جرّبه في المحاكاة أدناه.
لماذا أحتاج هذه الخطوة؟
- المرجع المتوسط (average reference): متوسط كل قنوات الرأس في كل لحظة. التوثيق الرسمي ينصح به لتحليل المصادر، وهو مرجع مسارنا قبل ICA.
- متوسط الماستويد (linked mastoids): متوسط قطبين خلف الأذنين. شائع في دراسات ERP، مثل كتاب Luck.
عن D1
سُجّلت بمرجع عند الماستويد، كما يقول التوثيق الرسمي، وقناة المرجع ليست في البيانات. لذلك لا تضيفها، ولا تستطيع تجربة متوسط الماستويد على D1. جرّبه في المحاكاة أدناه.
عن D1
سُجّلت بمرجع عند الماستويد، كما يقول التوثيق الرسمي، وقناة المرجع ليست في البيانات. لذلك لا تضيفها، ولا تستطيع تجربة متوسط الماستويد على D1. جرّبه في المحاكاة أدناه.
كيف أطبّقها في EEGLAB؟
11 خطوة من القوائم
ابدأ والنسخة الرئيسية بعد الاستيفاءinterpolationتقدير إشارة قناة محذوفة من القنوات المحيطة بها. مفتوحة كما في “نقطة البداية”. في D1 هي D1 badch من درس القنوات السيئة، لأنه لم يكن فيها شيء لتستوفيه.
- تأكد أولاً أن عدد القنوات كامل: Channels per frame يساوي 32 في D1.
- افتح Tools ثم Re-reference the data. تظهر نافذة بعنوان pop_reref - average reference or re-reference data.
- السطر الأول Current data reference state is: يعرض المرجع الحالي. في D1 قد يظهر
unknown، لأن الملف لا يحفظ اسم المرجع لكل قناة. - أبقِ Compute average reference مفعّلاً، فهو الخيار الافتراضي.
- اترك Huber average ref. with threshold غير مفعّل. التوثيق الرسمي يقول إنه لا يُستخدم قبل ICA.
- بجانب Exclude channel indices (EMG, EOG) اضغط … واختر
EOG1وEOG2. تمتلئ خانةfield (in a dialog)مكان في نافذة نكتب فيه قيمة أو نختارها. باسميهما. - اترك Add old ref. channel back to the data فارغاً، لأن قناة الماستويد ليست في D1.
- اضغط OK. تطبع نافذة الأوامر
Re-referencing data. - سمِّ داتاستdatasetملف بيانات EEG واحد محمّل في EEGLAB مع معلوماته. الجديدة
D1 main، واترك Overwrite it in memory (set=yes; unset=create a new dataset) غير مفعّل. - احفظها من File ثم Save current dataset as. هذه “النسخة الرئيسية” التي تبدأ منها دروس ICA.
- قارن الداتاستين من Plot ثم Channel data (scroll): كل قنوات الرأس تغيّرت، و
EOG1وEOG2بقيتا كما هما.
كيف أطبّقها في EEGLAB؟
ابدأ والنسخة الرئيسية بعد الاستيفاء مفتوحة كما في “نقطة البداية”. في D1 هي D1 badch من درس القنوات السيئة، لأنه لم يكن فيها شيء لتستوفيه.
- تأكد أولاً أن عدد القنوات كامل: Channels per frame يساوي 32 في D1.
- افتح Tools ثم Re-reference the data. تظهر نافذة بعنوان pop_reref - average reference or re-reference data.
- السطر الأول Current data reference state is: يعرض المرجع الحالي. في D1 قد يظهر
unknown، لأن الملف لا يحفظ اسم المرجع لكل قناة. - أبقِ Compute average reference مفعّلاً، فهو الخيار الافتراضي.
- اترك Huber average ref. with threshold غير مفعّل. التوثيق الرسمي يقول إنه لا يُستخدم قبل ICA.
- بجانب Exclude channel indices (EMG, EOG) اضغط … واختر
EOG1وEOG2. تمتلئ الخانة باسميهما. - اترك Add old ref. channel back to the data فارغاً، لأن قناة الماستويد ليست في D1.
- اضغط OK. تطبع نافذة الأوامر
Re-referencing data. - سمِّ الداتاست الجديدة
D1 main، واترك Overwrite it in memory (set=yes; unset=create a new dataset) غير مفعّل. - احفظها من File ثم Save current dataset as. هذه “النسخة الرئيسية” التي تبدأ منها دروس ICA.
- قارن الداتاستين من Plot ثم Channel data (scroll): كل قنوات الرأس تغيّرت، و
EOG1وEOG2بقيتا كما هما.
كيف أكتبها بالكود؟
نفس الخطوات في 18 أسطر MATLAB
% Keep a copy to compare before and after
EEG_before = EEG;
% Average reference, EOG channels excluded
eogIdx = find(ismember({EEG.chanlocs.labels}, {'EOG1', 'EOG2'}));
EEG = pop_reref(EEG, [], 'exclude', eogIdx);
EEG.setname = 'D1 main';
% Check: scalp channels now sum to (almost) zero at every time point
scalpIdx = setdiff(1:EEG.nbchan, eogIdx);
fprintf('Reference: %s\n', EEG.ref);
fprintf('Largest sum over scalp channels: %g uV\n', max(abs(sum(EEG.data(scalpIdx, :), 1))));
% Channel Oz over 5 seconds, before and after
oz = find(strcmp({EEG.chanlocs.labels}, 'Oz'));
t = 1:5*EEG.srate;
figure;
plot(t / EEG.srate, EEG_before.data(oz, t), t / EEG.srate, EEG.data(oz, t));
legend('Original reference (mastoid)', 'Average reference');
xlabel('Time (s)'); ylabel('Amplitude (uV)');
EEG = pop_saveset(EEG, 'filename', 'D1_main.set', 'filepath', pwd);هذا نفس سطر pop_reref في سكربتscriptملف أوامر MATLAB ينفّذ خطوات المعالجة بالترتيب. نقطة البداية لدروس ICA. الرقم الذي يطبعه الفحص صغير جداً وليس صفراً تماماً، لأن البيانات مخزّنة بدقة single.
كيف أكتبها بالكود؟
% Keep a copy to compare before and after
EEG_before = EEG;
% Average reference, EOG channels excluded
eogIdx = find(ismember({EEG.chanlocs.labels}, {'EOG1', 'EOG2'}));
EEG = pop_reref(EEG, [], 'exclude', eogIdx);
EEG.setname = 'D1 main';
% Check: scalp channels now sum to (almost) zero at every time point
scalpIdx = setdiff(1:EEG.nbchan, eogIdx);
fprintf('Reference: %s\n', EEG.ref);
fprintf('Largest sum over scalp channels: %g uV\n', max(abs(sum(EEG.data(scalpIdx, :), 1))));
% Channel Oz over 5 seconds, before and after
oz = find(strcmp({EEG.chanlocs.labels}, 'Oz'));
t = 1:5*EEG.srate;
figure;
plot(t / EEG.srate, EEG_before.data(oz, t), t / EEG.srate, EEG.data(oz, t));
legend('Original reference (mastoid)', 'Average reference');
xlabel('Time (s)'); ylabel('Amplitude (uV)');
EEG = pop_saveset(EEG, 'filename', 'D1_main.set', 'filepath', pwd);هذا نفس سطر pop_reref في سكربتات نقطة البداية لدروس ICA. الرقم الذي يطبعه الفحص صغير جداً وليس صفراً تماماً، لأن البيانات مخزّنة بدقة single.
أي قيمة أختار؟
القيم المناسبة حسب هدف تحليلك
| الإعداد | القيمة | لماذا |
|---|---|---|
| المرجع لمسار ICA وتحليل المصادر | المرجع المتوسط | التوثيق الرسمي يوصي به لتحليل المصادر، و ICA في مسارنا يعمل عليه. |
| المرجع لمقارنة نتائجك بدراسات ERP سابقة | نفس مرجع تلك الدراسات، غالباً متوسط الماستويد | المرجع يغيّر شكل الـ ERP وسعته، فالمقارنة تحتاج نفس المرجع. |
| القنوات المستبعدة | قنوات EOG و ECG و EMG | ليست قنوات رأس، فلا تدخل في متوسط الرأس. |
| إضافة قناة المرجع القديم | فقط إذا كانت موقعها معرّفاً في محرر القنوات | في D1 لا تُضاف، حسب التوثيق الرسمي. |
| Huber | لا قبل ICA | التوثيق الرسمي: يكسر شرط الخطية الذي يحتاجه ICA، ومكانه بعد ICA. |
أي قيمة أختار؟
| الإعداد | القيمة | لماذا |
|---|---|---|
| المرجع لمسار ICA وتحليل المصادر | المرجع المتوسط | التوثيق الرسمي يوصي به لتحليل المصادر، و ICA في مسارنا يعمل عليه. |
| المرجع لمقارنة نتائجك بدراسات ERP سابقة | نفس مرجع تلك الدراسات، غالباً متوسط الماستويد | المرجع يغيّر شكل الـ ERP وسعته، فالمقارنة تحتاج نفس المرجع. |
| القنوات المستبعدة | قنوات EOG و ECG و EMG | ليست قنوات رأس، فلا تدخل في متوسط الرأس. |
| إضافة قناة المرجع القديم | فقط إذا كانت موقعها معرّفاً في محرر القنوات | في D1 لا تُضاف، حسب التوثيق الرسمي. |
| Huber | لا قبل ICA | التوثيق الرسمي: يكسر شرط الخطية الذي يحتاجه ICA، ومكانه بعد ICA. |
كيف أتأكد أنها نجحت؟
4 فحوص سريعة
- النافذة الرئيسية: السطر Reference يعرض
average، و Channels per frame ما زال 32. - الفحص في السكربت:
EEG.refيساويaverage، ومجموع قنوات الرأس رقم صغير جداً قريب من الصفر. - قنوات العين لم تتغيّر: في عرض scroll تبدو
EOG1وEOG2كما كانتا قبل إعادة المرجع. - قنوات الرأس تغيّرت:
Ozمثلاً تبدو مختلفة بوضوح عن شكلها بمرجع الماستويد.
كيف أتأكد أنها نجحت؟
- النافذة الرئيسية: السطر Reference يعرض
average، و Channels per frame ما زال 32. - الفحص في السكربت:
EEG.refيساويaverage، ومجموع قنوات الرأس رقم صغير جداً قريب من الصفر. - قنوات العين لم تتغيّر: في عرض scroll تبدو
EOG1وEOG2كما كانتا قبل إعادة المرجع. - قنوات الرأس تغيّرت:
Ozمثلاً تبدو مختلفة بوضوح عن شكلها بمرجع الماستويد.
ما الأخطاء التي يقع فيها كثيرون؟
5 أخطاء، وكيف تتجنّبها
- إدخال قنوات EOG أو ECG في المرجع المتوسط. هذه قنوات غير دماغية، وإشارتها الكبيرة تدخل في كل قناة عبر المتوسط. استبعدها في خانة Exclude channel indices (EMG, EOG).
- نسيان أن المرجع المتوسط ينقص رتبة البيانات بواحد. بعد المرجع المتوسط تصبح قنوات الرأس مجموعها صفر، فأي قناة منها تساوي سالب مجموع الباقي. لذلك في D1 تصبح رتبة البيانات 31 لا 32، و ICA يعطي 31 مكوّناً.
- إعادة المرجع قبل الاستيفاء. متوسط قنوات ناقصة يميل نحو الجهة التي فيها قنوات أكثر. استوفِ أولاً.
- تغيير المرجع بعد ICA. الأوزان مرتبطة بالمرجع الذي حُسب عليه ICA. أعد المرجع قبل ICA واتركه بعده. EEGLAB يحذّرك إذا غيّرته.
- إضافة قناة مرجع غير موجودة. في D1 قناة الماستويد ليست في البيانات. لا تملأ Add old ref. channel back to the data إلا إذا عرّفتها في محرر القنوات.
ما الأخطاء التي يقع فيها كثيرون؟
- إدخال قنوات EOG أو ECG في المرجع المتوسط. هذه قنوات غير دماغية، وإشارتها الكبيرة تدخل في كل قناة عبر المتوسط. استبعدها في خانة Exclude channel indices (EMG, EOG).
- نسيان أن المرجع المتوسط ينقص رتبة البيانات بواحد. بعد المرجع المتوسط تصبح قنوات الرأس مجموعها صفر، فأي قناة منها تساوي سالب مجموع الباقي. لذلك في D1 تصبح رتبة البيانات 31 لا 32، و ICA يعطي 31 مكوّناً.
- إعادة المرجع قبل الاستيفاء. متوسط قنوات ناقصة يميل نحو الجهة التي فيها قنوات أكثر. استوفِ أولاً.
- تغيير المرجع بعد ICA. الأوزان مرتبطة بالمرجع الذي حُسب عليه ICA. أعد المرجع قبل ICA واتركه بعده. EEGLAB يحذّرك إذا غيّرته.
- إضافة قناة مرجع غير موجودة. في D1 قناة الماستويد ليست في البيانات. لا تملأ Add old ref. channel back to the data إلا إذا عرّفتها في محرر القنوات.
متصفحك لا يسمح بحفظ التقدّم. كل الدروس متاحة، لكن علامات الإكمال لن تُحفظ.
تم. حُفظ تقدّمك في هذا المتصفح.تراجعكيف أكتبها في ورقتي؟
قالب Methods: عدّل البيانات والإعدادات والإصدارات لتطابق ما نفّذته
قالب: عدّل البيانات والإعدادات والإصدارات لتطابق ما نفّذته.
Data were re-referenced to the average of all scalp channels (pop_reref, EEGLAB 2026.1); EOG channels were excluded from the reference.كيف أكتبها في ورقتي؟
قالب: عدّل البيانات والإعدادات والإصدارات لتطابق ما نفّذته.
Data were re-referenced to the average of all scalp channels (pop_reref, EEGLAB 2026.1); EOG channels were excluded from the reference.أين أقرأ أكثر؟
4 مراجع: التوثيق الرسمي أولاً
- EEGLAB Tutorialتوثيق5. Preprocess data > b. Re-referencing
- EEGLAB TutorialتوثيقConcepts guide: Re-referencing
- Luck, Applied Event-Related Potential Data Analysis (الطبعة الأولى)الفصل 5: Referencing and Other Channel Operations
- What is the best EEG reference?فيديوالفيديو كاملاً · 18:21
مكتوب لـ EEGLAB 2026.1 · 2026-10-27
للتوسّع
- EEGLAB Tutorial: https://eeglab.org/tutorials/05_Preprocess/rereferencing.html (5. Preprocess data > b. Re-referencing)
- EEGLAB Tutorial: https://eeglab.org/tutorials/ConceptsGuide/rereferencing_background.html (Concepts guide: Re-referencing)
- Luck, Applied Event-Related Potential Data Analysis (الطبعة الأولى): https://socialsci.libretexts.org/Bookshelves/Psychology/Biological_Psychology/Applied_Event-Related_Potential_Data_Analysis_(Luck) (الفصل 5: Referencing and Other Channel Operations)
- What is the best EEG reference?: https://www.youtube.com/watch?v=ioIETUX4G4k (الفيديو كاملاً)
تحتاج مساعدة؟
اسأل، أو شاركنا رأيك، أو بلّغ عن خطأ
- بلّغ عن خطأ علمي · يحتاج حساباً على GitHub. لا تملك حساباً؟ استخدم "شاركنا رأيك".