در حال حاضر خالی است: ریال0
مارکو پشت میز کارش نشسته بود. صدای ضبطشدهای از تماس VoLTE در حال پخش بود .وضوح بالا، بدون تأخیر، و با کیفیتی که حتی تماسهای واتساپ هم به گرد پایش نمیرسیدند. اما مارکو خوب میدانست که این کیفیت، نتیجه یک طراحی دقیق در لایههای فیزیکی و MAC بود.
پیمان وارد شد، با لپتاپش و لیوان چی همیشگیش. مارکو، امروز باید ظرفیت VoLTE رو برای منطقه SU تخمین بزنیم. این بار فقط دیتا نیست صداست، و صدا یعنی حساسیت به تأخیر، خطا، و مصرف منابع.
مارکو سری تکان داد بذار اول از کدکها شروع کنیم. اگه بخوای Full Band با نرخ 128 Kbps رو فعال کنیم، هر بسته VoIP حدود 2640 بیت داره. با توجه به نرخ کدگذاری در LTE، یعنی حدود 5 RB در DL و 8 RB در UL برای هر بسته.
او ادامه داد: و چون VoLTE از AMR-WB یا EVS استفاده میکنه، بستهها هر 20 میلیثانیه ارسال میشن. یعنی در هر ثانیه، 50 بسته. حالا ضرب کن در تعداد تماسهای همزمان…
📊 محاسبه تماسهای همزمان
مارکو روی تخته دیجیتال نوشت:
calls_per_cell = (busy_hour_call_duration / 3600) * user_density * cell_area_km2
📡 بررسی SINR و انتخاب کدک
پیمان گفت: مارکو، SINR در منطقه SU بین 0 تا 10 dB نوسان داره. یعنی برای بیشتر کاربران، فقط Narrow Band یا Wide Band قابل استفادهست.
مارکو جدول زیر رو روی صفحه آورد:
Codec Class | DL SINR (dB) | UL SINR (dB) | Required RBs |
Narrow Band | -4.7 | -1.6 | 2 DL / 3 UL |
Wide Band | -3.8 | -0.5 | 3 DL / 4 UL |
SWB | -2.8 | 0.9 | 4 DL / 6 UL |
Full Band | -0.7 | 3.8 | 5 DL / 8 UL |
او گفت: برای کاربران با SINR زیر 5 dB، باید از TTI Bundling استفاده کنیم. این باعث افزایش SINR تا 6 dB میشه، ولی مصرف منابع هم ۴ برابر میشه.
TTI Bundling و Semi-Persistent Scheduling
مارکو به سراغ نمودار TTI رفت TTI Bundling یعنی همون بسته VoIP رو پشت سر هم در ۴ TTI بفرستیم. این باعث افزایش احتمال دریافت موفق میشه، ولی منابع بیشتری مصرف میکنه.
او محاسبه کرد:
effective_rb = base_rb * bundling_factor
پیمان گفت: و چون VoLTE از Semi-Persistent Scheduling استفاده میکنه، منابع از قبل رزرو میشن. یعنی برای هر تماس، یه بلوک زمانی ثابت داریم که نمیتونیم به دیتا اختصاص بدیم.
مارکو سری تکان داد. درسته. این یعنی کاهش انعطافپذیری برای کاربران دیتا، مخصوصاً در ساعات پرترافیک.
📈 تحلیل نهایی: مصرف منابع در یک سلول
مارکو نمودار نهایی رو ساخت:
- تماس همزمان: 59
- مصرف منابع در DL
- Narrow Band: 59 × 2 = 118 RBs
- Full Band: 59 × 5 = 295 RBs
- مصرف منابع در UL
- Narrow Band: 59 × 3 = 177 RBs
- Full Band: 59 × 8 = 472 RBs
او گفت: اگه همه کاربران Full Band باشن، کل ظرفیت سلول رو VoLTE میگیره. پس باید یه الگوریتم داشته باشیم که بر اساس SINR، کدک مناسب رو انتخاب کنه.
پیمان لبخند زد. مارکو، این تحلیل خیلی دقیق بود. حالا میتونیم برای هر منطقه، ظرفیت VoLTE رو بر اساس نوع کدک، SINR، و رفتار کاربران تخمین بزنیم. مرحله بعدی: طراحی الگوریتم انتخاب کدک بر اساس شرایط لحظهای.
مارکو لبخند زد و شاید یه روزی، VoLTE رو با AI ترکیب کنیم تا خودش تشخیص بده کدوم کدک برای هر کاربر مناسبتره…
الگوریتم انتخاب کدک
مارکو روی نمودار SINR خیره شده بود. تماسهای VoLTE در منطقه SU بهخوبی برقرار میشدند، اما کیفیت صدا در برخی نقاط نوسان داشت. او زیر لب گفت: چرا بعضی کاربران با SINR بالا هنوز از Narrow Band استفاده میکنن؟ مگه نباید سیستم خودش کدک مناسب رو انتخاب کنه؟
در همین لحظه، نریمان وارد شد. مردی با تجربه سالها طراحی شبکه، که همیشه با یک لبخند آرام و یک خودکار قرمز وارد جلسه میشد.
مارکو پرسید: نریمان، یه سؤال دارم. الگوریتم انتخاب کدک VoLTE دقیقاً چطوری کار میکنه؟ چرا بعضی کاربران با شرایط خوب، هنوز کدک ضعیفتری دارن؟
نریمان لبخند زد و گفت: سؤال خوبیه مارکو. انتخاب کدک VoLTE یه فرآیند چندمرحلهایه که هم به شرایط لحظهای شبکه بستگی داره، هم به تنظیمات UE و eNodeB. بذار برات توضیح بدم.
الگوریتم انتخاب کدک
نریمان روی تخته دیجیتال نوشت:
1 – بررسی SINR و CQI
اول از همه، eNodeB از UE گزارش SINR و CQI رو دریافت میکنه. این اطلاعات نشون میده که کیفیت لینک چقدره.
2 – بررسی پشتیبانی UE از کدکها
بعد، سیستم بررسی میکنه که UE از چه کدکهایی پشتیبانی میکنه مثلاً AMR-WB، EVS Narrow Band، یا Full Band.
3 – تطبیق با تنظیمات شبکه
eNodeB تنظیمات خودش رو داره مثلاً ممکنه Full Band فقط برای کاربران VIP یا در ساعات غیرپرترافیک فعال باشه.
4 – انتخاب کدک بر اساس Threshold
در نهایت، الگوریتم یه Threshold برای SINR داره. مثلاً:
def select_codec(sinr_db):
if sinr_db < 0:
return “EVS-NB”
elif sinr_db < 5:
return “EVS-WB”
elif sinr_db < 10:
return “EVS-SWB”
else:
return “EVS-FB”
یعنی اگر SINR بالای 10 dB باشه، Full Band انتخاب میشه البته اگه UE و شبکه هر دو پشتیبانی کنن.
مارکو گفت: پس یعنی ممکنه SINR خوب باشه، ولی چون UE یا تنظیمات شبکه محدود باشه، کدک پایینتر انتخاب بشه؟
نریمان سری تکان داد دقیقاً تازه، بعضی وقتها برای حفظ منابع در ساعات پرترافیک، سیستم عمداً کدک پایینتر رو انتخاب میکنه تا ظرفیت بیشتری برای تماسهای همزمان باقی بمونه.
مارکو لبخند زد حالا فهمیدم چرا اون کاربر با SINR 12 dB هنوز EVS-WB داشت. شاید تنظیمات شبکه محدودش کرده بود.
پیمان که از راه رسید، گفت: مارکو، حالا که الگوریتم رو فهمیدی، میتونی یه مدل بسازی که بر اساس SINR، نوع کدک، و مصرف منابع، ظرفیت VoLTE رو برای هر سلول تخمین بزنه.
مارکو با هیجان گفت: و شاید یه روزی، این الگوریتم رو با AI ترکیب کنیم تا خودش بهینهترین انتخاب رو برای هر لحظه انجام بده.
پیمان هوشمند
سلام امیدوارم حال همگی شما خوب باشه.من پیمان هوشمند هستم. مدرس برنامه نویسی و نرم افزارهای تحلیلی در حوزه مخابرات. خود من همیشه به عنوان یه دانش آموزش و دانش پژوه عاشق برنامه نویسی و کارهای آماری بودم و نقطه قوتم حتی در زمان تحصیل خودم هم مباحث برنامه نویسی بخصوص طراحی الگوریتم بوده. بنابراین این درس را خیلی مفهومی و عمیق یاد گرفتم. تفاوت عمیق من با دانشجویان در زمان تحصیلم این بود که در حوزه ای که تحصیل میکردم مشغول به کار بودم و این دلیل بر عمیق تر شدن در حوزه نرم افزار و مخابرات بود و از دانشگاه برای فهم بیشتر مبانی های کارم استفاده کردم. تا به امروز در اکثر سازمانهایی که کار کرده ام در کنار سمت اصلیم ، به عنوان سوپروایزر آموزشی هم فعالیت میکردم و متخصصینی در این حوزه آموزش داده ام و در بازار کار مشغول به کار هستند و در مدتی که کرونا باعث تعطیلی بسیاری از مراکز آموزش بود ، به صورت رایگان در خدمت دانشجویان نرم افزار از دانشگاه های مختلف بودم. همیشه در روش های آموزشیم بدنبال ابتکار و نوآوری هایی از قبیل گیمیفیکیشن و تکنیک های شناختی به جهت بهبود یادگیری بوده ام.




