Closed andrasfuchs closed 1 year ago
The new Signal Generator configuration looks like this:
The Frequency
is the native frequency of the signal generator on all channels.
The Resolution
means that the timer that is responsible for the calculation of the current amplitudes and freqeuncies for each output is called at this period. When it's called all outputs get a new amplitude and frequency value based on the current time and the signal definition.
The Schedule
is a series of instructions about the timing of the signals. Its current format is {Channel ID},{time to start}/{repeat period},{signal name}({signal length})
.
The SignalDefinition
is a list of definitions of signals. Each signal has a Name
, Type
, Frequency
and Voltage
.
Both Frequency
and Voltage
can be a single value, a frequency sweep range (indicated by ->
), or a frequency ping-pong range (indicated by <->
).
Named signal definition must be customizable enough set the amplitudes, frequencies and its type (sine or square).
Since the type would be fixed during a signal generation segment, I would define them in a way similar to this:
sine(420 seconds, 10.3 Hz -> 10.9 Hz, 2.43 V -> 5.21 V)
meaning that BBD will generate a signal that changes its frequency from 10.3 Hz to 10.9 Hz in 420 seconds, and also its peak-to-peak amplitude from 2.43 V to 5.21 V also in 420 seconds. These definitions could optionally have a name to refer them by.Similarly valid definitions would look like these:
sine(1.22 seconds, 0.02 Hz -> 10.9 Hz, 3.00 V)
sine(34.38 seconds, 512.88 Hz, 3.00 V -> 0.55 V)
square(60 seconds, 24.8 kHz, 3.49 V)
Digilent WaveForms has a similar functionality: