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

Butterworth وChebyshev والـ elliptic filters

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

عائلات الـ 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 هو:

الـ magnitude response بتاع Butterworth
|H(j\Omega)|^2 = \frac{1}{1 + \left(\dfrac{\Omega}{\Omega_c}\right)^{2N}}
N هي درجة الـ filter وΩ_c هي الـ cutoff frequency (نقطة الـ −3 ديسيبل). الـ response مفرود تمامًا عند Ω = 0 وبينزل بمعدّل −20N ديسيبل/decade في الـ stopband. وكل تفاضلات الـ magnitude عند Ω = 0 بتساوي صفر — ومن هنا جه اسم "maximally flat".

الـ poles بتوع Butterworth واقعة على دايرة نص قطرها Ω_c في مستوى s، متوزّعة بالتساوي في الزاوية. وعشان تاخد filter مستقر، بتحتفظ بالـ poles اللي في النص الشمال بس. والنتيجة نزول ناعم monotonic — متوقّع وسلوكه كويس، بس مش أحدّ انتقال لدرجة معيّنة.

إمتى تختار Butterworth؟

اختار 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:

الـ magnitude بتاع Chebyshev النوع الأول
|H(j\Omega)|^2 = \frac{1}{1 + \varepsilon^2\, T_N^2\!\left(\dfrac{\Omega}{\Omega_c}\right)}
ε بيتحكّم في amplitude الـ passband ripple (الـ ripple = 10·log₁₀(1 + ε²) ديسيبل). وT_N(Ω/Ω_c) هو الـ Chebyshev polynomial من الدرجة N، اللي بيتذبذب بين ±1 لـ |Ω| ≤ Ω_c وبيكبر برّاه بشكل monotonic.

Chebyshev النوع التاني (الـ inverse) بيقلب ده: ليه passband مفرود وequiripple في الـ stopband. والـ stopband ripple عند مستوى attenuation أدنى ثابت، والـ passband monotonic. والنوع التاني مفيد لما تكون عايز سلوك زي Butterworth في الـ passband مع قطع أحدّ من Butterworth لنفس الدرجة.

النوع الأول
الـ passband ripple
ripple في الـ passband؛ وstopband monotonic. انتقال أحدّ من Butterworth لنفس الدرجة. وamplitude الـ ripple parameter تصميم (مثلًا 0.5 ديسيبل، 1 ديسيبل، 3 ديسيبل).
النوع التاني
الـ stopband ripple
passband مفرود؛ وripple في الـ stopband. zeros محدودة في الـ stopband بتعمل notches. بيتصرّف زي Butterworth جوه النطاق بس بـ attenuation أحسن في الـ stopband.

الـ elliptic (Cauer): الأحدّ على الإطلاق

الـ elliptic filter — واسمه كمان Cauer filter — هو الأقوى بين التلاتة. بيحط الـ equiripple في الـ passband والـ stopband الاتنين في نفس الوقت. ولأنه بيستخدم ميزانية الـ passband ripple والـ stopband ripple مع بعض، بيوصل لـ أحدّ انتقال ممكن لدرجة filter معيّنة. ومفيش نوع filter تاني يقدر يحقق نفس مواصفات الـ passband/stopband بدرجة أقل.

صيغة درجة الـ elliptic filter
N \geq \frac{K(k)\, K\!\left(\sqrt{1-k_1^2}\right)}{K(k_1)\, K\!\left(\sqrt{1-k^2}\right)}, \quad k = \frac{\Omega_p}{\Omega_s},\; k_1 = \frac{\varepsilon_p}{\varepsilon_s}
K(·) هو الـ complete elliptic integral من النوع الأول. وε_p وε_s هما parameters الـ passband ripple والـ stopband ripple. والصيغة دي بتدّي أقل درجة صحيحة N محتاجها عشان تحقق المواصفتين في نفس الوقت.

الـ 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 المختلفة بتتأخر — بيبقى أكتر تفاوت:

أحسن phase
Butterworth
الـ phase الأقرب للـ linear بين عائلات الـ IIR الكلاسيكية التلاتة. تفاوت الـ group delay معتدل نسبيًا، خصوصًا بعيد عن الـ cutoff frequency. أخف المقايضات.
متوسط
Chebyshev I وII
phase distortion أكبر من Butterworth، خصوصًا قريب من الـ cutoff frequency. والنوع التاني بيميل لسلوك phase أحسن من النوع الأول لنفس الدرجة.
أوحش phase
الـ elliptic
أشد تفاوت في الـ group delay، خصوصًا في الـ transition band. تمن كفاءة أقل درجة. مش مقبول للتطبيقات الحساسة للـ phase.
بديل
Bessel / Thomson
عيلة رابعة مش متغطّية هنا: متصمّمة لأقصى استواء في الـ group delay (تقريب للـ linear phase). وانتقائية الـ magnitude فيها ضعيفة جدًا — بتتستخدم بس لما الـ phase يبقى الهدف الوحيد.

ملخص مقايضة التصميم

مفيش عيلة 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 رقمية مكافئة.
اللي بعده الـ bilinear transform (التحويل الثنائي الخطي) نظرة عامة على الموديول اللي فات يعني إيه IIR filter؟