Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

2.4 KiB

Индивидуальное контрольное задание по теме 7

Анисенков Павел, А-01-23

Задание

3.Разработайте функцию с 4 аргументами, создающую последовательность отсчетов случайно-го, равномерно распределенного сигнала типа белого шума с заданными параметрами: грани-цы диапазона изменения, число отсчетов (аргументы функции). Сигнал должен быть записан построчно, по 3 элемента в строке с разделителем - запятая в текстовый файл с заданным именем (4-й аргумент функции), а также возвращен в вызывающую программу в виде списка.

Решение

import random
import math 
import os

def bely_shum(niz_gr, verh_gr, kol_otschetov, moifail):
    """
    Создает последовательность отсчетов случайного, равномерно 
    распределенного сигнала типа белого шума с заданными параметрами
    
    Аргументы:
    niz_gr - нижняя граница диапазона
    verh_gr - верхняя граница диапазона
    kol_otschetov - число отсчетов
    moifail - имя файла для записи
    
    Возвращает:
    Список сгенерированных значений
    
    """
    signal = []
    for i in range(kol_otschetov):
        sluch = niz_gr + (verh_gr - niz_gr) * random.random()
        signal.append(sluch)
    
    fail = open(moifail, 'w')
    
    i = 0
    while i < len(signal):
        str_el = signal[i:i+3]
        zapis = ','.join(str(chislo) for chislo in str_el)
        fail.write(zapis + '\n')
        i += 3
    fail.close()
    return signal

if __name__ == "__main__":
        
    os.chdir(r'C:\Users\Professional\Desktop\python-labs\TEMA7')
    
    nizhnyaya = 0.0 
    verhnyaya = 10.0
    kolichestvo = 12     
    moifail = "signal_belogo_shuma.txt"  

    res = bely_shum(nizhnyaya, verhnyaya, kolichestvo, moifail)
    
    print("Сгенерированный сигнал:")
    print(res)
    print(f"Данные записаны в файл: {moifail}")