DSP 101
M9 · L2
الوحدة 9 — الـ spectral analysis
الـ periodogram وطريقة Welch
من الـ periodogram المتلخبط لتقدير PSD تعتمد عليه — إزاي الـ averaging بيغيّر الـ spectral analysis.
1 / 9
DSP 101
M9 · L2
المشكلة الجوهرية
العيب القاتل في الـ periodogram
الـ periodogram (الدورية) (|DFT|²/N) بسيط بس مكسور من الأساس — الـ variance بتاعه مبيقلّش لما البيانات تزيد.
Periodogram
\hat{S}(\omega) = \frac{1}{N}\left|\sum_{n=0}^{N-1} x[n]\, e^{-j\omega n}\right|^2
الحقيقة الجوهرية
Var[Ŝ(ω)] ≈ S²(ω) مهما كان N. إنك تجمع بيانات أكتر بـ 10× مش هيفيد — كل bin لسه عنده تقدير واحد متلخبط
2 / 9
DSP 101
M9 · L2
الخصائص الإحصائية
الـ bias قصاد الـ variance
أي estimator بيتقيّم بالـ bias (الغلط المنهجي) والـ variance (التذبذب العشوائي). والـ periodogram بيفشل في الـ variance.
✓
الـ bias → 0
✗
الـ variance ثابت
✗
inconsistent
- asymptotically unbiased (الـ bias بيقل مع N)
- الـ variance ≈ S²(ω) — مبيقلّش مع N
- estimator inconsistent — مبيتقاربش للحقيقة
- الحل: averaging لتقديرات مستقلة كتير
3 / 9
DSP 101
M9 · L2
الحل الأول (1948)
طريقة Bartlett
قسّم البيانات لـ K segment مش متداخلين طولهم M. احسب الـ periodogram لكل segment وبعدين خد المتوسط — الـ variance بينزل بمعامل K.
Bartlett
\hat{S}_B(\omega) = \frac{1}{K}\sum_{i=0}^{K-1} \frac{1}{M}\left|\sum_{n=0}^{M-1} x_i[n]\, e^{-j\omega n}\right|^2
المقايضة
M أقصر → segments أكتر → variance أقل، بس الـ frequency resolution Δf = f_s/M بتقل
4 / 9
DSP 101
M9 · L2
المعيار في الصناعة (1967)
تحسينات Welch
Welch طوّر طريقة Bartlett بإضافتين بقوا عالميين: segments متداخلة وwindow functions.
- الـ overlap: الـ segments بتشترك في البيانات (عادةً 50٪) → segments أكتر → variance أقل من غير بيانات زيادة
- الـ window: windowing لكل segment بـ Hann/Hamming → بيشيل الـ spectral leakage من الحواف الحادة
- النتيجة: تقديرات PSD أنعم وتعتمد عليها أكتر
- بيتستخدم في: MATLAB pwelch()، scipy.signal.welch()
5 / 9
DSP 101
M9 · L2
اختيارات التصميم
ظبط parameters الـ Welch
تلات زراير بيتحكّموا في الـ estimator — كل واحد بيوازن الـ resolution قصاد الـ variance:
- طول الـ segment M: M أكبر → Δf أدق، بس segments أقل (variance أعلى)
- نسبة الـ overlap: overlap أكتر ← segments أكتر ← variance أقل (مكاسب بتقل فوق 75٪)
- الـ window: Hann للأغراض العامة؛ Kaiser لتحكّم مرن في الـ side lobes
- قاعدة عملية: Hann + overlap 50٪ لأغلب التطبيقات
- مفيش حاجة ببلاش: البيانات الكلية بتحدّد حاصل ضرب الـ resolution × الـ variance
6 / 9
DSP 101
M9 · L2
عمليًا
طريقة Welch بتفرق فين
- قياس أرضية الـ noise: الـ thermal noise، توصيف الـ phase noise
- مراقبة الاهتزازات: قمم الـ resonance في الماكينات اللي بتلف
- EEG / طب حيوي: قدرة نطاقات المخ (دلتا، ثيتا، ألفا، بيتا)
- تحليل الصوتيات: صوتيات الأوض، response السماعات
- الاتصالات: الـ PSD بتاعة القناة، ورسم خريطة التداخل
- معالجة الكلام: تقدير الـ spectral envelope للـ codecs
7 / 9
DSP 101
M9 · L2
أهم النقط
اتعلّمت إيه
- الـ periodogram: unbiased بس الـ variance عالي — الـ variance ≈ S²(ω) مهما كان N
- Bartlett: متوسط K periodogram مش متداخلين → الـ variance ÷ K
- Welch: ضيف overlap + window → segments أكتر، leakage أقل
- Hann + overlap 50٪ هو أشهر اختيار عملي
- الـ resolution والـ variance بيتبادلوا التأثير — بيانات أكتر بتفيد، بس المقايضة بتفضل
- pwelch() وscipy.signal.welch() بينفّذوا Welch افتراضيًا
9 / 9
1 / 8
صامت