قراءة
وضع العرض التقديمي

طريقة Windowed-Sinc

~14 دقيقة قراءة الدرس 2 من الوحدة 7

المرشح المثالي وعيبه القاتل

تبدأ كل كتب معالجة الإشارات تصميم مرشحات FIR بنفس التجربة الفكرية: كيف سيبدو المرشح التمريري المنخفض المثالي؟ الجواب نظيف رياضياً — استجابة ترددية مستطيلة تمرر كل الترددات دون ω_c بكسب 1 وتحجب كل شيء فوقها بكسب 0. لا تموج، لا نطاق انتقالي، انحدار فوري.

بأخذ DTFT العكسي لهذه الاستجابة المثالية، نجد الاستجابة النبضية المقابلة لها. إنها دالة sinc:

الاستجابة النبضية للمرشح التمريري المنخفض المثالي
h_{\text{ideal}}[n] = \frac{\omega_c}{\pi}\,\text{sinc}\!\left(\frac{\omega_c n}{\pi}\right) = \frac{\sin(\omega_c n)}{\pi n}
h_ideal[n] غير صفري لجميع n من −∞ إلى +∞. إنه متناظر حول n = 0، يبلغ ذروته ω_c/π عند n = 0، ويتذبذب بسعة متناقصة في الاتجاهين. لا يمكن تطبيقه مباشرةً.

العيب القاتل واضح على الفور: h_ideal[n] لانهائي الطول وغير سببي (يمتد إلى n = −∞). لا يمكن لأي نظام حقيقي تخزين أو معالجة معاملات لا حصر لها. نحتاج إلى استراتيجية لتحويل هذه الاستجابة النبضية المثالية اللانهائية إلى استجابة محدودة وسببية — دون الإخلال بشكل مدمر بالاستجابة الترددية للمرشح. تلك الاستراتيجية هي التبويب (Windowing).

الاقتطاع ودالة التبويب

أبسط طريقة لجعل h_ideal[n] محدوداً هي ضربه في دالة تبويب w[n] تساوي 1 لنطاق محدود من n وصفر في كل مكان آخر. الاستجابة النبضية المبوَّبة الناتجة هي:

معاملات Windowed-Sinc
h[n] = h_{\text{ideal}}[n] \cdot w[n] = \frac{\sin(\omega_c n)}{\pi n} \cdot w[n]
h[n] هي الاستجابة النبضية المبوَّبة. لمرشح بطول N (يُفضَّل N فردياً للتناظر)، يتراوح n من −(N−1)/2 إلى +(N−1)/2، ثم يُزاح بمقدار (N−1)/2 ليصبح المرشح سببياً.

تُخفِّف دالة التبويب w[n] بشكل سلس من قيمة sinc إلى صفر عند حوافها بدلاً من قطعها فجأة. هذا التخفيف ضروري: القطع المفاجئ بنافذة مستطيلة يُنشئ تموجاً شديداً في الاستجابة الترددية (ظاهرة Gibbs)، بينما يُقايض التخفيف السلس بعض تخميد نطاق الإيقاف بتجنب هذا التموج.

خطوات التصميم

يتضمن تصميم مرشح FIR بطريقة windowed-sinc أربع خطوات محددة:

الخطوة 1
تحديد المرشح
اختر نوع المرشح (تمريري منخفض، مرتفع، ...)، وتردد القطع ω_c، وترتيب المرشح M (الطول N = M+1)، وتخميد نطاق الإيقاف المقبول بالديسيبل.
الخطوة 2
اختيار دالة التبويب
بناءً على تخميد نطاق الإيقاف المطلوب، اختر دالة تبويب (مستطيلة، Hann، Hamming، Blackman، أو Kaiser). التخميد الأعلى يستلزم دالة تبويب أثقل ونطاقاً انتقالياً أوسع.
الخطوة 3
حساب قيم sinc
احسب h_ideal[n] = sin(ω_c · n) / (π · n) لـ n = −M/2 إلى +M/2، مع h_ideal[0] = ω_c/π كحد. هذا يُعطي M+1 قيمة مُمركَزة حول الصفر.
الخطوة 4
تطبيق التبويب والإزاحة
اضرب عنصراً بعنصر في w[n]، ثم أزح المؤشرات ليبدأ المعامل الأول عند n = 0 (مما يجعل المرشح سببياً). النتيجة مرشح FIR متناظر ذو طور خطي.

اختيار دالة التبويب المناسبة

دالة التبويب هي مقبض التصميم الرئيسي. تقدم دوال التبويب المختلفة مقايضات مختلفة بين عرض الفص الرئيسي (الذي يتحكم في عرض النطاق الانتقالي) ومستوى الفص الجانبي الأقصى (الذي يتحكم في تخميد نطاق الإيقاف). وأرقام الفص الجانبي الأقصى أدناه تتبع Harris (1978)، وهو المصدر نفسه المستخدم في الوحدة 5 — فجداول دوال التبويب في المراجع تختلف بديسيبل أو اثنين حسب المصدر.

دالة التبويب الفص الجانبي الأقصى (dB) أدنى تخميد نطاق الإيقاف (dB) عرض الانتقال
مستطيلة −13 21 0.9/N
Hann −31 44 3.1/N
Hamming −43 53 3.3/N
Blackman −58 74 5.5/N
Kaiser (β = 8.6) −63 80+ قابل للضبط
كمّيتان مختلفتان في جدول واحد

عمود الفص الجانبي الأقصى يخصّ دالة التبويب w[n] وحدها: فهو أعلى تمويج في |W(ejω)| منسوباً إلى الفص الرئيسي. أما عمود أدنى تخميد لنطاق الإيقاف فيخصّ المرشح المكتمل بعد ضرب دالة التبويب في الـsinc المثالي، وهو العمود الذي تستخدمه قواعد الرتبة أدناه. وليسا الرقم نفسه ولا يقتربان منه.

وأوضح مثال هو Kaiser عند β = 8.6. فصّه الجانبي الأقصى مقيس عند −63 dB، بينما قاعدة تصميم Kaiser وهي β = 0.1102(A − 8.7) تُعطي بالعكس A ≈ 87 dB من تخميد نطاق الإيقاف — أي بفارق نحو 24 dB. فإن قابلت رقماً للفص الجانبي لـKaiser قريباً من −70 dB، فذلك عمود التخميد قد تسرّب إلى عمود الفص الجانبي.

الفص الجانبي صفة لـw[n]. وتخميد نطاق الإيقاف صفة للمرشح الذي بنيته بها.

نافذة Hamming هي الاختيار الأكثر شيوعاً للأغراض العامة: تحقق 53 ديسيبل من تخميد نطاق الإيقاف — كافٍ لمعظم تطبيقات الصوت والقياسات — مع نطاق انتقالي معتدل. عند الحاجة إلى تخميد أكبر، انتقل إلى Blackman أو Kaiser. عندما يجب أن يكون النطاق الانتقالي ضيقاً قدر الإمكان والتموج مقبول، استخدم النافذة المستطيلة.

اختيار ترتيب المرشح

بالنسبة لدالة تبويب معينة، يتحكم ترتيب المرشح M (عدد المعاملات = M+1) مباشرةً في عرض النطاق الانتقالي Δω (بالراديان في العينة). كلما ضاق النطاق الانتقالي، كان الترتيب المطلوب أعلى والحوسبة أكثر لكل عينة. قاعدة تقريبية للنوافذ الشائعة:

تقدير ترتيب المرشح
M \approx \frac{A \cdot 0.9}{\Delta f} \quad (\text{Hamming}), \qquad M \approx \frac{A - 8}{2.285\,\Delta\omega} \quad (\text{Kaiser})
A هو تخميد نطاق الإيقاف بالديسيبل، Δf هو عرض النطاق الانتقالي كنسبة من معدل الأخذ (أي Δω / (2π))، وM هو ترتيب المرشح. قرّب للأعلى إلى أقرب عدد صحيح فردي للحفاظ على التناظر.

على سبيل المثال، مرشح مبوَّب بـ Hamming (A ≈ 53 ديسيبل) بعرض نطاق انتقالي Δf = 0.05 (مثلاً 2.4 كيلوهرتز عند معدل أخذ 48 كيلوهرتز) يتطلب M ≈ 53 × 0.9 / 0.05 = 954، أي 955 معاملاً. هذا قابل للإدارة للمعالجة غير الآنية أو تطبيق overlap-add بتحويل FFT، لكنه قد يكون مكلفاً للحلقة الآنية المضمَّنة الضيقة.

المقايضة بين التخميد والترتيب

لا يمكنك تحقيق نطاق انتقالي ضيق وتخميد عالي لنطاق الإيقاف معاً بمرشح قصير. للحصول على كليهما، يجب زيادة M. هذه المقايضة التصميمية الأساسية: كل ديسيبل إضافي من تخميد نطاق الإيقاف أو تنصيف عرض الانتقال يضاعف طول المرشح تقريباً.

مواصفات أفضل ← مرشح أطول ← حوسبة أكثر. لا وجبة مجانية.

نافذة Kaiser — التحكم المتغيّر

جميع النوافذ التي ناقشناها حتى الآن لها أشكال ثابتة. نافذة Kaiser فريدة لأنها مُقدَّرة بمعامل واحد β يُغيّر باستمرار المقايضة بين عرض الفص الرئيسي ومستوى الفص الجانبي. زيادة β تزيد التخميد وتوسّع النطاق الانتقالي؛ تقليله يفعل العكس. عند β = 0، تتحول نافذة Kaiser إلى نافذة مستطيلة.

بمعطى هدف تخميد نطاق الإيقاف A (بالديسيبل)، يمكن حساب معامل نافذة Kaiser وترتيب المرشح تحليلياً:

صيغة β
معامل شكل النافذة
β = 0.1102 · (A − 8.7) لـ A > 50 ديسيبل؛ β = 0.5842 · (A−21)^0.4 + 0.07886 · (A−21) لـ 21 ≤ A ≤ 50؛ β = 0 لـ A < 21.
صيغة الترتيب
طول المرشح
M = (A − 8) / (2.285 · Δω)، حيث Δω هو عرض الانتقال بالراديان. قرّب للأعلى إلى أقرب عدد صحيح (فردي إن أمكن).

تُنفَّذ نافذة Kaiser باستخدام دالة Bessel المعدَّلة من الرتبة الصفرية I₀(·)، المتاحة في كل مكتبة حوسبة علمية. إنها النافذة المُفضَّلة عندما تكون متطلبات تخميد نطاق الإيقاف صارمة أو يجب تحقيقها بدقة.

طريقة أخذ عينات التردد — مسار تصميم بديل

تنطلق طريقة windowed-sinc من الاستجابة النبضية المثالية في نطاق الزمن وتطبّق عليها نافذة. طريقة أخذ عينات التردد تسلك المسار المعاكس: تحديد الاستجابة الترددية المرغوبة مباشرةً عند N ترددات متباعدة بالتساوي، ثم أخذ IDFT للحصول على الاستجابة النبضية.

الناتج مرشح FIR بطول N تتطابق استجابته الترددية بالضبط مع القيم المحددة عند ترددات التصميم — خاصية جذابة عندما تحتاج إلى تحكم دقيق عند ترددات بعينها (مثل منحنيات المعادِل). العيب أن الاستجابة الترددية تتذبذب بشكل غير منتظم بين نقاط التصميم ما لم تُحسَّن عينات الانتقال بعناية، غالباً بإضافة عدد صغير من "عينات انتقال" مُحسَّنة بين ترددات النطاقَين.

Windowed-Sinc في التطبيق العملي

طريقة windowed-sinc هي الأداة الرئيسية لتصميم مرشحات FIR. تُستخدم عندما:

الصوت
معادِل تمريري منخفض / نطاقي
تُشكّل مرشحات FIR ذات الطور الخطي (Hamming أو Kaiser) محتوى الترددات الصوتية دون إدخال تشويه طور مسموع — حرج للإتقان والإنتاج اللاحق.
تعدد المعدلات
مكافحة التضمين والاستيفاء
تستخدم مرشحات التخفيض والاستيفاء في محولات معدل الأخذ تصاميم windowed-sinc لتخميد منتظم ومضمون لصور الطيف والتضمينات.
الاتصالات
مرشحات القاعدة في SDR
مرشحات القاعدة في أجهزة الراديو المعرَّف برمجياً وشرائح 5G NR هي تصاميم windowed-sinc — يمنع تخميد نطاق الإيقاف تداخل القنوات المجاورة.
الطبي الحيوي
عزل نطاقات EEG / ECG
عزل نطاقات موجات الدماغ (دلتا، ثيتا، ألفا، بيتا) من EEG يستخدم مرشحات windowed-sinc النطاقية — الطور الخطي ضروري للحفاظ على توقيت الموجة.
النقاط الرئيسية
  • المرشح التمريري المنخفض المثالي له استجابة نبضية sinc لانهائية الطول وغير سببية — لا يمكن تطبيقها مباشرةً.
  • التبويب يضرب الـ sinc المثالي في تخفيف محدود الطول لإنتاج مرشح FIR عملي: h[n] = h_ideal[n] · w[n].
  • الخطوات الأربع للتصميم: تحديد المتطلبات ← اختيار النافذة ← حساب sinc ← تطبيق النافذة والإزاحة لجعل المرشح سببياً.
  • اختيار النافذة يحدد المقايضة: المستطيلة تعطي أضيق نطاق انتقالي لكن فقط 21 ديسيبل تخميداً؛ Kaiser قابل للضبط ويمكنه تحقيق 80+ ديسيبل.
  • Hamming هو الاختيار القياسي للأغراض العامة: 53 ديسيبل تخميد لنطاق الإيقاف مع نطاق انتقالي محكوم.
  • ترتيب المرشح M يتناسب عكسياً مع عرض النطاق الانتقالي — تنصيف Δf يضاعف عدد المعاملات تقريباً.
  • نافذة Kaiser مُقدَّرة بـ β وتسمح بحساب M وβ تحليلياً من مواصفة نطاق الإيقاف.
  • أخذ عينات التردد مسار بديل يحدد الاستجابة الترددية مباشرةً عند N نقطة ويستخدم IDFT لإيجاد المعاملات.
التالي أنواع المرشحات نظرة عامة على الوحدة السابق ما هو مرشح FIR؟