قراءة
وضع القصص

الـ power spectral density (كثافة الطيف الطاقي)

~13 دقيقة قراءة الدرس 1 من الوحدة 9

يعني إيه 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 بتتعرّف كده:

الـ autocorrelation sequence
R_{xx}[k] = E\bigl[x[n]\,x^*[n-k]\bigr]
R_xx[k] بيقيس الـ signal شبه نسخة متزحزحة في الزمن منها قد إيه. وعند k=0 بيساوي القدرة الكلية للـ signal. وE[·] معناها القيمة المتوقعة إحصائيًا.

نظرية وينر-خينتشين بتقول إن الـ power spectral density هي الـ discrete-time Fourier transform (DTFT) للـ autocorrelation sequence:

نظرية وينر-خينتشين
S_{xx}(\omega) = \sum_{k=-\infty}^{\infty} R_{xx}[k]\, e^{-j\omega k}
S_xx(ω) هي الـ PSD كدالة في الـ frequency الزاوية ω ∈ [−π, π]. وهي دالة قيمها حقيقية ومش سالبة في كل حتة — لأنها بتمثّل قدرة مش amplitude.

النظرية دي معناها عميق: بتقولّنا إن البنية الطيفية للـ signal العشوائية متشفّرة كلها في الـ autocorrelation بتاعها. فـ signal الـ autocorrelation بتاعها ضيق (بتفقد الـ correlation بسرعة) ليها PSD عريضة ومفرودة — يعني white طيفيًا. أما signal الـ autocorrelation بتاعها بيقل بالراحة فأغلب قدرتها بتتركّز عند الـ frequencies الواطية.

الوحدات والتفسير

الـ PSD بتتقاس بوحدة قدرة لكل وحدة frequency. في الزمن المستمر، الوحدة واط/هرتز (أو V²/هرتز للـ signals اللي هي فولت). وفي الزمن المتقطع، محور الـ frequency بيتقاس على الفترة [−π, π] (راديان/sample) أو [−f_s/2, f_s/2] (هرتز). والعلاقة الأساسية هي:

القدرة الكلية من الـ PSD
P = R_{xx}[0] = \frac{1}{2\pi}\int_{-\pi}^{\pi} S_{xx}(\omega)\, d\omega
لما تكامل الـ PSD على كل الـ frequencies بترجّع القدرة الكلية للـ signal — يعني المساحة تحت منحنى الـ PSD بتساوي R_xx[0]، الـ autocorrelation عند lag صفر.

عمليًا، الـ 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 السالبة فيها نفس المعلومات بالظبط اللي في الموجبة. وعشان كده فيه اصطلاحين:

ثنائية الجانب (Two-Sided)
  • متعرّفة على [−π, π] أو [−f_s/2, f_s/2]
  • المساحة الكلية = القدرة الكلية
  • بتتستخدم في الاشتقاقات النظرية والـ signals المركّبة
  • ضرورية للـ signals المركّبة (بيانات I/Q)
  • الافتراضي في أغلب المعالجات الرياضية
أحادية الجانب (One-Sided)
  • متعرّفة على [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
\hat{S}(\omega) = \frac{1}{N}\left|\sum_{n=0}^{N-1} x[n]\, e^{-j\omega n}\right|^2
X_N(ω) هو الـ DFT للـ frame اللي فيه N sample. والقسمة على N بتعمل scale حسب طول البيانات. بيدّي estimator asymptotically unbiased بس الـ variance بتاعه عالي.

الـ 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 الطيف المرئي بالتساوي.

الـ white noise وأرضية الـ noise

في تصميم 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 والقنوات اللاسلكية والصوتيات والاهتزازات والتطبيقات الطبية الحيوية.
اللي بعده الـ periodogram وطريقة Welch نظرة عامة على الموديول اللي فات FIR قصاد IIR — المقايضات