|
|
|
|
@ -7,3 +7,79 @@
|
|
|
|
|
|
|
|
|
|
## Решение
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Решение
|
|
|
|
|
|
|
|
|
|
Код модуля для генерации сигнала:
|
|
|
|
|
```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' и в файле).
|
|
|
|
|
|