در حال حاضر خالی است: ریال0
آنالیز داده
محاسبه پایلوت پلوشن LTE به صورت خودکار با استفاده از نرم افزار Tems Discovery
- 15 تیر, 1403
- نظرات 0
در ابتدا برای آشنایی با این مشکل لطفا مقاله قبلتر را مطالعه کنید که به پایلوتپلوشن در شبکه 3G را توضیح دادیم، پس آن را در ذهن خود نگه دارید و این مقاله را مطالعه کنید.
پایلوت پلوشن در شبکه LTE چیست؟
برای محاسبه این مشکل برای تیم بهینه سازی، با هم صحبت کردیم و شرایط زیر را برای محاسبه آن پیدا کردیم:
1- RSRP قویترین سل بزرگتر از 100- باشد.
2- آفست هر سلول همسایه از قوی ترین سلول زیر 3 دسی بل باشد.
3- تعداد سل با شروط فوق بزرگتر مساوی 4 باشد.
این محاسبه را چگونه در TEMS DISCOVERY انجام دادم؟
توجه: برای محاسبه پایلوت پلوشن، استفاده از اسکنر خوب است زیرا تمام اطلاعات را از همه طرف شبکه جمعآوری میکند، اما به دلیل محدودیتهایم، یک تست IDLE شبکه LTE با تجهیزات نمو گرفتم.
بر اساس مکانیسم TEMS DISCOVERY، لاگفایل های مدنظر را لود کردم.
با توجه به ورودی های مورد نیاز تصمیم بر آن گرفتم که یک اسکریپت در قسمت Script Builder این نرمافزار که شامل ورودی های زیر میباشد:
حال در قسمت متریک چهار خروجی به نامهای LTE_PilotPollution که نشان میدهد پایلوت پلوشن شده است یا خیر، LTE_PilotPollution_Level که با توجه به تعداد سلها میزان بحرانی بودن آن نقطه را نشان میدهد، LTE_NumofPolluters که تعداد سل هایی را نشان میدهد که آلودگی ایجاد کردهاند و PCI_Polluters که PCI سلی را نشان میدهد که آلودگی را ایجاد کرده است.
در ادامه نمونه کد و خروجیهای حاصل از اسکریپت را میتوانید مشاهده کنید.
در قسمت زیر میتوانید کد مربوط به مساحبه را مشاهده کنید:
float RSRP_Max = RSRP_;
LTE_NumofPolluters = 0;
LTE_PilotPollution = "Normal";
LTE_PilotPollution_Level = "Clean";
if(IsValueValid(RSRP_N1))
{
if(get_Max_RSRP(RSRP_N1,RSRP_Max))
RSRP_Max = RSRP_N1;
}
if(IsValueValid(RSRP_N2))
{
if(get_Max_RSRP(RSRP_N2,RSRP_Max))
RSRP_Max = RSRP_N2;
}
if(IsValueValid(RSRP_N3))
{
if(get_Max_RSRP(RSRP_N3,RSRP_Max))
RSRP_Max = RSRP_N3;
}
if(IsValueValid(RSRP_N4))
{
if(get_Max_RSRP(RSRP_N4,RSRP_Max))
RSRP_Max = RSRP_N4;
}
if(IsValueValid(RSRP_N5))
{
if(get_Max_RSRP(RSRP_N5,RSRP_Max))
RSRP_Max = RSRP_N5;
}
if(IsValueValid(RSRP_N6))
{
if(get_Max_RSRP(RSRP_N6,RSRP_Max))
RSRP_Max = RSRP_N6;
}
if(IsValueValid(RSRP_N7))
{
if(get_Max_RSRP(RSRP_N7,RSRP_Max))
RSRP_Max = RSRP_N7;
}
if(IsValueValid(RSRP_N8))
{
if(get_Max_RSRP(RSRP_N8,RSRP_Max))
RSRP_Max = RSRP_N8;
}
if(RSRP_Max>-100)
{
PCI_Polluters="";
if(IsLTEPolluted(RSRP_,RSRP_Max)){
LTE_NumofPolluters+=1;
PCI_Polluters += Convert.ToString(LTE_Serving_Cell_Identity_);
}
if(IsValueValid(RSRP_N1))
{
if(IsLTEPolluted(RSRP_N1,RSRP_Max)){
LTE_NumofPolluters+=1;
if(LTE_NumofPolluters>1)
PCI_Polluters+=",";
PCI_Polluters += PCI_N1;
}
}
if(IsValueValid(RSRP_N2))
{
if(IsLTEPolluted(RSRP_N2,RSRP_Max)){
LTE_NumofPolluters+=1;
if(LTE_NumofPolluters>1)
PCI_Polluters+=",";
PCI_Polluters += PCI_N2;
}
}
if(IsValueValid(RSRP_N3))
{
if(IsLTEPolluted(RSRP_N3,RSRP_Max)){
LTE_NumofPolluters+=1;
if(LTE_NumofPolluters>1)
PCI_Polluters+=",";
PCI_Polluters += PCI_N3;
}
}
if(IsValueValid(RSRP_N4))
{
if(IsLTEPolluted(RSRP_N4,RSRP_Max)){
LTE_NumofPolluters+=1;
if(LTE_NumofPolluters>1)
PCI_Polluters+=",";
PCI_Polluters += PCI_N4;
}
}
if(IsValueValid(RSRP_N5))
{
if(IsLTEPolluted(RSRP_N5,RSRP_Max)){
LTE_NumofPolluters+=1;
if(LTE_NumofPolluters>1)
PCI_Polluters+=",";
PCI_Polluters += PCI_N5;
}
}
if(IsValueValid(RSRP_N6))
{
if(IsLTEPolluted(RSRP_N6,RSRP_Max))
{
LTE_NumofPolluters+=1;
if(LTE_NumofPolluters>1)
PCI_Polluters+=",";
PCI_Polluters += PCI_N6;
}
}
if(IsValueValid(RSRP_N7))
{
if(IsLTEPolluted(RSRP_N7,RSRP_Max)){
LTE_NumofPolluters+=1;
if(LTE_NumofPolluters>1)
PCI_Polluters+=",";
PCI_Polluters += PCI_N7;
}
}
if(IsValueValid(RSRP_N8))
{
if(IsLTEPolluted(RSRP_N8,RSRP_Max)){
LTE_NumofPolluters+=1;
if(LTE_NumofPolluters>1)
PCI_Polluters+=",";
PCI_Polluters += PCI_N8;
}
}
if(LTE_NumofPolluters>=4)
LTE_PilotPollution = "Pilot-Pollution";
if(LTE_NumofPolluters>0 && LTE_NumofPolluters <=2)
LTE_PilotPollution_Level = "Pollution";
else if(LTE_NumofPolluters >2 && LTE_NumofPolluters <=4)
LTE_PilotPollution_Level = "Normal Pollution";
else if(LTE_NumofPolluters >4 && LTE_NumofPolluters <=10)
LTE_PilotPollution_Level = "High Pollution";
}
bool IsLTEPolluted(float crsrp,float maxrsrp)
{
float signaldel = crsrp - maxrsrp;
if(signaldel !=0)
{
if(signaldel>-3 && signaldel<3)
return true;
}
return false;
}
پیمان هوشمند
سلام امیدوارم حال همگی شما خوب باشه.من پیمان هوشمند هستم. مدرس برنامه نویسی و نرم افزارهای تحلیلی در حوزه مخابرات. خود من همیشه به عنوان یه دانش آموزش و دانش پژوه عاشق برنامه نویسی و کارهای آماری بودم و نقطه قوتم حتی در زمان تحصیل خودم هم مباحث برنامه نویسی بخصوص طراحی الگوریتم بوده. بنابراین این درس را خیلی مفهومی و عمیق یاد گرفتم. تفاوت عمیق من با دانشجویان در زمان تحصیلم این بود که در حوزه ای که تحصیل میکردم مشغول به کار بودم و این دلیل بر عمیق تر شدن در حوزه نرم افزار و مخابرات بود و از دانشگاه برای فهم بیشتر مبانی های کارم استفاده کردم. تا به امروز در اکثر سازمانهایی که کار کرده ام در کنار سمت اصلیم ، به عنوان سوپروایزر آموزشی هم فعالیت میکردم و متخصصینی در این حوزه آموزش داده ام و در بازار کار مشغول به کار هستند و در مدتی که کرونا باعث تعطیلی بسیاری از مراکز آموزش بود ، به صورت رایگان در خدمت دانشجویان نرم افزار از دانشگاه های مختلف بودم. همیشه در روش های آموزشیم بدنبال ابتکار و نوآوری هایی از قبیل گیمیفیکیشن و تکنیک های شناختی به جهت بهبود یادگیری بوده ام.




