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

تحليل الطيف الآني

~14 دقيقة قراءة الدرس 4 من الوحدة 6

حين يلتقي FFT بالزمن

في الوحدات السابقة من الوحدة 6، تعاملنا مع FFT بوصفه أداةً تُحوّل كتلة إشارة كاملة إلى محتواها الترددي. يصلح ذلك بشكل جيد للإشارات الثابتة — الإشارات التي لا يتغير محتواها الترددي عبر الزمن. غير أن معظم الإشارات الواقعية غير ثابتة: الكلام يرتفع وينخفض في الطبقة، نغمة الغيتار تتلاشى، عودة الرادار تجتاز نطاقات ترددية، واهتزاز المحرك يتحول مع تغير سرعة الدوران.

لرصد كيفية تطور المحتوى الترددي مع الزمن، نحتاج إلى تطبيق FFT بشكل متكرر على مقاطع قصيرة ومتداخلة من الإشارة. تُسمى هذه التقنية تحويل فورييه قصير المدى (STFT)، وهي المحرك الأساسي لكل محلل طيف، وعرض طيف زمني، وشاشة صوتية آنية صادفتها في حياتك.

تحويل فورييه قصير المدى

الفكرة خلف STFT بسيطة: نُمرّر نافذة بطول N عبر الإشارة، ونضرب كل مقطع منافذ في دالة نافذة (للحد من تسرب الطيف)، ثم نحسب FFT، ونخزّن النتيجة. يُولّد تكديس هذه الأطياف عبر الزمن تمثيلاً ثنائي الأبعاد: التردد على محور، والزمن على آخر.

تعريف STFT
X[m,k] = \sum_{n=0}^{N-1} x[n + mR]\, w[n]\, e^{-j2\pi kn/N}
X[m, k] هو DFT للإطار المنافذ m. w[n] دالة النافذة، R حجم القفز (عدد العينات بين الإطارات)، N حجم FFT.

مربع القيمة المطلقة |X[m, k]|² هو الطيف الزمني — خريطة قدرة تُظهر الترددات النشطة في كل لحظة زمنية. يُستخدم المقياس اللوغاريتمي (بالديسيبل) دائمًا تقريبًا لضغط النطاق الديناميكي الواسع للإشارات الواقعية.

ثلاثة معاملات تتحكم بكل شيء

لكل STFT ثلاثة خيارات تصميمية، وفهم المقايضات بينها هو جوهر تحليل الطيف الآني:

المعامل الرمز يتحكم في النطاق المعتاد
حجم الإطار N الدقة الترددية: Δf = f_s / N 256 – 8192
حجم القفز R الدقة الزمنية: Δt = R / f_s N/4 – N/2
دالة النافذة w[n] مقايضة التسرب مقابل الدقة Hann، Hamming، Blackman
المقايضة الأساسية

لا يمكنك الحصول على دقة زمنية مثالية ودقة ترددية مثالية في آن واحد — هذا هو مبدأ عدم اليقين الزمني-الترددي. الإطار القصير (N صغير) يمنحك دقة زمنية جيدة لكن حزمًا ترددية خشنة. الإطار الطويل (N كبير) يمنح دقة ترددية عالية لكن دقة زمنية ضعيفة. يتحكم حجم القفز R في معدل تحديث العرض — يمكن ضبطه باستقلالية عن N، لكن طول الإطار يحدد محاور الدقة في نهاية المطاف.

إطار قصير ← دقة زمنية جيدة، دقة ترددية خشنة. إطار طويل ← دقة ترددية عالية، دقة زمنية ضعيفة.

التداخل ونافذة هان

عمليًا، تتداخل الإطارات عادةً بنسبة 50–75%. مع حجم قفز R = N/2، تتشارك الإطارات المتتالية نصف عيناتها. يخدم التداخل غرضَين: يزيد الدقة الزمنية لعرض الطيف الزمني، ويُمكّن — مع نوافذ معينة — إعادة البناء التامة للإشارة الأصلية (مفيد لمعالجة الصوت لا التحليل فقط).

نافذة هان (الجيب تمام المرفوع) هي الاختيار الأكثر شيوعًا لتحليل الطيف الآني. تتلاشى بسلاسة إلى الصفر عند الطرفين، مما يُزيل الحافة المفاجئة التي تُسبب تسربًا حادًا مع النافذة المستطيلة. مع تداخل 50%، تجمع الإطارات المنافذة بنافذة هان المتتالية إلى ثابت — وهو شرط إضافة التداخل الثابتة (COLA) الذي يضمن إعادة البناء التامة.

نافذة هان
w[n] = 0.5\left(1 - \cos\!\left(\frac{2\pi n}{N-1}\right)\right), \quad 0 \le n \le N{-}1
تتلاشى نافذة هان إلى الصفر عند الطرفين. فصّها الرئيسي ضعف عرض المستطيلة لكن أعلى فصّ جانبي عند −31.5 ديسيبل — أخفض بنحو 18 ديسيبل من −13 ديسيبل للمستطيلة — مما يُقلل تسرب الطيف بشكل ملحوظ.

بناء محلل طيف آني

يعالج محلل الطيف الآني تيارًا صوتيًا أو ترددي لاسلكيًا مستمرًا ويُحدّث عرض الترددات بسرعة كافية ليبدو حيًا. البنية القياسية في البرمجيات هي:

الخطوة 1
الالتقاط
قراءة العينات من واجهة الصوت أو SDR في قطع صغيرة (مثلاً 256 عينة في كل مرة). إضافتها إلى مخزن حلقي بحجم N.
الخطوة 2
التنافذ
عندما يتراكم R عينة جديدة في المخزن الحلقي (القفز)، استخراج أحدث N عينة وضربها عنصريًا بنافذة هان.
الخطوة 3
FFT
حساب FFT حقيقي بحجم N للإطار المنافذ. ينتج N/2 + 1 خانة ترددية مركبة. أخذ مربع القيمة المطلقة للقدرة.
الخطوة 4
العرض
التحويل إلى ديسيبل (10 log₁₀ |X[k]|²)، تطبيق تثبيت الذروة أو التنعيم، والرسم كرسم بياني أو طيف خطي. تحديث شلال الماء بتمرير صف واحد.

في المتصفح، تُنفّذ واجهة Web Audio API عبر AnalyserNode هذه الخطوات الأربع داخليًا — تحتفظ بمخزن حلقي، وتطبق نافذة بلاكمان، وتحسب FFT، وتوفر getByteFrequencyData() التي تُعيد حزم اللوغاريتم جاهزة للرسم على canvas.

التوسيط وتثبيت الذروة

مخرج FFT الخام مضطرب — الإطارات الفردية تتذبذب حتى لإشارة جيبية ثابتة، بسبب الضوضاء وطول الإطار المحدود. ثمة تقنيتان للعرض تعالجان ذلك:

التقنية أ
التنعيم الأسي
S[k] = α·|X[k]|² + (1−α)·S_prev[k]. مع α ≈ 0.1–0.3، يُظهر العرض متوسطًا متحركًا يتابع التغيرات البطيئة مع كبت ضوضاء الإطارات. α أعلى = استجابة أسرع، ضوضاء أكثر.
التقنية ب
تثبيت الذروة
الاحتفاظ بمخزن ذروة منفصل P[k] = max(|X[k]|², P_prev[k]). تثبيت الذروة لـ N_hold إطارًا، ثم تلاشٍ تدريجي بمعدل δ ديسيبل/إطار. يكشف الذرى العابرة التي يخفيها التنعيم.

عروض شلال الماء

يُمرّر عرض شلال الماء (أو الطيف الزمني) الزمنَ على أحد المحاور بينما يشغل التردد المحور الآخر، مع ترميز القدرة باللون أو الكثافة. يُضيف كل إطار STFT جديد صفًا (أو عمودًا) للعرض. تُكوّن النتيجة "فيلمًا" ثنائي الأبعاد للطيف يكشف هياكل غير مرئية في عرض إطار واحد: تظهر إشارات التشيرب كخطوط مائلة، والتوافقيات كحزم أفقية متوازية، والتداخل كخطوط عمودية.

عروض شلال الماء قياسية في:

اختيار معاملات STFT عمليًا

كلام صوتي: N = 512–1024، قفز = N/2، نافذة هان. الصوتيات تستمر ~50–100 مللي ثانية لذا دقة زمنية ~10 مللي ثانية (N=512 عند 48 كيلوهرتز) تلتقط الانتقالات جيدًا.

الموسيقى/التحليل التوني: N = 2048–4096، قفز = N/4. الدقة الترددية العالية تكشف الجزئيات؛ التداخل 75% يمنح حركة بصرية سلسة.

المسح العريض لـ SDR: N = 1024–4096، قفز = N (بدون تداخل). معدل الإنتاجية أهم من إعادة البناء؛ معدل التحديث = f_s / N.

مراقبة الاهتزاز: N = 4096–8192، قفز = N/2. الإطارات الطويلة تحل التوافقيات الميكانيكية المتقاربة (التي تفصل بينها أحيانًا بضعة هرتز فقط).

الميزانية الحسابية

يجب على المحلل الآني إتمام إطار FFT واحد قبل وصول القفز التالي. الميزانية الحسابية لكل إطار (بالثواني) هي R / f_s ببساطة. للصوت عند 48 كيلوهرتز مع N = 1024 وR = 512، الميزانية هي 512 / 48000 ≈ 10.7 مللي ثانية. يستغرق FFT حقيقي بحجم 1024 نقطة أقل من 0.1 مللي ثانية على المعالج الحديث — لذا يوجد هامش ضخم للتوسيط وعرض التصوير ومنطق تثبيت الذروة.

لتطبيقات SDR العريضة النطاق التي تعالج عشرات أو مئات من ميغاهرتز، تتضاءل الميزانية بشكل حاد وتصبح FFT المسرّعة بالمعالج الرسومي (cuFFT) ضرورية. يستطيع المعالج الرسومي تشغيل آلاف من FFT بحجم 1024 نقطة بالتوازي، مما يُمكّن من عروض طيف زمني آنية للإشارات التي ستُرهق أي معالج مركزي.

الأفكار الرئيسية
  • تحويل فورييه قصير المدى (STFT) يُطبّق FFT على إطارات منافذة متداخلة، مُنتجًا خريطة زمنية-ترددية لكيفية تطور المحتوى الطيفي.
  • حجم الإطار N يتحكم في الدقة الترددية (Δf = f_s / N)؛ حجم القفز R يتحكم في الدقة الزمنية (Δt = R / f_s). تحسين أحدهما يُضعف الآخر — مبدأ عدم اليقين الزمني-الترددي.
  • نافذة هان هي الاختيار القياسي للتحليل الآني: فصوص جانبية منخفضة، تلاشٍ سلس، وتُحقق شرط COLA عند تداخل 50% لإعادة البناء التامة.
  • محلل الطيف الآني يلتقط العينات في مخزن حلقي، يُطبّق النافذة كل R عينة، يحسب FFT، ويعرض طيف القدرة بالديسيبل — يتكرر بمعدل القفز.
  • التنعيم الأسي يُقلل ضوضاء العرض؛ تثبيت الذروة يكشف الذرى العابرة. كلاهما يُطبَّق بعد FFT لا قبله.
  • عروض شلال الماء تُمرّر الزمن على محور والتردد على آخر، كاشفةً البنية المتغيرة زمنيًا (إشارات التشيرب، التوافقيات، التداخل) التي لا يستطيع الطيف أحادي الإطار إظهارها.
  • المعالجات الحديثة لديها هامش حسابي ضخم لـ STFT بمعدلات الصوت؛ FFT المسرّعة بالمعالج الرسومي (cuFFT) ضرورية لتطبيقات SDR العريضة التي تعالج مئات الميغاهرتز.
الوحدة التالية ما هو مرشح FIR؟ نظرة عامة على الوحدة السابق FFT عمليًا