كل signal مجموع sinusoids
ليه المهندسين مهتمين بالـ frequency domain (نطاق التردد)؟ الإجابة في حقيقة رياضية جميلة: أي signal (إشارة) ممكن تتكتب كمجموع موزون من الـ sinusoids (الجيبيات). ودي جوهر الـ Fourier analysis، اللي بيحوّل الـ signal processing من إنك تتابع الموجات على الزمن لإنك تدير الـ amplitudes والـ phases على الـ frequencies. وللـ signal في الزمن المتقطع، الأداة الطبيعية للتحويل ده هي الـ discrete-time Fourier transform (تحويل فورييه للزمن المتقطع) أو DTFT.
التفكير بالـ frequencies بيجيب نتيجة في الـ DSP. الـ filters بتتصمّم بشكل طبيعي بإنك تحدّد أنهي frequencies تعدّي وأنهي تتمنع. والـ noise اللي متركّز في نطاق frequency معيّن سهل تكتمه لما يظهر كقمة في الـ spectrum. وsignals الصوت والمزيكا والراديو ليها بصمات frequency مميزة بتكشف بنية مستخبية مش هتشوفها في الـ time domain. الـ frequency domain مش مجرد وسيلة مريحة — ده غالبًا المكان الأنسب لحل مشاكلنا.
الـ discrete-time Fourier transform (DTFT)
الـ DTFT بيحوّل الـ sequence في الزمن المتقطع x[n] لدالة مستمرة في الـ frequency X(ejω). وعلى عكس تحويل Z اللي بيستخدم متغيّر مركّب عام z، الـ DTFT بيحسب تحويل Z على دايرة الوحدة z = ejω. والنتيجة دالة قيمها مركّبة في frequency زاوية متطبّعة ω (راديان لكل sample)، ودورية بدورة 2π.
الـ inverse DTFT بيرجّع x[n] بإنه يكامل X(ejω) على فترة واحدة:
في الزمن المتقطع، الـ frequency ω بتتقاس بـالراديان لكل sample، ومداها من −π لـ π. وعشان تحوّلها لـ frequency فيزيائية بالهرتز، اضرب في fs/(2π). والـ Nyquist frequency fs/2 بتقابل ω = π.
ω = 2π f / fs — فـ ω = π بتقابل f = fs/2 (نايكويست)الخصائص الأساسية للـ DTFT
الـ DTFT وارث مجموعة غنية من الخصائص من عيلة تحويل فورييه. والخصائص دي مش مجرد فضول رياضي — دي أدوات عملية بتخلّيك تستنتج إزاي العمليات على الـ signal (زحزحة، تكبير، filtering) بتأثّر في الـ frequency domain من غير ما تحسب التكامل من الأول كل مرة.
ثنائية الـ convolution والضرب غالبًا أهم خاصية. معناها إن الـ filtering — اللي هو convolution في الـ time domain — بيبقى ضرب نقطة بنقطة في الـ frequency domain. وعشان تصمّم low-pass filter، بتحدّد ببساطة H(ejω) = 1 لـ |ω| < ωc وH(ejω) = 0 غير كده، وبعدين تلاقي h[n] المقابل بالـ inverse DTFT.
أزواج DTFT المنتشرة
فيه أزواج DTFT بتتكرّر طول الوقت في الـ DSP. وإنك تحفظها — أو تقدر تطلّعها بسرعة — بيوفّر حسابات كتير.
القيد: الـ frequency المستمرة
الـ DTFT رائع رياضيًا بس مش مريح في الحساب. خرجه X(ejω) دالة مستمرة في ω — بتاخد عدد لانهائي من القيم. والكمبيوتر الرقمي ميقدرش يخزّن أو يعالج غير مجموعة محدودة من الأرقام. فمينفعش تمثّل أو تحسب الـ DTFT الكامل على الكمبيوتر من غير تقريب أو sampling.
المشكلة التانية هي الكفاءة. حتى حساب X(ejω) عند frequency واحدة ω0 محتاج جمع على كل الـ N sample بتوع x[n]، يعني O(N) لكل نقطة frequency. والحساب عند K نقطة frequency بيكلّف O(NK) — كتير جدًا على الـ signals الطويلة.
الـ DTFT بيحوّل sequence في الزمن المتقطع لدالة frequency مستمرة. والأنظمة الرقمية محتاجة تمثيل frequency متقطع — مجموعة محدودة من الأرقام — عشان يتحسب. والحل هو إنك تاخد samples من الـ DTFT عند N نقطة على مسافات متساوية.
الـ sampling للـ DTFT: الـ DFT
لو حسبنا الـ DTFT عند N frequency على مسافات متساوية ωk = 2πk/N لـ k = 0, 1, …, N−1، بيطلعلنا الـ discrete Fourier transform (تحويل فورييه المتقطع) أو DFT:
الـ DFT هو الـ DTFT متاخد منه samples عند N نقطة على مسافات متساوية على دايرة الوحدة. والأهم إنه تحويل محدود وبيتعكس: N رقم مركّب داخلين وN رقم مركّب طالعين، والـ sequence الأصلية بترجع بالظبط بالـ inverse DFT. وده اللي خلّاه العمود الفقري لتحليل الـ spectrum بالحساب.
بس الـ sampling للـ DTFT في الـ frequency ليه تمن. زي ما الـ sampling في الزمن بيعمل periodicity في الـ frequency (الـ aliasing)، الـ sampling في الـ frequency بيعمل periodicity في الزمن — الـ DFT بيعامل x[n] من غير ما يقول كأنها دورة واحدة من signal دورية. والطبيعة الـ circular (الدورية) دي للـ DFT ليها نتايج مهمة على الـ windows والـ zero-padding والـ circular convolution، وكلهم هنستكشفهم في الدروس الجاية.
- كل signal مجموع موزون من الـ sinusoids؛ والـ frequency domain بيكشف التفكيك ده، فبيخلّي تصميم الـ filters وتحليل الـ noise طبيعي وبديهي.
- الـ DTFT بيحوّل الـ sequence في الزمن المتقطع x[n] لدالة مستمرة دورية بدورة 2π هي X(ejω) في الـ frequency الزاوية المتطبّعة ω (راديان/sample).
- الـ frequency المتطبّعة ω = π بتقابل الـ Nyquist frequency fs/2؛ والعلاقة هي ω = 2πf/fs.
- الـ convolution في الزمن بيساوي الضرب في الـ frequency — أساس الـ filtering لأنظمة LTI في الـ frequency domain.
- الـ DTFT مستمر في الـ frequency فمبيتحسبش على طول؛ والماكينة الرقمية محتاجة تمثيل frequency محدود ومتقطع.
- الـ sampling للـ DTFT عند N نقطة على مسافات متساوية بيطلّع الـ DFT: X[k] = Σ x[n] e−j2πkn/N، وده بيتحسب وبيتعكس بالكامل.
- الـ DFT بيعامل x[n] من غير ما يقول كـ signal دورية بدورة N — خاصية أساسية وراها كل اعتبارات الـ windows والـ zero-padding.