форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
34 строки
2.7 KiB
Markdown
34 строки
2.7 KiB
Markdown
# Индивидуальное контрольное задание по Теме 7
|
|
Таболин Иван, А-01-23
|
|
Вариант 3
|
|
## Задание
|
|
Разработайте функцию с 4 аргументами, создающую последовательность отсчетов случайного, равномерно распределенного сигнала типа белого шума с заданными параметрами: границы диа-пазона изменения, число отсчетов (аргументы функции). Сигнал должен быть записан построчно, по 3 элемента в строке с разделителем - запятая в текстовый файл с заданным именем (4-й аргумент функции), а также возвращен в вызывающую программу в виде списка.
|
|
## Решение
|
|
```py
|
|
def bel_shum(a_min,a_max,k,file_name):
|
|
"""Генератор белого шума
|
|
a_min,a_max - границы диапазона изменения сигнала
|
|
k - количество отсчетов
|
|
file_name - имя файла для вывода сигнала"""
|
|
import random as rn
|
|
signal=[]
|
|
for i in range(k):
|
|
a=a_min+(a_max-a_min)*rn.random()
|
|
signal.append(a)
|
|
f=open(file_name,'w')
|
|
i=0
|
|
while i<len(signal):
|
|
s=signal[i:i+3]
|
|
out=','.join(str(n) for n in s)
|
|
f.write(out+'\n')
|
|
i+=3
|
|
f.close()
|
|
return signal
|
|
|
|
bel_shum(0,1,20,'test1.txt')
|
|
[0.6121303296306144, 0.6412641200633369, 0.11685946114651469, 0.45963383247709144, 0.1396119953149234, 0.9774252470424362, 0.8214083524197986, 0.3712680592177061, 0.7679917358701837, 0.10872526758897305, 0.7277044250338426, 0.5584257054824748, 0.903225844909946, 0.7162949601167093, 0.37602800658438673, 0.7390155718732525, 0.3665326143981362, 0.8660301445143191, 0.8605103393087415, 0.8265277945070508]
|
|
|
|
bel_shum(1,5,35,'test2.txt')
|
|
[2.044262095730901, 2.9460771147067106, 3.4488422163718373, 4.501325827244864, 3.0908516348657415, 2.2486766582618416, 1.8541368543777854, 4.671136588954065, 2.0377889808927616, 2.907799881297287, 4.185430806328185, 1.3106392123128479, 1.4406582567850679, 3.066287739535445, 2.050387519395883, 2.769661281833263, 1.9383764782362034, 1.1036168746115131, 1.4156131808765569, 2.79017367419333, 3.8290609294438225, 4.342915598480614, 3.371713892072644, 2.866840758354854, 3.229631214986825, 3.671877264456392, 2.258566569052188, 3.821614716506629, 2.128574963495442, 1.8828706347794855, 2.279448934161789, 3.8514469999377954, 4.172031075019252, 3.8783957015255783, 1.2633531800325009]
|
|
```
|