المحطة 3 · الدرس 1

إعادة أخذ العينات

أساسي10 دقائققبل هذا الدرس: الأحداث (events)، مفاهيم الإشارات والتردداتاطبع البطاقة
تبدأ من: eeglab_data.set (D1) · لا شيء: البيانات كما نزّلتها.تنزيل البيانات (يفتح في نافذة جديدة)
سكربت الوصول لهذه الحالة
MATLAB
[ALLEEG, EEG, CURRENTSET, ALLCOM] = eeglab;
eeglabRoot = fileparts(which('eeglab'));
EEG = pop_loadset('eeglab_data.set', fullfile(eeglabRoot, 'sample_data'));
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, 0, 'setname', 'Continuous EEG Data', 'gui', 'off');
eeglab redraw;

الفكرة باختصار

معدل العيّناتsampling rateعدد العيّنات المسجّلة في الثانية لكل قناة. (sampling rate) هو عدد القياسات في الثانية لكل قناةchannelالإشارة المسجّلة من قطب واحد، وهي ما يعرضه EEGLAB.. أجهزة EEGتسجيل النشاط الكهربائي للدماغ من أقطاب على فروة الرأس. تسجّل غالباً بـ 500 أو 1000 هرتز، أو أكثر. أما D1 فمعدلها 128 هرتز أصلاً، فالمسار لا يخفّضه، والنسخة التي تصنعها هنا للمقارنة فقط.

هذا المعدل العالي يكبّر حجم الملف، ويبطّئ كل خطوة بعده، وخاصة ICAطريقة تفصل الإشارة المسجّلة إلى مصادر مستقلة، بعضها دماغي وبعضها آرتفاكت.. وأغلب تحليلات ERPمتوسط استجابة الدماغ لحدث معيّن عبر محاولات كثيرة. لا تحتاج ترددات فوق 40 هرتز تقريباً.

قبل وبعد

ثانيتان من القناة Cz بمعدلين فوق بعضهما: 128 هرتز بنقاط صغيرة، و 64 هرتز بدوائر أكبر. الشكل العام متشابه، وخط 64 هرتز أنعم قليلاً.
البيانات: عيّنة EEGLAB الرسمية (eeglab_data.set)

أسئلتك بعد هذا، كل جواب في قسمه:

لماذا أحتاج هذه الخطوة؟

السبب بالتفصيل، والمصطلحات التي تحتاجها

لذلك تخفّض معدل عيّنةsampleقيمة واحدة للإشارة في لحظة زمنية واحدة. (تخفيض معدل العيّناتdownsamplingتقليل معدل العيّنات لتصغير البيانات وتسريع المعالجة.) مرة واحدة في بداية المعالجة، فتصبح كل الخطوات التالية أسرع.

لكن للتخفيض حدّ. أعلى ترددfrequencyعدد الدورات في الثانية، ويُقاس بالهرتز. تستطيع البيانات تمثيله هو نصف معدل العيّنات، واسمه تردد Nyquist (تردد NyquistNyquist frequencyنصف معدل العيّنات، وهو أعلى تردد يمكن تمثيله بلا تشويه.). أي تردد فوقه لا يختفي، بل يظهر بالخطأ كتردد أقل. هذا اسمه التداخل الطيفيaliasingظهور تردد عالٍ كأنه تردد منخفض لأن معدل العيّنات أقل من اللازم. (aliasing).

لهذا يطبّق EEGLAB فلترfilterأداة تُضعف ترددات معيّنة في الإشارة وتُبقي غيرها. low-passفلتر يمرّر الترددات المنخفضة ويُضعف العالية مثل نشاط العضلات. لمنع التداخل الطيفي قبل التخفيض، تلقائياً. هذه العملية كلها اسمها إعادة أخذ العيّنات (resampling).

كيف أطبّقها في EEGLAB؟

6 خطوة من القوائم

ابدأ و D1 مفتوحة كما في “نقطة البداية”. في نافذة EEGLAB الرئيسية لاحظ القيم الحالية: Sampling rate (Hz) تساوي 128، و Frames per epoch تساوي 30504، و Events تساوي 154.

  1. افتح Tools ثم Change sampling rate.
  2. تظهر نافذة بعنوان Resample current dataset — pop_resample(). في خانة New sampling rate اكتب 64، ثم اضغط OK.
  3. تطبع نافذة الأوامر أرقام القنوات واحدة بعد الأخرى أثناء المعالجة، ثم resampling finished.
  4. تظهر نافذة تسمية الداتاست الجديدة، وتقترح Continuous EEG Data resampled. غيّره إلى D1 64Hz، واترك Overwrite it in memory (set=yes; unset=create a new dataset) غير مفعّل. صارت عندك داتاست ثانية، والأولى لم تتغيّر.
  5. قارن الداتاستين بالعرض المتتابع: افتح Plot ثم Channel data (scroll) على كل واحدة. الشكل العام متشابه، والنسخة الجديدة أنعم قليلاً.
  6. ارجع إلى الداتاست الأولى من قائمة Datasets. لا تحفظ D1 64Hz، فالمسار لا يستخدمها.

كيف أكتبها بالكود؟

نفس الخطوات في 16 أسطر MATLAB
MATLAB
% Exercise only: a temporary copy at half the sampling rate
EEG_64 = pop_resample(EEG, 64);
EEG_64.setname = 'D1 64Hz';

% Compare rate, length and events
fprintf('Original : %g Hz, %d samples, %d events\n', EEG.srate, EEG.pnts, length(EEG.event));
fprintf('Resampled: %g Hz, %d samples, %d events\n', EEG_64.srate, EEG_64.pnts, length(EEG_64.event));

% The same 2 seconds of channel Cz at both rates
cz = find(strcmp({EEG.chanlocs.labels}, 'Cz'));
t1 = (0:2*EEG.srate-1) / EEG.srate;
t2 = (0:2*EEG_64.srate-1) / EEG_64.srate;
figure; hold on;
plot(t1, EEG.data(cz, 1:numel(t1)), '.-');
plot(t2, EEG_64.data(cz, 1:numel(t2)), 'o-');
legend('128 Hz', '64 Hz');
xlabel('Time (s)'); ylabel('Amplitude (uV)');

% The main path continues on EEG at 128 Hz; EEG_64 is not saved

مع بياناتك الخام بـ 1000 هرتز مثلاً، يكون السطر الوحيد الذي تحتاجه في المسار هو EEG = pop_resample(EEG, 250);.

أي قيمة أختار؟

القيم المناسبة حسب هدف تحليلك
الإعدادالقيمةلماذا
D1لا تغيّر المعدل (128 هرتز)التوثيق الرسمي: معدل بيانات التوتوريال مقبول أصلاً.
بيانات خام بـ 500 أو 1000 هرتز لتحليل ERP250 هرتز، أو 256تحفظ الترددات حتى 100 هرتز تقريباً، وهذا أعلى بكثير من حاجة ERP.
القاعدة العامةالمعدل الجديد ≥ 2.5 × أعلى تردد يهمّكالنظرية تطلب أكثر من الضعف. وفلتر منع التداخل في EEGLAB يحفظ الترددات كاملة حتى 80% من تردد Nyquist الجديد فقط، فتحتاج هامشاً.
مكان الخطوةعلى البيانات المستمرة، قبل الفلترة والتقطيعتسرّع كل ما بعدها. و EEGLAB نفسه يحذّر من إعادة أخذ العينات لبيانات مقطّعة.

كيف أتأكد أنها نجحت؟

4 فحوص سريعة
  1. في نافذة EEGLAB الرئيسية، والداتاست D1 64Hz هي الحالية: Sampling rate (Hz) تساوي 64، و Frames per epoch تساوي 15252، أي نصف العدد الأصلي.
  2. عدد الأحداث لم يتغيّر: Events ما زالت 154.
  3. طول التسجيل لم يتغيّر: Epoch end (sec) تساوي 238.297 في النسخة الجديدة، و238.305 في الأصلية. الفرق أقل من عيّنة واحدة.
  4. الداتاست الأصلية سليمة: ارجع للداتاست الأولى وتأكد أن معدلها ما زال 128.

الجملة التالية لبياناتك الخام بعد تخفيضها إلى 250 هرتز. في D1 لا تكتبها، لأن المسار لا يغيّر المعدل.

ما الأخطاء التي يقع فيها كثيرون؟

4 أخطاء، وكيف تتجنّبها
  • التخفيض تحت حاجة التحليل. إذا كنت ستدرس ترددات غاما حول 40 إلى 80 هرتز، فمعدل 128 هرتز لا يكفي. احسب أعلى تردد يهمّك أولاً، ثم اختر المعدل.
  • إعادة أخذ العينات بعد التقطيع. افعلها على البيانات المستمرة. مع البيانات المقطّعة يطبع EEGLAB تحذيراً، لأن فلتر منع التداخل يعمل على حواف كل epoch منفصلة.
  • تعديل توقيت الأحداث يدوياً. EEGLAB يعيد حساب توقيت كل الأحداث تلقائياً بالمعدل الجديد. لا تقسم الأرقام بنفسك.
  • التخفيض بلا سبب. إذا كان المعدل مقبولاً أصلاً، مثل D1، فلا فائدة من تخفيضه. كل خطوة غير ضرورية تغيّر البيانات قليلاً.

كيف أكتبها في ورقتي؟

قالب Methods: عدّل البيانات والإعدادات والإصدارات لتطابق ما نفّذته

قالب: عدّل البيانات والإعدادات والإصدارات لتطابق ما نفّذته.

Data were downsampled to 250 Hz using pop_resample (EEGLAB 2026.1), which applies an anti-aliasing low-pass FIR filter (Kaiser window) before resampling.

أين أقرأ أكثر؟

3 مراجع: التوثيق الرسمي أولاً

مكتوب لـ EEGLAB 2026.1 · 2026-10-29

تحتاج مساعدة؟

اسأل، أو شاركنا رأيك، أو بلّغ عن خطأ