4.3.1 المعالجة في الزمن الحقيقي (Real-Time Processing) 

    اعتبر الاستجابة الممثلة بالخط المتقطع-المنقّط في الشكل 4.1. إنها مخرج النظام المتولد بمدخل طوله $ 50\mathrm{~s} $ . زمن التنفيذ لحساب ورسم المخرج في الشكل 4.1 لا يستغرق سوى $ 0.07\mathrm{~s} $ ، كما قيس بدوال MATLAB ‏ tic و toc. لذلك فإن المقياس الزمني في الشكل 4.1 لا علاقة له بالزمن الحقيقي. يُسمى هذا النوع من المعالجة معالجة غير زمن حقيقي (non-real-time processing). كل الحسابات الحاسوبية والمحاكاة هي معالجة غير زمن حقيقي لأن الزمن وفترة أخذ العينات لا يلعبان أي دور. المهم فقط هو ترتيب المتتاليات الزمنية.

    تجري المحادثة الهاتفية في الزمن الحقيقي. وكذلك الأقراص المدمجة الصوتية (audio CD). ما إن يبدأ مشغّل القرص بالدوران حتى تبدأ الموسيقى بالظهور؛ فهو لا ينتظر حتى يمسح القرص بالكامل. إن المعالجة الرقمية لإشارة زمن مستمر (CT signal) تتضمن دائمًا فترة أخذ عينات. فمثلًا، فترة أخذ العينات هي $ T = 1 / 8000 = 0.000125 $ s أو $ 125 \mu \mathrm{s} $ للإرسال الهاتفي و $ T = 1 / 44100 = 0.0000226 $ s أو $ 22.6 \mu \mathrm{s} $ للصوت على القرص المدمج. إذا كانت فترة أخذ العينات أكبر من الزمن اللازم لحساب كل مخرج $ y(kT) $ ، فإن العتاد الرقمي المتخصص سيخزن المخرج في الذاكرة ثم يرسله عند اللحظة الزمنية $ kT $ . وبما أن المدخل $ u(kT) $ والمخرج $ y(kT) $ يظهران في نفس اللحظة الزمنية الحقيقية، فإن هذا يسمى معالجة زمن حقيقي (real-time processing). معادلة فضاء الحالة مناسبة لهذا النوع من المعالجة. بالفعل، اعتبر معادلة فضاء الحالة في (4.18) و(4.19). إذا كان بُعدها 3، فإن حساب كل $ y(kT) $ لا يتطلب أكثر من 20 عملية جمع و20 عملية ضرب. لنفترض أن كل عملية جمع تتطلب 20 ns $ (20 \times 10^{-9} $ s) وكل عملية ضرب تتطلب 30 ns، فإن حساب كل $ y(kT) $ يتطلب بحد أقصى $ 1 \mu \mathrm{s} (10^{-6} $ s). إذا كان $ d = 0 $ ، و $ \mathbf{x}(0) = \mathbf{0} $ ، فإن $ y(0) $ يكون تلقائيًا 0 ويمكن إرساله في اللحظة التي يصل فيها

    $ u(0) $ . بمجرد وصول $ u(0) $ يمكننا البدء بحساب $ x(T) $ باستخدام (4.19) ثم $ y(T) $ باستخدام (4.18). إذا كانت فترة أخذ العينات $ 22.6\mu \mathrm{s} $ ، فعند اكتمال حساب $ y(T) $ (ويستغرق أقل من $ 1\mu \mathrm{s} $ ) يُخزَّن في الذاكرة. ويمكن إرساله في اللحظة نفسها التي يصل فيها $ u(T) $ . وبمجرد وصول $ u(T) $ نبدأ بحساب $ x(2T) $ ثم $ y(2T) $ ونخزنها في الذاكرة. ويمكن إرسال المخرج $ y(2T) $ في اللحظة التي يصل فيها $ u(2T) $ . وبالاستمرار إلى الأمام يمكن أن يظهر المخرج $ y(kT) $ في اللحظة نفسها التي يصل فيها $ u(kT) $ . هذه معالجة زمن حقيقي. إذا كان $ d \neq 0 $ و $ \mathbf{x}(0) \neq \mathbf{0} $ ، فيجب تأخير إرسال $ y(kT) $ بفترة أخذ عينات واحدة $ T $ لأن ضرب $ u(kT) $ بـ $ d $ ثم جمع الناتج مع $ \mathbf{cx}(kT) $ يتطلب وقتًا. وبما أن $ T $ صغيرة جدًا عادةً، فإن $ y(kT) $ يظهر عمليًا في اللحظة نفسها التي يصل فيها $ u(kT) $ . وخلاصة القول إن معادلات فضاء الحالة يمكن استخدامها في الحساب الحاسوبي وفي المعالجة في الزمن الحقيقي. ويمكن استخدامها أيضًا في تنفيذ دارات المضخم التشغيلي (op-amp circuit implementation) كما سنناقش في الفقرة التالية. لاحظ أن دوال الانتقال (transfer functions) لا يمكن استخدامها في المعالجة في الزمن الحقيقي لأننا لا نستطيع حساب تحويل لابلاس (Laplace transform) لـ $ u(t) $ إلا بعد توفر كامل $ u(t) $ لكل $ t $ في $ [0,\infty) $ .