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

فلترة high-pass و low-pass

أساسي15 دقيقةقبل هذا الدرس: إعادة أخذ العيناتاطبع البطاقة
تبدأ من: 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;

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

إشارةsignalقيم تتغيّر مع الزمن، مثل الجهد المسجّل في قناة. الخام فيها أشياء لا تأتي من الدماغ. فيها انجراف بطيء يأتي من العرق وحركة قطبelectrodeالقطعة المعدنية التي توضع على الرأس لالتقاط الإشارة.، وفيها ضوضاءnoiseأي جزء من التسجيل لا يحمل المعلومة التي نقيسها. سريعة تأتي من العضلات والكهرباء. في مسارنا تحفظ الآن نسخة high-passفلتر يمرّر الترددات العالية ويُضعف البطيئة مثل الانجراف. عند 0.1 هرتز فقط، وتجرّب low-passفلتر يمرّر الترددات المنخفضة ويُضعف العالية مثل نشاط العضلات. تمريناً دون حفظ.

فلترfilterأداة تُضعف ترددات معيّنة في الإشارة وتُبقي غيرها. high-pass يمرّر الترددات العالية ويزيل البطيء. وفلتر low-pass يمرّر الترددات المنخفضة ويزيل السريع.

قبل وبعد

جرّب تفعيل كل فلتر وحده، وراقب ما يختفي من الإشارة.

المحاكاة تحتاج JavaScript. هذه صورة ثابتة للفكرة نفسها.

هذه محاكاة. إعداد المسار في هذا الدرس high-pass 0.1 Hz بلا low-pass

ماذا يعني ما رأيته؟

لاحظ في اللوحة أن الرقم الذي تكتبه في EEGLAB هو حافة النطاق المسموحpassband edgeآخر تردد يمرّ بلا إضعاف تقريباً، وهو الرقم الذي نكتبه في pop_eegfiltnew. (passband edge)، وأنه غير القطع الفعلي.

ولاحظ أن low-pass عند 30 هرتز أزال قمة الكهرباء أيضاً. لهذا يهمّك درس إزالة ضوضاء الكهرباءline noiseتداخل من شبكة الكهرباء عند 60 هرتز في السعودية أو 50 هرتز في بلدان أخرى. أكثر إذا احتفظت بالترددات العالية. وهذا يحدث في ICAطريقة تفصل الإشارة المسجّلة إلى مصادر مستقلة، بعضها دماغي وبعضها آرتفاكت. والتحليل الطيفي والزمني-الترددي. ترددfrequencyعدد الدورات في الثانية، ويُقاس بالهرتز. الكهرباء يعتمد على بلد التسجيل: 60 هرتز في السعودية وأمريكا، و50 هرتز في أوروبا وأغلب الدول العربية الأخرى. تحقّق من الطيفspectrumتوزيع قوة الإشارة على الترددات. قبل أن تفترض.

تبسيطات في المحاكاة: قناةchannelالإشارة المسجّلة من قطب واحد، وهي ما يعرضه EEGLAB. واحدة بإشارة مصطنعة لا EEG حقيقي، ومعدل عيّنات ثابت 250 هرتز. في بياناتك قد يختلف المعدل، فتختلف رتبة الفلتر.

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

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

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

بدون فلترة، قد يغطّي الانجراف البطيء على الإشارة الدماغية التي تبحث عنها، وتصبح كل خطوة بعدها أصعب.

تذكير سريع

التردد هو عدد مرات تكرار الموجة في الثانية، ويُقاس بالهرتز. والطيف رسم يبيّن قوة كل تردد في الإشارة. موجات ألفا مثلاً تظهر في الطيف كقمة قرب 10 هرتز.

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

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

ابدأ والداتاست eeglab_data.set مفتوحة كما في “نقطة البداية”. سنطبّق فلترين، كل واحد في خطوة مستقلة.

أولاً: فلتر high-pass

  1. افتح Tools ثم Filter the data ثم Basic FIR filter (new, default).
  2. في خانة Lower edge of the frequency pass band (Hz) اكتب 0.1.
  3. اترك خانة Higher edge of the frequency pass band (Hz) فارغة.
  4. اترك خانة FIR Filter order (Mandatory even. Default is automatic*) فارغة، فيحسبها EEGLAB تلقائياً.
  5. أبقِ Plot frequency response مفعّلاً، ثم اضغط OK.
  6. تظهر نافذة استجابة الفلتر. لاحظ أن الاستجابة ترتفع من الصفر إلى الواحد قرب 0.1 هرتز، ثم أغلقها.
  7. تظهر نافذة تسأل ماذا تفعل بالداتاست الجديدة. في Name it: اكتب اسماً واضحاً مثل D1 hp0.1.
  8. اترك Overwrite it in memory (set=yes; unset=create a new dataset) غير مفعّل، حتى تبقى النسخة الأصلية للمقارنة. اضغط OK.
  9. احفظ هذه الداتاست الآن من File ثم Save current dataset as باسم D1_hp0.1.set. هي النسخة الرئيسية للمسار، ونقطة بداية الدرس التالي.

ثانياً، تمرين: فلتر low-pass على الداتاست الجديدة

  1. افتح نفس القائمة: Tools ثم Filter the data ثم Basic FIR filter (new, default).
  2. اترك خانة Lower edge of the frequency pass band (Hz) فارغة هذه المرة.
  3. في خانة Higher edge of the frequency pass band (Hz) اكتب 30.
  4. اضغط OK، ثم سمِّ الداتاست D1 hp0.1 lp30. هذه داتاست التمرين، وتستخدمها في قسم التحقق فقط، ولا تحفظها.
عن رتبة الفلتر

خانة رتبة الفلتر فيها جملة تقول إن التحديد اليدوي أفضل. هذا صحيح لمن يفهم النطاق الانتقالي ويريد التحكم فيه. القيمة التلقائية بداية آمنة للمبتدئ، والمهم أن تستخدم نفس الإعداد لكل المشاركين.

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

نفس الخطوات في 8 أسطر MATLAB

نفس الخطوتين في سكربت. كل فلتر في سطر مستقل، والـ low-pass في متغيّر منفصل لأنه تمرين.

MATLAB
% High-pass: passband edge at 0.1 Hz (removes slow drift)
EEG = pop_eegfiltnew(EEG, 'locutoff', 0.1);
EEG.setname = 'D1 hp0.1';
EEG = eeg_checkset(EEG);
EEG = pop_saveset(EEG, 'filename', 'D1_hp0.1.set', 'filepath', pwd);   % path copy: the next lesson starts here

% Exercise only: low-pass with passband edge at 30 Hz (removes fast noise)
EEG_lp = pop_eegfiltnew(EEG, 'hicutoff', 30);   % exercise only: do not save
EEG_lp.setname = 'D1 hp0.1 lp30';

في السكربت لا تظهر نافذة استجابة الفلتر، لأن القيمة الافتراضية لـ 'plotfreqz' هي 0. إذا أردتها أضف 'plotfreqz', 1.

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

القيم المناسبة حسب هدف تحليلك
هدفكhigh-passlow-passلماذا هذا الرقم
تحليل ERP0.1 هرتز30 هرتزتوصية Luck لأغلب تحليلات ERP (L1، الفصل 4). يزيل الانجراف ولا يشوّه المكوّنات البطيئة مثل P3 و N400.
حساب ICA1 هرتز، وأحياناً 2غير مطلوب عادةًالتوثيق الرسمي: جودة ICA أعلى بوضوح مع high-pass فوق 1 هرتز (صفحتا Filtering و RunICA). يُطبّق على نسخة منفصلة فقط، كما سترى في درس تشغيل ICA.
تحليل طيفي0.5 إلى 1 هرتزلا تجعله أقل من أعلى تردد تدرسهقاعدة بداية عملية لا رقم من التوثيق الرسمي. الـ low-pass عند 30 مثلاً يحذف نطاق بيتا العالي وغاما.

الفلاتر الأخرى في القائمة: تعرض Tools ثم Filter the data أيضاً Windowed sinc FIR filter و Parks-McClellan (equiripple) FIR filter و Moving average FIR filter، من نفس إضافة firfilt، و Basic FIR filter (legacy)، وهو الفلتر القديم الباقي للسكربتات القديمة؛ لا تستخدمه في عمل جديد. كل واحد منها يطلب منك أن تختار رتبة الفلتر وتفاصيل أخرى بنفسك، فتحتاجها فقط عندما يطلب بحث أو حالة خاصة تصميم فلتر معيّن. في هذا المسار يكفي Basic FIR filter (new, default).

ملاحظة على أرقام Luck: Luck يستخدم فلاتر ERPLAB، والرقم عنده هو القطع عند نصف السعة. في EEGLAB الرقم حافة النطاق المسموح، فالقيمتان 0.1 و 30 تعطيان قطعاً فعلياً (-6 dB) عند 0.05 وحوالي 33.6 هرتز في D1. الفرق صغير ومقبول عملياً.

عن هذه الأرقام: اختر الحدود حسب هدفك. التوثيق الرسمي نفسه لا يعطي قيمة high-pass ثابتة للـ ERP، ويقول إن أثر الفلاتر على الـ ERP ما زال موضع نقاش. الأرقام في الجدول نقاط بداية، لا قوانين.

في المسار الأساسي لهذا الموقع هدفنا تحليل ERP. نطبّق الـ high-pass عند 0.1 هرتز الآن على النسخة الرئيسية، ونؤجّل الـ low-pass عند 30 هرتز إلى ما بعد تنظيف البيانات بـ ICA. السبب أن ICA و ICLabel يستفيدان من الترددات العالية، فالـ low-pass يأتي في آخر المعالجة المستمرة. لذلك فلتر الـ 30 هرتز في هذا الدرس تمرين لترى أثره.

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

3 فحوص سريعة
  1. اقرأ ما طبعه EEGLAB في نافذة الأوامر. مع D1 (128 هرتز) سترى للـ high-pass سطراً مثل performing 4225 point highpass filtering، وقطعاً فعلياً 0.05 هرتز. وللـ low-pass فلتراً بطول 59 نقطة وقطعاً فعلياً حوالي 33.64 هرتز.
  2. قارن الطيف. افتح Plot ثم Channel spectra and maps على الداتاست الأصلية ثم على D1 hp0.1 lp30. للتنقّل بين الداتاست استخدم قائمة Datasets. غيّر خانة Plotting frequency range [lo_Hz hi_Hz]: من 2 25 إلى 1 64، لأن النطاق الافتراضي لا يُظهر ما فوق 25 هرتز. واترك باقي الخانات كما هي.
    • يجب أن تنخفض القوة فوق 34 هرتز تقريباً.
    • في D1 ستختفي قمة الكهرباء الحادة عند 60 هرتز.
    • يجب أن تبقى قمة ألفا قرب 10 هرتز كما هي.
    • تموّجات صغيرة في المنطقة المحذوفة طبيعية، ويذكرها التوثيق الرسمي.
    • أثر الـ high-pass عند 0.1 هرتز لا يظهر في هذا الطيف، لأن دقته حوالي 1 هرتز. تتحقق منه في الخطوة التالية.
  3. انظر للإشارة نفسها. افتح Plot ثم Channel data (scroll) على الأصلية ثم على D1 hp0.1. يجب أن تتوسّط كل القنوات حول خط ثابت بدل أن تصعد وتنزل ببطء.

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

5 أخطاء، وكيف تتجنّبها
  • اعتبار الرقم قطعاً فعلياً. الرقم الذي تكتبه حافة النطاق المسموح. في high-pass القطع الفعلي أقل منه: 1 هرتز يعني قطعاً عند 0.5 هرتز تقريباً. وفي low-pass أعلى منه: 30 هرتز يعني حوالي 33.6 هرتز في D1.
  • high-pass عالٍ في بيانات ERP. فلتر 1 أو 2 هرتز يقلّص سعة P3 و N400 ويصنع انحرافاً معاكساً قبلهما وبعدهما. جرّبه بنفسك:

المحاكاة تحتاج JavaScript. هذه صورة ثابتة للفكرة نفسها.

هذه محاكاة. إعداد المسار في هذا الدرس high-pass 0.1 Hz بلا low-pass

  • الفلترة بعد التقطيع. فلتر البيانات المستمرة قبل استخراج الـ epochs. التقطيع أولاً يضاعف أثر الأطراف في كل مقطع قصير.
  • تطبيق الفلترين في خطوة واحدة. إذا كتبت الحافتين معاً في نفس النافذة، يشترك الفلتران في نفس عرض النطاق الانتقالي، فيصبح الـ low-pass أحدّ من اللازم. التوثيق الرسمي يوصي بتطبيق كل فلتر وحده.
  • إعدادات مختلفة بين المشاركين. استخدم نفس الحدود ونفس الطريقة لكل المشاركين في الدراسة، وإلا صار الفرق بينهم من الفلتر لا من الدماغ.

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

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

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

Data were high-pass filtered using a zero-phase Hamming-windowed sinc FIR filter (passband edge 0.1 Hz, cutoff frequency [0.05] Hz at −6 dB, transition bandwidth [0.1] Hz, filter length [4225] points; pop_eegfiltnew, firfilt plugin 2.8, EEGLAB 2026.1; Widmann et al., 2015).

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

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

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

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

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