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