DSP 101
M6 · L4
الوحدة 6 — الـ Fast Fourier Transform
الـ spectral analysis في الـ real time
الـ short-time Fourier transform، وتحديد حجم الـ frame والـ hop، والـ Hann window، وعروض الـ waterfall، وإزاي تبني spectrum analyzer حي — إنك تخلّي الـ FFT يشتغل في الزمن المستمر.
1 / 9
DSP 101
M6 · L4
الفكرة الأساسية
الـ short-time Fourier transform
بنزحلق window طولها N على الـ signal (الإشارة). ونحسب FFT لكل frame بعد الـ windowing. ورصّ النتايج على الزمن بيدّينا خريطة زمن-frequency ثنائية الأبعاد بتوري المحتوى الطيفي بيتطوّر إزاي.
STFT
X[m,k] = \sum_{n=0}^{N-1} x[n+mR]\,w[n]\,e^{-j2\pi kn/N}
2 / 9
DSP 101
M6 · L4
اختيارات التصميم
تلات parameters بيتحكّموا في كل حاجة
N
حجم الـ frame ← الـ frequency resolution
R
الـ hop size ← الـ time resolution
w[n]
الـ window ← الـ leakage
مبدأ عدم اليقين
frame قصير ← time resolution كويسة، frequency خشنة. frame طويل ← frequency resolution عالية، time resolution ضعيفة. متقدرش تاخد الاتنين.
3 / 9
DSP 101
M6 · L4
الاختيار المعياري
الـ Hann window وoverlap 50%
الـ Hann window (raised cosine) بتنزل بنعومة للصفر — أعلى side lobe عند −31.5 ديسيبل، يعني أوطى بحوالي 18 ديسيبل من الـ −13 ديسيبل بتوع الـ rectangular. ومع overlap 50%، windows الـ Hann اللي ورا بعض بتتجمع لثابت (شرط COLA) ← إعادة بناء بالظبط.
الـ Hann window
w[n] = 0.5\!\left(1 - \cos\frac{2\pi n}{N-1}\right)
4 / 9
DSP 101
M6 · L4
الـ pipeline
بناء spectrum analyzer حي
- الالتقاط: اقرا الـ samples في ring buffer حجمه N
- الـ windowing: كل R sample جديدة، طلّع N sample × Hann
- FFT: real FFT حجمه N ← N/2+1 bin، مربّع القيمة المطلقة
- الديسيبل: 10 log₁₀ |X[k]|² عشان الـ dynamic range بتاع العرض
- العرض: bar graph أو خطي؛ وزحلق الـ waterfall صف واحد
- التكرار بمعدّل الـ hop: f_s / R frame في الثانية
5 / 9
DSP 101
M6 · L4
تقنيات العرض
الـ averaging والـ peak hold
خرج الـ FFT الخام متلخبط من frame للتاني. تقنيتين للمعالجة بعد كده:
الـ exponential smoothing
S[k] = α·|X[k]|² + (1−α)·S_prev[k] α ≈ 0.1–0.3 مقايضة بين الـ noise والاستجابة
الـ peak hold
P[k] = max(|X[k]|², P_prev[k])؛ ثبّت وبعدين نزّل بـ δ ديسيبل/frame — بيكشف القمم العابرة اللي الـ smoothing بيخبّيها
6 / 9
DSP 101
M6 · L4
سجل الـ spectrum الثنائي الأبعاد
عروض الـ waterfall
- كل frame STFT بيضيف صف واحد للصورة المتحركة
- اللون بيشفّر القدرة (ديسيبل) — سخن = قوي، بارد = ضعيف
- الـ chirps بتظهر كخطوط مايلة؛ والـ harmonics كشرايط أفقية
- SDR: مراقبة ميجاهرتز من الـ RF للـ signals والتداخل والإشغال
- الصوت: الـ room modes، وذيول الـ reverb، والبنية الـ harmonic
- الاهتزاز: تتبّع الـ resonance لما الحمل أو السرعة تتغيّر
7 / 9
DSP 101
M6 · L4
الأفكار الأساسية
اتعلّمت إيه
- الـ STFT = FFT بعد windowing متكرّر على frames متداخلة
- N بيتحكّم في الـ frequency resolution؛ وR بيتحكّم في الـ time resolution — والمقايضة مفيش منها مهرب
- Hann window + overlap 50% = leakage قليل + إعادة بناء COLA
- الـ analyzer الـ live: ring buffer ← window ← rfft ← ديسيبل ← عرض
- smoothing بالـ exponential averaging؛ وحفظ القمم بالـ peak hold
- الـ waterfall بيكشف البنية اللي بتتغيّر مع الزمن ومش باينة في عروض الـ frame الواحد
9 / 9
1 / 8
كتم