форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
2.1 KiB
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