## ИКЗ ПО теме 8 Добровольска Елизавета, А-02-23 Вариант 4 ## Задание Разработайте функцию по заданию и на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов. Разработайте функцию с 5 аргументами, создающую отсчеты сигнала в виде последовательности импульсов с заданными параметрами: амплитуда, продолжительность импульса, период (импульс + пауза), число отсчетов (аргументы функции). Сигнал должен быть записан в виде столбца в текстовый файл с заданным именем (5-й аргумент функции), а также возвращен в вызывающую программу в виде списка. ## Решение Код модуля для генерации сигнала: ```py def generate_pulsed_signal(amplitude, pulse_duration, period, num_samples, filename): signal_data = [] for i in range(num_samples): # Определяем находится ли текущий отсчет в фазе импульсаа if (i % period) < pulse_duration: signal_data.append(amplitude) else: signal_data.append(0) # Фаза паузы # Запись сигнала в файлик with open(filename, 'w') as f: for sample in signal_data: f.write(f"{sample}\n") return signal_data ``` Основной модуль: ```py from signal_generator import generate_pulsed_signal print("Генерация импульсного сигнала") signal_amplitude = 10.0 signal_pulse_duration = 5 signal_period = 15 signal_num_samples = 100 output_file_name = "pulsed_signal.txt" print(f"\nПараметры сигнала:") print(f" Амплитуда: {signal_amplitude}") print(f" Продолжительность импульса: {signal_pulse_duration} отсчетов") print(f" Период (импульс+пауза): {signal_period} отсчетов") print(f" Общее число отсчетов: {signal_num_samples}") print(f" Файл для записи: {output_file_name}") generated_signal = generate_pulsed_signal( signal_amplitude, signal_pulse_duration, signal_period, signal_num_samples, output_file_name ) print(f"\nСигнал успешно сгенерирован и записан в файл '{output_file_name}'.") print("\nПервые 20 отсчетов сгенерированного сигнала (возвращенный список):") print(generated_signal[:20]) print("\n(Полный список доступен в переменной 'generated_signal' и в файле).") ``` Вывод в консоли: Генерация импульсного сигнала Параметры сигнала: Амплитуда: 10.0 Продолжительность импульса: 5 отсчетов Период (импульс+пауза): 15 отсчетов Общее число отсчетов: 100 Файл для записи: pulsed_signal.txt Сигнал успешно сгенерирован и записан в файл 'pulsed_signal.txt'. Первые 20 отсчетов сгенерированного сигнала (возвращенный список): [10.0, 10.0, 10.0, 10.0, 10.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10.0, 10.0, 10.0, 10.0, 10.0] (Полный список доступен в переменной 'generated_signal' и в файле).