# Signal

`class boulderopal.signals.Signal(function, duration)`

A class that contains information about a signal that can be discretized.

You can use this class to create and store signals that will be sent to third-party devices. The signals created in this way are independent of Boulder Opal graphs and have a fixed time step between their segments.

### Parameters

**function**(*Callable*) – A function that returns the value of the signal at each instant of time. It must be capable of accepting a NumPy array of times as an input parameters, in which case it should return the values of the function for all the times passed.**duration**(*float*) – The duration of the signal.

## Methods

export_with_sampling_rate | Return the values of the signal sampled at a constant rate given by the sampling rate provided. |

export_with_time_step | Return the values of the signal sampled at a constant rate given by the time step provided. |