## ИКЗ по теме 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' и в файле).