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

Моделирование скоростей алгоритмов планирования

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

В связи с этим существует 3 алгоритма распределения ресурсов. Первый алгоритм обеспечивает равные скорости между всеми абонентами (Equal Blind):

Второй алгоритм максимизирует суммарную скорость передачи:

И наконец третий метод выделяет равные доли ресурсов всем абонентам:

В качестве основных величин для сравнения данных трёх алгоритмов между собой выступают: суммарная скорость передачи , средняя скорость , а также средняя минимальная скорость среди всех абонентов . В таблице 1 приведен список используемых переменных, а в листинге 2 – программный код разработанного алгоритма.

Таблица 1. Список используемых переменных

Название

Тип

Описание

Distance

Массив

Сгенерированное расстояние до БС

Lg_l

Массив

Потери сигнала выраженные в дБ

L

Массив

Потери сигнала выраженные в разы

P_rx

Массив

Принятая мощность сигнала от БС

P_n

Дробный

Мощность теплового шума

SNR

Массив

Отношение сигнал-шум

C

Массив

Максимальная пропускная способность

D1, D2, D3

Массивы

Реальные пропускные способности

Equals, maxs, props

Массивы

Временная переменная для результатов

N

Массив

Количество абонентов внутри радиуса

Accuracy

Целочисленный

Точность вычислений

D_equals, D_maxs, D_props

Массивы

Окончательные результаты рассчета

Листинг 2. Программа моделирования результатов

def calculate_Ds(N: int, accuracy: int, dtype: str):

# Определяем массивы вычисляемых значений

print(f"{dtype = }, {N = }")

equal = []

maxs = []

proportion = []

for _ in range(accuracy):

# Определяем основные параметры

distance = create_distance(N)

lg_l = (

46.3

+ 33.9 * np.log10(f_0)

- 13.82 * np.log10(h_bs)

- alpha_h_rx

+ (44.9 - 6.55 * np.log10(h_rx)) * np.log10(distance)

) / 10

L = 10 ** (lg_l)

P_rx = p_tx / L

P_n = delta_f * t * k * k_n

SNR = P_rx / P_n

C = delta_f * np.log2(1 + SNR)

# Создаём массивы D

D1 = [(np.sum(C ** (-1))) ** (-1) for _ in range(N)]

D2 = [0 if i != np.argmax(C) else C[i] for i in range(N)]

D3 = C / N

# В зависимости от функции записываем результат

match dtype:

case "sum":

equal.append(np.sum(D1))

maxs.append(np.sum(D2))

proportion.append(np.sum(D3))

case "mean":

equal.append(np.mean(D1))

maxs.append(np.mean(D2))

proportion.append(np.mean(D3))

case "min":

equal.append(np.min(D1))

maxs.append(np.min(D2))

proportion.append(np.min(D3))

return np.mean(equal), np.mean(maxs), np.mean(proportion)

# Количество абонентов

N = np.logspace(0, 6, base=2, num=7, dtype=np.int16)

# Точность вычислений

accuracy = 1000

# Массивы для графиков

D_equals, D_maxs, D_proportion = {}, {}, {}

# Возможные типы алгоритмов

algs = ["sum", "mean", "min"]

for alg in algs:

temp_results = np.array([calculate_Ds(i, accuracy, alg) for i in N]).T

D_equals[alg] = temp_results[0]

D_maxs[alg] = temp_results[1]

D_proportion[alg] = temp_results[2]

После запуска данной программы на выходе получаются 3 массива с данными, которые необходимо визуализировать. Полученные визуализации показаны на рисунках 2-4.

Рисунок 2 – Сравнение суммарной скорости разных алгоритмов

Рисунок 3 – Сравнение средней скорости разных алгоритмов

Рисунок 4 – Сравнение минимальной скорости разных алгоритмов

Из полученных рисунков видно, что алгоритмы Equals Blinds и Proportion Fair практически не различаются между собой, чего нельзя сказать о Maximum Throughput, поскольку данный алгоритм выбирает абонента с максимальной пропускной способностью и работает только с ним. А когда абонентов становится более 1, тогда передачи данных остальным абонентам не происходит.

Выводы

В ходе выполнения данной лабораторной работы мною были получены навыки моделирования стандартных сценариев работы телекоммуникационных систем с топологией типа «звезда», а также изучены свойства алгоритмов планирования ресурсов нисходящего кадра в подобных системах.

В результате изучения данных алгоритмов были построены графики зависимостей минимальной, средней и суммарной скорости передачи данных от количества абонентов в зоне работы БС. По данным графикам видно, что алгоритмы Equals Blinds и Proportion Fair отличаются незначительно. Смею предположить, что данная разница объясняется тем, что и в том, и в другом случае происходит усреднение показателей. В алгоритме Equals Blinds обязательное условие равное значение всех скоростей между собой, а в алгоритме Proportion Fair на каждого абонента выделяется равные ресурсы БС. Средняя и минимальные оценки скоростей уменьшаются с ростом количества абонентов, а график суммарной оценки остаётся неизменным.

Совершенно выделяется на их фоне алгоритм Maximum Throughput. Данный алгоритм отдаёт предпочтение тому абоненту, чья пропускная способность максимальная на фоне остальных. В связи с этим, когда в зоне действия БС находятся более одного абонента, то передача данных с остальными не происходит, что наглядно показано на графике минимальной скорости. Также, на графике сравнения суммарных скоростей видно, что при увеличении количества абонентов в системе, растет и суммарная скорость у данного алгоритма. Это объясняется тем, что в системе появляются все новые и новые абоненты, которые находятся ближе к БС, в связи с чем их пропускная способность увеличивается.

Таким образом, можно сделать вывод о том, что алгоритм Maximum Throughput не подходит для систем с большим количеством абонентов, и следует выбирать между алгоритмами Equals Blinds и Proportion Fair.

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