نموذجين، signal واحدة
الـ DSP الكلاسيكي مبني على الرياضيات: تحليل فورييه، ونظرية الـ filters، ونظرية الـ estimation، ونظرية المعلومات. كل خوارزمية متشتقة من مبادئ أولى، وسلوكها ممكن تتوقّعه بالكامل وتفهمه تحليليًا. أما الـ machine learning فمبني على البيانات: الـ model بيتعلّم representations داخلية بإنه يحسّن loss function على training set ضخمة، من غير أي ضمان إن الـ weights المتعلّمة بتقابل أي كمية البني آدم يقدر يفسّرها. والنموذجين دول عاشوا جنب بعض لعقود، بس العشر سنين اللي فاتوا شافوا تقاربهم.
الـ neural networks بقت موجودة في كل طبقة من الـ signal processing stack الحديث — تقليل الـ noise في المايكات، وتصنيف أنواع الـ modulation، وكشف الـ anomalies في signals الاهتزاز، والـ equalization للقنوات اللاسلكية. والدرس ده بيستعرض الـ machine learning بيقوّي الـ DSP فين، والـ signal processing الكلاسيكي بيكسب فين، والبنية الهجينة اللي بتظهر وبتجمع ضمانات نظرية الـ signal processing مع القدرة التمثيلية للـ neural networks.
الـ signal processing الكلاسيكي بيبدّل افتراضات الـ model قصاد قابلية التفسير: لو افترضت إن الـ signal band-limited أو stationary أو ماشية على توزيع معروف، تقدر تشتق الـ processor المثالي تحليليًا. والـ machine learning بيبدّل الافتراضات قصاد المرونة: بإنه بيتعلّم من البيانات، الـ model بيتكيّف مع signals الإحصائيات بتاعتها مش معروفة أو مش stationary — على حساب قابلية التفسير والحاجة لـ training data labeled.
إزالة الـ noise من الـ signal بالـ neural networks
الـ Wiener filter هو الحل الكلاسيكي لإزالة الـ noise من الـ signal: لـ signal ملوّثة بـ additive noise، صمّم filter في الـ frequency domain بيقلّل الـ mean squared error بين الـ signal النضيفة والمتقدّرة. والـ Wiener filter مثالي لما الـ power spectral densities بتاعة الـ signal والـ noise تبقى معروفة. ولما متبقاش كده — أو لما الـ noise يبقى مش stationary أو مش Gaussian — أداء الـ Wiener filter بيتدهور.
الـ deep neural networks اللي بتتعلّم من البيانات تقدر تتغلّب على القيد ده. وأنجح architecture لإزالة الـ noise من الـ signals أحادية البعد هي الـ dilated causal convolutional network (مرتبطة بـ WaveNet). بدل ما تتعلّم في الـ frequency domain، الـ networks دي بتعالج الـ waveform الخام في الـ time domain عن طريق 1D convolutions بـ dilation factors بتزيد أُسّيًا (1، 2، 4، 8، ..، 512)، فبتلقط البنية على كذا مقياس زمني في نفس الوقت. والـ receptive field بيكبر أُسّيًا مع العمق وعدد الـ parameters بيكبر خطّيًا بس.
وعمليًا، الـ denoising networks العميقة بتغلب الـ Wiener filtering الكلاسيكي لما الـ noise يبقى مش stationary (زي دوشة الكلام في خلفية تسجيل صوت)، أو لما بنية الـ signal تبقى معقّدة صعب تتعمل لها model تحليليًا (زي المزيكا أو الكلام اللي فيه كذا صوت). والتمن: الـ model محتاج آلاف أمثلة التدريب المتزوّجة (فيها noise/نضيفة) وعشرات الملايين من عمليات الـ multiply-accumulate لكل ثانية صوت — حسابات أكتر بما لا يُقاس من اللي الـ Wiener filter محتاجه.
الـ automatic modulation classification
الـ automatic modulation classification (AMC) هو مشكلة تحديد نوع الـ modulation بتاع الـ signal المستقبَلة — إنك تفرّق بين AM وFM، أو BPSK وQPSK و16-QAM — من غير معرفة مسبقة باللي اتبعت. وخوارزميات الـ AMC الكلاسيكية بتطلّع features معمولة باليد من الـ signal (إحصائيات الـ amplitude والـ phase والـ frequency اللحظية؛ الـ higher-order cumulants) وبتدخّلها في likelihood ratio test أو decision tree. والـ extractors دي محتاجة خبرة في المجال ولازم يتعاد تصميمها لكل نوع modulation جديد.
الـ convolutional neural networks (CNNs) لما تتطبّق على طول على الـ complex baseband waveform تقدر تتعلّم أوتوماتيك تطلّع features بتميّز الـ modulation. والـ dataset بتاعة RadioML أثبتت إن CNN ضحلة نسبيًا — أربع convolutional layers شغّالة على أزواج samples الـ in-phase والـ quadrature (IQ) — بتحقق دقة تنافس الـ feature engineering المتخصّص على أكتر من 20 class modulation ونطاق واسع من قيم الـ SNR. وعند SNR عالي (أكبر من 10 dB)، الـ models العميقة بتعدّي دقة أي مجموعة features معمولة باليد معروفة.
والفكرة الجوهرية إن samples الـ IQ الخام فيها أصلًا كل المعلومات اللازمة لتصنيف الـ modulation — نفس المعلومات اللي الطرق الكلاسيكية بتطلّعها بالعافية في شكل features معمولة باليد. والـ CNN، لو اتدّت بيانات كفاية، بتتعلّم representation داخلي أغنى بالضرورة من أي مجموعة features ثابتة. والتمن هو الغموض: صعب تفسّر ليه الـ network صنّفت مقطع معيّن على إنه QPSK مش 8-PSK، وده بيفرق في بيئات الـ spectrum المتنظّمة اللي لازم فيها قرار الـ classifier يبقى قابل للمراجعة.
الـ channel equalization بالـ machine learning
في الدرس اللي فات، الـ OFDM channel equalization اتلخّص في قسمة مركّبة واحدة لكل subcarrier — بسيطة جدًا لأن الـ OFDM بيحوّل القناة الـ frequency-selective لـ subchannels flat متوازية. وفي الأنظمة الـ single-carrier أو اللي مش OFDM، القناة لسه بتبان FIR filter، والـ equalization محتاج تعكسها، عادةً بـ decision-feedback equalizer (DFE) أو MMSE-LE filter. ولما القناة تبقى مش معروفة أو بتتغيّر بسرعة، الـ filter لازم يتقدّر ويتحدّث على طول.
الـ recurrent neural networks (RNNs)، والأحدث منها الـ sequence models المبنية على الـ Transformer، تقدر تتعلّم الـ channel equalization على طول من البيانات المستقبَلة، من غير channel estimation صريح أو تصميم filter. الـ model بيتدرّب على أزواج (الـ signal المستقبَلة، الـ bits المبعوتة) وبيتعلّم mapping من الأول للآخر بيعكس القناة ضمنيًا. والطريقة دي جذّابة بالذات في القنوات اللي ليها memory (زي قنوات الصوت تحت المية اللي الـ delay spread فيها بيوصل لمئات الملّي ثانية) اللي الـ equalizer الكلاسيكي المثالي فيها محتاج filter طويل جدًا.
نتايج الـ benchmarks على channel models معيارية (ITU vehicular، وقناة الصوت تحت المية، وقناة الأقمار الصناعية) بتبيّن إن الـ neural equalizers بتطابق أداء الـ MMSE أو بتعدّيه شوية في سيناريوهات الحركة العالية، اللي القناة فيها بتتغيّر أسرع من اللي الـ pilot-based estimation يقدر يتابعه. بس الـ neural equalizers بتفشل فشل كارثي على القنوات اللي برا توزيع التدريب — أي نوع قناة مشافهوش وهو بيتدرّب — بينما الـ MMSE equalizer الكلاسيكي بيتدهور بهدوء وبالتدريج. والهشاشة دي قيد أساسي على الطرق المعتمدة على البيانات في التطبيقات اللي الأمان فيها حرج.
architectures عصبية فاهمة الـ DSP
أكتر اتجاه بحثي مثمر مؤخرًا مش إنك تستبدل الـ DSP بالـ machine learning، لأ إنك تحط بنى الـ signal processing جوه الـ neural architectures. ولما تقيّد الـ architecture عشان تتوافق مع حدس الـ signals المعروف، الـ model بياخد inductive bias بيقلّل احتياجه للبيانات وبيحسّن الـ generalization. والطريقة الهجينة دي اسمها الـ model-based deep learning أو الـ algorithm unrolling.
الـ algorithm unrolling بيحوّل خوارزمية كلاسيكية iterative (زي خوارزمية ISTA لاسترجاع الـ sparse signals أو الـ turbo decoder) لـ neural network عمقها محدود، كل layer فيها بتقابل iteration واحدة. والـ parameters الثابتة بتاعة الخوارزمية (الـ step sizes، والـ thresholds، ومعاملات الـ damping) بتتبدّل بـ parameters متعلّمة متحسّنة end-to-end على بيانات التدريب. والـ network اللي بتطلع قابلة للتفسير (كل layer ليها معنى واضح في الـ signal processing)، وكفء في البيانات (بتورث بنية الخوارزمية)، وممكن تتدرّب (الـ gradients بتمشي على الـ iterations المفرودة عن طريق الـ backpropagation).
خوارزمية ISTA لاسترجاع الـ sparse signals بتكرّر: x ← Sλ(Wx + b · y)، حيث Sλ دالة soft threshold، وW matrix متشتقة من الـ sensing matrix، وb رقم scalar لحجم الخطوة. والـ LISTA بتستبدل W وb بـ parameters متعلّمة وبتفرد K iteration في network فيها K layer. وLISTA بعشر layers بتحقق نفس دقة إعادة البناء اللي بتحققها 1000 iteration من ISTA الكلاسيكية — تسريع 100× — لأن الـ parameters المتعلّمة بتستغل إحصائيات بيانات التدريب اللي ISTA الكلاسيكية بتتجاهلها.
ومن أمثلة الـ architectures الفاهمة للـ signal processing كمان: الـ learned filterbanks (بدّل windows الـ STFT الثابتة بـ 1D convolutional kernels بتبدأ بـ analysis filters وبعدين بتتظبط end-to-end لمهمة بعدها)؛ والـ deep unrolled OFDM receivers (بدّل الـ pilot-based channel estimation والـ ZF equalization بـ refinement network iterative متعلّمة)؛ والـ neural beamformers (بدّل الـ MVDR spatial filter بـ neural network قيمها مركّبة بتتعلّم الـ manifold بتاع الـ array من تسجيلات مايكات التدريب).
الـ feature اللي الـ learned filterbanks بتستبدلها ليها اسم يستاهل تعرفه، لأنها سيطرت على التعرّف على الكلام لعقود: الـ Mel-frequency cepstral coefficients (MFCCs). والـ front-end بتاع MFCC pipeline ثابت من الـ signal processing — خد الـ short-time magnitude spectrum، وحوّله لـ mel scale الإدراكي، وخد اللوغاريتم لطاقة كل mel band (والخطوتين دول اتقدّموا في الوحدة 9، الدرس 3) — وبيختمه تحويل أخير: الـ discrete cosine transform (DCT) بيتطبّق على طاقات الـ mel اللوغاريتمية. والـ DCT بيعمل شغلانتين مع بعض. هو بيشيل الـ correlation بين الـ mel bands، فـ classifier بـ diagonal-covariance model بيكفّي، وهو بيضغط أغلب الطاقة في أول حوالي اتناشر معامل — فالـ speech front-end المعتاد بيحتفظ بحوالي 13 معامل وبيرمي الباقي، فبيطلع feature vector صغير ومتين. والـ learned filterbanks اللي فوق هي فعلًا نفس الـ pipeline بعد ما الـ mel filters والـ DCT اتبدّلوا بـ convolutions ممكن تتدرّب: الـ model بيكتشف الـ front-end بتاعه بنفسه بدل ما يورث front-end الـ mel–DCT.
الـ signal processing الكلاسيكي بيكسب فين
رغم النتايج المبهرة، الـ signal processing المبني على الـ machine learning ليه نقط فشل واضحة الـ signal processing الكلاسيكي معندوش. وفهم الحدود دي ضروري لأي مهندس بيقرّر يستخدم أنهي طريقة.
| المعيار | الـ signal processing الكلاسيكي | الـ machine learning / الـ neural signal processing |
|---|---|---|
| قابلية التفسير | تحليلية بالكامل؛ السلوك متشتق من النظرية | black box؛ الـ representations الداخلية غامضة |
| الـ generalization | بيتدهور بالتدريج في الظروف الجديدة | ممكن يفشل فشل كارثي برا التوزيع |
| احتياجات البيانات | ولا حاجة (مبني على model) | آلاف لملايين الأمثلة الـ labeled |
| الحوسبة | واطية (خصوصًا المبني على الـ FFT) | عالية (الـ inference ممكن يحتاج GPU/NPU) |
| الـ latency | متوقّعة وdeterministic | متغيّرة؛ الـ hard real time صعب |
| الاعتماد | حدود أداء ممكن تتأكّد منها | ضمانات إحصائية بس |
| الـ signals المش stationary | محتاج model adaptation | بيتعلّم الأنماط المش stationary |
| نوع noise مش معروف | الأداء بيتدهور لو الـ model غلط | بيتعلّم من الأمثلة مهما كان النوع |
الـ signal processing الكلاسيكي لسه مسيطر في الأنظمة الـ safety-critical والمبنية على standards. محطة base station 5G متقدرش تستخدم neural equalizer سلوكه متوصّف احتماليًا بس — الـ standard بتاع 3GPP بيفرض حسابات link budget محدّدة محتاجة حدود أداء تحليلية. والـ filter banks المبنية على الـ FFT، والـ Viterbi decoders، والـ Kalman filters مسيطرين على الطيران والفضاء والأجهزة الطبية والاتصالات المطابقة للـ standards، والسبب إنهم ممكن تعتمد عليهم وتعتمدهم رسميًا.
الـ machine learning بيكسب في التطبيقات اللي فيها بيانات labeled كتير وقابلية التفسير مش شرط: تحسين الصوت للمستهلكين (الـ noise cancellation في سماعات الودن)، والـ predictive maintenance (كشف الـ anomalies في signals الاهتزاز)، والـ cognitive radio (الـ spectrum sensing في بيئات مش معروفة). والاتجاه رايح ناحية الـ hybrid architectures اللي بتطبّق الـ machine learning على المشاكل الفرعية اللي إحصائيات الـ signal فيها صعب تتعمل لها model تحليليًا، وبتحتفظ بالـ signal processing الكلاسيكي للمراحل اللي ممكن تتحلّل في سلسلة المعالجة.
DSP-101: نظرة ختامية
الدرس الأخير ده من DSP-101 بيقفل القوس اللي ممتد من نظرية الـ sampling بتاعة Nyquist-Shannon في الوحدة الأولى لحد تقاطع الـ machine learning والـ signal processing في الوحدة الاتناشر. الرحلة غطّت الـ sampling والـ quantization والـ DFT وتصميم الـ FIR والـ IIR filters والـ spectral analysis والأنظمة الـ multirate وتطبيقات الـ DSP الحقيقية في الـ embedded systems والصوت والاتصالات لحد الـ machine learning.
الخيط اللي بيوحّد الرحلة كلها هو منظور الـ frequency domain: تقريبًا كل عملية DSP — الـ filtering والـ correlation والـ interpolation والـ OFDM modulation والـ Wiener filtering وحتى الـ receptive field بتاع الـ dilated convolutional network — ممكن تتفهم على إنها معالجة للمحتوى الطيفي للـ signal. والمهندس اللي يقدر يقرا spectrum ويفهم الـ frequency response بتاع filter معناه إيه ويفكّر في الـ bandwidth والـ noise والتشويه معاه عدسة بتنطبق بنفس الدرجة على راديو التلاتينات والـ neural signal processors بتاعة 2030.
- الـ signal processing الكلاسيكي مثالي لما إحصائيات الـ signal والـ noise تبقى معروفة؛ والـ machine learning بيكسب لما الإحصائيات دي تبقى مش معروفة أو مش stationary أو معقّدة على الـ modeling التحليلي.
- الـ dilated convolutional networks أحادية البعد بتعالج الـ waveform الخام في الـ time domain، والـ receptive field بيكبر أُسّيًا مع العمق وعدد الـ parameters بيكبر خطّيًا.
- الـ automatic modulation classification بالـ CNNs بيغلب الـ features الإحصائية المعمولة باليد عند SNR عالي، على حساب قابلية التفسير.
- الـ neural equalizers بتعدّي أداء الـ MMSE في القنوات اللي فيها حركة عالية — بس بتفشل فشل كارثي على أنواع قنوات برا نطاق التدريب؛ والـ MMSE الكلاسيكي بيتدهور بالتدريج.
- الـ algorithm unrolling (زي LISTA) بيحوّل خوارزميات الـ signal processing الـ iterative لـ neural networks عمقها محدود والـ parameters بتاعتها متعلّمة، فبيجمع قابلية التفسير والتحسين المبني على البيانات.
- الـ signal processing الكلاسيكي لسه إجباري في الأنظمة الـ safety-critical المعتمدة واللي الـ latency فيها لازم تبقى واطية؛ والـ machine learning بيطلّع أحسن نتايج مكان ما البيانات كتير وقابلية التفسير مش شرط تنظيمي.