عائلات الـ filters الكلاسيكية
بعد ما فهمنا بنية الـ IIR filter — transfer function rational H(z) = B(z)/A(z) ليها poles بتحقق انتقائية حادة في الـ frequency — بييجي السؤال اللي بعده: نحط الـ poles دي فين بالظبط؟ ونظرية الـ filters التناظرية الكلاسيكية بتجاوب على ده بتلات عائلات مشهورة: Butterworth، وChebyshev، والـ elliptic. كل واحدة بتعمل مقايضة مختلفة بين الاستواء والحدّة وسلوك الـ phase، وكل واحدة هي "الأحسن" لتركيبة معيّنة من الأولويات.
العائلات دي اتطوّرت للدواير التناظرية، بس لأن الـ bilinear transform (التحويل الخطي المتحيز) (الدرس الجاي) بيودّي الـ poles والـ zeros التناظرية على طول لنظيراتها الرقمية، فإنك تتقن الـ analog prototypes هو الطريق المعياري لتصميم الـ IIR filters الرقمية. المهندسين غالبًا مبيصمّموش الـ IIR filters الرقمية من الصفر — بيصمّموا analog prototypes وبعدين يحوّلوها.
Butterworth: أقصى استواء
الـ Butterworth filter هو الأهدى بين التلاتة. خاصيته المميزة هي magnitude response مفرود لأقصى حد في الـ passband — مفيش ripple خالص. ومربّع magnitude الـ Butterworth low-pass filter من الدرجة N هو:
الـ poles بتوع Butterworth واقعة على دايرة نص قطرها Ω_c في مستوى s، متوزّعة بالتساوي في الزاوية. وعشان تاخد filter مستقر، بتحتفظ بالـ poles اللي في النص الشمال بس. والنتيجة نزول ناعم monotonic — متوقّع وسلوكه كويس، بس مش أحدّ انتقال لدرجة معيّنة.
اختار Butterworth لما الاستواء في الـ passband يبقى أهم من حدّة الانتقال. الاستخدامات المعتادة: الـ anti-aliasing filters للـ audio ADCs، والـ smoothing filters في أنظمة التحكم، وأي تطبيق لازم تقلّل فيه تشويه الـ magnitude والـ phase جوه النطاق.
monotonic في الـ passband والـ stopband الاتنين — مفيش ripple في أي حتةChebyshev: ripple قصاد حدّة
الـ Chebyshev filter بيقايض استواء الـ Butterworth بانتقال أحدّ. بيسمح بـ الـ equiripple (التموّج المتساوي) — تذبذب متحكّم فيه بـ amplitude متساوي — في نطاق واحد، فبيركّز "ميزانية" الـ filter على إنه يخلّي الانتقال أحدّ ما يمكن.
Chebyshev النوع الأول بيحط الـ equiripple في الـ passband والـ stopband بيبقى monotonic. والـ magnitude response بتاعه بيتعرّف باستخدام الـ Chebyshev polynomials T_N:
Chebyshev النوع التاني (الـ inverse) بيقلب ده: ليه passband مفرود وequiripple في الـ stopband. والـ stopband ripple عند مستوى attenuation أدنى ثابت، والـ passband monotonic. والنوع التاني مفيد لما تكون عايز سلوك زي Butterworth في الـ passband مع قطع أحدّ من Butterworth لنفس الدرجة.
الـ elliptic (Cauer): الأحدّ على الإطلاق
الـ elliptic filter — واسمه كمان Cauer filter — هو الأقوى بين التلاتة. بيحط الـ equiripple في الـ passband والـ stopband الاتنين في نفس الوقت. ولأنه بيستخدم ميزانية الـ passband ripple والـ stopband ripple مع بعض، بيوصل لـ أحدّ انتقال ممكن لدرجة filter معيّنة. ومفيش نوع filter تاني يقدر يحقق نفس مواصفات الـ passband/stopband بدرجة أقل.
الـ elliptic filter بيحط الـ zeros بتاعته عند frequencies محدودة في الـ stopband، فبيعمل notches حادة بتنزّل الـ response في الـ stopband بسرعة. وأماكن الـ poles والـ zeros بتتحدّد مع بعض باستخدام رياضيات الـ elliptic functions — معقّدة بس متجدولة كويس وبتتعمل لوحدها بأدوات التصميم زي دالة ellip() في MATLAB.
لأي passband ripple وstopband attenuation ونسبة انتقال، الـ elliptic filter محتاج أقل درجة ممكنة. والمقايضة إن الـ phase بتاعه هو الأكتر بعدًا عن الـ linear بين العائلات التلاتة وأعلى حساسية للـ quantization بتاع المعاملات.
equiripple في الـ passband + equiripple في الـ stopband = أقل درجة لأي مواصفةمقارنة الدرجات
الأثر العملي لفلسفات التصميم دي مدهش لما تقارن الدرجات المطلوبة عشان تحقق نفس المواصفة:
| المواصفة | درجة Butterworth | درجة Chebyshev I | درجة الـ elliptic |
|---|---|---|---|
| ripple 1 ديسيبل، attenuation 40 ديسيبل، نسبة frequency 2× | 8 | 5 | 4 |
| ripple 0.5 ديسيبل، attenuation 60 ديسيبل، نسبة 1.5× | 20 | 9 | 6 |
| ripple 3 ديسيبل، attenuation 80 ديسيبل، نسبة 1.2× (انتقال ضيق) | 51 | 16 | 9 |
التوفير مش معامل ثابت — بيكبر كل ما الانتقال يضيق، وده بالظبط المكان اللي بيفرق فيه بجد. فبالمقارنة مع Butterworth، التصميم الـ elliptic في الجدول اللي فوق محتاج نص عدد الـ poles عند نسبة انتقال 2:1 (8 → 4)، وأقل من التلت عند 1.5:1 (20 → 6)، وأقل من الخُمس عند 1.2:1 (51 → 9) — يعني نسب 2.0× و3.3× و5.7×. ولتنفيذات DSP مواردها محدودة، دي ميزة حاسمة.
مقارنة الـ phase والـ group delay
الحدّة والـ linear phase في تعارض جوهري في تصميم الـ IIR. كل ما انتقال الـ filter يبقى أحدّ، الـ group delay — قد إيه الـ frequencies المختلفة بتتأخر — بيبقى أكتر تفاوت:
ملخص مقايضة التصميم
مفيش عيلة filters واحدة بتكسب في كل حاجة. والاختيار الصح معتمد على الخصائص اللي التطبيق بتاعك يقدر يستحملها قصاد اللي محتاجها:
| العيلة | الـ passband | الـ stopband | الـ phase | كفاءة الدرجة |
|---|---|---|---|---|
| Butterworth | مفرود | monotonic | الأحسن | الأقل |
| Chebyshev I | equiripple | monotonic | متوسط | كويس |
| Chebyshev II | مفرود | equiripple | متوسط | كويس |
| الـ elliptic | equiripple | equiripple | الأوحش | الأعلى |
- الـ Butterworth maximally flat — مفيش ripple في الـ passband ولا الـ stopband — وليه أنعم phase، بس محتاج أعلى درجة لأي مواصفة.
- Chebyshev النوع الأول بيسمح بـ equiripple في الـ passband عشان يوصل لانتقال أحدّ؛ والنوع التاني بيحط الـ ripple في الـ stopband عشان passband مفرود ورفض أحسن في الـ stopband.
- الـ elliptic (Cauer) filters ليها equiripple في النطاقين وبتوصل لأحدّ انتقال ممكن لدرجة معيّنة — حل أقل درجة لأي مواصفة.
- تمن الحدّة هو الـ phase distortion: الـ Butterworth الـ phase بتاعه الأقرب للـ linear، والـ elliptic عنده أشد تفاوت في الـ group delay.
- الـ elliptic filter محتاج poles أقل من Butterworth بحوالي 2× عند نسبة انتقال واسعة، ولحد حوالي 6× عند نسبة ضيقة — والتوفير بيزيد مع صعوبة المواصفة، فبيبقى أكبر حاجة في المكان اللي التكلفة فيه بتوجع: الـ DSP قليل الطاقة واللحظي.
- عمليًا، المهندسين بيستخدموا أدوات التصميم (
butter()،cheby1()،cheby2()،ellip()في MATLAB) عشان يطلّعوا المعاملات، وبعدين يتأكّدوا من الأداء بإنهم يبصّوا على الـ pole-zero plot والـ frequency response. - الخطوة اللي بعد كده هي الـ bilinear transform — اللي بيودّي الـ analog prototype filters دي لـ IIR filters رقمية مكافئة.