diff --git a/test.md b/test.md new file mode 100644 index 0000000..eccb5cd --- /dev/null +++ b/test.md @@ -0,0 +1,85 @@ +## ИКЗ по теме 8 +Добровольска Елизавета,А-02-23 + +## Задание + +для проверки работы функции, вызов функции и отображение полученных результатов. +Разработайте функцию с 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' и в файле). \ No newline at end of file