input: def generate_voltage_signal(frequency: float, amplitude: float, duration: float = 1.0, noise_std_dev: float = 0.1) -> np.ndarray:
      """Generate a voltage signal with random noise.
      The signal is a sinusoidal wave with a given frequency and amplitude,
      and it is corrupted by random Gaussian noise.
      >>> signal = generate_voltage_signal(250, 1, 1, 0.1)
      >>> len(signal)
      1000
      """
      t = np.linspace(0, duration, int(duration * 1000))
      voltage_signal = amplitude * np.sin(2 * np.pi * frequency * t) + np.random.normal(0, noise_std_dev, int(duration * 1000))
      return voltage_signal
output:     t = np.linspace(0, duration, int(duration * 1000))
      voltage_signal = amplitude * np.sin(2 * np.pi * frequency * t) + np.random.normal(0, noise_std_dev, int(duration * 1000))
      return voltage_signal