مختبر فورييه
يتحقق من محرّك Octave…
معالجة الإشارات الرقمية · Digital Signal Processing (DSP)

مختبر تفاعلي لتحليل ومعالجة الإشارات

منصة تعليمية وتطبيقية لدراسة متسلسلات وتحويلات فورييه (FFT)، وأخذ العينات (Nyquist)، والنوافذ الزمنية، وتطبيقات معالجة الإشارات الحيوية بكود MATLAB مباشر.

Fourier Series DFT / FFT Nyquist & Aliasing Windowing ECG Application
بيئة المختبر
المحرّك البرمجيMATLAB / Octave
المجال التعليميمعالجة الإشارات الرقمية (DSP)
طبيعة التجاربتحليل مباشر في المجالين الزمني والترددي
آخر تشغيل

عدّل قيم المعاملات في أي تجربة أدناه لتطبيق الكود ومشاهدة التغيرات الرياضية مباشرة في الرسم البياني.

01 — لماذا نحتاج تحويل فورييه؟

من "متى" إلى "أي نغمة"

عندما تسمع أكورد موسيقي مكوّناً من ثلاث نغمات معزوفة معاً، تصل إلى أذنك كموجة صوتية واحدة معقدة الشكل. هذا بالضبط ما تمثّله إشارة في المجال الزمني (Time Domain). تحويل فورييه (Fourier Transform) هو الأداة الرياضية التي "تفكّك" هذه الموجة إلى مكوناتها الجيبية البسيطة، فتنقلها إلى المجال الترددي (Frequency Domain) حيث نرى بوضوح كم عدد الترددات المكوّنة وما مقدار طاقة كل منها.

في الهندسة الطبية، تشخيص كثير من اضطرابات القلب يعتمد على تحليل ترددات إشارة تخطيط القلب (ECG)، وتنقية تخطيط الدماغ (EEG) من تشويش الشبكة الكهربائية تعتمد كلياً على "رؤية" الترددات غير المرغوبة وحذفها بدقة. يمكنك استكشاف التجارب التفاعلية أدناه لمعاينة وتطبيق هذه المفاهيم عملياً.

02 — الخلفية النظرية

من متسلسلة فورييه إلى FFT

2.1 متسلسلة فورييه (Fourier Series)

أثبت جوزيف فورييه أن أي إشارة دورية x(t) بدور T يمكن كتابتها كمجموع لا نهائي من دوال جيب التمام وجيب الزاوية بترددات هي مضاعفات صحيحة لتردد أساسي واحد:

x(t) = a0 + Σk=1 [ akcos(k ω0 t) + bksin(k ω0 t) ]
حيث ω₀ = 2π/T. جرّب هذا في المختبر الأول أدناه: موجة مربعة هي مجموع توافقيات فردية فقط، وكلما زاد عددها ظهر تموّج جيبس (Gibbs Phenomenon) عند الحواف الحادة.

2.2 من المستمر إلى الرقمي: DFT وFFT

الحاسوب يتعامل مع N عيّنة رقمية بتردد أخذ عينات Fs. تحويل فورييه المتقطع (DFT) يستبدل التكامل بمجموع منتهٍ:

X[k] = Σn=0N−1 x[n] e−j2πkn/N
حسابه المباشر يحتاج O(N²) عملية. خوارزمية FFT التي نشرها كولي وتوكي عام 1965 [3] تخفض هذا إلى O(N log₂N) بأسلوب «التجزئة والغزو». دالة fft() في Octave/MATLAB هي تنفيذ محسَّن لهذه الخوارزمية [1].
fft(x)

حساب DFT بخوارزمية FFT

ifft(X)

التحويل العكسي

fftshift(X)

توسيط المكوّن الصفري

abs(X) / angle(X)

المقدار والطور

03 — مختبر Octave حقيقي

تركيب موجة مربعة من توافقيات فورييه

حرّك K ثم اضغط «تشغيل الكود» — الرسم الناتج يأتي فعلياً من plot() في Octave.

04 — مختبر Octave حقيقي

من الزمن إلى التردد: مختبر FFT

ابنِ إشارتك من مكوّنين جيبيين وضوضاء، ثم شغّل الكود لترى طيف fft() الحقيقي.

05 — مختبر Octave حقيقي

نظرية Nyquist وظاهرة الطي الترددي (Aliasing)

تنص نظرية Nyquist–Shannon [4] على أن Fs ≥ 2fmax. جرّب كسر الشرط بنفسك.

06 — مختبر Octave حقيقي

أثر عدد العينات N على دقة التمييز الترددي

Δf = Fs / N: زيادة N هي الطريقة الوحيدة لتمييز ترددين متقاربين جداً.

07 — مختبر Octave حقيقي

النوافذ الزمنية وتسرّب الطيف (Spectral Leakage)

قارن بين نوع النافذة الزمنية وأثرها على تسرّب الطاقة الطيفي.

08 — تطبيق طبي حقيقي

تحليل إشارة ECG وإزالة تشويش الشبكة الكهربائية

تتركز طاقة QRS بين 10–25 هرتز [5]. أشهر تشويش هو تداخل خط الكهرباء عند 50 هرتز، يُحذف بمرشح Notch في المجال الترددي.

09 — خلاصة

كيف يعمل هذا الموقع تقنياً؟

عند ضغط «تشغيل الكود»، يرسل المتصفح القيم العددية فقط (وليس نصّ كود) إلى الخادم عبر POST /api/run/<lab>. يتحقق الخادم من كل قيمة (يقصّها ضمن الحدود المسموحة دائماً، بصرف النظر عمّا يُرسَل)، يضعها داخل سكربت .m ثابت وموثوق كتبه المطوّر، ثم ينفّذه فعلياً عبر octave-cli بحدود زمنية وذاكرة صارمة (ulimit + مهلة قطع)، ويعيد الصورة الناتجة (PNG) ونص وحدة التحكّم. هذا يمنع تنفيذ أي كود عشوائي من طرف المستخدم مع إبقاء التنفيذ حقيقياً بالكامل.