- •Пример расчёта параметров моделируемой системы
- •Результаты моделирования
- •3 Описание разработанной программы
- •Что такое нисходящий канал связи в телекоммуникационных сетях?
- •2) Какой из изученных алгоритмов распределения ресурсов оптимален для передачи данных по заданному варианту базовой станции? Почему?
- •Приложение а «Генерация абонентов и отображение их положения»
- •Приложение б «Построение графиков распределения аб»
- •Приложение в «Реализация алгоритмов распределения ресурсов»
- •Приложение г «Вычисление оценок работы для каждого алгоритма»
- •Приложение д «Построение графиков оценок алгоритмов и запуск программы»
3 Описание разработанной программы
Список использованных переменных с описанием приведён в Таблице 1.
Таблица 1 – Описание основных использованных переменных
Переменная |
Описание |
R |
Радиус действия базовой станции |
Ptx |
Мощность передатчика |
f0 |
Частота сигнала (МГц) |
df |
Ширина полосы пропускания канала (МГц) |
kn |
Коэффициент теплового шума приемника |
T |
Температура (К) |
K |
Коэффициент типа помещения |
Pn |
Мощность теплового шума |
subs |
Список сгенерированных абонентов (в виде словарей)
distance, CC) |
angle |
Случайный угол расположения абонента (в радианах) |
distance |
Расстояние от базовой станции до абонента |
L_dB |
Потери сигнала в децибелах |
L |
Потери сигнала в абсолютных единицах |
Prx |
Принятая мощность сигнала |
SNR |
Отношение сигнал/шум |
CC |
Пропускная способность абонента (бит/с) |
CC_list |
Список пропускных способностей всех абонентов |
D |
Скорость передачи данных |
D_list |
Список вычисленных скоростей по алгоритму распределения |
n_ab |
Список рассматриваемого количества абонентов |
tests |
Количество прогонов |
results |
Словарь со средними оценками по каждому алгоритму |
calculations |
Словарь для хранения результатов прогонов каждого алгоритма |
avg |
Усреднённые значения оценок алгоритмов |
rating |
Ключи для метрик оценки (`minD`, `meanD`, `sumD`) |
data['minD'] |
Минимальная скорость для каждого количества абонентов |
data['meanD'] |
Средняя скорость |
data['sumD'] |
Суммарная скорость |
Описание кода программы, согласно приложениям:
1) Приложение А:
В начале задаются константы, которые используются для расчёта пропускной способности абонентов.
Функция
generate_ab(n)
отвечает за генерацию n числа абонентов,
случайным образом распределённых в
пределах радиуса действия базовой
станции. Положение каждого абонента
задаётся в полярной системе координат:
случайный угол и расстояние от центра.
Согласно формулам, представленным в примере расчёта параметров моделируемой системы, вычисляется пропускная способность для каждого абонента. Каждый абонент сохраняется в массиве в виде словаря с ключами: расстояние до базовой станции, угол положения, пропускная способность.
График
расположения абонентов строится функцией
plot_ab(subs),
которой передаётся список абонентов.
Для визуализации используется полярная
система координат: точки размещаются
в соответствии с углом и расстоянием
до центра
2) Приложение Б:
Функция
plot_ab_histogram(subs)
визуализирует угловое распределение
абонентов для оценки его равномерности.
Сначала строится гистограмма углов,
показывающая, насколько равномерно
абоненты размещены по окружности. Затем
отображается эмпирическая функция
распределения, позволяющая оценить
накопленное распределение углов.
3) Приложение В:
Реализованы три алгоритма распределения ресурсов между абонентами.
Функция
equal_blind
(CC_list)
реализует алгоритм Equal
Blind,
при котором для всех абонентов
устанавливается одинаковая скорость
передачи.
Функция
maximum_throughput
(CC_list)
реализует алгоритм Maximum
Throughput,
при котором ресурсы выделяются абонентам,
расположенным ближе всех к базовой
станции, достигается максимальная
суммарная скорость передачи.
Функция
proportion_fair
(CC_list)
реализует алгоритм Proportion
Fair,
обеспечивающий равное распределение
ресурсов. Каждый абонент получает долю,
пропорциональную своей пропускной
способности.
4) Приложение Г:
Здесь
реализовано моделирование работы
системы. Функция modulate
(n_ab, tests)
запускает процесс, в котором для каждого
значения количества абонентов из списка
n_ab
выполняется 100 прогонов. В каждом прогоне
генерируются случайные абоненты,
рассчитываются их пропускные способности,
затем применяются разные алгоритмы
распределения ресурсов.
Результаты
каждого алгоритма накапливаются, а
затем усредняются с помощью функции
average_val
(),
которая рассчитывает средние значения
по трём метрикам: минимальная, средняя
и суммарная скорость передачи данных
(minD,
meanD,
sumD).
Усреднённые значения сохраняются в
результирующем словаре results
отдельно для каждого алгоритма и каждого
количества абонентов.
5) Приложение Д:
Реализуется
визуализация оценок работы алгоритмов
и основной запуск программы. Функция
plot_results(results)
строит графики зависимости средней
суммарной скорости, средней минимальной
скорости и средней скорости передачи
данных от числа абонентов.
Функция main () запускает процесс генерирования абонентов, построения графиков, моделирования работы системы.
Выводы
В результате выполнения лабораторной работы получены навыки моделирования стандартных сценариев работы телекоммуникационных систем с топологией типа «звезда». Изучены свойства алгоритмов планирования ресурсов нисходящего кадра в подобных системах, на примере алгоритмов Equal Blind, Proportion fair, Maximum Throughput.
Проведено сравнение оценок средней скорости передачи данных, средней минимальной и суммарной скоростей передачи данных для абонентов в зависимости от применяемого алгоритма распределения нагрузки.
Установлено, что алгоритмы Equal Blind и Proportion Fair демонстрируют схожие результаты по равномерности распределения ресурсов между абонентами, обеспечивая стабильную, но снижающуюся при увеличении числа абонентов скорость. Алгоритм Maximum Throughput, в свою очередь, обеспечивает более высокую суммарную скорость за счёт приоритета абонентов с лучшими условиями приёма, но неравномерно распределяет ресурсы между абонентами, из-за чего минимальная скорость передачи данных при увеличении нагрузки стремиться к нулю.
Ответы на вопросы
