وتفسيره
معادلة الـ DFT، والـ frequency bins، والـ DFT كـ عملية matrix، والطبيعة الدورية اللي بتحتاج zero-padding وfiltering بالـ overlap-add.
N sample زمنية داخلة. وN قيمة frequency مركّبة X[k] طالعة. كل bin شايل الـ amplitude والـ phase بتوع الـ frequency المقابلة ليه.
مظبوط
الـ IDFT بيرجّع x[n] بالظبط. الفرق الوحيد: إشارة الأُس بتتقلب لـ +j وبيظهر معامل تطبيع 1/N.
الـ bin k ← الـ frequency f = k · fs/N هرتز. الـ bin spacing Δf = fs/N — أما الـ resolution فبيحددها طول التسجيل مش N.
X = WN x — الـ DFT تغيير basis. كل صف في WN هو complex sinusoid. الحساب المباشر: O(N²). والـ FFT بيستغل التماثل عشان يوصل لـ O(N log N).
الـ DFT بيعامل x[n] على إنها دورية بفترة N. الحساب modulo N. والنتيجة: ضرب الـ spectrums بيدّي circular convolution مش linear.
مش حدّة
الـ zero-padding بيعمل interpolation للـ spectrum فبيبان أنعم. بس الـ resolution الفعلية محتاجة بيانات أكتر، مش أصفار أكتر. وعشان تفرّق بين frequencyين بينهم Δf هرتز محتاج T ≥ 1/Δf ثانية.
- أصفار أكتر ← samples أدق من الـ DTFT ← منحنى أنعم
- samples أكتر ← معلومات frequency حقيقية زيادة
- sinusoidين بينهم Δf هرتز محتاجين T ≥ 1/Δf ثانية من البيانات
- DFT: X[k] = Σ x[n] e−j2πkn/N؛ والـ IDFT فيه +j ومعامل 1/N
- الـ bin k ↔ الـ frequency k·f_s/N هرتز؛ والـ bin spacing Δf = f_s/N
- |X[k]| amplitude، و∠X[k] phase؛ والـ signals الحقيقية عندها conjugate symmetry
- الـ DFT = ضرب matrix X = WNx؛ O(N²) مباشر، وO(N log N) بالـ FFT
- الـ DFT دوري — الحساب modulo N دايمًا
- ضرب الـ spectrums ← circular convolution؛ ضيف أصفار عشان linear convolution
- الـ zero-padding بينعّم الـ spectrum بس مبيحسّنش الـ resolution الفعلية