форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
2.2 KiB
2.2 KiB
Разработайте функцию с 5 аргументами, создающую отсчеты сигнала в виде
#последовательности импульсов с заданными параметрами: амплитуда, #продолжительность импульса, период (импульс + пауза), число отсчетов #(аргументы функции). Сигнал должен быть записан в виде столбца в текстовый файл #с заданным именем (5-й аргумент функции), а также возвращен в вызывающую #программу в виде списка.
#Генирируем послед испульсов, возвращаем список отсчетов сигнала
def generate_pulse_signal(amplitude, pulse_duration, period, num_samples, filename):
signal = []
with open(filename, 'w') as file:
for i in range(num_samples):
# Определение позиции в периоде
position_in_period = i % period
# Генерация импульса
if position_in_period < pulse_duration:
value = amplitude
else:
value = 0
signal.append(value)
file.write(f"{value}\n")
return signal
# Пример использования
if __name__ == "__main__":
pulse_signal = generate_pulse_signal(
amplitude=5.0,
pulse_duration=3,
period=10,
num_samples=30,
filename="iz.txt"
)
print(f"Сгенерировано {len(pulse_signal)} отсчетов импульсного сигнала")
Сгенерировано 30 отсчетов импульсного сигнала
print("Первые 10 строк из файла:")
with open("iz.txt", 'r') as file:
for i, line in enumerate(file):
if i < 10:
print(f"Строка {i+1}: {line.strip()}")
else:
break
Строка 1: 5.0
Строка 2: 5.0
Строка 3: 5.0
Строка 4: 0
Строка 5: 0
Строка 6: 0
Строка 7: 0
Строка 8: 0
Строка 9: 0
Строка 10: 0