Добавил:
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

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

if __name__ == "__main__":
    # Constants
    power_tx = 1
    noise_temperature = 300
    height_rx = 1.5
    height_bs = 30
    freq_0 = 900
    shadowing = 3
    
    distance = np.logspace(0, 1, 20)
    log_distance = np.log10(distance)
    
    # Noise power
    k_boltzmann = 1.38 * 10**-23
    noise_power = noise_temperature * k_boltzmann * freq_0
    
    # Path loss model
    arhs = (1.1 * np.log10(freq_0) - 0.7) * height_rx - (1.56 * np.log10(freq_0) - 0.8)
    loss_db = 46.3 + 33.9 * np.log10(freq_0) - 12.82 * np.log10(height_bs) - arhs + np.abs(44.9 - 6.55 * np.log10(height_rx)) * log_distance + shadowing
    loss = 10 ** (loss_db / 10)
    
    # Receive power
    power_rx = power_tx / loss
    snr = power_tx / power_rx / noise_power
    channel_capacity = freq_0 * np.log2(1 + power_tx / power_rx / noise_power)
    
    # DataFrame
    df = pd.DataFrame({"distance": distance, "log_distance": log_distance, "loss_db": loss_db, "loss": loss, "power_rx": power_rx, "snr": snr, "channel_capacity": channel_capacity})
    print(df)
    
    plt.figure()
    plt.plot(channel_capacity, distance, 'go-')
    plt.title("Зависимость максимальной пропускной способности\n канала связи от расстояния:")
    plt.xlabel('d')
    plt.ylabel('C')
    plt.show()
Соседние файлы в предмете Вычислительные системы, сети и телекоммуникации