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

2.1 KiB

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

Беженарь Алёна, А-02-23, Вариант 2

Задание

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

Решение

>>> import random
>>> def generate_noise(mean,variance, num_points, filename):
...     standart_otklon = variance**(1/2) #Среднеквадратичное отклонение
...     signal=[random.gauss(mean, standart_otklon) for x in range(num_points)] #генерируем сигнал
...     with open(filename, 'w') as f: #открываем файл
...         for i in range(0,num_points,3):
...             line=" ".join(str(value) for value in signal[i:i+3]) #создание строки для записи в файл
...             f.write(line+"\n")
...     return signal #возращаем список отсчетов сигнала
...
>>> noise = generate_noise(0,1,10, "test_noise.txt") 
>>> print(noise)
[-0.5436739913889093, 0.664991565282872, 0.024304199939835725, 0.586156329620318, -0.91293168562729, 1.0918251712936817, -1.812662851600029, -0.3779057893060255, -1.3275643822482055, 1.2549578798676502]

Вывод в файле:

-0.5436739913889093 0.664991565282872 0.024304199939835725
0.586156329620318 -0.91293168562729 1.0918251712936817
-1.812662851600029 -0.3779057893060255 -1.3275643822482055
1.2549578798676502