الفلاتر العملية
عرفنا أن أي فلتر = التفاف مع استجابة نبضية، وأن الالتفاف الزمني = ضرب ترددي. الآن نعكس السؤال: كيف نصمّم معاملات فلتر ليمرّر ترددات ويمنع أخرى بالضبط — تمرير منخفض، تمرير نطاق، حذف طنين؟ هنا يعيش بناء "الفلاتر المتقدّمة".
تسجيلٌ ملوّث بطنين كهربائي ثابت عند ٥٠ هرتز (هَمّ المحوّلات). تريد حذف الـ٥٠ هرتز بالضبط وإبقاء كل شيء آخر سليماً.
من العقدة ٠٣: الفلتر = ضرب في الاستجابة الترددية H(f). إذن تريد
H(50)=0 وH(f)=1 لبقية الترددات. كيف تبني
معاملات (أرقاماً قليلة) تُنتج هذا الشكل الترددي؟ وما ثمن جعل الحفرة عند
٥٠ ضيّقة جداً مقابل عريضة؟ وهل تريد فلتراً يستعمل عيّنات الدخل فقط، أم
يعيد استخدام مخرجاته السابقة (تغذية راجعة)؟ لكلٍّ ثمن.
عائلتان: FIR و IIR
| النوع | المعادلة | الطبع |
|---|---|---|
| FIR (استجابة نبضية محدودة) | y[n]=Σ bₖ x[n−k] | دخل فقط؛ مستقرّ دائماً؛ طور خطّي ممكن؛ يحتاج معاملات كثيرة لحوافّ حادّة |
| IIR (لانهائية) | y[n]=Σ bₖx[n−k] − Σ aₖy[n−k] | تغذية راجعة؛ حادّ بمعاملات قليلة؛ قد يصبح غير مستقرّ؛ طور غير خطّي |
FIR يبني الاستجابة النبضية صراحةً (هي المعاملات bₖ نفسها!). IIR
يعيد حقن مخرجاته فيصنع رنيناً حادّاً برقمين-ثلاثة — لكنه يخاطر بعدم الاستقرار
(مخرج ينفجر).
الاستجابة الترددية — ماذا يفعل الفلتر فعلاً
لتعرف ما يفعله الفلتر، انظر H(f) = FFT(h): المقدار عند كل تردد =
"كم يمرّ منه". تصميم الفلتر = تشكيل هذا المنحنى.
|H(f)| لمعاملات بسيطة. تصميم الفلتر = نحت هذا الشكل.تحويل z يعمّم فورييه: يضع الترددات على دائرة الوحدة في المستوى المركّب.
معاملات الفلتر تخلق أصفاراً (zeros) تسحب الاستجابة لأسفل و
أقطاباً (poles) ترفعها. لحذف ٥٠Hz: ضع صفراً بالضبط على
الدائرة عند زاوية ٥٠Hz → H(50)=0. لجعل الحفرة ضيّقة: ضع قطباً
قربه يرفع كل ما حوله. قرب القطب من الدائرة = حفرة أضيق لكن أقرب لعدم الاستقرار.
هذا حلّ اللغز: notch = صفر على الدائرة + قطب قريب؛ وثمن الضيق هو
المخاطرة بالاستقرار وطول الرنين.
كثيرون يصمّمون فلتراً بمقدار صحيح وينسون الطور. فلتر IIR يزيح ترددات مختلفة بمقادير مختلفة (تشويه طور) — كارثيّ في تطبيقات تهمّها الشكل الزمني (الموسيقى الانتقالية، القياسات). FIR متناظر يعطي طوراً خطّياً (إزاحة زمنية موحّدة فقط). اختر النوع حسب ما إن كان الطور يهمّك. الخطأ جذره: التعامل مع الفلتر كـ"مقدار فقط".
- نفّذ فلتر FIR عاماً (التفاف بالمعاملات من العقدة ٠٣). صمّم low-pass بطريقة "windowed sinc":
h[n]=sinc(2fc(n−M/2))·window. طبّقه على إشارة فيها نغمتان (واحدة فوقfc) وتحقّق أن العالية انخفضت. - ابنِ notch لحذف 50Hz: صفر عند زاوية
θ=2π·50/fₛ(FIR من صفرين مترافقين)، ثم نسخة IIR بقطبين قريبين. طبّق على إشارة مضاف لها طنين 50Hz، وأرِ أن الطنين اختفى. قارن عرض الحفرة بين FIR وIIR. - ارسم
|FFT(h)|لكل فلتر وتحقّق أنه يطابق ما تصمّمه. - الاستقرار: في الـIIR notch، قرّب القطب من الدائرة تدريجياً وراقب متى يبدأ المخرج بالانفجار — اشعر بحدّ الاستقرار.
الفلتر = تشكيل H(f) عبر المعاملات. FIR (دخل فقط، مستقرّ، طور
خطّي) مقابل IIR (تغذية راجعة، حادّ ورخيص، خطر الاستقرار). الأصفار تحفر، الأقطاب
ترفع. الآن نتقن التلاعب بالصوت رياضياً. لكن لضغطه بكفاءة لا يكفي الرياضي — نحتاج
أن نعرف ما الذي تسمعه الأذن فعلاً وما تتجاهله. ندخل عالم الأذن.