المرشح المثالي وعيبه القاتل
تبدأ كل كتب معالجة الإشارات تصميم مرشحات FIR بنفس التجربة الفكرية: كيف سيبدو المرشح التمريري المنخفض المثالي؟ الجواب نظيف رياضياً — استجابة ترددية مستطيلة تمرر كل الترددات دون ω_c بكسب 1 وتحجب كل شيء فوقها بكسب 0. لا تموج، لا نطاق انتقالي، انحدار فوري.
بأخذ DTFT العكسي لهذه الاستجابة المثالية، نجد الاستجابة النبضية المقابلة لها. إنها دالة sinc:
العيب القاتل واضح على الفور: h_ideal[n] لانهائي الطول وغير سببي (يمتد إلى n = −∞). لا يمكن لأي نظام حقيقي تخزين أو معالجة معاملات لا حصر لها. نحتاج إلى استراتيجية لتحويل هذه الاستجابة النبضية المثالية اللانهائية إلى استجابة محدودة وسببية — دون الإخلال بشكل مدمر بالاستجابة الترددية للمرشح. تلك الاستراتيجية هي التبويب (Windowing).
الاقتطاع ودالة التبويب
أبسط طريقة لجعل h_ideal[n] محدوداً هي ضربه في دالة تبويب w[n] تساوي 1 لنطاق محدود من n وصفر في كل مكان آخر. الاستجابة النبضية المبوَّبة الناتجة هي:
تُخفِّف دالة التبويب w[n] بشكل سلس من قيمة sinc إلى صفر عند حوافها بدلاً من قطعها فجأة. هذا التخفيف ضروري: القطع المفاجئ بنافذة مستطيلة يُنشئ تموجاً شديداً في الاستجابة الترددية (ظاهرة Gibbs)، بينما يُقايض التخفيف السلس بعض تخميد نطاق الإيقاف بتجنب هذا التموج.
خطوات التصميم
يتضمن تصميم مرشح FIR بطريقة windowed-sinc أربع خطوات محددة:
اختيار دالة التبويب المناسبة
دالة التبويب هي مقبض التصميم الرئيسي. تقدم دوال التبويب المختلفة مقايضات مختلفة بين عرض الفص الرئيسي (الذي يتحكم في عرض النطاق الانتقالي) ومستوى الفص الجانبي الأقصى (الذي يتحكم في تخميد نطاق الإيقاف). وأرقام الفص الجانبي الأقصى أدناه تتبع 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) مباشرةً في عرض النطاق الانتقالي Δω (بالراديان في العينة). كلما ضاق النطاق الانتقالي، كان الترتيب المطلوب أعلى والحوسبة أكثر لكل عينة. قاعدة تقريبية للنوافذ الشائعة:
على سبيل المثال، مرشح مبوَّب بـ 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 وترتيب المرشح تحليلياً:
تُنفَّذ نافذة Kaiser باستخدام دالة Bessel المعدَّلة من الرتبة الصفرية I₀(·)، المتاحة في كل مكتبة حوسبة علمية. إنها النافذة المُفضَّلة عندما تكون متطلبات تخميد نطاق الإيقاف صارمة أو يجب تحقيقها بدقة.
طريقة أخذ عينات التردد — مسار تصميم بديل
تنطلق طريقة windowed-sinc من الاستجابة النبضية المثالية في نطاق الزمن وتطبّق عليها نافذة. طريقة أخذ عينات التردد تسلك المسار المعاكس: تحديد الاستجابة الترددية المرغوبة مباشرةً عند N ترددات متباعدة بالتساوي، ثم أخذ IDFT للحصول على الاستجابة النبضية.
الناتج مرشح FIR بطول N تتطابق استجابته الترددية بالضبط مع القيم المحددة عند ترددات التصميم — خاصية جذابة عندما تحتاج إلى تحكم دقيق عند ترددات بعينها (مثل منحنيات المعادِل). العيب أن الاستجابة الترددية تتذبذب بشكل غير منتظم بين نقاط التصميم ما لم تُحسَّن عينات الانتقال بعناية، غالباً بإضافة عدد صغير من "عينات انتقال" مُحسَّنة بين ترددات النطاقَين.
Windowed-Sinc في التطبيق العملي
طريقة windowed-sinc هي الأداة الرئيسية لتصميم مرشحات FIR. تُستخدم عندما:
- المرشح التمريري المنخفض المثالي له استجابة نبضية sinc لانهائية الطول وغير سببية — لا يمكن تطبيقها مباشرةً.
- التبويب يضرب الـ sinc المثالي في تخفيف محدود الطول لإنتاج مرشح FIR عملي: h[n] = h_ideal[n] · w[n].
- الخطوات الأربع للتصميم: تحديد المتطلبات ← اختيار النافذة ← حساب sinc ← تطبيق النافذة والإزاحة لجعل المرشح سببياً.
- اختيار النافذة يحدد المقايضة: المستطيلة تعطي أضيق نطاق انتقالي لكن فقط 21 ديسيبل تخميداً؛ Kaiser قابل للضبط ويمكنه تحقيق 80+ ديسيبل.
- Hamming هو الاختيار القياسي للأغراض العامة: 53 ديسيبل تخميد لنطاق الإيقاف مع نطاق انتقالي محكوم.
- ترتيب المرشح M يتناسب عكسياً مع عرض النطاق الانتقالي — تنصيف Δf يضاعف عدد المعاملات تقريباً.
- نافذة Kaiser مُقدَّرة بـ β وتسمح بحساب M وβ تحليلياً من مواصفة نطاق الإيقاف.
- أخذ عينات التردد مسار بديل يحدد الاستجابة الترددية مباشرةً عند N نقطة ويستخدم IDFT لإيجاد المعاملات.