форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
63 строки
2.4 KiB
Markdown
63 строки
2.4 KiB
Markdown
# Индивидуальное контрольное задание по теме 7
|
|
|
|
Анисенков Павел, А-01-23
|
|
|
|
## Задание
|
|
3.Разработайте функцию с 4 аргументами, создающую последовательность отсчетов случайно-го, равномерно распределенного сигнала типа белого шума с заданными параметрами: грани-цы диапазона изменения, число отсчетов (аргументы функции). Сигнал должен быть записан построчно, по 3 элемента в строке с разделителем - запятая в текстовый файл с заданным именем (4-й аргумент функции), а также возвращен в вызывающую программу в виде списка.
|
|
|
|
|
|
## Решение
|
|
|
|
```py
|
|
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}")
|
|
|
|
```
|
|
|
|
|