DobrovolskaY 4 недель назад
Родитель b7664a9b80
Сommit 2981ae7bf8

@ -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' и в файле).
Загрузка…
Отмена
Сохранить