Добавил:
t.me Установите расширение 'SyncShare' для решения тестов в LMS (Moodle): https://syncshare.naloaty.me/ . На всякий лучше отключить блокировщик рекламы с ним. || Как пользоваться ChatGPT в России: https://habr.com/ru/articles/704600/ || Также можно с VPNом заходить в bing.com через Edge браузер и общаться с Microsoft Bing Chat, но в последнее время они форсят Copilot и он мне меньше нравится. || Студент-заочник ГУАП, группа Z9411. Ещё учусь на 5-ом курсе 'Прикладной информатики' (09.03.03). || Если мой материал вам помог - можете написать мне 'Спасибо', мне будет очень приятно :) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Zadaniye1.4_used

.py
Скачиваний:
0
Добавлен:
24.10.2023
Размер:
1.53 Кб
Скачать
import numpy as np
import matplotlib.pyplot as plt

def calculate_loss(d, h_rx, h_bs, f0, S):
    '''
    Calculate the loss (L_db) based on given parameters.
    '''
    arhs = (1.1 * np.log10(f0) - 0.7) * h_rx - (1.56 * np.log10(f0) - 0.8)
    ldb = 46.3 + 33.9 * np.log10(f0) - 13.82 * np.log10(h_bs) - arhs + np.abs(44.9 - 6.55 * np.log10(h_rx)) * np.log10(d) + S
    return ldb

def calculate_capacity(d, P_tx, d_f, T, kn, h_rx, h_bs, f0, S):
    '''
    Calculate the capacity of a communication channel.
    '''
    lg_d = np.log10(d)
    pn = d_f * T * 1.38 * (10 ** -23) * kn
    L_db = calculate_loss(d, h_rx, h_bs, f0, S)
    L = 10 ** (L_db / 10)
    P_rx = P_tx / L
    SNR = P_tx / L / pn
    C = d_f * np.log2(1 + P_tx / L / pn)
    return {'d': d, 'lgD': lg_d, 'L_db': L_db,  'L': L, 'prx': P_rx, 'snr': SNR, 'C': C}

if __name__ == "__main__":
    P_tx = 1
    d_f = 80 * (10 ** 6)
    T = 300
    kn = 2
    h_rx = 1
    h_bs = 30
    f0 = 900
    S = 3

    d = np.linspace(1, 2, 20) # Define d range with 20 points between 1 and 2
    
    data = calculate_capacity(d, P_tx, d_f, T, kn, h_rx, h_bs, f0, S)
    # Create a plot of the data
    plt.figure()
    plt.plot(data['d'], data['C'], 'go-')
    plt.title("Зависимость максимальной пропускной способности\n канала связи от расстояния:")
    plt.xlabel('Расстояние от БС')
    plt.ylabel('Максимальная пропускная способность')
    plt.show()
Соседние файлы в предмете Вычислительные системы, сети и телекоммуникации