Скачиваний:
0
Добавлен:
04.05.2025
Размер:
422.36 Кб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

старший преподаватель

Н.В. Апанасенко

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1

МОДЕЛИРОВАНИЕ РАСПРЕДЕЛЕНИЯ РЕСУРСОВ НИСХОДЯЩЕГО КАДРА В ТЕЛЕКОММУНИКАЦИОННЫХ СЕТЯХ

по курсу: МОДЕЛИРОВАНИЕ СИСТЕМ РАСПРЕДЕЛЕНИЯ РЕСУРСОВ

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ гр. №

подпись, дата

инициалы, фамилия

Санкт-Петербург 2025

Цель работы: получение навыков моделирования стандартных сценариев работы телекоммуникационных систем с топологией типа «звезда». Изучение свойств алгоритмов планирования ресурсов нисходящего кадра в подобных системах.

Вариант 13:

На рисунке 1 представлены параметры сети согласно варианту задания.

Рисунок 1 – Параметры сети по варианту 13

Расчетные формулы для оценки предельно достижимой скорости:

  1. Рассчитаем мощность шума:

(1)

здесь

– полоса пропускания канала связи,

T – абсолютная температура (К),

k – постоянная Больцмана ,

- коэффициент теплового шума приемника .

  1. Рассчитаем потери L:

(2)

где

- частота (МГц),

- высота базовой станции (м), возьмем 40м,

- высота точки приема (м), возьмём средний рост человека 1.7м,

d – расстояние от АБ до БС (км), возьмем максимальное расстояние 2.5км,

,

(3)

Переведем из «дБ» в «разы»:

(4)

  1. Рассчитаем мощность, принятую АБ:

(5)

где

- излучаемая мощность БС (Вт),

L - уровень потерь мощности при преодолении сигналов расстояния от БС к АБ

  1. Рассчитаем отношение сигнал/шум:

(6)

где

PRX – мощность, принятая АБ,

PN - мощность шума.

  1. Рассчитаем пропускную способность канала связи:

(7)

где

- полоса пропускания канала связи,

- отношение сигнал/шум (Signal-to-Noise Ratio, SNR) у абонента с индексом .

Рассмотрим алгоритмы распределения ресурсов. Введем коэффициент , показывающий какая доля ресурсов (например, времени) выделяется i-му абоненту. ,

1. ПРС (Equal blind) — Планировщик, обеспечивающий равные скорости абонентам. Данный алгоритм обеспечивает равные скорости передачи данных между всеми абонентами. Каждый абонент получает одинаковую долю ресурсов, которая находится как

(8)

Скорость для абонента i может быть выражена как:

(9)

2. ПСС (Maximum Throughput) — Планировщик, обеспечивающий максимальную суммарную скорость передачи данных. Данный алгоритм максимизирует суммарную скорость передачи данных. Доля ресурса времени, выделяемая каждому абоненту, находится как

(10)

3. ПРД (Proportion Fair)— Планировщик, обеспечивающий равные доли выделенных ресурсов. Данный алгоритм выделяет равные доли ресурсов всем абонентам. Доля ресурса времени, выделяемая каждому абоненту, находится как

(10)

Суммарная скорость:

(11)

Пример случайных расположений абонентских станций

Была разработана программа для моделирования и визуализации пространственного распределения абонентов вокруг базовой станции в полярной системе координат (Листинг 1).

Сначала определяется функция place_users, которая принимает количество абонентов N и радиус окружности R как входные параметры. Функция генерирует случайные углы в диапазоне от 0 до 2π с равномерным распределением с помощью метода np.random.uniform, а также случайные радиусы, равномерно распределённые по площади круга. Для получения радиусов используется метод квадратного корня от случайных значений, что обеспечивает равномерную плотность распределения абонентов по всей площади окружности.

С целью обеспечения воспроизводимости результатов устанавливается фиксированное значение зерна генератора случайных чисел с помощью функции np.random.seed.

Далее выполняется визуализация полученного распределения абонентов. В полярной системе координат с использованием библиотеки matplotlib строится диаграмма, где положения абонентов отображаются в виде точек. Центр координат обозначает местоположение базовой станции и выделяется красным маркером. Также задаются параметры отображения: ориентация начального угла по направлению на восток и направление оси углов по часовой стрелке, добавляются сетка и легенда.

В результате работы программы визуализируется схема с размещением 64 абонентов в пределах окружности заданного радиуса, позволяющая наглядно оценить пространственное распределение пользователей относительно базовой станции (Рисунок 1).

Листинг 1- Генерация и визуализация размещения абонентов вокруг БС

# Функция для размещения абонентов внутри окружности

def place_users(N, R):

angles = np.random.uniform(0, 2 * np.pi, N)

radii = np.sqrt(np.random.uniform(0, R**2, N))

return angles, radii

np.random.seed(123) # Зерно рандома для воспроизводимости результатов

# Визуализация распределения абонентов в полярной системе координат

angles, radii = place_users(64, R) # Пример для 64 абонентов

plt.figure(figsize=(8, 8))

ax = plt.subplot(111, projection='polar')

ax.scatter(angles, radii, s=30, label='Абоненты')

ax.plot(0, 0, color='red', marker='o', markersize=10, label='Базовая станция')

ax.set_theta_zero_location('E')

ax.set_theta_direction(1)

ax.grid(True)

ax.set_title('Распределение 64 абонентов вокруг базовой станции', pad=20)

ax.legend(loc='upper right')

plt.show()

Рисунок 1 – Распределение абонентов вокруг БС

Результаты моделирования сценариев работы:

Было смоделировано равномерное размещение абонентов по площади и расчет коэффициентов деления ресурсов канала между абонентами для трех типов планировщиков и рассчитаны величины суммарной скорости передачи , средней скорости , а также средней минимальной скорости среди всех абонентов . Количество абонентов составило 1, 2, 4, 8, 16, 32, 64, для каждого числа абонентов моделирование проводилось 100 раз. В результате были получены графики, представленные на рисунках 2 – 4.

Рисунок 2 – График зависимости суммарной скорости передачи данных от количества абонентов

По графику видно, ПСС имеет максимальную суммарную скорость, т.к. алгоритм нацелен на её максимизацию. У алгоритма ПРС с увеличением числа абонентов суммарная скорость снижается. Это связано с тем, что ресурсы распределяются равномерно, и каждый абонент получает меньшую долю пропускной способности. Алгоритм ПРД показал стабильный результат около 30 Мбит/c для каждого числа абонентов.

Рисунок 3 – График зависимости средней скорости передачи данных от количества абонентов

По графику видно, что средняя скорость алгоритма ПРС уменьшается с ростом числа абонентов. Для 1 абонента она около 30 Мбит/с, а для 64 абонентов — близка к нулю. У ПСС Средняя скорость снижается, но остается выше, чем у остальных и примерно равняется 2.5 Мбит/с. ПРД показал лучший, но незначительно отличающийся, результат чем ПРС.

Рисунок 4 – График зависимости минимальной скорости передачи данных от количества абонентов

По графику видно, что в случае с минимальной скоростью алгоритм ПРС превосходит алгоритм ПРД, но разница также незначительна. Алгоритм ПСС имеет минимальную скорость равную нулю во всех случаях, кроме 1 абонента, так как один абонент получает все ресурсы.

На рисунке 5 представлены результаты в формате таблицы.

Рисунок 5 – Результаты

Код для вывода и визуализации результатов представлен в Листинге 2.

Сначала реализована функция print_results, которая выыводит таблицу с результатами. Таблица форматируется с использованием метода format, который обеспечивает выравнивание столбцов. Для каждого алгоритма в отдельной строке выводятся значения метрик для заданного диапазона количества абонентов, заданного в переменной num_users_range. После вывода результатов для каждого алгоритма добавляется разделительная линия.

Следующим этапом реализована функция plot_results, предназначенная для графической визуализации результатов. Функция строит линейные графики зависимости одной из трёх метрик от количества абонентов. Графики сопровождаются сеткой, легендой и соответствующей разметкой осей для облегчения анализа данных.

Листинг 2 – Вывод и визуализация результатов

def print_results(results):

print("{:<15} {:<10} {:<15} {:<15} {:<15}".format(

"Алгоритм", "N", "Суммарная (Мбит/с)", "Средняя (Мбит/с)", "Минимальная (Мбит/с)"

))

print("-" * 70)

for algorithm in results:

for i, N in enumerate(num_users_range):

total = results[algorithm]['total'][i]

avg = results[algorithm]['avg'][i]

min_speed = results[algorithm]['min'][i]

print("{:<15} {:<10} {:<15.2f} {:<15.2f} {:<15.2f}".format(

algorithm, N, total, avg, min_speed

))

print("-" * 70)

def plot_results(results, metric, title, ylabel):

plt.figure(figsize=(10, 6))

for strategy in results:

if strategy == 'Equal Blind':

label = f'{strategy} (ПРС)'

elif strategy == 'Maximum Throughput':

label = f'{strategy} (ПСС)'

elif strategy == 'Proportion Fair':

label = f'{strategy} (ПРД)'

plt.plot(num_users_range, results[strategy][metric], label=label, alpha=0.7)

plt.xlabel('Количество абонентов')

plt.ylabel(ylabel)

plt.title(title)

plt.legend()

plt.grid(True)

plt.xticks(num_users_range)

plt.show()

plot_results(results, 'total', 'Суммарная скорость передачи данных (Мбит/с)', 'Суммарная скорость (Мбит/с)')

plot_results(results, 'avg', 'Средняя скорость передачи данных (Мбит/с)', 'Средняя скорость (Мбит/с)')

plot_results(results, 'min', 'Минимальная скорость передачи данных (Мбит/с)', 'Минимальная скорость (Мбит/с)')

Подробное описание программы для моделирования: на этапе инициализации задаются переменные:

R = 2500 — радиус в метрах, определяет зону покрытия базовой станции.

num_experiments = 100 — количество экспериментов для усреднения результатов.

num_users_range = [1, 2, 4, 8, 16, 32, 64] — список количества абонентов для моделирования.

Ptx = 10 — мощность излучаемого сигнала базовой станции в ваттах.

F0 = 900 — частота базовой станции в мегагерцах.

DF = 10 * 10**6 — ширина полосы пропускания канала связи в герцах.

KN = 2 — коэффициент шума приёмника.

K = 1.38 * 10**(-23) — постоянная Больцмана в Дж/К.

T = 300 — абсолютная температура в Кельвинах.

Hbs = 40 — высота антенны базовой станции в метрах.

Hrx = 1.7 — высота антенны абонента в метрах.

S = 0 — дополнительные потери сигнала в децибелах.

Pn = K * T * DF * KN — мощность шума приёмника в ваттах, рассчитывается по формуле.

results — структура данных для хранения результатов моделирования по трём стратегиям распределения ресурсов.

Также в процессе моделирования используются локальные переменные:

angles — массив случайных углов в радианах для полярного размещения абонентов.

radii — массив случайных расстояний абонентов от базовой станции.

distances — расстояния до абонентов, равны radii.

speeds — массив максимально возможных скоростей передачи данных для каждого абонента.

alpha_EB, alpha_MT, alpha_PF — коэффициенты распределения ресурсов для стратегий Equal Blind, Maximum Throughput и Proportion Fair соответственно.

total, avg, min_ — текущие значения метрик: суммарная, средняя и минимальная скорость передачи.

total_EB, avg_EB, min_EB и аналогичные — списки для накопления результатов по каждой стратегии в каждом эксперименте.

Для моделирования потерь сигнала используется функция, реализующая модель Окамура-Хата. В функции производится перевод расстояния от базовой станции до абонента в километры, расчёт коэффициента потерь в зависимости от высоты антенны приёмника, а также итоговый расчёт потерь в децибелах.

Мощность принятого сигнала определяется на основе вычисленных потерь. Далее для каждого абонента вычисляется отношение сигнал/шум (SNR), на основе которого определяется пропускная способность с использованием формулы (7).

Абоненты размещаются в зоне покрытия базовой станции случайным образом. Для равномерного распределения по площади используется генерация углов и радиусов в полярной системе координат с коррекцией радиуса путём применения квадратного корня от равномерного распределения по площади круга.

Далее для каждого количества абонентов проводится серия из 100 экспериментов. В каждом эксперименте абоненты случайным образом размещаются в зоне обслуживания, для них рассчитываются индивидуальные скорости передачи данных, после чего применяются три стратегии распределения ресурсов: Equal Blind, Maximum Throughput, Proportion Fair.

Для каждой стратегии рассчитываются три метрики: суммарная скорость передачи данных, средняя скорость передачи и минимальная скорость. После проведения всех экспериментов для каждого количества абонентов усреднённые значения метрик сохраняются в структуру данных results для последующего отображения и визуализации.

Полный код представлен в приложении.

Соседние файлы в предмете Моделирование систем распределения ресурсов