تقرير وحدة الرادار (Radar Module)
تقرير وحدة الرادار (Radar Module)
النظام الفرعي المغطى: وحدة محاكاة مستوحاة من الرادار السلبي (Passive-Radar-Inspired Simulation Module)
مسار المستودع: Project v1/src/radar_sim/
1. مقدمة (Introduction)
يوثق هذا التقرير وحدة الرادار التي تم تطويرها لصالح النظام الهجين للكشف عن الطائرات بدون طيار (HDDS). يعد النظام الفرعي للرادار هو اللب التقني للتنفيذ الحالي للأطروحة. والغرض منه هو توفير سلسلة محاكاة كاملة وقابلة لإعادة الإنتاج قائمة على لغة بايثون للكشف عن الطائرات بدون طيار قبل دمج وسائط الاستشعار الأخرى مثل الصوت والرؤية.
الرادار المنفذ ليس راداراً ميدانياً متصلاً بالأجهزة (Hardware). بل هو إطار عمل معالجة مخصص للمحاكاة فقط ومستوحى من الرادار السلبي، تم بناؤه لدراسة:
- توليد الموجات (waveform generation)،
- نمذجة التأخير ثنائي السكون (bistatic delay modeling)،
- نمذجة دوپلر (Doppler modeling)،
- تلوث المسار المباشر والكراكيب (direct-path and clutter contamination)،
- معالجة المدى-دوپلر (range-Doppler processing)،
- الكشف بمعدل إنذار كاذب ثابت (CFAR detection)،
- التقييم القائم على السيناريوهات (scenario-based evaluation).
التصميم مخصص ليكون برمجياً فقط عن قصد بحيث يظل المشروع قابلاً للدفاع عنه كنظام معالجة إشارات أكاديمي دون الاعتماد على أجهزة الراديو المعرف برمجياً (SDR)، أو واجهات التردد اللاسلكي (RF front ends)، أو معايرة الهوائي، أو ظروف النشر الخاصة بالموقع.
2. دوافع الأطروحة لوحدة الرادار (Thesis Motivation For The Radar Module)
يعد الكشف عن الطائرات بدون طيار أمراً صعباً لأن المركبات الجوية الصغيرة غير المأهولة قد تمتلك:
- مقطعاً عرضياً رادارياً منخفضاً (low radar cross section)،
- ديناميكيات طيران متغيرة،
- بصمات صوتية ضعيفة على المدى البعيد،
- وغموضاً بصرياً في ظل الإضاءة الضعيفة أو الخلفيات المزدحمة.
لهذا السبب، يستخدم المشروع الرادار كوسيلة استشعار أساسية. يساهم الرادار بمرصدين فيزيائيين حاسمين:
- فائض المدى ثنائي السكون (bistatic range excess) الناتج عن تأخير الانتشار،
- السرعة الشعاعية (radial velocity) الناتجة عن إزاحة تردد دوپلر.
هذه المراصد قابلة للتفسير فيزيائياً وتظل متاحة حتى عندما تتدهور الرؤية أو الصوت. وبناءً على ذلك، تعمل وحدة الرادار كعمود فقري للنظام الهجين.
3. مفهوم الرادار السلبي المستخدم في هذا المشروع (Passive Radar Concept Used In This Project)
3.1 مبدأ الرادار السلبي (Passive Radar Principle)
لا يقوم الرادار السلبي بإرسال موجته الخاصة المخصصة. بدلاً من ذلك، يستخدم منوراً خارجياً متاحاً (illuminator of opportunity) مثل جهاز إرسال اتصالات. في الرادار السلبي التشغيلي، يتم عادةً رصد قناتين:
- القناة المرجعية (Reference channel): نسخة مباشرة من موجة المنور.
- قناة المراقبة (Surveillance channel): البيئة المستقبَلة التي تحتوي على:
- تسرب المسار المباشر،
- الانعكاسات من الأهداف،
- الكراكيب (clutter)،
- الضوضاء.
يتم الكشف عن الهدف من خلال مقارنة إشارة المراقبة بالإشارة المرجعية وتقدير التأخير ودوپلر.
3.2 التفسير في هذا المشروع (Interpretation In This Project)
ينمذج هذا المشروع نظاماً مستوحى من الرادار السلبي باستخدام منور شبيه بنظام OFDM. ولا يدعي أنه رادار سلبي كامل متوافق مع معايير LTE أو DVB-T أو 5G. بدلاً من ذلك، فإنه يجرد المكونات الأساسية للرادار السلبي:
- موجة مرجعية معروفة،
- نسخ طبق الأصل متأخرة للهدف،
- تتابع طور دوپلر عبر النبضات،
- كراكيب ثابتة،
- ضوضاء مضافة،
- تكوين المدى-دوپلر،
- تحديد عتبة CFAR.
وهذا يجعل النظام متسقاً رياضياً وقابلاً للإدارة حاسوبياً لعمل الأطروحة مع الحفاظ على فيزياء الكشف الرئيسية.
4. البنية العامة للرادار (Overall Radar Architecture)
سلسلة المعالجة المنفذة هي:
- توليد موجة مرجعية شبيهة بنظام OFDM.
- بناء مصفوفة نبضات مرجعية عبر نبضات متعددة.
- محاكاة قناة المراقبة مع:
- مسار مباشر،
- كراكيب ثابتة،
- أصداء هدف متأخرة ومزاحة بـ دوپلر،
- ضوضاء غاوسية معقدة.
- إزالة البادئة الدورية (cyclic prefix).
- تحويل القنوات المرجعية وقنوات المراقبة إلى النطاق الترددي.
- قسمة المراقبة على المرجع لقمع تعديل بيانات الموجات الحاملة الفرعية العشوائية.
- تطبيق تحويل فوريه السريع العكسي (IFFT) عبر الزمن السريع لإنتاج مخططات المدى (range profiles).
- طرح المحتوى الثابت لمتوسط النبضة لقمع الكراكيب ذات دوپلر الصفري.
- تطبيق تحويل فوريه السريع (FFT) للزمن البطيء لتشكيل خريطة المدى-دوپلر.
- تطبيق CA-CFAR ثنائي الأبعاد للكشف عن القمم الهامة.
- تحويل المكتشفات إلى وحدات فيزيائية:
- فائض المدى ثنائي السكون بالأمتار،
- دوپلر بالهرتز،
- السرعة الشعاعية بالمتر/ثانية.
ملفات التنفيذ الرئيسية هي:
- constants.py
- waveform.py
- channel.py
- processing.py
- geometry.py
- detection.py
- metrics.py
- runner.py
- tui.py
- realtime.py
5. تهيئة الرادار ومعلمات الإشارة (Radar Configuration And Signal Parameters)
يتم تحميل معلمات النظام الافتراضية من default.yaml.
5.1 معلمات الرادار الأساسية (Primary Radar Parameters)
| المعلمة | الرمز | القيمة | المعنى |
|---|---|---|---|
| سرعة الضوء | c | 3.0e8 m/s | سرعة الانتشار الكهرومغناطيسي |
| التردد الحامل | f_c | 2.4 GHz | التردد الحامل المفترض للمنور |
| الطول الموجي | lambda = c/f_c | 0.125 m | يستخدم لتحويل دوپلر إلى سرعة |
| معدل العينات | f_s | 20 MHz | تردد أخذ العينات للزمن السريع |
| فاصل تكرار النبضات | PRI | 250 us | الوقت بين النبضات |
| تردد تكرار النبضات | PRF = 1/PRI | 4 kHz | تردد أخذ العينات للزمن البطيء |
| عدد النبضات | N_p | 128 | لقطات الزمن البطيء المتماسكة |
| عدد الموجات الحاملة الفرعية | N_sc | 256 | صناديق تردد OFDM |
| طول البادئة الدورية | N_cp | 64 عينة | البادئة المستخدمة قبل كل رمز OFDM |
| العينات لكل نبضة | N_sc + N_cp | 320 عينة | الطول الإجمالي للنبضة |
| سعة المسار المباشر | -35 dB | قوة التسرب | |
| سعة الكراكيب | -45 dB | قوة الكراكيب الثابتة | |
| قدرة الضوضاء | -75 dB | حد الضوضاء الافتراضي |
5.2 الكميات المشتقة (Derived Quantities)
باستخدام المعلمات أعلاه:
- مدة رمز OFDM المفيدة
T_u = N_sc / f_s = 256 / 20e6 = 12.8 us
- مدة البادئة الدورية
T_cp = N_cp / f_s = 64 / 20e6 = 3.2 us
- مدة النبضة الإجمالية
T_sym = (N_sc + N_cp) / f_s = 320 / 20e6 = 16 us
- فاصل المعالجة المتماسك
CPI = N_p * PRI = 128 * 250 us = 32 ms
- تباعد صناديق المدى
يستخدم النموذج تباعد تأخير العينات:
Delta R = c / f_s = 3e8 / 20e6 = 15 m
هذا هو تباعد فائض المدى ثنائي السكون لمحور التأخير المنفصل المستخدم بواسطة المعالج.
- أقصى محور مدى منمذج
مع وجود 256 عينة مفيدة بعد إزالة البادئة الدورية:
R_max approx (256 - 1) * 15 = 3825 m
- دقة دوپلر (Doppler resolution)
Delta f_d = PRF / N_p = 4000 / 128 = 31.25 Hz
- دقة السرعة (Velocity resolution)
Delta v = Delta f_d * lambda / 2
= 31.25 * 0.125 / 2
= 1.953125 m/s
- أقصى دوپلر غير غامض
|f_d,max| = PRF / 2 = 2000 Hz
- أقصى سرعة شعاعية غير غامضة
|v_max| = (PRF / 2) * lambda / 2
= 125 m/s
تحدد هذه القيم منطقة التشغيل الفيزيائية للمعالج الذي تتم محاكاته.
6. توليد الموجة المرجعية (Reference Waveform Generation)
يتم توليد الموجة المرجعية في waveform.py.
6.1 رموز الموجات الحاملة الفرعية QPSK
يبدأ كل رمز OFDM بتوليد رموز QPSK مستقلة:
X[k] in {(+1 +/- j)/sqrt(2), (-1 +/- j)/sqrt(2)}
يتم تنفيذ ذلك عن طريق سحب إشارات عشوائية للطور (in-phase) والتربيع (quadrature) من {-1, +1} والتقييس بواسطة sqrt(2).
6.2 تركيب رموز شبيهة بـ OFDM
لكل نبضة:
- يتم إنشاء رموز QPSK لـ
256موجة حاملة فرعية. - يتم تطبيق IFFT للانتقال من النطاق الترددي إلى النطاق الزمني.
- يتم تقييس قدرة رمز النطاق الزمني:
x[n] <- x[n] / sqrt(E{|x[n]|^2})
- يتم نسخ بادئة دورية مكونة من
64عينة من نهاية الرمز وإلحاقها بالمقدمة.
تحتوي النبضة الناتجة على 320 عينة معقدة.
6.3 مصفوفة النبضات المرجعية
تقوم الدالة generate_reference_matrix() بتكديس 128 نبضة من هذا القبيل في مصفوفة:
reference.shape = (num_pulses, samples_per_pulse) = (128, 320)
يمثل كل صف نبضة واحدة وكل عمود عينة زمن سريع.
7. محاكاة قناة المراقبة (Surveillance Channel Simulation)
تتم محاكاة قناة المراقبة في channel.py.
7.1 نموذج الإشارة (Signal Model)
بالنسبة لعينة الزمن السريع n ومؤشر النبضة p ، تكون إشارة المراقبة هي:
y[n, p] = a_direct x[n, p]
+ sum_k a_k x[n - d_k, p] exp(j 2 pi f_d,k t[n, p])
+ c[n]
+ w[n, p]
حيث:
x[n, p]هي الموجة المرجعية،a_directهي سعة تسرب المسار المباشر،a_kهي سعة الهدف المقيسة عقدياً،d_kهو تأخير الهدف،f_d,kهو دوپلر الهدف،c[n]هي الكراكيب الثابتة،w[n, p]هي ضوضاء غاوسية معقدة.
7.2 المسار المباشر (Direct Path)
يتم نمذجة المسار المباشر كنسخة مقيسة من الموجة المرجعية:
a_direct = 10^(A_direct_db / 20)
مع القيمة الافتراضية -35 dB ، يكون المسار المباشر أضعف من الإشارة كاملة النطاق ولكنه لا يزال كبيراً بما يكفي لتمثيل التسرب من المنور.
7.3 نموذج صدى الهدف (Target Echo Model)
يتم وصف كل هدف بواسطة:
delay_s(التأخير بالثواني)،doppler_hz(دوپلر بالهرتز)،amplitude_db(السعة بالديسيبل).
يتم إنشاء صدى الهدف في مرحلتين:
- التأخير الجزئي (Fractional delay)
- تدوير طور دوپلر (Doppler phase rotation)
7.3.1 التأخير الجزئي
يطبق الكود التأخير في النطاق الترددي:
X(f) -> X(f) exp(-j 2 pi f tau)
يتم تنفيذ ذلك عن طريق:
- تحويل فوريه السريع (FFT) للنبضة،
- الضرب في حد طور التأخير،
- تحويل فوريه السريع العكسي (IFFT) للعودة إلى النطاق الزمني.
يسمح هذا بتأخيرات ذات قيم مستمرة بدلاً من قصر الأهداف على إزاحات العينات الصحيحة.
7.3.2 طور دوپلر
بالنسبة لمؤشر النبضة p ومؤشر الزمن السريع n ، يكون حد دوپلر هو:
exp(j 2 pi f_d (n/f_s + p*PRI))
هذا يقدم:
- تطور الطور داخل النبضة في الزمن السريع،
- تطور الطور المتماسك بين النبضات في الزمن البطيء.
هذا التطور في طور الزمن البطيء هو ما يشكل في النهاية قمة دوپلر بعد تطبيق FFT للزمن البطيء.
7.4 الكراكيب الثابتة (Stationary Clutter)
يتم توليد الكراكيب الثابتة مرة واحدة لكل تنفيذ سيناريو كمتجه عشوائي معقد عبر الزمن السريع ثم يعاد استخدامه عبر جميع النبضات:
clutter[n] = A_clutter * complex_gaussian[n]
ولأنه يعاد استخدامه لكل نبضة، فإنه يكون ثابتاً في الزمن البطيء وبالتالي يتركز بالقرب من دوپلر الصفري. هذا مقصود، حيث يسمح لسلسلة المعالجة باختبار قمع الكراكيب الثابتة.
7.5 الضوضاء (Noise)
تتم إضافة ضوضاء غاوسية معقدة مستقلة لكل نبضة:
w[n, p] ~ CN(0, sigma^2)
مع:
sigma = sqrt(P_noise_linear / 2)
توزع القسمة على 2 تبايناً متساوياً للأجزاء الحقيقية والتخيلية.
7.6 مصفوفة المراقبة (Surveillance Matrix)
تمتلك مصفوفة المراقبة النهائية نفس شكل المصفوفة المرجعية:
surveillance.shape = (128, 320)
يحتوي كل صف على:
- المسار المباشر،
- الكراكيب،
- جميع أصداء الهدف،
- الضوضاء الخاصة بالنبضة.
8. الهندسة والتفسير الفيزيائي (Geometry And Physical Interpretation)
يتم تنفيذ التحويلات الهندسية في geometry.py.
8.1 التأخير إلى فائض المدى ثنائي السكون
يستخدم المشروع:
R_b = c * tau
حيث:
R_bهو فائض المدى ثنائي السكون،tauهو تأخير الهدف،cهو سرعة الضوء.
هذا مناسب لمحور التأخير المصمم بنمط الرادار السلبي. ويجب تفسيره على أنه مسار الانتشار الزائد بالنسبة للمسار المرجعي، وليس بالضرورة المدى المائل أحادي السكون (monostatic slant range).
8.2 دوپلر إلى السرعة
يستخدم الكود:
v = f_d * lambda / 2
حيث:
f_dهو تردد دوپلر،lambda = c / f_c.
هذه العلاقة هي التعيين القياسي بنمط أحادي السكون المستخدم هنا كطبقة تفسير حركي (kinematic) عملية. في الهندسة ثنائية السكون الحقيقية، تعتمد علاقة دوپلر الدقيقة على هندسة جهاز الإرسال-الهدف-جهاز الاستقبال، لكن هذا التعيين المبسط مقبول لنطاق محاكاة الأطروحة الحالي.
9. سلسلة معالجة الإشارات (Signal Processing Chain)
تتم المعالجة في processing.py.
9.1 إزالة البادئة الدورية (Cyclic Prefix Removal)
تزيل الخطوة الأولى البادئة الدورية:
ref_symbols = reference[:, N_cp:]
surv_symbols = surveillance[:, N_cp:]
بعد هذه الخطوة، تحتوي كل نبضة على 256 عينة مفيدة.
9.2 تحويل رموز النطاق الترددي
يتم تحويل كلتا القناتين إلى نطاق الموجة الحاملة الفرعية:
R[k, p] = FFT{ref_symbols[p]}
S[k, p] = FFT{surv_symbols[p]}
9.3 قمع تعديل البيانات
نظراً لأن رموز الموجة الحاملة الفرعية للمنور هي بيانات QPSK عشوائية، يقوم المعالج بإزالة ذلك التعديل عن طريق قسمة طيف المراقبة على الطيف المرجعي:
H[k, p] = S[k, p] / (R[k, p] + epsilon)
حيث epsilon = 1e-12 يتجنب عدم الاستقرار العددي في حالة اقتراب موجة حاملة فرعية من الصفر.
تعمل هذه الخطوة مثل تقييس متطابق في النطاق الترددي مقابل المرجع المعروف.
9.4 تشكيل مخطط المدى (Range Profile Formation)
يتم بعد ذلك تطبيق IFFT عبر الزمن السريع:
h[n, p] = IFFT_k {H[k, p]}
والنتيجة هي مجموعة من مخططات التأخير لكل نبضة، يشار إليها في الكود باسم range_profiles.
9.5 قمع المكونات الثابتة
تميل الكراكيب الثابتة والتسرب المباشر إلى التركز عند دوپلر القريب من الصفر. يقدر التنفيذ المحتوى الثابت عن طريق المتوسط عبر النبضات:
mean_profile[n] = (1/N_p) sum_p h[n, p]
ويطرحه:
h_filtered[n, p] = h[n, p] - mean_profile[n]
هذا هو مانع كراكيب بسيط ولكنه فعال في الزمن البطيء.
9.6 النوافذ قبل FFT دوپلر (Windowing Before Doppler FFT)
يتم تطبيق نافذتي هامينج (Hamming windows):
- نافذة هامينج للزمن البطيء عبر النبضات،
- نافذة هامينج للزمن السريع عبر صناديق المدى.
هذا يقلل من الفصوص الجانبية (sidelobes) في خريطة المدى-دوپلر الناتجة.
9.7 تشكيل خريطة المدى-دوپلر
يتم تحويل المخططات المفلترة باستخدام فوريه على طول الزمن البطيء:
RD[m, n] = FFT_p {h_filtered[p, n]}
ويتم تطبيق fftshift بحيث يظهر دوپلر الصفري في مركز محور دوپلر.
المصفوفة النهائية هي:
range_doppler_map.shape = (128, 256)
مع:
- المحور 0 = صناديق دوپلر،
- المحور 1 = صناديق المدى.
10. مرحلة الكشف: 2D CA-CFAR
يتم تنفيذ الكشف في detection.py.
10.1 لماذا يستخدم CFAR
لا تعد العتبة العالمية الثابتة مناسبة عندما تختلف ظروف الضوضاء والكراكيب والفصوص الجانبية عبر الخريطة. يوفر CFAR عتبة تكييفية بناءً على قدرة الخلفية المحلية.
10.2 خريطة القدرة (Power Map)
يحسب الكاشف أولاً:
P[m, n] = |RD[m, n]|^2
10.3 هيكل نافذة CFAR
معلمات CFAR الافتراضية هي:
| الكمية | القيمة |
|---|---|
| خلايا الحماية في المدى | 2 |
| خلايا الحماية في دوپلر | 2 |
| خلايا التدريب في المدى | 8 |
| خلايا التدريب في دوپلر | 8 |
| احتمال الإنذار الكاذب | 1e-5 |
هذا ينشئ قالباً (stencil) ثنائي الأبعاد حول كل خلية تحت الاختبار:
- الخلية المركزية = الكشف المرشح،
- خلايا الحماية القريبة = مستبعدة لتجنب تسرب الهدف إلى تقدير الضوضاء،
- خلايا التدريب الخارجية = تستخدم لتقدير قدرة الضوضاء/الكراكيب المحلية.
10.4 حساب العتبة
يتم حساب تقدير الضوضاء المحلي عن طريق الالتفاف (convolution) ثنائي الأبعاد مع نواة CFAR.
إذا كان عدد خلايا التدريب هو N_train ، فإن عامل العتبة هو:
alpha = N_train * (P_fa^(-1/N_train) - 1)
تصبح العتبة التكييفية:
T[m, n] = alpha * noise_estimate[m, n]
يحدث الكشف عندما:
P[m, n] > T[m, n]
10.5 بوابة السرعة الثابتة (Stationary Velocity Gate)
بعد تحديد عتبة CFAR، يتم تطبيق مرشح إنذار كاذب عملي:
|velocity| < 1.0 m/s -> reject
يتم تكوين ذلك من خلال:
min_abs_velocity_mps = 1.0
والغرض منه هو قمع المكتشفات المرتبطة بـ:
- المسار المباشر المتبقي،
- الكراكيب الساكنة،
- التسرب شبه الثابت.
يعد هذا قراراً تصميمياً مهماً لأن كاشف الطائرات بدون طيار يجب ألا يبلغ عن كل عائد ثابت قوي كهدف متحرك.
10.6 تجميع المناطق واختيار القمم
بعد تحديد العتبة، يتم تسمية مناطق الكشف المتصلة. لكل منطقة:
- يتم العثور على البكسل ذو القدرة الأعلى،
- يتم الاحتفاظ بصناديق المدى ودوپلر الخاصة به،
- يتم تحويل قدرته إلى ديسيبل،
- يتم الإبلاغ عن النتيجة ككشف واحد.
يتضمن كل كشف:
- صندوق المدى،
- صندوق دوپلر،
- فائض المدى ثنائي السكون بالأمتار،
- دوپلر بالهرتز،
- السرعة بالمتر/ثانية،
- ذروة القدرة بالديسيبل.
11. تعريف السيناريو والحقيقة الأرضية (Scenario Definition And Ground Truth)
تتم إدارة السيناريوهات بواسطة constants.py، و scenarios.py، و metrics.py.
11.1 السيناريوهات الافتراضية
يعرف المستودع حالياً هذه السيناريوهات:
سماء صافية (Clear Sky)
- لا توجد أهداف،
- كراكيب وضوضاء فقط.
الغرض:
- التحقق من أن المعالج لا ينتج إنذارات كاذبة غير منضبطة.
هدف بطيء واحد (Single Slow Target)
delay = 5 usdoppler = 80 Hzamplitude = -18 dB
التفسير الفيزيائي:
range = c * tau = 1500 m
velocity = f_d * lambda / 2 = 5.0 m/s
هدف سريع واحد (Single Fast Target)
delay = 8 usdoppler = -350 Hzamplitude = -16 dB
التفسير الفيزيائي:
range = 2400 m
velocity = -21.875 m/s
هدفان (Two Targets)
الهدف 1:
delay = 4.5 usdoppler = 120 Hzamplitude = -18 dBrange = 1350 mvelocity = 7.5 m/s
الهدف 2:
delay = 7 usdoppler = -180 Hzamplitude = -20 dBrange = 2100 mvelocity = -11.25 m/s
الغرض:
- التحقق من فصل الأهداف المتعددة في مساحة المدى-دوپلر.
هدف ضعيف بنسبة إشارة إلى ضوضاء منخفضة (Low SNR Weak Target)
delay = 6 usdoppler = 60 Hzamplitude = -24 dBrange = 1800 mvelocity = 3.75 m/s- تم ضبط حد الضوضاء المخفض إلى
-82 dB
الغرض:
- اختبار الكشف في ظل ظروف هدف أضعف.
11.2 مطابقة الحقيقة (Truth Matching)
تقوم وحدة المقاييس (metrics module) بتحويل كل هدف مهيأ إلى قيم حقيقية في:
- المدى،
- دوپلر،
- السرعة.
يتم بعد ذلك مطابقة المكتشفات باستخدام التفاوتات:
- تفاوت المدى =
30 m - تفاوت دوپلر =
25 Hz
يسمح هذا بالتحقق الآلي من الاتساق بين معلمات الهدف المحقونة وتقديرات الهدف المسترجعة.
12. أوضاع التنفيذ المواجهة للمستخدم (User-Facing Execution Modes)
12.1 مشغل السيناريوهات المجمع (Batch Scenario Runner)
منفذ في runner.py.
هذا الوضع:
- يحمل تهيئة YAML،
- يختار سيناريو مسمى،
- يشغل سلسلة المعالجة الكاملة،
- يطبع تقرير الكشف،
- يرسم المخرجات اختيارياً،
- يحفظ سجلاً مختوماً بالوقت.
12.2 واجهة المستخدم النصية التفاعلية (Interactive TUI)
منفذة في tui.py.
يقبل هذا الوضع الأهداف بالوحدات الفيزيائية:
- المسافة،
- السرعة،
- السعة،
- قدرة الضوضاء،
- سعة الكراكيب.
ثم يقوم بالتحويل:
distance -> delay
speed -> Doppler
ويشغل السيناريو فوراً.
هذا يجعل المحاكاة أكثر بديهية للعروض التوضيحية ومراجعة المشرف لأنه يمكن تحديد الأهداف بالأمتار والأمتار في الثانية بدلاً من معلمات الإشارة الخام.
12.3 وضع الهدف المتحرك في الوقت الفعلي (Realtime Moving-Target Mode)
منفذ في realtime.py.
يحاكي هذا الوضع حركة الهدف بمرور الوقت. لكل هدف:
range(t) = max(0, range_0 - v * t)
يتم إعادة بناء سيناريو لحظي جديد في كل إطار، ومعالجته، وعرضه.
يوفر هذا عرضاً ديناميكياً مبسطاً لكيفية تحرك المكتشفات عندما تقترب طائرة بدون طيار أو تبتعد.
13. مخرجات الرادار التي تنتجها الوحدة (Radar Outputs Produced By The Module)
تولد الوحدة عدة مخرجات مهمة.
13.1 مخططات المدى (Range Profiles)
مخططات نطاق التأخير لكل نبضة بعد تقييس المرجع.
13.2 مخططات المدى المفلترة (Filtered Range Profiles)
مخططات المدى بعد طرح المتوسط الثابت.
13.3 خريطة المدى-دوپلر (Range-Doppler Map)
خريطة ثنائية الأبعاد مع:
- المحور الأفقي = فائض المدى ثنائي السكون،
- المحور الرأسي = السرعة الشعاعية،
- كثافة البكسل = قدرة الإشارة.
13.4 خريطة عتبة CFAR (CFAR Threshold Map)
العتبة التكييفية المستخدمة لقرارات الكشف المحلية.
13.5 قناع الكشف الثنائي (Binary Detection Mask)
خريطة منطقية للخلايا التي اجتازت عتبة CFAR وبوابة السرعة.
13.6 قائمة الكشف (Detection List)
مكتشفات نهائية مدمجة مع التفسير الفيزيائي.
13.7 السجلات النصية (Text Logs)
تكتب كل عملية تشغيل سجلاً مهيكلاً من خلال logging_utils.py.
هذا يحسن من إمكانية إعادة إنتاج التجارب وقابلية التدقيق.
14. المزايا العلمية لتصميم الرادار المنفذ (Scientific Merits Of The Implemented Radar Design)
تمتلك الوحدة الحالية عدة نقاط قوة كقلب رادار للأطروحة:
-
مراصد قابلة للتفسير فيزيائياً
يتم تعيين المعلمات المحقونة والمخرجات المبلغ عنها بوضوح إلى التأخير ودوپلر والمدى والسرعة. -
بيئة محاكاة قابلة لإعادة الإنتاج
تسمح تهيئة YAML والبذرة العشوائية الثابتة بتكرار التجارب. -
بنية رادار سلبي واضحة
يتطابق الفصل بين القنوات المرجعية وقنوات المراقبة مع مفهوم الرادار السلبي. -
تنفيذ نموذجي (Modular)
يتم فصل توليد الموجات ونمذجة القنوات والمعالجة والكشف والرسم والمقاييس بشكل نظيف. -
دعم دراسات السيناريو
يمكن للكود اختبار حالات السماء الصافية والهدف الواحد والأهداف المتعددة والهدف الضعيف والهدف المتحرك. -
جسر جيد للدمج متعدد الوسائط
تنتج الوحدة بالفعل مكتشفات مهيكلة ومختومة زمنياً يمكن دمجها لاحقاً مع فروع الصوت والرؤية.
15. افتراضات النمذجة والقيود (Modeling Assumptions And Limitations)
15.1 ليس راداراً عتادياً (Hardware Radar)
هذا نظام محاكاة فقط. ولا يتضمن حالياً:
- أجهزة استقبال SDR،
- هندسة الهوائي،
- خطأ المزامنة،
- ضوضاء طور المذبذب،
- تكميم ADC،
- هندسة تعدد المسارات للتضاريس،
- تقدير موجة المرسل من البيانات الحقيقية.
15.2 شبيه بـ OFDM، وليس متوافقاً مع معايير LTE/DVB
الموجة مستوحاة من إشارات الاتصالات ولكنها غير مرتبطة بمجموعة معايير بث أو خلوية كاملة. وهذا متعمد: الهدف هو دراسة مبادئ معالجة الرادار السلبي، وليس إعادة إنتاج معيار اتصالات كامل.
15.3 تفسير ثنائي السكون مبسط
يتم تعيين التأخير على النحو التالي:
R_b = c * tau
ويتم تعيين السرعة بصيغة نمط أحادي السكون:
v = f_d * lambda / 2
هذا مناسب للمحاكاة الحالية، لكن النشر ثنائي السكون الكامل سيتطلب تحديد الموقع وتفسير دوپلر بشكل خاص بالهندسة.
15.4 كراكيب مبسطة
يتم نمذجة الكراكيب كبنية عشوائية معقدة ثابتة تظل مستقرة عبر النبضات. يمكن أن تكون الكراكيب الحقيقية:
- موزعة،
- متغيرة زمنياً،
- معتمدة على التضاريس،
- وذات طيف ملون.
15.5 عملية التأخير/البادئة الدورية
مدة البادئة الدورية هي 3.2 us ، في حين أن بعض تأخيرات الأهداف المهيأة أكبر من ذلك. في جهاز استقبال اتصالات صارم، يمكن أن تؤدي التأخيرات التي تتجاوز البادئة الدورية إلى تداخل بين الرموز (inter-symbol interference). لا تزال المحاكاة الحالية تحدد موقع مثل هذه التأخيرات لأنها تنمذج التأخير باستخدام إزاحة جزئية مبسطة وتعالج كل نبضة بشكل مستقل. هذا مقبول لمحاكاة الأطروحة، ولكن يجب الاعتراف به كتبسيط للنمذجة بدلاً من نموذج قناة OFDM مخلص تماماً للمعايير.
سلسلة معالجة كاملة:
- توليد الموجات،
- تركيب القناة،
- التقييس المتطابق،
- معالجة المدى،
- معالجة دوپلر،
- الكشف التكييفي،
- مقارنة الحقيقة،
- التسجيل،
- التصور،
- التجريب التفاعلي.