يعني إيه power spectral density؟
لما بنحلّل signal في الـ frequency domain بالـ DFT، بنشوف الـ amplitude والـ phase بتوع كل مكوّن frequency. بس بالنسبة للـ signals العشوائية أو الـ stochastic — زي الـ noise والكلام والاهتزازات وقنوات الاتصال اللاسلكي — فكرة الـ spectrum الثابت بتفقد معناها. الـ signals دي عمرها ما بتتكرّر بنفس الشكل، وتحويل فورييه بتاعها بيبان مختلف كل مرة.
اللي بيفضل ثابت عبر الـ realizations المختلفة هو التوزيع الإحصائي للقدرة على الـ frequencies. وده اللي الـ power spectral density (كثافة الطيف الطاقي) أو PSD بتوصفه: دالة S(f) بتبيّن قد إيه من قدرة الـ signal متركّز في المتوسط عند كل frequency. فكّر فيها على إنها "خريطة القدرة المتوسطة" للعملية العشوائية.
الـ PSD بتجاوب على أسئلة تحويل فورييه لوحده ميقدرش يجاوبها: أنهي نطاق frequency مسيطر على أرضية الـ noise؟ إشارة التداخل عريضة قد إيه؟ القناة بتكتم قدرة الـ signal فين؟ ودي أسئلة أساسية في الاتصالات وهندسة الصوت والرادار ومعالجة الـ signals الطبية الحيوية.
نظرية وينر-خينتشين
الأساس الرياضي للـ PSD هو نظرية وينر-خينتشين (Wiener-Khinchin)، اللي بتربط الـ PSD بالـ autocorrelation بتاع الـ signal. ولعملية عشوائية wide-sense stationary x[n]، الـ autocorrelation sequence بتتعرّف كده:
نظرية وينر-خينتشين بتقول إن الـ power spectral density هي الـ discrete-time Fourier transform (DTFT) للـ autocorrelation sequence:
النظرية دي معناها عميق: بتقولّنا إن البنية الطيفية للـ signal العشوائية متشفّرة كلها في الـ autocorrelation بتاعها. فـ signal الـ autocorrelation بتاعها ضيق (بتفقد الـ correlation بسرعة) ليها PSD عريضة ومفرودة — يعني white طيفيًا. أما signal الـ autocorrelation بتاعها بيقل بالراحة فأغلب قدرتها بتتركّز عند الـ frequencies الواطية.
الوحدات والتفسير
الـ PSD بتتقاس بوحدة قدرة لكل وحدة frequency. في الزمن المستمر، الوحدة واط/هرتز (أو V²/هرتز للـ signals اللي هي فولت). وفي الزمن المتقطع، محور الـ frequency بيتقاس على الفترة [−π, π] (راديان/sample) أو [−f_s/2, f_s/2] (هرتز). والعلاقة الأساسية هي:
عمليًا، الـ PSD كتير بتتعرض على مقياس الديسيبل (dB/Hz) عشان تبان المكوّنات القوية والضعيفة مع بعض. أرضية noise أوطى بـ 60 dB من قمة الـ signal مش هتبان على مقياس خطي، بس بتبان بوضوح بالديسيبل. وصيغة التحويل: S_dB(f) = 10 · log₁₀(S(f)).
الـ PSD الأحادية والثنائية الجانب
لـ signal حقيقية x[n]، الـ PSD بتبقى متماثلة: S_xx(ω) = S_xx(−ω). ومعنى كده إن الـ PSD عند الـ frequencies السالبة فيها نفس المعلومات بالظبط اللي في الموجبة. وعشان كده فيه اصطلاحين:
- متعرّفة على [−π, π] أو [−f_s/2, f_s/2]
- المساحة الكلية = القدرة الكلية
- بتتستخدم في الاشتقاقات النظرية والـ signals المركّبة
- ضرورية للـ signals المركّبة (بيانات I/Q)
- الافتراضي في أغلب المعالجات الرياضية
- متعرّفة على [0, π] أو [0, f_s/2]
- القيم بتتضاعف عشان القدرة تتحفظ: G(f) = 2S(f)
- أوضح للقياسات العملية
- بتستخدمها الـ spectrum analyzers وأدوات القياس
- الافتراضي في دالة pwelch() في MATLAB
لما تقارن قيم PSD من أدوات أو كتب مختلفة، اتأكد من الاصطلاح: أحادي ولا ثنائي الجانب. فرق الـ 3 dB كتير بيبقى سببه الخلط ده. ودالة pwelch() في MATLAB بترجّع PSD أحادية الجانب افتراضيًا، وكذلك دالة scipy.signal.welch() في Python.
الـ PSD الأحادية الجانب = 2 × الـ PSD الثنائية الجانب (عند كل frequency موجبة)تقدير الـ PSD من بيانات محدودة
الـ PSD الحقيقية كمية نظرية متعرّفة بقيمة متوقعة على كل realizations العملية العشوائية. عمليًا، معانا بس سجل بيانات محدود x[0], x[1], …, x[N−1]. وأبسط estimator هو الـ periodogram (الدورية):
الـ periodogram عنده نقطة ضعف أساسية: الـ variance بتاعه مبيقلّش لما N تزيد. مهما جمعت بيانات، الـ periodogram بيفضل فيه noise — كل تقدير طيفي بيتذبذب بحوالي 100٪ حوالين قيمته المتوقعة. وعشان تاخد تقديرات PSD تعتمد عليها، محتاجين طرق أشطر.
التطبيقات العملية
الـ PSD مش مجرد نظرية — هي الأداة الأساسية لتوصيف الـ spectrum في تقريبًا كل مجالات الـ signal processing:
| التطبيق | الـ PSD بتكشف إيه | الـ parameter الأساسي |
|---|---|---|
| توصيف الـ noise | أرضية الـ thermal noise، شكل الـ colored noise | كثافة قدرة الـ noise (dBm/Hz) |
| كشف الـ signals | قمم طيفية فوق أرضية الـ noise | SNR لكل frequency bin |
| القناة اللاسلكية | ملف الـ frequency-selective fading | الـ coherence bandwidth |
| الصوتيات | resonances الأوض، نغمات الآلات | الـ spectral centroid، الـ bandwidth |
| تحليل الاهتزازات | resonance ميكانيكي، عدم اتزان | الـ frequencies اللي عندها القمم، RMS لكل نطاق |
| طبي (EEG) | نطاقات إيقاع المخ (δ، θ، α، β، γ) | نسب قدرة النطاقات |
مثال كلاسيكي هو الـ white noise: signal عشوائية الـ samples بتاعتها ملهاش correlation. الـ autocorrelation بتاعها impulse متكبّرة (R_xx[k] = σ² δ[k])، والـ PSD بتاعتها مفرودة: S_xx(ω) = σ² لكل ω. وده سبب اسمها "white" — تشبيهًا بالنور الأبيض اللي فيه كل frequencies الطيف المرئي بالتساوي.
في تصميم receivers الاتصالات، كثافة قدرة الـ thermal noise بتبقى N₀/2 واط/هرتز (ثنائية الجانب)، حيث N₀ = kT (ثابت بولتزمان × درجة الحرارة). وعند درجة حرارة الأوضة (T = 290 K)، N₀ ≈ −174 dBm/Hz — وده حد أرضية الـ noise العالمي. وأي مكوّن signal لازم يبقى فوق الأرضية دي عشان يتكشف من غير processing gain استثنائي.
أرضية الـ thermal noise: N₀ = kT ≈ −174 dBm/Hz عند 290 K- الـ power spectral density (PSD) بتوصف قدرة الـ signal متوزّعة إزاي على الـ frequencies — الأداة الأساسية لتوصيف الـ signals العشوائية.
- نظرية وينر-خينتشين بتربط الـ PSD بالـ autocorrelation: S_xx(ω) = DTFT{R_xx[k]}. ودايمًا دالة حقيقية ومش سالبة.
- تكامل الـ PSD على كل الـ frequencies بيدّي القدرة الكلية: P = R_xx[0].
- للـ signals الحقيقية، الـ PSD متماثلة حوالين الـ frequency صفر. والنسخة الأحادية الجانب بتضاعف قيم الـ PSD الثنائية الجانب عشان تغطّي الـ frequencies الموجبة بس.
- الـ periodogram (|DFT|²/N) أبسط estimator للـ PSD بس الـ variance بتاعه عالي ومبيقلّش لما البيانات تزيد.
- الـ white noise ليه PSD مفرودة — قدرة متساوية عند كل frequency. والحد الحراري ≈ −174 dBm/Hz عند 290 K.
- الـ PSD بتتستخدم في تحليل الـ noise وكشف الـ signals والقنوات اللاسلكية والصوتيات والاهتزازات والتطبيقات الطبية الحيوية.