# module_pulse.py def generate_pulse_signal(ampl, pulse_len, period, n_samples, filename): if not isinstance(pulse_len, int) or pulse_len <= 0: raise ValueError("pulse_len должен быть целым > 0") if not isinstance(period, int) or period <= 0: raise ValueError("period должен быть целым > 0") if period < pulse_len: raise ValueError("period должен быть >= pulse_len (иначе пауза отрицательная)") if not isinstance(n_samples, int) or n_samples <= 0: raise ValueError("n_samples должен быть целым > 0") if not isinstance(filename, str) or filename.strip() == "": raise ValueError("filename должен быть непустой строкой") signal = [] for i in range(n_samples): pos_in_period = i % period if pos_in_period < pulse_len: signal.append(ampl) else: signal.append(0) # запись столбцом with open(filename, "w", encoding="utf-8") as f: for i in range(len(signal)): f.write(str(signal[i]) + "\n") return signal