المحطة 0 · الدرس 4
مفاهيم الإشارات والترددات
زر الرجوع في متصفحك يعيدك لنفس المكان الذي كنت فيه، فافتح ما تشاء بلا قلق.
الفكرة باختصار
إشارةsignalقيم تتغيّر مع الزمن، مثل الجهد المسجّل في قناة. EEGتسجيل النشاط الكهربائي للدماغ من أقطاب على فروة الرأس. خليط من موجات بسرعات مختلفة. بعضها بطيء، وبعضها سريع. وكل خطوة معالجة تقريباً تتعامل مع هذه السرعات.
فلترةfilteringتطبيق فلتر على البيانات. تزيل الترددات التي لا تريدها. إعادة أخذ العيّناتresamplingتغيير معدل العيّنات للبيانات. (resampling) تغيّر أعلى ترددfrequencyعدد الدورات في الثانية، ويُقاس بالهرتز. يمكن تمثيله. الطيفspectrumتوزيع قوة الإشارة على الترددات. الترددي يقيس قوة كل تردد في الإشارة.
ستحتاج في هذه الدروس ثلاث أفكار: التردد، ومعدل العيّناتsampling rateعدد العيّنات المسجّلة في الثانية لكل قناة. (sampling rate)، والطيف. هذا الدرس يشرحها بمثال واحد.
قبل وبعد
المحاكاة تحتاج JavaScript. هذه صورة ثابتة للفكرة نفسها.
ماذا يعني ما رأيته؟
المحاكاة تبدأ والفلتران غير مفعّلين، فتعرض الإشارة كما هي. بدّل العرض من الزمن إلى الطيف وانظر إلى ما تغيّر.
في عرض الزمن ترى خطاً متعرّجاً واحداً يصعب قراءته. وفي عرض الطيف ترى نفس الإشارة مفكّكة إلى تردداتها: قمة عند 10 هرتز (ألفا)، وقمة أصغر عند 6 هرتز (ثيتا)، وقمة رفيعة عند 60 هرتز (الكهرباء).
تبسيطات في المحاكاة: قناةchannelالإشارة المسجّلة من قطب واحد، وهي ما يعرضه EEGLAB. واحدة بإشارة مصطنعة لا EEG حقيقي، ومعدل عيّنةsampleقيمة واحدة للإشارة في لحظة زمنية واحدة. ثابت 250 هرتز. لا تحتاج الفلترين في هذا الدرس، وستعود إليهما في درس الفلترة.
ماذا يعني ما رأيته؟
المحاكاة تبدأ والفلتران غير مفعّلين، فتعرض الإشارة كما هي. بدّل العرض من الزمن إلى الطيف وانظر إلى ما تغيّر.
في عرض الزمن ترى خطاً متعرّجاً واحداً يصعب قراءته. وفي عرض الطيف ترى نفس الإشارة مفكّكة إلى تردداتها: قمة عند 10 هرتز (ألفا)، وقمة أصغر عند 6 هرتز (ثيتا)، وقمة رفيعة عند 60 هرتز (الكهرباء).
تبسيطات في المحاكاة: قناة واحدة بإشارة مصطنعة لا EEG حقيقي، ومعدل عيّنات ثابت 250 هرتز. لا تحتاج الفلترين في هذا الدرس، وستعود إليهما في درس الفلترة.
أسئلتك بعد هذا، كل جواب في قسمه:
كيف أطبّقها في EEGLAB؟
5 خطوة من القوائم
لا خطوات في EEGLAB لهذا الدرس. استخدم المحاكاة في الأعلى:
- اختر عرض الطيف.
- ابحث عن أعلى قمة بين 8 و 12 هرتز. هذه قمة ألفا.
- ابحث عن القمة الرفيعة جداً عند 60 هرتز. هذه ضوضاء الكهرباءline noiseتداخل من شبكة الكهرباء عند 60 هرتز في السعودية أو 50 هرتز في بلدان أخرى.، لا نشاط دماغي.
- بدّل تردد الكهرباء إلى 50 هرتز. لاحظ أن القمة انتقلت، وأن قمة ألفا لم تتحرّك.
- ارجع إلى عرض الزمن، واضغط إشارة جديدة عدة مرات. الشكل الزمني يتغيّر، والقمم في الطيف تبقى في أماكنها.
ستفتح الطيف في EEGLAB نفسه لاحقاً من Plot ثم Channel spectra and maps، في درسَي الفلترة والطيف الترددي.
كيف أطبّقها في EEGLAB؟
لا خطوات في EEGLAB لهذا الدرس. استخدم المحاكاة في الأعلى:
- اختر عرض الطيف.
- ابحث عن أعلى قمة بين 8 و 12 هرتز. هذه قمة ألفا.
- ابحث عن القمة الرفيعة جداً عند 60 هرتز. هذه ضوضاء الكهرباء، لا نشاط دماغي.
- بدّل تردد الكهرباء إلى 50 هرتز. لاحظ أن القمة انتقلت، وأن قمة ألفا لم تتحرّك.
- ارجع إلى عرض الزمن، واضغط إشارة جديدة عدة مرات. الشكل الزمني يتغيّر، والقمم في الطيف تبقى في أماكنها.
ستفتح الطيف في EEGLAB نفسه لاحقاً من Plot ثم Channel spectra and maps، في درسَي الفلترة والطيف الترددي.
كيف أكتبها بالكود؟
نفس الخطوات في 27 أسطر MATLAB
هذا سكربتscriptملف أوامر MATLAB ينفّذ خطوات المعالجة بالترتيب. لا يحتاج EEGLAB. يبني إشارة لمدة 10 ثوانٍ بمعدل 128 عيّنة في الثانية (نفس معدل eeglab_data.set)، من أجزاء تعرفها مسبقاً، ثم يحسب طيفها ويبحث فيه عن ألفا.
% Build a 10-second signal at 128 Hz from known parts, then look at its spectrum
srate = 128; % samples per second
t = (0:10*srate-1) / srate; % 10 s of time, first sample at 0
rng(0); % same random noise on every run
alpha = 20 * sin(2*pi*10*t); % 10 Hz, 20 microvolts
theta = 8 * sin(2*pi*6*t); % 6 Hz, 8 microvolts
noise = 5 * randn(size(t)); % broadband noise
sig = alpha + theta + noise;
% Amplitude spectrum with the FFT
n = numel(sig);
amp = abs(fft(sig)) / n * 2; % amplitude at each frequency
freqs = (0:n-1) * srate / n; % frequency of each FFT bin in Hz
keep = freqs <= srate/2; % keep frequencies up to Nyquist
figure;
subplot(2,1,1); plot(t, sig); xlim([0 2]);
xlabel('Time (s)'); ylabel('Amplitude (\muV)');
subplot(2,1,2); plot(freqs(keep), amp(keep));
xlabel('Frequency (Hz)'); ylabel('Amplitude (\muV)');
% Strongest frequency between 8 and 12 Hz
band = freqs >= 8 & freqs <= 12;
[~, iPeak] = max(amp .* band);
fprintf('Alpha peak at %.1f Hz, amplitude %.1f\n', freqs(iPeak), amp(iPeak));
fprintf('Nyquist frequency: %d Hz\n', srate/2);
% Aliasing: a 70 Hz wave sampled at 128 Hz shows up at 58 Hz
fast = sin(2*pi*70*t);
[~, iAlias] = max(abs(fft(fast)) .* keep);
fprintf('A 70 Hz wave appears at %.1f Hz\n', freqs(iAlias));ماذا يفعل كل جزء:
- التردد:
sin(2*pi*10*t)موجة تتكرر 10 مرات في الثانية، أي 10 هرتز. والرقم قبلها سعتها بالميكروفولت. - معدل العيّنات: الجهاز لا يسجّل خطاً متصلاً. يسجّل نقطة كل جزء من الثانية. عند 128 هرتز يسجّل 128 عيّنة في الثانية، أي عيّنة كل 7.8 ملّي ثانية تقريباً.
- الطيف:
fftيفكّك الإشارة إلى مجموع موجات، ويعطي سعةamplitudeحجم الإشارة، ويُقاس في EEG بالميكروفولت (µV). كل تردد. الرسم السفلي فيه قمة عند 6 هرتز وأعلى منها عند 10 هرتز. - تردد Nyquist: أعلى تردد يمكن تمثيله هو نصف معدل العيّنات، أي 64 هرتز هنا. لذلك يقف الرسم عند 64.
- التداخل الطيفي (aliasing): موجة 70 هرتز أسرع من حد Nyquist، فلا تختفي. بل تظهر متنكّرة عند 58 هرتز (128 ناقص 70). لهذا السبب يطبّق EEGLAB فلتر low-pass قبل تخفيض معدل العيّنات (توتوريال EEGLAB، صفحة Resampling).
كيف أكتبها بالكود؟
هذا السكربت لا يحتاج EEGLAB. يبني إشارة لمدة 10 ثوانٍ بمعدل 128 عيّنة في الثانية (نفس معدل eeglab_data.set)، من أجزاء تعرفها مسبقاً، ثم يحسب طيفها ويبحث فيه عن ألفا.
% Build a 10-second signal at 128 Hz from known parts, then look at its spectrum
srate = 128; % samples per second
t = (0:10*srate-1) / srate; % 10 s of time, first sample at 0
rng(0); % same random noise on every run
alpha = 20 * sin(2*pi*10*t); % 10 Hz, 20 microvolts
theta = 8 * sin(2*pi*6*t); % 6 Hz, 8 microvolts
noise = 5 * randn(size(t)); % broadband noise
sig = alpha + theta + noise;
% Amplitude spectrum with the FFT
n = numel(sig);
amp = abs(fft(sig)) / n * 2; % amplitude at each frequency
freqs = (0:n-1) * srate / n; % frequency of each FFT bin in Hz
keep = freqs <= srate/2; % keep frequencies up to Nyquist
figure;
subplot(2,1,1); plot(t, sig); xlim([0 2]);
xlabel('Time (s)'); ylabel('Amplitude (\muV)');
subplot(2,1,2); plot(freqs(keep), amp(keep));
xlabel('Frequency (Hz)'); ylabel('Amplitude (\muV)');
% Strongest frequency between 8 and 12 Hz
band = freqs >= 8 & freqs <= 12;
[~, iPeak] = max(amp .* band);
fprintf('Alpha peak at %.1f Hz, amplitude %.1f\n', freqs(iPeak), amp(iPeak));
fprintf('Nyquist frequency: %d Hz\n', srate/2);
% Aliasing: a 70 Hz wave sampled at 128 Hz shows up at 58 Hz
fast = sin(2*pi*70*t);
[~, iAlias] = max(abs(fft(fast)) .* keep);
fprintf('A 70 Hz wave appears at %.1f Hz\n', freqs(iAlias));ماذا يفعل كل جزء:
- التردد:
sin(2*pi*10*t)موجة تتكرر 10 مرات في الثانية، أي 10 هرتز. والرقم قبلها سعتها بالميكروفولت. - معدل العيّنات: الجهاز لا يسجّل خطاً متصلاً. يسجّل نقطة كل جزء من الثانية. عند 128 هرتز يسجّل 128 عيّنة في الثانية، أي عيّنة كل 7.8 ملّي ثانية تقريباً.
- الطيف:
fftيفكّك الإشارة إلى مجموع موجات، ويعطي سعة كل تردد. الرسم السفلي فيه قمة عند 6 هرتز وأعلى منها عند 10 هرتز. - تردد Nyquist: أعلى تردد يمكن تمثيله هو نصف معدل العيّنات، أي 64 هرتز هنا. لذلك يقف الرسم عند 64.
- التداخل الطيفي (aliasing): موجة 70 هرتز أسرع من حد Nyquist، فلا تختفي. بل تظهر متنكّرة عند 58 هرتز (128 ناقص 70). لهذا السبب يطبّق EEGLAB فلتر low-pass قبل تخفيض معدل العيّنات (توتوريال EEGLAB، صفحة Resampling).
أي قيمة أختار؟
القيم المناسبة حسب هدف تحليلك
لا تختار قيمة هنا، لكن ستقابل هذه الأرقام في كل المسار.
نطاقات الترددات المشهورة (تقريبية):
| النطاق | التردد التقريبي | أين يظهر غالباً |
|---|---|---|
| دلتا (delta) | أقل من 4 هرتز | النوم العميق |
| ثيتا (theta) | 4 إلى 8 هرتز | مهام الذاكرة والانتباه، في الأقطاب الأمامية الوسطى |
| ألفا (alpha) | 8 إلى 12 هرتز | الاسترخاء مع إغلاق العينين، في الأقطاب الخلفية |
| بيتا (beta) | 13 إلى 30 هرتز | فوق المنطقة الحركية |
| جاما (gamma) | أكثر من 30 هرتز | صعبة القياس من الفروة لأن العضلات تغطيها |
الحدود بين النطاقات اتفاق بين الباحثين لا قانون، وتختلف قليلاً بين المصادر. وقمة ألفا نفسها تختلف بين شخص وآخر داخل هذا النطاق.
معدل العيّنات وحدّ Nyquist في داتاست المسار:
| الداتاست | معدل العيّنات | تردد Nyquist |
|---|---|---|
eeglab_data.set (المسار الأساسي) | 128 هرتز | 64 هرتز |
| ملف PhysioNet في المحطة 2 | 160 هرتز | 80 هرتز |
| تسجيل بمعدل 1000 هرتز | 1000 هرتز | 500 هرتز |
أي قيمة أختار؟
لا تختار قيمة هنا، لكن ستقابل هذه الأرقام في كل المسار.
نطاقات الترددات المشهورة (تقريبية):
| النطاق | التردد التقريبي | أين يظهر غالباً |
|---|---|---|
| دلتا (delta) | أقل من 4 هرتز | النوم العميق |
| ثيتا (theta) | 4 إلى 8 هرتز | مهام الذاكرة والانتباه، في الأقطاب الأمامية الوسطى |
| ألفا (alpha) | 8 إلى 12 هرتز | الاسترخاء مع إغلاق العينين، في الأقطاب الخلفية |
| بيتا (beta) | 13 إلى 30 هرتز | فوق المنطقة الحركية |
| جاما (gamma) | أكثر من 30 هرتز | صعبة القياس من الفروة لأن العضلات تغطيها |
الحدود بين النطاقات اتفاق بين الباحثين لا قانون، وتختلف قليلاً بين المصادر. وقمة ألفا نفسها تختلف بين شخص وآخر داخل هذا النطاق.
معدل العيّنات وحدّ Nyquist في داتاست المسار:
| الداتاست | معدل العيّنات | تردد Nyquist |
|---|---|---|
eeglab_data.set (المسار الأساسي) | 128 هرتز | 64 هرتز |
| ملف PhysioNet في المحطة 2 | 160 هرتز | 80 هرتز |
| تسجيل بمعدل 1000 هرتز | 1000 هرتز | 500 هرتز |
كيف أتأكد أنها نجحت؟
4 فحوص سريعة
- في المحاكاة وجدت قمة ألفا قرب 10 هرتز، وقمة الكهرباء عند 60 هرتز، وانتقلت قمة الكهرباء وحدها عند التبديل إلى 50.
- السكربت يطبع
Alpha peak at 10.0 Hzوسعة قريبة من 20. - السكربت يطبع
Nyquist frequency: 64 Hz، والرسم السفلي يقف عند 64 هرتز. - السكربت يطبع
A 70 Hz wave appears at 58.0 Hz، وتستطيع أن تشرح السبب بجملة واحدة.
كيف أتأكد أنها نجحت؟
- في المحاكاة وجدت قمة ألفا قرب 10 هرتز، وقمة الكهرباء عند 60 هرتز، وانتقلت قمة الكهرباء وحدها عند التبديل إلى 50.
- السكربت يطبع
Alpha peak at 10.0 Hzوسعة قريبة من 20. - السكربت يطبع
Nyquist frequency: 64 Hz، والرسم السفلي يقف عند 64 هرتز. - السكربت يطبع
A 70 Hz wave appears at 58.0 Hz، وتستطيع أن تشرح السبب بجملة واحدة.
ما الأخطاء التي يقع فيها كثيرون؟
5 أخطاء، وكيف تتجنّبها
- الظن أن معدل العيّنات هو أعلى تردد في البيانات. أعلى تردد هو نصفه فقط. بيانات بمعدل 128 هرتز لا تحتوي أي معلومة فوق 64 هرتز.
- الظن أن كل قمة في الطيف نشاط دماغي. القمة الرفيعة عند 60 هرتز (في السعودية وأمريكا) أو 50 هرتز (في أوروبا وأغلب الدول العربية الأخرى) تأتي من شبكة الكهرباء. تحقّق من الطيف قبل أن تفترض تردد بلد التسجيل.
- قراءة محور الطيف كأنه خطي. في EEGLAB يرسم الطيف القدرة بالديسيبل (dB)، أي بمقياس لوغاريتمي (
spectopo.m). فرق 10 ديسيبل يعني أن القدرة أكبر 10 مرات، لا أكبر بـ 10 وحدات. - التعامل مع حدود النطاقات كأرقام دقيقة. “ألفا من 8 إلى 12” قاعدة تقريبية. إذا كانت قمة مشارك عند 7.5 هرتز، فقد تكون ألفا عنده.
- تخفيض معدل العيّنات يدوياً بأخذ عيّنة وترك عيّنة. هذا يسبّب التداخل الطيفي. استخدم دالة EEGLAB التي تفلتر أولاً، وستتعلمها في درس إعادة أخذ العيّنات.
ما الأخطاء التي يقع فيها كثيرون؟
- الظن أن معدل العيّنات هو أعلى تردد في البيانات. أعلى تردد هو نصفه فقط. بيانات بمعدل 128 هرتز لا تحتوي أي معلومة فوق 64 هرتز.
- الظن أن كل قمة في الطيف نشاط دماغي. القمة الرفيعة عند 60 هرتز (في السعودية وأمريكا) أو 50 هرتز (في أوروبا وأغلب الدول العربية الأخرى) تأتي من شبكة الكهرباء. تحقّق من الطيف قبل أن تفترض تردد بلد التسجيل.
- قراءة محور الطيف كأنه خطي. في EEGLAB يرسم الطيف القدرة بالديسيبل (dB)، أي بمقياس لوغاريتمي (
spectopo.m). فرق 10 ديسيبل يعني أن القدرة أكبر 10 مرات، لا أكبر بـ 10 وحدات. - التعامل مع حدود النطاقات كأرقام دقيقة. “ألفا من 8 إلى 12” قاعدة تقريبية. إذا كانت قمة مشارك عند 7.5 هرتز، فقد تكون ألفا عنده.
- تخفيض معدل العيّنات يدوياً بأخذ عيّنة وترك عيّنة. هذا يسبّب التداخل الطيفي. استخدم دالة EEGLAB التي تفلتر أولاً، وستتعلمها في درس إعادة أخذ العيّنات.
متصفحك لا يسمح بحفظ التقدّم. كل الدروس متاحة، لكن علامات الإكمال لن تُحفظ.
تم. حُفظ تقدّمك في هذا المتصفح.تراجعأين أقرأ أكثر؟
4 مراجع: التوثيق الرسمي أولاً
- EEGLAB Tutorialتوثيق5. Preprocess data > Resampling
- Luck, Applied Event-Related Potential Data Analysis (الطبعة الأولى)الفصل 4: Filtering the EEG and ERPs (الأقسام الأولى)
- Cohen (2014), Analyzing Neural Time Series Data. MIT Pressفصل The Discrete Time Fourier Transform, the FFT, and the Convolution Theorem
- Time-Frequency Analysis of EEG Time Series Part 1: Fourier Analysis of EEG Signalفيديوالفيديو كاملاً · 9:04
مكتوب لـ EEGLAB 2026.1 · 2026-10-27
للتوسّع
- EEGLAB Tutorial: https://eeglab.org/tutorials/05_Preprocess/resampling.html (5. Preprocess data > Resampling)
- Luck, Applied Event-Related Potential Data Analysis (الطبعة الأولى): https://socialsci.libretexts.org/Bookshelves/Psychology/Biological_Psychology/Applied_Event-Related_Potential_Data_Analysis_(Luck) (الفصل 4: Filtering the EEG and ERPs (الأقسام الأولى))
- Cohen (2014), Analyzing Neural Time Series Data. MIT Press: https://mitpressbookstore.mit.edu/book/9780262019873 (فصل The Discrete Time Fourier Transform, the FFT, and the Convolution Theorem)
- Time-Frequency Analysis of EEG Time Series Part 1: Fourier Analysis of EEG Signal: https://www.youtube.com/watch?v=d3haHpOPCc8 (الفيديو كاملاً)
تحتاج مساعدة؟
اسأل، أو شاركنا رأيك، أو بلّغ عن خطأ
- بلّغ عن خطأ علمي · يحتاج حساباً على GitHub. لا تملك حساباً؟ استخدم "شاركنا رأيك".