لما القواعد تتكسر
في الدرس اللي فات، ثبّتنا نظرية نايكويست-شانون: خد samples (عيّنات) من signal (إشارة) محدودة الطيف بمعدّل ضعف أعلى frequency (تردد) فيها، وهتقدر تبنيها تاني بالظبط. النظرية أنيقة — بس إيه اللي بيحصل لما تكسرها؟ إيه اللي بيبوظ، وقد إيه، وهل ينفع يتصلّح؟ الإجابة هي الـ aliasing (الإيهام الترددي) (Aliasing)، من أخطر أشكال الفشل في الـ Digital Signal Processing (معالجة الإشارات الرقمية)، وفهمه كويس ضروري عشان تبني أنظمة حقيقية بتشتغل.
الـ aliasing مش ظاهرة رياضية نظرية وبس. بيظهر في الأفلام، وتسجيلات الصوت، وأنظمة الرادار، والصور الطبية، والاتصالات اللاسلكية. وأي مهندس بيتعامل مع signals — من هاوي بيسجّل صوت في البيت لفريق بيصمّم modem 5G — لازم يفهم الـ aliasing والطرق اللي بنمنعه بيها.
الـ aliasing بيحصل لما ناخد samples من signal بمعدّل أقل من الـ Nyquist rate (fs < 2fmax). المكوّنات اللي الـ frequency بتاعتها عالية بتتطوي جوه الـ spectrum وبتظهر كـ signals واطية مزيّفة — منتحلة متتفرّقش عن المحتوى الحقيقي، ومتقدرش تتشال بعد ما تحصل.
طيّ الـ frequencies: الآلية
عشان تفهم الـ aliasing، لازم تفكّر في الـ frequency domain (مجال التردد). لما تاخد samples من signal مستمرة بمعدّل fs، الـ sampling بيعمل نسخ دورية من الـ spectrum (الطيف) بتاع الـ signal بينهم مسافة fs. لو أعلى frequency fmax أقل من fs/2، النسخ دي مبتركبش على بعض وكله تمام. بس لو fmax عدّت fs/2، النسخ بتخبط في بعض — ونقطة الخبطة اسمها الـ folding frequency (تردد الطيّ) وهي عند fs/2 بالظبط.
تخيّل مكوّن عند 7 كيلوهرتز بيتاخد منه samples بمعدّل 10 كيلوهرتز (fs/2 = 5 كيلوهرتز). المكوّن ده أعلى من الـ folding frequency بـ 2 كيلوهرتز. ومع الـ sampling، بيتطوي لـ frequency 10 − 7 = 3 كيلوهرتز. النغمة اللي كانت 7 كيلوهرتز بقت منتحلة عند 3 كيلوهرتز — ودلوقتي مزروعة في الـ signal اللي اتاخدت للأبد.
الطيّ متماثل: نغمة عند fs/2 + Δf بتتطوي لـ fs/2 − Δf، يعني بتتعكس زي المراية حوالين الـ Nyquist frequency. وعشان كده fs/2 اسمها الـ folding frequency — الـ spectrum بيتطوي على نفسه حرفيًا عند النقطة دي.
الـ aliasing البصري: تأثير عجلة العربية
أشهر مرة بنقابل فيها الـ aliasing في حياتنا هي تأثير عجلة العربية في الأفلام والفيديو. الكاميرا بتلقط frames بمعدّل ثابت؛ وكاميرا الأفلام العادية بتصوّر 24 frame في الثانية. والـ Nyquist frequency للمعدّل ده 12 هرتز، يعني بتلقط بأمانة أي نمط بصري دوري بيتكرّر أقل من 12 مرة في الثانية.

دلوقتي لوّن سلك واحد بالأحمر ولفّ العجلة 23 لفّة في الثانية. بين frame والتاني — والفرق بينهم 1/24 من الثانية — السلك الأحمر بيلفّ 23/24 من لفّة كاملة، فبيقف قبل نقطة البداية بشوية. وعينك بتاخد أقصر طريق فبتقرا ده 1/24 من اللفّة لورا. وframe ورا frame العجلة بتزحف في الاتجاه الغلط بلفّة واحدة في الثانية. زوّد السرعة لـ 25 لفّة في الثانية والاتجاه يتقلب: السلك بقى بيعدّي مكانه بـ 1/24 من اللفّة في كل frame، فالعجلة بتزحف بالراحة لقدّام بلفّة واحدة في الثانية. السرعتين أعلى بكتير من حد الـ 12 هرتز، والاتنين بيتطووا لـ 1 هرتز — المعادلة اللي فوق بتدّي |23 − 24| = |25 − 24| = 1 هرتز في الحالتين، لأن القيمة المطلقة بتلغي الاتجاه. والاتجاه هو إشارة المقدار f − round(f/fs)·fs: سالبة عند 23 هرتز يعني بتلف لورا، وموجبة عند 25 هرتز يعني بتلف لقدّام. وتابع سلك واحد متعلّم مش مجموعة أسلاك شبه بعض — 12 سلك متطابقين بيكرّروا النمط 12 مرة في كل لفّة، فبيضربوا الـ frequency اللي بتشوفها في 12 وبيغيّروا الإجابة.
نمط مواريه (Moiré) هو النسخة المكانية من الظاهرة دي. لما تصوّر شبكة دقيقة ومنتظمة — زي قماش منسوج أو طباعة بالنقط — بـ sensor كاميرا خطوة الـ pixel فيه محدودة، الـ spatial frequencies الدقيقة بتعدّي الـ Nyquist frequency المكانية بتاعة الـ sensor. والنتيجة أنماط حلقية عريضة مكانتش موجودة في المشهد الأصلي — aliasing مكاني صافي جاي من sampling مكاني قليل.
الكاميرات الاحترافية بتحط optical low-pass filter (OLPF) قدّام الـ sensor عشان تنعّم التفاصيل المكانية الدقيقة قبل ما توصل للـ pixels. وده النسخة البصرية من الـ anti-aliasing filter (المرشح المضاد للإيهام) اللي في الـ ADC — بيضعّف الـ spatial frequencies اللي فوق حد نايكويست بتاع الـ sensor، وبيمنع نمط مواريه والألوان المزيّفة. وفيه كاميرات بتشيل الـ filter ده عشان تكسب حدّة أعلى شوية، والتمن aliasing بيظهر ساعات على النقوش الدقيقة.
الـ aliasing في الصوت: النغمات الوهمية
في أنظمة الصوت، الـ aliasing بيطلّع نغمات وهمية عند frequencies غلط — أصوات مكانتش في التسجيل الأصلي بس بتبان كأنها كانت. تخيّل عازف طالع منه harmonic عالي عند 22.5 كيلوهرتز على synthesizer، بيتاخد منه samples بمعدّل 44.1 كيلوهرتز. الـ Nyquist frequency هي 22.05 كيلوهرتز. النغمة اللي عند 22.5 كيلوهرتز أعلى من حد نايكويست بـ 450 هرتز بس، فبتتطوي لـ 44.1 − 22.5 = 21.6 كيلوهرتز — frequency خفيفة بس بتتسمع وجوه نطاق السمع البشري تمامًا.
النغمة الوهمية ملهاش أي علاقة بأي harmonic في المزيكا الأصلية. هي أثر دخيل مش متناغم، شبح نشاز بيبوّظ البنية النغمية للتسجيل. وفي الحالات المتطرّفة — زي إنك تسجّل صوت بمعدّل أقل بكتير من المطلوب — الـ aliasing بيطلّع تشويه خشن وزنّان، لأن الـ spectrum كله بيتطوي على نفسه مرات كتير.
رياضيات الـ aliasing
الصورة في الـ frequency domain للـ sampling جاية من Poisson summation formula (صيغة بواسون التجميعية). لما تاخد samples من الـ signal المستمرة x(t) بمعدّل fs، الـ spectrum بتاع السلسلة المنفصلة x[n] بيبقى:
لما يحصل aliasing، النسخ بتركب على بعض ومساهماتها بتتجمع. والنتيجة إن القيمة اللي بتشوفها عند أي frequency ω في المجال المنفصل هي مجموع مساهمات جاية من frequencies أصلية كتير مختلفة. ومفيش طريقة تعرف بيها قيمة معيّنة جاية من أنهي نسخة — الـ aliasing مبيتعكسش. أول ما تاخد samples من الـ signal المستمرة بمعدّل أقل من الـ Nyquist rate، المعلومات اللي ضاعت مبترجعش بأي معالجة بعد كده.
وإن الـ aliasing مبيتعكسش ده نقطة حاسمة. على عكس أشكال كتير من تدهور الـ signal — زي الـ noise مثلًا — متقدرش ترجّعه بمعالجة بعدين. لا filter متقن ولا model بتاع machine learning هيقدر يرجّع المحتوى العالي الحقيقي من تسجيل حصله aliasing، لأن الـ signal اللي حصلها aliasing ماشية رياضيًا مع عدد لانهائي من الـ signals الأصلية. العلاج الوحيد هو الوقاية.
الـ anti-aliasing filters
الحل الهندسي المعتاد هو إنك تحدّ الـ spectrum بتاع الـ signal قبل الـ sampling بـ low-pass filter (مرشح تمرير منخفض) تناظري — اسمه الـ anti-aliasing filter. الـ filter ده بيضعّف كل الـ frequencies اللي فوق fs/2، فاللي بيوصل للـ ADC لازم يحقق شرط نايكويست، والـ aliasing ميقدرش يحصل.
تصميم anti-aliasing filter كويس فيه trade-offs حقيقية. الـ filter المثالي بيعدّي كل الـ frequencies اللي تحت fs/2 ويرفض اللي فوقها تمامًا — بس ده محتاج impulse response (استجابة نبضية) ملهاش نهاية، ودي مستحيلة في الدواير التناظرية. الـ filters الحقيقية ليها transition band (نطاق انتقالي): مدى frequencies بين الـ passband والـ stopband الـ attenuation فيه بيزيد بالتدريج. وكل ما ميل الـ filter يبقى أحدّ، الدايرة التناظرية بتغلى وبتاكل طاقة أكتر.
Butterworth filter من الدرجة N بينزل بمعدّل 20N ديسيبل لكل زيادة عشر أضعاف في الـ frequency فوق الـ cutoff — يعني 100 ديسيبل لـ filter من الدرجة الخامسة. ده يبان حاد، بس العشر أضعاف مدى واسع، ونطاق الحماية عادةً أضيق بكتير. فـ Butterworth من الدرجة 7 مبيدّيش غير حوالي 7 ديسيبل عند 1.1 × الـ cutoff، وعشان توصل لرفض 60 ديسيبل في المسافة القريبة دي محتاج Butterworth من الدرجة 70 أو أكتر، وحتى الـ elliptic filter، أحدّ التصميمات المعروفة، محتاج الدرجة 10 تقريبًا — وده تعقيد تناظري كبير، وهو اللي بيدفعنا لطريقة الـ oversampling.
الـ oversampling: طريق أبسط
بدل ما تبني filter تناظري حاد جدًا وغالي، تصميمات الـ ADC الحديثة بتستخدم الـ oversampling (المعدل الزائد): تاخد samples بمعدّل أعلى بكتير من الحد الأدنى المطلوب، وتحط filter تناظري بسيط للرفض الخشن، وبعدين تستخدم low-pass filter رقمي حاد وبعده decimation (تقليل المعدل) عشان توصل للمعدّل المطلوب.
ليه ده أسهل؟ الـ filters الرقمية ممكن تبقى حادة لأي درجة بتكلفة بسيطة جدًا في الـ chips الحديثة. FIR filter بـ 256 معامل بيتنفّذ في logic رقمي رخيص، وبيشتغل بسرعات النانو ثانية، وخصائصه متوقّعة تمامًا. أما النسخة التناظرية منه — filter تناظري من الدرجة 256 — فمستحيلة عمليًا. ولما بنرمي شغل الفصل الدقيق بين الـ frequencies على المجال الرقمي، بنى الـ oversampling بتدّي رفض ممتاز للـ aliasing بواجهة تناظرية أبسط بكتير.
والتقنية دي موجودة في كل الإلكترونيات اللي بنستخدمها. الـ audio codec اللي في موبايلك بيشتغل جوّاه بـ sampling rate 3 لـ 4 أضعاف معدّل الصوت النهائي. ومحوّلات sigma-delta (اللي بتتستخدم في أجهزة القياس الدقيقة وفي الصوت) بتعمل oversampling من 64 لـ 256 ضعف، ومعتمدة كليًا على الـ filtering الرقمي في رفض الـ aliasing. أما الجزء التناظري من شغل مكافحة الـ aliasing فبيصغر لحد RC filter بسيط من الدرجة الأولى، كل شغله إنه يمنع الـ signals اللي برا النطاق من إنها تشبّع دخل الـ ADC.
الـ aliasing في المجالات المختلفة
الرادار والسونار: الـ receiver بتاع الرادار بياخد samples من النبضات الراجعة عشان يقيس إزاحات دوبلر في الـ frequency — اللي بتقابل سرعة الهدف. لو الـ pulse repetition frequency (PRF) قليلة أوي، الأهداف السريعة بتظهر بسرعات وهمية. هدف سرعته 120 م/ث ممكن يبان كأنه ماشي بـ 20 م/ث في الاتجاه العكسي — سرعة عمياء. ومصمّمين الرادار بيختاروا الـ PRF بحرص عشان السرعات المتوقعة في بيئة الهدف ميحصلهاش aliasing.
التصوير الطبي: أجهزة الرنين المغناطيسي بتاخد samples للبيانات الخام في "فضاء k" (الـ spatial frequency domain). والـ sampling المش كفاية في فضاء k بيعمل تداخل في الصورة اللي بتتبني — حاجة من ناحية من مجال الرؤية بتتطوي وتظهر راكبة على الناحية التانية. والـ wrap-around ده aliasing مكاني، النسخة المباشرة من الـ aliasing الزمني في الصوت.
الاتصالات اللاسلكية: الـ software-defined radios (SDR) بتستقبل نطاق frequency واسع وبتاخد samples من الـ band كله. لو الـ sampling rate مش كفاية للـ band كله، الـ signals اللي قريبة من حافة الـ spectrum بتتطوي للنص وبتعمل تشويش على القنوات الشرعية. وأي مهندس RF لازم يختار الـ sampling rate ومواصفات الـ filter التناظري وهو واخد باله كويس من الـ aliasing.
- الـ aliasing بيحصل لما الـ sampling يبقى تحت الـ Nyquist rate: المكوّنات العالية بتتطوي وتظهر كـ signals وهمية واطية.
- الـ folding frequency هي fs/2؛ وأي طاقة signal فوق الحد ده بتتعكس زي المراية جوه الـ baseband.
- الـ aliasing مبيتعكسش — أول ما يحصل في الـ sampling، المحتوى الوهمي مبيتفصلش عن المحتوى الحقيقي الواطي بأي معالجة بعد كده.
- الـ anti-aliasing filters بتتحط قبل الـ ADC عشان تشيل الـ signals اللي فوق fs/2، فبتمنع الـ aliasing على حساب تعقيد التصميم التناظري.
- الـ oversampling بيزق مشكلة الـ aliasing لـ frequencies عالية بحيث filter تناظري بسيط يكفي، وfilter رقمي حاد بيعمل الفصل الدقيق المطلوب عند حد نايكويست.
- الـ aliasing بيظهر في كل مجالات الـ sampling: الصوت، والفيديو، والرادار، والرنين المغناطيسي، والاتصالات اللاسلكية — وكلهم محتاجين تصميم دقيق عشان يتفادوه.