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

الـ impulse response (الاستجابة النبضية) وأنظمة LTI

~13 دقيقة قراءة الدرس 4 في الوحدة 3

h[n]: الصورة الكاملة لنظام LTI

في الدرس اللي فات طلّعنا مجموع الـ convolution (الالتواء) وأثبتنا إن خرج أي نظام LTI هو y[n] = x[n] * h[n]. والـ h[n] دي — الـ impulse response (الاستجابة النبضية) — حاجة رائعة: sequence واحدة بتميّز سلوك النظام كله وبشكل فريد. عدّي أي signal دخل على نظام LTI، واعمل convolution مع h[n]، وهتاخد الخرج بالظبط. مش محتاج أي معاملات تانية.

الـ impulse response بيتقاس بإنك تدخّل الـ unit impulse δ[n]. ولأن δ[n] هي العنصر المحايد في الـ convolution — x[n] * δ[n] = x[n] لأي x[n] — فالخرج لما x[n] = δ[n] هو h[n] نفسها بالظبط. وده بيدّي المهندسين طريقة عملية للقياس: اخبط النظام بنبضة قصيرة عريضة النطاق وسجّل الرد.

تعريف الـ impulse response
h[n] = T\{\delta[n]\}
لما الدخل يبقى الـ unit impulse δ[n]، الخرج بيبقى الـ impulse response h[n]. والقياس الواحد ده بيميّز نظام LTI بالكامل لكل الدخلات الممكنة.

ليه h[n] وصف كامل؟ لأن الـ linearity والـ time invariance مع بعض بيضمنوا إن الرد على أي دخل ممكن يتحسب كتراكب من نسخ متكبّرة ومتزحزحة من h[n]. لو عرفت النظام بيرد إزاي على impulse واحدة، تعرف بيرد إزاي على أي حاجة.

أنظمة FIR: الـ finite impulse response

نظام LTI بيتسمّى نظام FIR (Finite Impulse Response) لما h[n] تبقى مش صفر لعدد محدود بس من الـ samples — مثلًا، من n = 0, 1, …, M−1 وصفر في أي حتة تانية. ومجموع الـ convolution ساعتها بيصغر لمجموع موزون محدود من M sample دخل فاتت وحالية:

معادلة خرج FIR
y[n] = \sum_{k=0}^{M-1} h[k]\,x[n-k]
الخرج هو مجموع موزون للـ sample الحالية وM−1 sample دخل فاتوا. والأوزان h[0], h[1], …, h[M−1] هي معاملات الـ filter — هي هي قيم الـ impulse response.

أنظمة FIR ليها خاصيتين بارزين. أولًا، هي مستقرة دايمًا: لو الدخل محدود (|x[n]| ≤ B لكل n)، الخرج محدود بـ B مضروبة في مجموع |h[k]| على المدى المحدود، وده دايمًا محدود. تانيًا، أنظمة FIR تقدر توصل لـ linear phase (طور خطي) بالظبط — كل الـ frequencies بتتأخر نفس عدد الـ samples — ببساطة بإنك تخلّي h[n] متماثلة. والـ linear phase معناه مفيش تشويه في الـ phase، وده شرط في تطبيقات الصوت والقياس والـ equalization في الاتصالات.

الخاصية 1
مستقر دايمًا
h[n] محدودة ⇒ مجموع محدود ⇒ خرج محدود لأي دخل محدود. مش محتاج تحليل استقرار.
الخاصية 2
linear phase
المعاملات المتماثلة h[n] = h[M−1−n] بتضمن group delay متساوي لكل الـ frequencies.
الخاصية 3
مفيش feedback
الخرج معتمد بس على الدخلات الحالية واللي فاتت — مفيش loops تكرارية. تنفيذ بسيط ومتين.
الخاصية 4
تكلفة أعلى
الانتقائية الحادة في الـ frequency محتاجة عدد كبير من الـ taps M. والـ fast convolution بالـ FFT بيخفّف التكلفة لما M تبقى كبيرة.

أنظمة IIR: الـ infinite impulse response

نظام LTI بيبقى نظام IIR (Infinite Impulse Response) لما h[n] تمتد من غير نهاية — متوصلش للصفر في وقت محدود. والـ exponential sequence h[n] = α^n u[n] مثال كلاسيكي: لـ |α| < 1 بتصغر ناحية الصفر بس نظريًا عمرها ما بتختفي.

حساب مجموع convolution لانهائي مباشرةً مش عملي. وبدل كده، أنظمة IIR بتتنفّذ بـ difference equations (معادلات فروقية) بتعبّر عن الخرج الحالي كتركيبة خطية من خرجات فاتت ودخلات حالية وفاتت. والـ feedback عن طريق الخرجات اللي فاتت هو اللي بيطلّع الـ impulse response اللانهائي:

الـ difference equation العامة بتاعة IIR
y[n] = \sum_{k=0}^{N} b_k\,x[n-k] - \sum_{k=1}^{M} a_k\,y[n-k]
معاملات b_k بتوزن الدخلات (مسار الـ feedforward)؛ ومعاملات a_k بتوزن الخرجات اللي فاتت (مسار الـ feedback). والبناء الـ recursive ده بيطلّع impulse response ممكن يمتد من غير حدود.

ميزة الكفاءة في الـ IIR filters كبيرة: الـ IIR filter يقدر يوصل لنفس الانتقائية في الـ frequency اللي في FIR filter بمعاملات أقل بكتير. مثلًا Butterworth IIR filter من الدرجة الرابعة يقدر يطابق اللي ممكن يحتاج 50–200 tap في FIR. والمقايضة إن أنظمة IIR محتاجة تحليل استقرار صريح (كل الـ poles جوه دايرة الوحدة في مجال Z)، ومتقدرش في العموم توصل لـ linear phase بالظبط.

مثال IIR من الدرجة الأولى

خد أبسط IIR filter: y[n] = α·y[n−1] + x[n]. لما x[n] = δ[n]، الخرج بيبقى:

y[0] = α·y[−1] + δ[0] = 0 + 1 = 1

y[1] = α·y[0] + δ[1] = α + 0 = α

y[2] = α·y[1] = α²، وهكذا.

h[n] = αⁿu[n] — الـ impulse response لانهائي بس بيصغر لما |α| < 1.

الـ difference equations كوصف للأنظمة

الـ linear constant-coefficient difference equation (معادلة الفروق الخطية ذات المعاملات الثابتة) أو LCCDE هي الوصف في الـ time domain لنظام LTI، زي ما الـ differential equation بتوصف النظام في الزمن المستمر. وكل filter رقمي متصمّم عمليًا — من الـ equalizers الصوتية للـ compensators في أنظمة التحكم — في الآخر بيتوصف بـ LCCDE من درجة ما.

درجة النظام بتساوي أقصى تأخير في الـ recursion: نظام بيستخدم y[n−1] وy[n−2] من الدرجة التانية. الدرجة الأعلى معناها poles أكتر، وده بيسمح بانتقالات أحدّ في الـ frequency بس محتاج مراقبة استقرار أدق. والمعاملات {aₖ, bₖ} هي معاملات التصميم؛ وتغييرها بيغيّر الـ frequency response بتاع الـ filter.

الـ second-order section (Biquad)
y[n] = b_0 x[n] + b_1 x[n-1] + b_2 x[n-2] - a_1 y[n-1] - a_2 y[n-2]
الـ biquad (الـ second-order section) هو وحدة البناء الأساسية. وأي IIR filter من درجة أعلى بيتنفّذ كسلسلة biquads عشان أحسن استقرار عددي.

حتى الـ FIR filter ليه LCCDE — بس من غير حدود feedback (كل aₖ = 0 ما عدا a₀ = 1). والـ difference equation ساعتها بتصغر لمجموع الـ convolution المحدود. فالـ LCCDE وصف موحّد: خلّي كل معاملات الـ feedback صفر يطلعلك FIR؛ ضيف feedback يطلعلك IIR.

التوصيل المتسلسل

لما نظامين LTI يتوصّلوا cascade (على التسلسل) (خرج الأول بيغذّي دخل التاني)، النظام المجمّع نفسه بيبقى LTI. وبخاصية الـ associativity في الـ convolution، الـ impulse response الكلي هو الـ convolution بين الـ impulse responses لوحدها:

التوصيل المتسلسل
h[n] = h_1[n] * h_2[n]
نظامين LTI متسلسلين بالـ impulse responses h₁[n] وh₂[n] بيتصرّفوا كنظام واحد الـ impulse response بتاعه h[n] = h₁[n] * h₂[n].

فيه تلات نتايج مهمة طالعة من ده. أولًا، ترتيب التسلسل مبيفرقش: تطبيق h₁ وبعده h₂ بيدّي نفس نتيجة h₂ وبعده h₁، لأن الـ convolution commutative. تانيًا، سلسلة الـ filters المتسلسلة ممكن تتدمج مقدّمًا في impulse response واحد، وده بيقلّل الحسابات في الـ real time. تالتًا، التسلسل من أنظمة LTI بيبقى مستقر طول ما كل نظام لوحده مستقر.

التوصيل المتوازي

لما نظامين LTI ياخدوا نفس الدخل وخرجاتهم تتجمع بالجمع، بيعملوا توصيل متوازي. وبالـ distributive property في الـ convolution، الـ impulse response الكلي هو ببساطة مجموع الـ impulse responses لوحدها:

التوصيل المتوازي
h[n] = h_1[n] + h_2[n]
نظامين LTI متوازيين بالـ impulse responses h₁[n] وh₂[n] بيتصرّفوا كنظام واحد عنده h[n] = h₁[n] + h₂[n].

البنى المتوازية موجودة في كل حتة عمليًا. الـ graphic equalizer هو bank من الـ bandpass filters (كل واحد نظام LTI) خرجاتهم بتتجمع بعد ضبط gain لكل واحد لوحده. والـ receiver بتاع OFDM بيعالج subcarriers كتير في نفس الوقت، كل واحد بالـ matched filter بتاعه. وفي كل الحالات دي، النظام المجمّع لسه LTI والـ impulse response الكلي بتاعه هو مجموع الفروع.

معيار الاستقرار لأنظمة IIR

نظام IIR موصوف بـ LCCDE بيبقى BIBO stable لو وبس لو الـ impulse response بتاعه absolutely summable (مجموع قيمه المطلقة محدود):

Σ_{n=−∞}^{∞} |h[n]| < ∞

في مجال تحويل Z، الشرط ده بيساوي إن كل poles الـ transfer function H(z) تقع جوه دايرة الوحدة بالظبط. ولنظام IIR من الدرجة الأولى y[n] = αy[n−1] + x[n]، الاستقرار محتاج |α| < 1.

الوحدة الجاية بتقدّم تحويل Z — أداة جبرية قوية بتحوّل الـ difference equations لمعادلات polynomials في المتغيّر المركّب z، وده بيخلّي تحليل الأنظمة وفحص الاستقرار وتصميم الـ filters أسهل بكتير.

أهم اللي اتعلّمته
  • الـ impulse response h[n] بيميّز نظام LTI بالكامل: معرفة h[n] كفاية تحسب الخرج لأي دخل بالـ convolution y[n] = x[n] * h[n].
  • أنظمة FIR الـ h[n] بتاعتها طولها محدود، مستقرة دايمًا، وتقدر توصل لـ linear phase بالظبط بمعاملات متماثلة.
  • أنظمة IIR الـ h[n] بتاعتها طولها لانهائي وبتتنفّذ بـ difference equations recursive؛ بتوصل لانتقائية حادة بمعاملات قليلة بس محتاجة تحليل استقرار.
  • الـ LCCDE العامة y[n] = Σbₖ·x[n−k] − Σaₖ·y[n−k] بتوصف أي LTI filter؛ والـ second-order section (biquad) هو وحدة البناء المعيارية لتصميمات IIR.
  • الأنظمة الـ LTI المتسلسلة ليها impulse response مجمّع h₁[n] * h₂[n]؛ وترتيب التسلسل ممكن يتبدّل.
  • الأنظمة الـ LTI المتوازية ليها impulse response مجمّع h₁[n] + h₂[n].
  • نظام IIR يبقى BIBO stable لو وبس لو Σ|h[n]| < ∞، أو بالمكافئ، كل poles H(z) جوه دايرة الوحدة.
اللي فات الـ convolution (الالتواء) — العملية الأساسية نظرة عامة على الموديول الوحدة التالية من الـ difference equations لتحويل Z