الـ sample rate conversion
ادمج الـ upsampling بـ L مع الـ decimation بـ M عشان تحوّل بـ أي نسبة كسرية — هيكل polyphase واحد وكفء، ومفيش داعي للمعدل الوسيط.
ليه نحوّل المعدلات؟
الـ upsampling/الـ downsampling الصحيح بيغطّي المضاعفات بس. والأنظمة الحقيقية محتاجة نسب كسرية arbitrary: CD ↔ محطة شغل، اختيار قناة في SDR، ترميز الفيديو.
سلسلة الـ cascade
upsampling بـ L ← low-pass filter واحد ← decimation بـ M. والـ filter بيعمل الدورين: بيشيل الـ images وبيمنع الـ aliasing.
44.1 ↔ 48 كيلوهرتز
- النسبة: 48000 / 44100 = 160 / 147
- upsampling بـ L = 160 ← معدل وسيط 7.056 ميجاهرتز
- decimation بـ M = 147 ← خرج بـ 48 كيلوهرتز
- الـ polyphase بيتجنّب حساب معدل الـ 7 ميجاهرتز خالص
filter واحد لدورين
الـ cutoff = π/max(L, M). الـ gain = L. الـ stopband attenuation ≥ 80 ديسيبل للصوت (120 ديسيبل للعالي الدقة). والـ equiripple FIR filter بطريقة Parks-McClellan هو الاختيار المعياري.
ظبّط L وM
غيّر L وM عشان تستكشف معدل الخرج والـ cutoff بتاع الـ filter. المنطقة الكهرمانية هي الـ passband؛ والحمرا بتبيّن منطقة الـ aliasing/الـ images.
الـ polyphase SRC
حلّل الـ filter اللي فيه N معامل لـ L فرع. ولكل sample خرج، احسب فرع واحد بس فيه N/L معامل. واتقدّم على الفروع بخطوة M mod L.
الـ asynchronous SRC
لما النسبة تنجرف (clocks مستقلة، jitter الشبكة)، الـ fractional phase accumulator بيختار الفرع الـ polyphase الصح عند كل لحظة خرج — وبيتعامل مع أي نسبة باستمرار.
- راكم الـ phase بدقة عالية بـ fixed-point
- الجزء الصحيح ← index الـ sample في الدخل
- الجزء الكسري ← بيختار الفرع الـ polyphase
- بيتستخدم في AES67 وDante والـ front-ends بتاعة SDR
الـ SRC بيظهر فين؟
- الصوت الاحترافي: كل محطة شغل بتحوّل بين 44.1 و48 و88.2 و96 كيلوهرتز بسلاسة
- SDR: ADC عريض النطاق ← قناة ضيقة بمعدل arbitrary
- الفيديو: ترميز 23.976 ↔ 25 ↔ 29.97 ↔ 60 frame/ثانية
- الاتصالات: الربط بين chips شبكات بمعدلات clock مختلفة
الـ filter banks
تقسيم الـ signal العريضة النطاق لـ subbands بـ analysis وsynthesis filter banks — أساس الـ audio codecs والـ OFDM والـ wavelets.