الطريقة المعيارية لتحويل الـ analog prototypes لـ IIR filters رقمية — بتربط مستوى s كله بمستوى z من غير أي aliasing.
الـ bilinear transform (التحويل الثنائي الخطي) بيعوّض المتغيّر التناظري s بدالة rational في z. طبّق التعويض على H_a(s) وهتاخد H(z) على طول.
كل نقطة في مستوى s بتتربط بنقطة واحدة بس في مستوى z، والعكس. والتلات تقابلات الأساسية:
- النص الشمال (تناظري مستقر) ← جوه دايرة الوحدة (رقمي مستقر)
- المحور التخيلي jΩ → دايرة الوحدة |z| = 1 (الـ frequency response)
- النص اليمين (مش مستقر) ← برا دايرة الوحدة
ضغط ±∞ في ±π مش ببلاش — محور الـ frequency بيتشوّه بشكل مش خطي. قريب من الـ DC التحويل تقريبًا خطي، بس قريب من نايكويست (ω→π) الـ frequencies التناظرية بتتضغط جامد.
صمّم الـ analog prototype عند الـ frequency بعد الـ prewarping Ω_c. وبعد الـ bilinear transform، الـ cutoff الرقمية بتقع بالظبط عند ω_c المستهدفة.
الـ frequencies الحرجة لحواف النطاق بس هي اللي محتاجة prewarping. وطابع الـ response جوه النطاق (equiripple أو monotonic) بيتحفظ.
- الخطوة 1: حدّد الـ filter الرقمي — ω_p، ω_s، δ_p، δ_s
- الخطوة 2: اعمل prewarping لحواف النطاق → Ω_p، Ω_s
- الخطوة 3: صمّم الـ analog prototype (Butterworth / Chebyshev / elliptic) عند الـ frequencies بعد الـ prewarping
- الخطوة 4: طبّق التعويض الـ bilinear عشان تاخد H(z)
ضيف frequency transformation قبل خطوة الـ bilinear transform عشان تصمّم أي نوع من low-pass prototype:
- LP → HP: عوّض s بـ Ω_c / s
- LP → BP: عوّض s بـ (s² + Ω_0²)/(B·s) — بيضاعف الدرجة
- LP → BS: عوّض s بـ B·s/(s² + Ω_0²) — بيضاعف الدرجة برضه
- كل ده بيتعمل لوحده بدوال butter/cheby1/ellip في MATLAB وSciPy
- الـ bilinear transform: s = (2/T)(z−1)/(z+1) — جبري، من غير aliasing
- النص الشمال ← جوه دايرة الوحدة — الاستقرار مضمون
- الـ frequency warping: Ω = (2/T)·tan(ωT/2) بيضغط ±∞ في ±π
- اعمل prewarping للـ frequencies الحرجة عشان الـ cutoff الرقمية تقع بالظبط
- بيشتغل مع كل أنواع الـ filters بتحويلات LP→HP/BP/BS الزيادة
- الـ bilinear transform + الـ analog prototype = طريقة تصميم الـ IIR المعيارية